--- eglibc-2.12.1.orig/locale/C-translit.h +++ eglibc-2.12.1/locale/C-translit.h @@ -1,4 +1,4 @@ -#define NTRANSLIT 1353 +#define NTRANSLIT 1354 static const uint32_t translit_from_idx[] = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, @@ -113,7 +113,7 @@ 2616, 2618, 2620, 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2636, 2638, 2640, 2642, 2644, 2646, 2648, 2650, 2652, 2654, 2656, 2658, 2660, 2662, 2664, 2666, 2668, 2670, 2672, 2674, 2676, 2678, 2680, 2682, 2684, 2686, - 2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704 + 2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704, 2706 }; static const wchar_t translit_from_tbl[] = L"\x00a0" L"\0" L"\x00a9" L"\0" L"\x00ab" L"\0" L"\x00ad" L"\0" L"\x00ae" @@ -134,334 +134,334 @@ L"\0" L"\x2035" L"\0" L"\x2036" L"\0" L"\x2037" L"\0" L"\x2039" L"\0" L"\x203a" L"\0" L"\x203c" L"\0" L"\x2044" L"\0" L"\x2047" L"\0" L"\x2048" L"\0" L"\x2049" L"\0" L"\x205f" L"\0" L"\x2060" L"\0" L"\x2061" L"\0" - L"\x2062" L"\0" L"\x2063" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x2100" - L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0" L"\x2106" L"\0" - L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d" L"\0" L"\x210e" - L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0" L"\x2113" L"\0" - L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a" L"\0" L"\x211b" - L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0" L"\x2122" L"\0" - L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c" L"\0" L"\x212d" - L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0" L"\x2131" L"\0" - L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145" L"\0" L"\x2146" - L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0" L"\x2153" L"\0" - L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" L"\0" L"\x2158" - L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0" L"\x215c" L"\0" - L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" L"\0" L"\x2161" - L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0" L"\x2165" L"\0" - L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" L"\0" L"\x216a" - L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0" L"\x216e" L"\0" - L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" L"\0" L"\x2173" - L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0" L"\x2177" L"\0" - L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" L"\0" L"\x217c" - L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0" L"\x2190" L"\0" - L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2" L"\0" L"\x21d4" - L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0" L"\x2217" L"\0" - L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264" L"\0" L"\x2265" - L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0" L"\x22d9" L"\0" - L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403" L"\0" L"\x2404" - L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0" L"\x2408" L"\0" - L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c" L"\0" L"\x240d" - L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0" L"\x2411" L"\0" - L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415" L"\0" L"\x2416" - L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0" L"\x241a" L"\0" - L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e" L"\0" L"\x241f" - L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0" L"\x2424" L"\0" - L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" L"\0" L"\x2464" - L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0" L"\x2468" L"\0" - L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" L"\0" L"\x246d" - L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0" L"\x2471" L"\0" - L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" L"\0" L"\x2476" - L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0" L"\x247a" L"\0" - L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" L"\0" L"\x247f" - L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0" L"\x2483" L"\0" - L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" L"\0" L"\x2488" - L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0" L"\x248c" L"\0" - L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" L"\0" L"\x2491" - L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0" L"\x2495" L"\0" - L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" L"\0" L"\x249a" - L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0" L"\x249e" L"\0" - L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" L"\0" L"\x24a3" - L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" L"\x24a7" L"\0" - L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" L"\0" L"\x24ac" - L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" L"\x24b0" L"\0" - L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" L"\0" L"\x24b5" - L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" L"\x24b9" L"\0" - L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" L"\0" L"\x24be" - L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" L"\x24c2" L"\0" - L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" L"\0" L"\x24c7" - L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" L"\x24cb" L"\0" - L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" L"\0" L"\x24d0" - L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" L"\x24d4" L"\0" - L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" L"\0" L"\x24d9" - L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" L"\x24dd" L"\0" - L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" L"\0" L"\x24e2" - L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" L"\x24e6" L"\0" - L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" L"\0" L"\x2500" - L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0" L"\x2514" L"\0" - L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" L"\0" L"\x2534" - L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0" L"\x2a75" L"\0" - L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251" L"\0" L"\x3252" - L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0" L"\x3256" L"\0" - L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a" L"\0" L"\x325b" - L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0" L"\x325f" L"\0" - L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4" L"\0" L"\x32b5" - L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0" L"\x32b9" L"\0" - L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd" L"\0" L"\x32be" - L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0" L"\x3373" L"\0" - L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380" L"\0" L"\x3381" - L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0" L"\x3385" L"\0" - L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389" L"\0" L"\x338a" - L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0" L"\x338e" L"\0" - L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392" L"\0" L"\x3393" - L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0" L"\x3397" L"\0" - L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b" L"\0" L"\x339c" - L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0" L"\x33a0" L"\0" - L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4" L"\0" L"\x33a5" - L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0" L"\x33a9" L"\0" - L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad" L"\0" L"\x33ae" - L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0" L"\x33b2" L"\0" - L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6" L"\0" L"\x33b7" - L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0" L"\x33bb" L"\0" - L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf" L"\0" L"\x33c2" - L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0" L"\x33c6" L"\0" - L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca" L"\0" L"\x33cb" - L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0" L"\x33cf" L"\0" - L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3" L"\0" L"\x33d4" - L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0" L"\x33d8" L"\0" - L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc" L"\0" L"\x33dd" - L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0" L"\xfb03" L"\0" - L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00" L"\0" L"\xfe01" - L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0" L"\xfe05" L"\0" - L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09" L"\0" L"\xfe0a" - L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0" L"\xfe0e" L"\0" - L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" L"\0" L"\xfe50" - L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" L"\xfe56" L"\0" - L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" L"\0" L"\xfe5c" - L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" L"\xfe62" L"\0" - L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" L"\0" L"\xfe68" - L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" L"\xfeff" L"\0" - L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04" L"\0" L"\xff05" - L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0" L"\xff09" L"\0" - L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d" L"\0" L"\xff0e" - L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0" L"\xff12" L"\0" - L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16" L"\0" L"\xff17" - L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0" L"\xff1b" L"\0" - L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f" L"\0" L"\xff20" - L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0" L"\xff24" L"\0" - L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28" L"\0" L"\xff29" - L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0" L"\xff2d" L"\0" - L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31" L"\0" L"\xff32" - L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0" L"\xff36" L"\0" - L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a" L"\0" L"\xff3b" - L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0" L"\xff3f" L"\0" - L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43" L"\0" L"\xff44" - L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0" L"\xff48" L"\0" - L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c" L"\0" L"\xff4d" - L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" L"\xff51" L"\0" - L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" L"\0" L"\xff56" - L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0" L"\xff5a" L"\0" - L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" L"\0" - L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0" L"\x0001d403" - L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406" L"\0" - L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0" L"\x0001d40a" - L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" L"\0" - L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0" L"\x0001d411" - L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414" L"\0" - L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0" L"\x0001d418" - L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" L"\0" - L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" L"\x0001d41f" - L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422" L"\0" - L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0" L"\x0001d426" - L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429" L"\0" - L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" L"\x0001d42d" - L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430" L"\0" - L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0" L"\x0001d434" - L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437" L"\0" - L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0" L"\x0001d43b" - L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" L"\0" - L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0" L"\x0001d442" - L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445" L"\0" - L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0" L"\x0001d449" - L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" L"\0" - L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" L"\x0001d450" - L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453" L"\0" - L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0" L"\x0001d458" - L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" L"\0" - L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" L"\x0001d45f" - L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462" L"\0" - L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0" L"\x0001d466" - L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469" L"\0" - L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" L"\x0001d46d" - L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470" L"\0" - L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0" L"\x0001d474" - L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477" L"\0" - L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0" L"\x0001d47b" - L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" L"\0" - L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0" L"\x0001d482" - L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485" L"\0" - L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0" L"\x0001d489" - L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" L"\0" - L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" L"\x0001d490" - L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493" L"\0" - L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0" L"\x0001d497" - L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a" L"\0" - L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" L"\x0001d49f" - L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" L"\0" - L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" L"\x0001d4ac" - L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" L"\0" - L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" L"\x0001d4b4" - L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" L"\0" - L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" L"\x0001d4bd" - L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" L"\0" - L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" L"\x0001d4c6" - L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" L"\0" - L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" L"\x0001d4cd" - L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" L"\0" - L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" L"\x0001d4d4" - L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" L"\0" - L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" L"\x0001d4db" - L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" L"\0" - L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" L"\x0001d4e2" - L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" L"\0" - L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" L"\x0001d4e9" - L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" L"\0" - L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" L"\x0001d4f0" - L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" L"\0" - L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" L"\x0001d4f7" - L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" L"\0" - L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" L"\x0001d4fe" - L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501" L"\0" - L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0" L"\x0001d505" - L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509" L"\0" - L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" L"\x0001d50f" - L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512" L"\0" - L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0" L"\x0001d517" - L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a" L"\0" - L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" L"\x0001d51f" - L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522" L"\0" - L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0" L"\x0001d526" - L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529" L"\0" - L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" L"\x0001d52d" - L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530" L"\0" - L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0" L"\x0001d534" - L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537" L"\0" - L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0" L"\x0001d53c" - L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540" L"\0" - L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0" L"\x0001d544" - L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" L"\0" - L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" L"\x0001d54f" - L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553" L"\0" - L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0" L"\x0001d557" - L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a" L"\0" - L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" L"\x0001d55e" - L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561" L"\0" - L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0" L"\x0001d565" - L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568" L"\0" - L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" L"\x0001d56c" - L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" L"\0" - L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0" L"\x0001d573" - L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576" L"\0" - L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0" L"\x0001d57a" - L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" L"\0" - L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0" L"\x0001d581" - L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584" L"\0" - L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0" L"\x0001d588" - L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" L"\0" - L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" L"\x0001d58f" - L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592" L"\0" - L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0" L"\x0001d596" - L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599" L"\0" - L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" L"\x0001d59d" - L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" L"\0" - L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" L"\x0001d5a4" - L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" L"\0" - L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" L"\x0001d5ab" - L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" L"\0" - L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" L"\x0001d5b2" - L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" L"\0" - L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" L"\x0001d5b9" - L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" L"\0" - L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" L"\x0001d5c0" - L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" L"\0" - L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" L"\x0001d5c7" - L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" L"\0" - L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" L"\x0001d5ce" - L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" L"\0" - L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" L"\x0001d5d5" - L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" L"\0" - L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" L"\x0001d5dc" - L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" L"\0" - L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" L"\x0001d5e3" - L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" L"\0" - L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" L"\x0001d5ea" - L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" L"\0" - L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" L"\x0001d5f1" - L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" L"\0" - L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" L"\x0001d5f8" - L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" L"\0" - L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" L"\x0001d5ff" - L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602" L"\0" - L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0" L"\x0001d606" - L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609" L"\0" - L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" L"\x0001d60d" - L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610" L"\0" - L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0" L"\x0001d614" - L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617" L"\0" - L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0" L"\x0001d61b" - L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" L"\0" - L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0" L"\x0001d622" - L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625" L"\0" - L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0" L"\x0001d629" - L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" L"\0" - L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" L"\x0001d630" - L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633" L"\0" - L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0" L"\x0001d637" - L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a" L"\0" - L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" L"\x0001d63e" - L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641" L"\0" - L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0" L"\x0001d645" - L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648" L"\0" - L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" L"\x0001d64c" - L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" L"\0" - L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0" L"\x0001d653" - L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656" L"\0" - L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0" L"\x0001d65a" - L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" L"\0" - L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0" L"\x0001d661" - L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664" L"\0" - L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0" L"\x0001d668" - L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" L"\0" - L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" L"\x0001d66f" - L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672" L"\0" - L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0" L"\x0001d676" - L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679" L"\0" - L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" L"\x0001d67d" - L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680" L"\0" - L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0" L"\x0001d684" - L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687" L"\0" - L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0" L"\x0001d68b" - L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" L"\0" - L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0" L"\x0001d692" - L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695" L"\0" - L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0" L"\x0001d699" - L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" L"\0" - L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" L"\x0001d6a0" - L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" L"\0" - L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" L"\x0001d7d1" - L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" L"\0" - L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" L"\x0001d7d8" - L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" L"\0" - L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" L"\x0001d7df" - L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" L"\0" - L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" L"\x0001d7e6" - L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" L"\0" - L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" L"\x0001d7ed" - L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" L"\0" - L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" L"\x0001d7f4" - L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" L"\0" - L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" L"\x0001d7fb" - L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" L"\0" - L"\x0001d7ff"; + L"\x2062" L"\0" L"\x2063" L"\0" L"\x20a1" L"\0" L"\x20a8" L"\0" L"\x20ac" + L"\0" L"\x2100" L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0" + L"\x2106" L"\0" L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d" + L"\0" L"\x210e" L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0" + L"\x2113" L"\0" L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a" + L"\0" L"\x211b" L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0" + L"\x2122" L"\0" L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c" + L"\0" L"\x212d" L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0" + L"\x2131" L"\0" L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145" + L"\0" L"\x2146" L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0" + L"\x2153" L"\0" L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" + L"\0" L"\x2158" L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0" + L"\x215c" L"\0" L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" + L"\0" L"\x2161" L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0" + L"\x2165" L"\0" L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" + L"\0" L"\x216a" L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0" + L"\x216e" L"\0" L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" + L"\0" L"\x2173" L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0" + L"\x2177" L"\0" L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" + L"\0" L"\x217c" L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0" + L"\x2190" L"\0" L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2" + L"\0" L"\x21d4" L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0" + L"\x2217" L"\0" L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264" + L"\0" L"\x2265" L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0" + L"\x22d9" L"\0" L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403" + L"\0" L"\x2404" L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0" + L"\x2408" L"\0" L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c" + L"\0" L"\x240d" L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0" + L"\x2411" L"\0" L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415" + L"\0" L"\x2416" L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0" + L"\x241a" L"\0" L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e" + L"\0" L"\x241f" L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0" + L"\x2424" L"\0" L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" + L"\0" L"\x2464" L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0" + L"\x2468" L"\0" L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" + L"\0" L"\x246d" L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0" + L"\x2471" L"\0" L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" + L"\0" L"\x2476" L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0" + L"\x247a" L"\0" L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" + L"\0" L"\x247f" L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0" + L"\x2483" L"\0" L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" + L"\0" L"\x2488" L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0" + L"\x248c" L"\0" L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" + L"\0" L"\x2491" L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0" + L"\x2495" L"\0" L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" + L"\0" L"\x249a" L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0" + L"\x249e" L"\0" L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" + L"\0" L"\x24a3" L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" + L"\x24a7" L"\0" L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" + L"\0" L"\x24ac" L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" + L"\x24b0" L"\0" L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" + L"\0" L"\x24b5" L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" + L"\x24b9" L"\0" L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" + L"\0" L"\x24be" L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" + L"\x24c2" L"\0" L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" + L"\0" L"\x24c7" L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" + L"\x24cb" L"\0" L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" + L"\0" L"\x24d0" L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" + L"\x24d4" L"\0" L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" + L"\0" L"\x24d9" L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" + L"\x24dd" L"\0" L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" + L"\0" L"\x24e2" L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" + L"\x24e6" L"\0" L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" + L"\0" L"\x2500" L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0" + L"\x2514" L"\0" L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" + L"\0" L"\x2534" L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0" + L"\x2a75" L"\0" L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251" + L"\0" L"\x3252" L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0" + L"\x3256" L"\0" L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a" + L"\0" L"\x325b" L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0" + L"\x325f" L"\0" L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4" + L"\0" L"\x32b5" L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0" + L"\x32b9" L"\0" L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd" + L"\0" L"\x32be" L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0" + L"\x3373" L"\0" L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380" + L"\0" L"\x3381" L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0" + L"\x3385" L"\0" L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389" + L"\0" L"\x338a" L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0" + L"\x338e" L"\0" L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392" + L"\0" L"\x3393" L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0" + L"\x3397" L"\0" L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b" + L"\0" L"\x339c" L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0" + L"\x33a0" L"\0" L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4" + L"\0" L"\x33a5" L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0" + L"\x33a9" L"\0" L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad" + L"\0" L"\x33ae" L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0" + L"\x33b2" L"\0" L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6" + L"\0" L"\x33b7" L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0" + L"\x33bb" L"\0" L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf" + L"\0" L"\x33c2" L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0" + L"\x33c6" L"\0" L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca" + L"\0" L"\x33cb" L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0" + L"\x33cf" L"\0" L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3" + L"\0" L"\x33d4" L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0" + L"\x33d8" L"\0" L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc" + L"\0" L"\x33dd" L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0" + L"\xfb03" L"\0" L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00" + L"\0" L"\xfe01" L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0" + L"\xfe05" L"\0" L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09" + L"\0" L"\xfe0a" L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0" + L"\xfe0e" L"\0" L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" + L"\0" L"\xfe50" L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" + L"\xfe56" L"\0" L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" + L"\0" L"\xfe5c" L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" + L"\xfe62" L"\0" L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" + L"\0" L"\xfe68" L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" + L"\xfeff" L"\0" L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04" + L"\0" L"\xff05" L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0" + L"\xff09" L"\0" L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d" + L"\0" L"\xff0e" L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0" + L"\xff12" L"\0" L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16" + L"\0" L"\xff17" L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0" + L"\xff1b" L"\0" L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f" + L"\0" L"\xff20" L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0" + L"\xff24" L"\0" L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28" + L"\0" L"\xff29" L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0" + L"\xff2d" L"\0" L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31" + L"\0" L"\xff32" L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0" + L"\xff36" L"\0" L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a" + L"\0" L"\xff3b" L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0" + L"\xff3f" L"\0" L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43" + L"\0" L"\xff44" L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0" + L"\xff48" L"\0" L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c" + L"\0" L"\xff4d" L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" + L"\xff51" L"\0" L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" + L"\0" L"\xff56" L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0" + L"\xff5a" L"\0" L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" + L"\0" L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0" + L"\x0001d403" L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406" + L"\0" L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0" + L"\x0001d40a" L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" + L"\0" L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0" + L"\x0001d411" L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414" + L"\0" L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0" + L"\x0001d418" L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" + L"\0" L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" + L"\x0001d41f" L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422" + L"\0" L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0" + L"\x0001d426" L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429" + L"\0" L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" + L"\x0001d42d" L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430" + L"\0" L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0" + L"\x0001d434" L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437" + L"\0" L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0" + L"\x0001d43b" L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" + L"\0" L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0" + L"\x0001d442" L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445" + L"\0" L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0" + L"\x0001d449" L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" + L"\0" L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" + L"\x0001d450" L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453" + L"\0" L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0" + L"\x0001d458" L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" + L"\0" L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" + L"\x0001d45f" L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462" + L"\0" L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0" + L"\x0001d466" L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469" + L"\0" L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" + L"\x0001d46d" L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470" + L"\0" L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0" + L"\x0001d474" L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477" + L"\0" L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0" + L"\x0001d47b" L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" + L"\0" L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0" + L"\x0001d482" L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485" + L"\0" L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0" + L"\x0001d489" L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" + L"\0" L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" + L"\x0001d490" L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493" + L"\0" L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0" + L"\x0001d497" L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a" + L"\0" L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" + L"\x0001d49f" L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" + L"\0" L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" + L"\x0001d4ac" L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" + L"\0" L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" + L"\x0001d4b4" L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" + L"\0" L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" + L"\x0001d4bd" L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" + L"\0" L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" + L"\x0001d4c6" L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" + L"\0" L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" + L"\x0001d4cd" L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" + L"\0" L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" + L"\x0001d4d4" L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" + L"\0" L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" + L"\x0001d4db" L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" + L"\0" L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" + L"\x0001d4e2" L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" + L"\0" L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" + L"\x0001d4e9" L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" + L"\0" L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" + L"\x0001d4f0" L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" + L"\0" L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" + L"\x0001d4f7" L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" + L"\0" L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" + L"\x0001d4fe" L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501" + L"\0" L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0" + L"\x0001d505" L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509" + L"\0" L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" + L"\x0001d50f" L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512" + L"\0" L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0" + L"\x0001d517" L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a" + L"\0" L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" + L"\x0001d51f" L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522" + L"\0" L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0" + L"\x0001d526" L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529" + L"\0" L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" + L"\x0001d52d" L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530" + L"\0" L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0" + L"\x0001d534" L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537" + L"\0" L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0" + L"\x0001d53c" L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540" + L"\0" L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0" + L"\x0001d544" L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" + L"\0" L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" + L"\x0001d54f" L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553" + L"\0" L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0" + L"\x0001d557" L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a" + L"\0" L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" + L"\x0001d55e" L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561" + L"\0" L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0" + L"\x0001d565" L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568" + L"\0" L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" + L"\x0001d56c" L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" + L"\0" L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0" + L"\x0001d573" L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576" + L"\0" L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0" + L"\x0001d57a" L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" + L"\0" L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0" + L"\x0001d581" L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584" + L"\0" L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0" + L"\x0001d588" L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" + L"\0" L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" + L"\x0001d58f" L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592" + L"\0" L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0" + L"\x0001d596" L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599" + L"\0" L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" + L"\x0001d59d" L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" + L"\0" L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" + L"\x0001d5a4" L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" + L"\0" L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" + L"\x0001d5ab" L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" + L"\0" L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" + L"\x0001d5b2" L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" + L"\0" L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" + L"\x0001d5b9" L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" + L"\0" L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" + L"\x0001d5c0" L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" + L"\0" L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" + L"\x0001d5c7" L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" + L"\0" L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" + L"\x0001d5ce" L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" + L"\0" L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" + L"\x0001d5d5" L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" + L"\0" L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" + L"\x0001d5dc" L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" + L"\0" L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" + L"\x0001d5e3" L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" + L"\0" L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" + L"\x0001d5ea" L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" + L"\0" L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" + L"\x0001d5f1" L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" + L"\0" L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" + L"\x0001d5f8" L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" + L"\0" L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" + L"\x0001d5ff" L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602" + L"\0" L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0" + L"\x0001d606" L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609" + L"\0" L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" + L"\x0001d60d" L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610" + L"\0" L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0" + L"\x0001d614" L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617" + L"\0" L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0" + L"\x0001d61b" L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" + L"\0" L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0" + L"\x0001d622" L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625" + L"\0" L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0" + L"\x0001d629" L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" + L"\0" L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" + L"\x0001d630" L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633" + L"\0" L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0" + L"\x0001d637" L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a" + L"\0" L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" + L"\x0001d63e" L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641" + L"\0" L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0" + L"\x0001d645" L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648" + L"\0" L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" + L"\x0001d64c" L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" + L"\0" L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0" + L"\x0001d653" L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656" + L"\0" L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0" + L"\x0001d65a" L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" + L"\0" L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0" + L"\x0001d661" L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664" + L"\0" L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0" + L"\x0001d668" L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" + L"\0" L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" + L"\x0001d66f" L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672" + L"\0" L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0" + L"\x0001d676" L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679" + L"\0" L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" + L"\x0001d67d" L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680" + L"\0" L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0" + L"\x0001d684" L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687" + L"\0" L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0" + L"\x0001d68b" L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" + L"\0" L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0" + L"\x0001d692" L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695" + L"\0" L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0" + L"\x0001d699" L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" + L"\0" L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" + L"\x0001d6a0" L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" + L"\0" L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" + L"\x0001d7d1" L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" + L"\0" L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" + L"\x0001d7d8" L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" + L"\0" L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" + L"\x0001d7df" L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" + L"\0" L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" + L"\x0001d7e6" L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" + L"\0" L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" + L"\x0001d7ed" L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" + L"\0" L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" + L"\x0001d7f4" L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" + L"\0" L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" + L"\x0001d7fb" L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" + L"\0" L"\x0001d7ff"; static const uint32_t translit_to_idx[] = { 0, 3, 8, 12, 15, 20, 23, 26, 30, 37, 44, 51, @@ -471,22 +471,22 @@ 180, 183, 186, 189, 192, 196, 199, 202, 205, 208, 211, 214, 217, 221, 224, 227, 230, 233, 237, 242, 245, 248, 252, 257, 260, 263, 267, 270, 274, 278, 282, 285, 287, 289, 291, 293, - 297, 302, 307, 312, 315, 320, 325, 328, 331, 334, 337, 340, - 343, 346, 349, 352, 355, 359, 362, 365, 368, 371, 374, 379, - 385, 388, 393, 396, 399, 402, 405, 408, 411, 414, 417, 420, - 423, 426, 429, 432, 435, 438, 445, 452, 459, 466, 473, 480, - 487, 494, 501, 508, 515, 522, 527, 530, 534, 539, 543, 546, - 550, 555, 561, 565, 568, 572, 577, 580, 583, 586, 589, 592, - 596, 601, 605, 608, 612, 617, 623, 627, 630, 634, 639, 642, - 645, 648, 651, 655, 659, 664, 668, 672, 677, 680, 683, 686, - 689, 692, 695, 698, 702, 706, 710, 714, 719, 724, 729, 734, - 739, 744, 749, 754, 759, 764, 768, 772, 776, 780, 784, 788, - 792, 796, 801, 806, 811, 816, 821, 826, 831, 836, 841, 845, - 850, 855, 859, 863, 867, 871, 875, 880, 883, 887, 892, 897, - 902, 907, 912, 917, 922, 927, 932, 938, 944, 950, 956, 962, - 968, 974, 980, 986, 992, 998, 1003, 1008, 1013, 1018, 1023, 1028, - 1033, 1038, 1043, 1049, 1055, 1061, 1067, 1073, 1079, 1085, 1091, 1097, - 1103, 1109, 1113, 1117, 1121, 1125, 1129, 1133, 1137, 1141, 1145, 1150, + 298, 302, 307, 312, 317, 320, 325, 330, 333, 336, 339, 342, + 345, 348, 351, 354, 357, 360, 364, 367, 370, 373, 376, 379, + 384, 390, 393, 398, 401, 404, 407, 410, 413, 416, 419, 422, + 425, 428, 431, 434, 437, 440, 443, 450, 457, 464, 471, 478, + 485, 492, 499, 506, 513, 520, 527, 532, 535, 539, 544, 548, + 551, 555, 560, 566, 570, 573, 577, 582, 585, 588, 591, 594, + 597, 601, 606, 610, 613, 617, 622, 628, 632, 635, 639, 644, + 647, 650, 653, 656, 660, 664, 669, 673, 677, 682, 685, 688, + 691, 694, 697, 700, 703, 707, 711, 715, 719, 724, 729, 734, + 739, 744, 749, 754, 759, 764, 769, 773, 777, 781, 785, 789, + 793, 797, 801, 806, 811, 816, 821, 826, 831, 836, 841, 846, + 850, 855, 860, 864, 868, 872, 876, 880, 885, 888, 892, 897, + 902, 907, 912, 917, 922, 927, 932, 937, 943, 949, 955, 961, + 967, 973, 979, 985, 991, 997, 1003, 1008, 1013, 1018, 1023, 1028, + 1033, 1038, 1043, 1048, 1054, 1060, 1066, 1072, 1078, 1084, 1090, 1096, + 1102, 1108, 1114, 1118, 1122, 1126, 1130, 1134, 1138, 1142, 1146, 1150, 1155, 1160, 1165, 1170, 1175, 1180, 1185, 1190, 1195, 1200, 1205, 1210, 1215, 1220, 1225, 1230, 1235, 1240, 1245, 1250, 1255, 1260, 1265, 1270, 1275, 1280, 1285, 1290, 1295, 1300, 1305, 1310, 1315, 1320, 1325, 1330, @@ -494,89 +494,89 @@ 1395, 1400, 1405, 1410, 1415, 1420, 1425, 1430, 1435, 1440, 1445, 1450, 1455, 1460, 1465, 1470, 1475, 1480, 1485, 1490, 1495, 1500, 1505, 1510, 1515, 1520, 1525, 1530, 1535, 1540, 1545, 1550, 1555, 1560, 1565, 1570, - 1575, 1580, 1585, 1590, 1595, 1598, 1601, 1604, 1607, 1610, 1613, 1616, - 1619, 1622, 1625, 1628, 1631, 1636, 1640, 1645, 1648, 1651, 1657, 1663, - 1669, 1675, 1681, 1687, 1693, 1699, 1705, 1711, 1717, 1723, 1729, 1735, - 1741, 1747, 1753, 1759, 1765, 1771, 1777, 1783, 1789, 1795, 1801, 1807, - 1813, 1819, 1825, 1831, 1836, 1840, 1844, 1849, 1853, 1857, 1861, 1865, - 1869, 1873, 1877, 1881, 1885, 1889, 1894, 1900, 1904, 1908, 1912, 1916, - 1920, 1924, 1928, 1933, 1938, 1943, 1948, 1952, 1956, 1960, 1964, 1968, - 1972, 1976, 1980, 1984, 1988, 1994, 2000, 2005, 2011, 2017, 2023, 2028, - 2034, 2039, 2046, 2050, 2055, 2060, 2065, 2070, 2077, 2086, 2090, 2094, - 2098, 2102, 2106, 2110, 2114, 2118, 2122, 2126, 2130, 2134, 2138, 2142, - 2146, 2150, 2156, 2160, 2164, 2168, 2174, 2179, 2183, 2187, 2191, 2195, - 2199, 2203, 2207, 2211, 2215, 2219, 2224, 2228, 2232, 2237, 2242, 2246, - 2252, 2257, 2261, 2265, 2269, 2273, 2277, 2281, 2285, 2290, 2295, 2299, - 2302, 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318, 2320, 2322, 2324, - 2326, 2328, 2330, 2332, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, - 2358, 2361, 2364, 2367, 2370, 2373, 2376, 2379, 2382, 2385, 2388, 2391, - 2394, 2397, 2400, 2403, 2406, 2409, 2411, 2414, 2417, 2420, 2423, 2426, - 2429, 2432, 2435, 2438, 2441, 2444, 2447, 2450, 2453, 2456, 2459, 2462, - 2465, 2468, 2471, 2474, 2477, 2480, 2483, 2486, 2489, 2492, 2495, 2498, - 2501, 2504, 2507, 2510, 2513, 2516, 2519, 2522, 2525, 2528, 2531, 2534, - 2537, 2540, 2543, 2546, 2549, 2552, 2555, 2558, 2561, 2564, 2567, 2570, - 2573, 2576, 2579, 2582, 2585, 2588, 2591, 2594, 2597, 2600, 2603, 2606, - 2609, 2612, 2615, 2618, 2621, 2624, 2627, 2630, 2633, 2636, 2639, 2642, - 2645, 2648, 2651, 2654, 2657, 2660, 2663, 2666, 2669, 2672, 2675, 2678, - 2681, 2684, 2687, 2690, 2693, 2696, 2699, 2702, 2705, 2708, 2711, 2714, - 2717, 2720, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750, - 2753, 2756, 2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786, - 2789, 2792, 2795, 2798, 2801, 2804, 2807, 2810, 2813, 2816, 2819, 2822, - 2825, 2828, 2831, 2834, 2837, 2840, 2843, 2846, 2849, 2852, 2855, 2858, - 2861, 2864, 2867, 2870, 2873, 2876, 2879, 2882, 2885, 2888, 2891, 2894, - 2897, 2900, 2903, 2906, 2909, 2912, 2915, 2918, 2921, 2924, 2927, 2930, - 2933, 2936, 2939, 2942, 2945, 2948, 2951, 2954, 2957, 2960, 2963, 2966, - 2969, 2972, 2975, 2978, 2981, 2984, 2987, 2990, 2993, 2996, 2999, 3002, - 3005, 3008, 3011, 3014, 3017, 3020, 3023, 3026, 3029, 3032, 3035, 3038, - 3041, 3044, 3047, 3050, 3053, 3056, 3059, 3062, 3065, 3068, 3071, 3074, - 3077, 3080, 3083, 3086, 3089, 3092, 3095, 3098, 3101, 3104, 3107, 3110, - 3113, 3116, 3119, 3122, 3125, 3128, 3131, 3134, 3137, 3140, 3143, 3146, - 3149, 3152, 3155, 3158, 3161, 3164, 3167, 3170, 3173, 3176, 3179, 3182, - 3185, 3188, 3191, 3194, 3197, 3200, 3203, 3206, 3209, 3212, 3215, 3218, - 3221, 3224, 3227, 3230, 3233, 3236, 3239, 3242, 3245, 3248, 3251, 3254, - 3257, 3260, 3263, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290, - 3293, 3296, 3299, 3302, 3305, 3308, 3311, 3314, 3317, 3320, 3323, 3326, - 3329, 3332, 3335, 3338, 3341, 3344, 3347, 3350, 3353, 3356, 3359, 3362, - 3365, 3368, 3371, 3374, 3377, 3380, 3383, 3386, 3389, 3392, 3395, 3398, - 3401, 3404, 3407, 3410, 3413, 3416, 3419, 3422, 3425, 3428, 3431, 3434, - 3437, 3440, 3443, 3446, 3449, 3452, 3455, 3458, 3461, 3464, 3467, 3470, - 3473, 3476, 3479, 3482, 3485, 3488, 3491, 3494, 3497, 3500, 3503, 3506, - 3509, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3536, 3539, 3542, - 3545, 3548, 3551, 3554, 3557, 3560, 3563, 3566, 3569, 3572, 3575, 3578, - 3581, 3584, 3587, 3590, 3593, 3596, 3599, 3602, 3605, 3608, 3611, 3614, - 3617, 3620, 3623, 3626, 3629, 3632, 3635, 3638, 3641, 3644, 3647, 3650, - 3653, 3656, 3659, 3662, 3665, 3668, 3671, 3674, 3677, 3680, 3683, 3686, - 3689, 3692, 3695, 3698, 3701, 3704, 3707, 3710, 3713, 3716, 3719, 3722, - 3725, 3728, 3731, 3734, 3737, 3740, 3743, 3746, 3749, 3752, 3755, 3758, - 3761, 3764, 3767, 3770, 3773, 3776, 3779, 3782, 3785, 3788, 3791, 3794, - 3797, 3800, 3803, 3806, 3809, 3812, 3815, 3818, 3821, 3824, 3827, 3830, - 3833, 3836, 3839, 3842, 3845, 3848, 3851, 3854, 3857, 3860, 3863, 3866, - 3869, 3872, 3875, 3878, 3881, 3884, 3887, 3890, 3893, 3896, 3899, 3902, - 3905, 3908, 3911, 3914, 3917, 3920, 3923, 3926, 3929, 3932, 3935, 3938, - 3941, 3944, 3947, 3950, 3953, 3956, 3959, 3962, 3965, 3968, 3971, 3974, - 3977, 3980, 3983, 3986, 3989, 3992, 3995, 3998, 4001, 4004, 4007, 4010, - 4013, 4016, 4019, 4022, 4025, 4028, 4031, 4034, 4037, 4040, 4043, 4046, - 4049, 4052, 4055, 4058, 4061, 4064, 4067, 4070, 4073, 4076, 4079, 4082, - 4085, 4088, 4091, 4094, 4097, 4100, 4103, 4106, 4109, 4112, 4115, 4118, - 4121, 4124, 4127, 4130, 4133, 4136, 4139, 4142, 4145, 4148, 4151, 4154, - 4157, 4160, 4163, 4166, 4169, 4172, 4175, 4178, 4181, 4184, 4187, 4190, - 4193, 4196, 4199, 4202, 4205, 4208, 4211, 4214, 4217, 4220, 4223, 4226, - 4229, 4232, 4235, 4238, 4241, 4244, 4247, 4250, 4253, 4256, 4259, 4262, - 4265, 4268, 4271, 4274, 4277, 4280, 4283, 4286, 4289, 4292, 4295, 4298, - 4301, 4304, 4307, 4310, 4313, 4316, 4319, 4322, 4325, 4328, 4331, 4334, - 4337, 4340, 4343, 4346, 4349, 4352, 4355, 4358, 4361, 4364, 4367, 4370, - 4373, 4376, 4379, 4382, 4385, 4388, 4391, 4394, 4397, 4400, 4403, 4406, - 4409, 4412, 4415, 4418, 4421, 4424, 4427, 4430, 4433, 4436, 4439, 4442, - 4445, 4448, 4451, 4454, 4457, 4460, 4463, 4466, 4469, 4472, 4475, 4478, - 4481, 4484, 4487, 4490, 4493, 4496, 4499, 4502, 4505, 4508, 4511, 4514, - 4517, 4520, 4523, 4526, 4529, 4532, 4535, 4538, 4541, 4544, 4547, 4550, - 4553, 4556, 4559, 4562, 4565, 4568, 4571, 4574, 4577, 4580, 4583, 4586, - 4589, 4592, 4595, 4598, 4601, 4604, 4607, 4610, 4613, 4616, 4619, 4622, - 4625, 4628, 4631, 4634, 4637, 4640, 4643, 4646, 4649, 4652, 4655, 4658, - 4661, 4664, 4667, 4670, 4673, 4676, 4679, 4682, 4685, 4688, 4691, 4694, - 4697, 4700, 4703, 4706, 4709, 4712, 4715, 4718, 4721, 4724, 4727, 4730, - 4733, 4736, 4739, 4742, 4745, 4748, 4751, 4754, 4757, 4760, 4763, 4766, - 4769, 4772, 4775, 4778, 4781, 4784, 4787, 4790, 4793 + 1575, 1580, 1585, 1590, 1595, 1600, 1603, 1606, 1609, 1612, 1615, 1618, + 1621, 1624, 1627, 1630, 1633, 1636, 1641, 1645, 1650, 1653, 1656, 1662, + 1668, 1674, 1680, 1686, 1692, 1698, 1704, 1710, 1716, 1722, 1728, 1734, + 1740, 1746, 1752, 1758, 1764, 1770, 1776, 1782, 1788, 1794, 1800, 1806, + 1812, 1818, 1824, 1830, 1836, 1841, 1845, 1849, 1854, 1858, 1862, 1866, + 1870, 1874, 1878, 1882, 1886, 1890, 1894, 1899, 1905, 1909, 1913, 1917, + 1921, 1925, 1929, 1933, 1938, 1943, 1948, 1953, 1957, 1961, 1965, 1969, + 1973, 1977, 1981, 1985, 1989, 1993, 1999, 2005, 2010, 2016, 2022, 2028, + 2033, 2039, 2044, 2051, 2055, 2060, 2065, 2070, 2075, 2082, 2091, 2095, + 2099, 2103, 2107, 2111, 2115, 2119, 2123, 2127, 2131, 2135, 2139, 2143, + 2147, 2151, 2155, 2161, 2165, 2169, 2173, 2179, 2184, 2188, 2192, 2196, + 2200, 2204, 2208, 2212, 2216, 2220, 2224, 2229, 2233, 2237, 2242, 2247, + 2251, 2257, 2262, 2266, 2270, 2274, 2278, 2282, 2286, 2290, 2295, 2300, + 2304, 2307, 2309, 2311, 2313, 2315, 2317, 2319, 2321, 2323, 2325, 2327, + 2329, 2331, 2333, 2335, 2337, 2339, 2342, 2345, 2348, 2351, 2354, 2357, + 2360, 2363, 2366, 2369, 2372, 2375, 2378, 2381, 2384, 2387, 2390, 2393, + 2396, 2399, 2402, 2405, 2408, 2411, 2414, 2416, 2419, 2422, 2425, 2428, + 2431, 2434, 2437, 2440, 2443, 2446, 2449, 2452, 2455, 2458, 2461, 2464, + 2467, 2470, 2473, 2476, 2479, 2482, 2485, 2488, 2491, 2494, 2497, 2500, + 2503, 2506, 2509, 2512, 2515, 2518, 2521, 2524, 2527, 2530, 2533, 2536, + 2539, 2542, 2545, 2548, 2551, 2554, 2557, 2560, 2563, 2566, 2569, 2572, + 2575, 2578, 2581, 2584, 2587, 2590, 2593, 2596, 2599, 2602, 2605, 2608, + 2611, 2614, 2617, 2620, 2623, 2626, 2629, 2632, 2635, 2638, 2641, 2644, + 2647, 2650, 2653, 2656, 2659, 2662, 2665, 2668, 2671, 2674, 2677, 2680, + 2683, 2686, 2689, 2692, 2695, 2698, 2701, 2704, 2707, 2710, 2713, 2716, + 2719, 2722, 2725, 2728, 2731, 2734, 2737, 2740, 2743, 2746, 2749, 2752, + 2755, 2758, 2761, 2764, 2767, 2770, 2773, 2776, 2779, 2782, 2785, 2788, + 2791, 2794, 2797, 2800, 2803, 2806, 2809, 2812, 2815, 2818, 2821, 2824, + 2827, 2830, 2833, 2836, 2839, 2842, 2845, 2848, 2851, 2854, 2857, 2860, + 2863, 2866, 2869, 2872, 2875, 2878, 2881, 2884, 2887, 2890, 2893, 2896, + 2899, 2902, 2905, 2908, 2911, 2914, 2917, 2920, 2923, 2926, 2929, 2932, + 2935, 2938, 2941, 2944, 2947, 2950, 2953, 2956, 2959, 2962, 2965, 2968, + 2971, 2974, 2977, 2980, 2983, 2986, 2989, 2992, 2995, 2998, 3001, 3004, + 3007, 3010, 3013, 3016, 3019, 3022, 3025, 3028, 3031, 3034, 3037, 3040, + 3043, 3046, 3049, 3052, 3055, 3058, 3061, 3064, 3067, 3070, 3073, 3076, + 3079, 3082, 3085, 3088, 3091, 3094, 3097, 3100, 3103, 3106, 3109, 3112, + 3115, 3118, 3121, 3124, 3127, 3130, 3133, 3136, 3139, 3142, 3145, 3148, + 3151, 3154, 3157, 3160, 3163, 3166, 3169, 3172, 3175, 3178, 3181, 3184, + 3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3214, 3217, 3220, + 3223, 3226, 3229, 3232, 3235, 3238, 3241, 3244, 3247, 3250, 3253, 3256, + 3259, 3262, 3265, 3268, 3271, 3274, 3277, 3280, 3283, 3286, 3289, 3292, + 3295, 3298, 3301, 3304, 3307, 3310, 3313, 3316, 3319, 3322, 3325, 3328, + 3331, 3334, 3337, 3340, 3343, 3346, 3349, 3352, 3355, 3358, 3361, 3364, + 3367, 3370, 3373, 3376, 3379, 3382, 3385, 3388, 3391, 3394, 3397, 3400, + 3403, 3406, 3409, 3412, 3415, 3418, 3421, 3424, 3427, 3430, 3433, 3436, + 3439, 3442, 3445, 3448, 3451, 3454, 3457, 3460, 3463, 3466, 3469, 3472, + 3475, 3478, 3481, 3484, 3487, 3490, 3493, 3496, 3499, 3502, 3505, 3508, + 3511, 3514, 3517, 3520, 3523, 3526, 3529, 3532, 3535, 3538, 3541, 3544, + 3547, 3550, 3553, 3556, 3559, 3562, 3565, 3568, 3571, 3574, 3577, 3580, + 3583, 3586, 3589, 3592, 3595, 3598, 3601, 3604, 3607, 3610, 3613, 3616, + 3619, 3622, 3625, 3628, 3631, 3634, 3637, 3640, 3643, 3646, 3649, 3652, + 3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3682, 3685, 3688, + 3691, 3694, 3697, 3700, 3703, 3706, 3709, 3712, 3715, 3718, 3721, 3724, + 3727, 3730, 3733, 3736, 3739, 3742, 3745, 3748, 3751, 3754, 3757, 3760, + 3763, 3766, 3769, 3772, 3775, 3778, 3781, 3784, 3787, 3790, 3793, 3796, + 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3820, 3823, 3826, 3829, 3832, + 3835, 3838, 3841, 3844, 3847, 3850, 3853, 3856, 3859, 3862, 3865, 3868, + 3871, 3874, 3877, 3880, 3883, 3886, 3889, 3892, 3895, 3898, 3901, 3904, + 3907, 3910, 3913, 3916, 3919, 3922, 3925, 3928, 3931, 3934, 3937, 3940, + 3943, 3946, 3949, 3952, 3955, 3958, 3961, 3964, 3967, 3970, 3973, 3976, + 3979, 3982, 3985, 3988, 3991, 3994, 3997, 4000, 4003, 4006, 4009, 4012, + 4015, 4018, 4021, 4024, 4027, 4030, 4033, 4036, 4039, 4042, 4045, 4048, + 4051, 4054, 4057, 4060, 4063, 4066, 4069, 4072, 4075, 4078, 4081, 4084, + 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4120, + 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156, + 4159, 4162, 4165, 4168, 4171, 4174, 4177, 4180, 4183, 4186, 4189, 4192, + 4195, 4198, 4201, 4204, 4207, 4210, 4213, 4216, 4219, 4222, 4225, 4228, + 4231, 4234, 4237, 4240, 4243, 4246, 4249, 4252, 4255, 4258, 4261, 4264, + 4267, 4270, 4273, 4276, 4279, 4282, 4285, 4288, 4291, 4294, 4297, 4300, + 4303, 4306, 4309, 4312, 4315, 4318, 4321, 4324, 4327, 4330, 4333, 4336, + 4339, 4342, 4345, 4348, 4351, 4354, 4357, 4360, 4363, 4366, 4369, 4372, + 4375, 4378, 4381, 4384, 4387, 4390, 4393, 4396, 4399, 4402, 4405, 4408, + 4411, 4414, 4417, 4420, 4423, 4426, 4429, 4432, 4435, 4438, 4441, 4444, + 4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, 4477, 4480, + 4483, 4486, 4489, 4492, 4495, 4498, 4501, 4504, 4507, 4510, 4513, 4516, + 4519, 4522, 4525, 4528, 4531, 4534, 4537, 4540, 4543, 4546, 4549, 4552, + 4555, 4558, 4561, 4564, 4567, 4570, 4573, 4576, 4579, 4582, 4585, 4588, + 4591, 4594, 4597, 4600, 4603, 4606, 4609, 4612, 4615, 4618, 4621, 4624, + 4627, 4630, 4633, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 4657, 4660, + 4663, 4666, 4669, 4672, 4675, 4678, 4681, 4684, 4687, 4690, 4693, 4696, + 4699, 4702, 4705, 4708, 4711, 4714, 4717, 4720, 4723, 4726, 4729, 4732, + 4735, 4738, 4741, 4744, 4747, 4750, 4753, 4756, 4759, 4762, 4765, 4768, + 4771, 4774, 4777, 4780, 4783, 4786, 4789, 4792, 4795, 4798 }; static const wchar_t translit_to_tbl[] = L" \0" L"\0" L"(C)\0" L"\0" L"<<\0" L"\0" L"-\0" L"\0" L"(R)\0" L"\0" L"u\0" @@ -594,73 +594,73 @@ L"\0" L"..\0" L"\0" L"...\0" L"\0" L" \0" L"\0" L"`\0" L"\0" L"``\0" L"\0" L"```\0" L"\0" L"<\0" L"\0" L">\0" L"\0" L"!!\0" L"\0" L"/\0" L"\0" L"??\0" L"\0" L"?!\0" L"\0" L"!?\0" L"\0" L" \0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" - L"\0" L"\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"a/c\0" L"\0" L"a/s\0" L"\0" - L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0" L"H\0" L"\0" L"H\0" - L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0" L"\0" L"L\0" L"\0" - L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" - L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0" L"\0" L"Z\0" L"\0" - L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"e\0" L"\0" L"e\0" - L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0" L"\0" L"i\0" L"\0" - L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L" 1/3 \0" - L"\0" L" 2/3 \0" L"\0" L" 1/5 \0" L"\0" L" 2/5 \0" L"\0" L" 3/5 \0" L"\0" - L" 4/5 \0" L"\0" L" 1/6 \0" L"\0" L" 5/6 \0" L"\0" L" 1/8 \0" L"\0" - L" 3/8 \0" L"\0" L" 5/8 \0" L"\0" L" 7/8 \0" L"\0" L" 1/\0" L"\0" L"I\0" - L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0" L"VI\0" L"\0" - L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0" L"XI\0" L"\0" - L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0" L"\0" L"i\0" - L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0" L"vi\0" L"\0" - L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0" L"xi\0" L"\0" - L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0" L"\0" L"<-\0" - L"\0" L"->\0" L"\0" L"<->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0" L"<=>\0" - L"\0" L"-\0" L"\0" L"/\0" L"\0" L"\\\0" L"\0" L"*\0" L"\0" L"|\0" L"\0" - L":\0" L"\0" L"~\0" L"\0" L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0" L">>\0" - L"\0" L"<<<\0" L"\0" L">>>\0" L"\0" L"NUL\0" L"\0" L"SOH\0" L"\0" L"STX\0" - L"\0" L"ETX\0" L"\0" L"EOT\0" L"\0" L"ENQ\0" L"\0" L"ACK\0" L"\0" L"BEL\0" - L"\0" L"BS\0" L"\0" L"HT\0" L"\0" L"LF\0" L"\0" L"VT\0" L"\0" L"FF\0" L"\0" - L"CR\0" L"\0" L"SO\0" L"\0" L"SI\0" L"\0" L"DLE\0" L"\0" L"DC1\0" L"\0" - L"DC2\0" L"\0" L"DC3\0" L"\0" L"DC4\0" L"\0" L"NAK\0" L"\0" L"SYN\0" L"\0" - L"ETB\0" L"\0" L"CAN\0" L"\0" L"EM\0" L"\0" L"SUB\0" L"\0" L"ESC\0" L"\0" - L"FS\0" L"\0" L"GS\0" L"\0" L"RS\0" L"\0" L"US\0" L"\0" L"SP\0" L"\0" - L"DEL\0" L"\0" L"_\0" L"\0" L"NL\0" L"\0" L"(1)\0" L"\0" L"(2)\0" L"\0" - L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0" L"(7)\0" L"\0" - L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0" L"(12)\0" - L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0" L"\0" - L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0" L"(1)\0" - L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" - L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" - L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" - L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" - L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0" L"5.\0" L"\0" - L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0" L"10.\0" L"\0" - L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0" L"15.\0" L"\0" - L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0" L"20.\0" L"\0" - L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0" - L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0" - L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0" - L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0" - L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0" - L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0" L"(D)\0" L"\0" - L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0" L"(I)\0" L"\0" - L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0" L"(N)\0" L"\0" - L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0" L"(S)\0" L"\0" - L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0" L"(X)\0" L"\0" - L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" - L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" - L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" - L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" - L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" - L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0" L"-\0" L"\0" - L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" - L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"o\0" L"\0" - L"::=\0" L"\0" L"==\0" L"\0" L"===\0" L"\0" L" \0" L"\0" L"=\0" L"\0" - L"(21)\0" L"\0" L"(22)\0" L"\0" L"(23)\0" L"\0" L"(24)\0" L"\0" L"(25)\0" - L"\0" L"(26)\0" L"\0" L"(27)\0" L"\0" L"(28)\0" L"\0" L"(29)\0" L"\0" - L"(30)\0" L"\0" L"(31)\0" L"\0" L"(32)\0" L"\0" L"(33)\0" L"\0" L"(34)\0" - L"\0" L"(35)\0" L"\0" L"(36)\0" L"\0" L"(37)\0" L"\0" L"(38)\0" L"\0" - L"(39)\0" L"\0" L"(40)\0" L"\0" L"(41)\0" L"\0" L"(42)\0" L"\0" L"(43)\0" - L"\0" L"(44)\0" L"\0" L"(45)\0" L"\0" L"(46)\0" L"\0" L"(47)\0" L"\0" - L"(48)\0" L"\0" L"(49)\0" L"\0" L"(50)\0" L"\0" L"hPa\0" L"\0" L"da\0" L"\0" - L"AU\0" L"\0" L"bar\0" L"\0" L"oV\0" L"\0" L"pc\0" L"\0" L"pA\0" L"\0" + L"\0" L"\0" L"\0" L"CRC\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"a/c\0" L"\0" + L"a/s\0" L"\0" L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0" + L"H\0" L"\0" L"H\0" L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0" + L"\0" L"L\0" L"\0" L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0" + L"Q\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0" + L"\0" L"Z\0" L"\0" L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" + L"e\0" L"\0" L"e\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0" + L"\0" L"i\0" L"\0" L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0" + L"j\0" L"\0" L" 1/3 \0" L"\0" L" 2/3 \0" L"\0" L" 1/5 \0" L"\0" L" 2/5 \0" + L"\0" L" 3/5 \0" L"\0" L" 4/5 \0" L"\0" L" 1/6 \0" L"\0" L" 5/6 \0" L"\0" + L" 1/8 \0" L"\0" L" 3/8 \0" L"\0" L" 5/8 \0" L"\0" L" 7/8 \0" L"\0" L" 1/\0" + L"\0" L"I\0" L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0" + L"VI\0" L"\0" L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0" + L"XI\0" L"\0" L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0" + L"\0" L"i\0" L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0" + L"vi\0" L"\0" L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0" + L"xi\0" L"\0" L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0" + L"\0" L"<-\0" L"\0" L"->\0" L"\0" L"<->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0" + L"<=>\0" L"\0" L"-\0" L"\0" L"/\0" L"\0" L"\\\0" L"\0" L"*\0" L"\0" L"|\0" + L"\0" L":\0" L"\0" L"~\0" L"\0" L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0" + L">>\0" L"\0" L"<<<\0" L"\0" L">>>\0" L"\0" L"NUL\0" L"\0" L"SOH\0" L"\0" + L"STX\0" L"\0" L"ETX\0" L"\0" L"EOT\0" L"\0" L"ENQ\0" L"\0" L"ACK\0" L"\0" + L"BEL\0" L"\0" L"BS\0" L"\0" L"HT\0" L"\0" L"LF\0" L"\0" L"VT\0" L"\0" + L"FF\0" L"\0" L"CR\0" L"\0" L"SO\0" L"\0" L"SI\0" L"\0" L"DLE\0" L"\0" + L"DC1\0" L"\0" L"DC2\0" L"\0" L"DC3\0" L"\0" L"DC4\0" L"\0" L"NAK\0" L"\0" + L"SYN\0" L"\0" L"ETB\0" L"\0" L"CAN\0" L"\0" L"EM\0" L"\0" L"SUB\0" L"\0" + L"ESC\0" L"\0" L"FS\0" L"\0" L"GS\0" L"\0" L"RS\0" L"\0" L"US\0" L"\0" + L"SP\0" L"\0" L"DEL\0" L"\0" L"_\0" L"\0" L"NL\0" L"\0" L"(1)\0" L"\0" + L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0" + L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0" + L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0" + L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0" + L"(1)\0" L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" + L"(6)\0" L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" + L"(11)\0" L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" + L"\0" L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" + L"(20)\0" L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0" + L"5.\0" L"\0" L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0" + L"10.\0" L"\0" L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0" + L"15.\0" L"\0" L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0" + L"20.\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0" + L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0" + L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0" + L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0" + L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0" + L"(y)\0" L"\0" L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0" + L"(D)\0" L"\0" L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0" + L"(I)\0" L"\0" L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0" + L"(N)\0" L"\0" L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0" + L"(S)\0" L"\0" L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0" + L"(X)\0" L"\0" L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" + L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" + L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" + L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" + L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" + L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0" + L"-\0" L"\0" L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" + L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" + L"o\0" L"\0" L"::=\0" L"\0" L"==\0" L"\0" L"===\0" L"\0" L" \0" L"\0" L"=\0" + L"\0" L"(21)\0" L"\0" L"(22)\0" L"\0" L"(23)\0" L"\0" L"(24)\0" L"\0" + L"(25)\0" L"\0" L"(26)\0" L"\0" L"(27)\0" L"\0" L"(28)\0" L"\0" L"(29)\0" + L"\0" L"(30)\0" L"\0" L"(31)\0" L"\0" L"(32)\0" L"\0" L"(33)\0" L"\0" + L"(34)\0" L"\0" L"(35)\0" L"\0" L"(36)\0" L"\0" L"(37)\0" L"\0" L"(38)\0" + L"\0" L"(39)\0" L"\0" L"(40)\0" L"\0" L"(41)\0" L"\0" L"(42)\0" L"\0" + L"(43)\0" L"\0" L"(44)\0" L"\0" L"(45)\0" L"\0" L"(46)\0" L"\0" L"(47)\0" + L"\0" L"(48)\0" L"\0" L"(49)\0" L"\0" L"(50)\0" L"\0" L"hPa\0" L"\0" L"da\0" + L"\0" L"AU\0" L"\0" L"bar\0" L"\0" L"oV\0" L"\0" L"pc\0" L"\0" L"pA\0" L"\0" L"nA\0" L"\0" L"uA\0" L"\0" L"mA\0" L"\0" L"kA\0" L"\0" L"KB\0" L"\0" L"MB\0" L"\0" L"GB\0" L"\0" L"cal\0" L"\0" L"kcal\0" L"\0" L"pF\0" L"\0" L"nF\0" L"\0" L"uF\0" L"\0" L"ug\0" L"\0" L"mg\0" L"\0" L"kg\0" L"\0" --- eglibc-2.12.1.orig/debian/generate-supported.mk +++ eglibc-2.12.1/debian/generate-supported.mk @@ -0,0 +1,11 @@ +#!/usr/bin/make + +include $(IN) + +all: + rm -f $(OUT) + touch $(OUT) + for locale in $(SUPPORTED-LOCALES); do \ + [ $$locale = true ] && continue; \ + echo $$locale | sed 's,/, ,' >> $(OUT); \ + done --- eglibc-2.12.1.orig/debian/copyright +++ eglibc-2.12.1/debian/copyright @@ -0,0 +1,267 @@ +This is the Debian prepackaged version of the Embedded GNU C Library +version 2.11.2. + +It was put together by the GNU Libc Maintainers +from + +* Most of the GNU C library is under the following copyright: + + Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,2001,2002,2003,2004,2005, + 2006,2007,2008 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA + + On Debian systems, the complete text of the GNU Library + General Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. + +* The utilities associated with GNU C library is under the following + copyright: + + Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,2001,2002,2003,2004,2005, + 2006,2007,2008 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation; version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + On Debian systems, the complete text of the GNU Library + General Public License can be found in `/usr/share/common-licenses/GPL-2'. + +* All code incorporated from 4.4 BSD is distributed under the following + license: + + Copyright (C) 1991 Regents of the University of California. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. [This condition was removed.] + 4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +* The DNS resolver code, taken from BIND 4.9.5, is copyrighted both by + UC Berkeley and by Digital Equipment Corporation. The DEC portions + are under the following license: + + Portions Copyright (C) 1993 by Digital Equipment Corporation. + + Permission to use, copy, modify, and distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies, and + that the name of Digital Equipment Corporation not be used in + advertising or publicity pertaining to distribution of the document or + software without specific, written prior permission. + + THE SOFTWARE IS PROVIDED ``AS IS'' AND DIGITAL EQUIPMENT CORP. + DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL + DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING + FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +* The Sun RPC support (from rpcsrc-4.0) is covered by the following + license: + + Copyright (C) 1984, Sun Microsystems, Inc. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + * Neither the name of Sun Microsystems, Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +* The following CMU license covers some of the support code for Mach, + derived from Mach 3.0: + + Mach Operating System + Copyright (C) 1991,1990,1989 Carnegie Mellon University + All Rights Reserved. + + Permission to use, copy, modify and distribute this software and its + documentation is hereby granted, provided that both the copyright + notice and this permission notice appear in all copies of the + software, derivative works or modified versions, and any portions + thereof, and that both notices appear in supporting documentation. + + CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS ``AS IS'' + CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + + Carnegie Mellon requests users of this software to return to + + Software Distribution Coordinator + School of Computer Science + Carnegie Mellon University + Pittsburgh PA 15213-3890 + + or Software.Distribution@CS.CMU.EDU any improvements or + extensions that they make and grant Carnegie Mellon the rights to + redistribute these changes. + +* The file if_ppp.h is under the following CMU license: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY AND + CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +* The following license covers the files from Intel's "Highly Optimized + Mathematical Functions for Itanium" collection: + + Intel License Agreement + + Copyright (c) 2000, Intel Corporation + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * The name of Intel Corporation may not be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +* The files inet/getnameinfo.c and sysdeps/posix/getaddrinfo.c are copyright + (C) by Craig Metz and are distributed under the following license: + + /* The Inner Net License, Version 2.00 + + The author(s) grant permission for redistribution and use in source and + binary forms, with or without modification, of the software and documentation + provided that the following conditions are met: + + 0. If you receive a version of the software that is specifically labelled + as not being for redistribution (check the version message and/or README), + you are not permitted to redistribute that version of the software in any + way or form. + 1. All terms of the all other applicable copyrights and licenses must be + followed. + 2. Redistributions of source code must retain the authors' copyright + notice(s), this list of conditions, and the following disclaimer. + 3. Redistributions in binary form must reproduce the authors' copyright + notice(s), this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 4. [The copyright holder has authorized the removal of this clause.] + 5. Neither the name(s) of the author(s) nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY ITS AUTHORS AND CONTRIBUTORS ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + If these license terms cause you a real problem, contact the author. */ + --- eglibc-2.12.1.orig/debian/compat +++ eglibc-2.12.1/debian/compat @@ -0,0 +1 @@ +5 --- eglibc-2.12.1.orig/debian/shlibs-add-udebs +++ eglibc-2.12.1/debian/shlibs-add-udebs @@ -0,0 +1,51 @@ +#! /bin/sh +set -e + +# This script adds "udeb lines" to shlibs files which allows other udebs +# to get correct dependencies when built against glibc libraries. +# The script was written by Frans Pop . + +package="$1" +shlibs_file="debian/$package/DEBIAN/shlibs" + +# Skip packages that don't have an shlibs file. +# The "cross-subarch" library packages have an shlibs file, but should +# not have udeb lines, so skip those as well. +if [ ! -r "$shlibs_file" ] || \ + echo "$package" | grep -Eq "^libc[0-9.]+-"; then + exit 0 +fi + +# $1: regexp to select libraries for which lines should be duplicated +# $2: name of the udeb the new line should point to +add_udeb_line() { + local regexp udeb line lib soname package rest + regexp="$1" + udeb="$2" + + if line="$(grep "^$regexp[[:space:]]" $shlibs_file)"; then + echo "$line" | while read lib soname package rest; do + echo "udeb: $lib $soname $udeb $rest" >>$shlibs_file + done + fi +} + + +W="[^[:space:]]*" + +# The following lists should match the ones in the *-udeb.install files +# in debian/debhelper.in; $W replaces any "*" wildcards there. +expr_libc1="ld$W libm-$W libm libdl$W libresolv$W libc-$W libc" +expr_libc2="libutil$W libcrypt$W librt$W libpthread$W" +expr_nss_dns="libnss_dns$W" +expr_nss_files="libnss_files$W" + +for expr in $expr_libc1 $expr_libc2; do + add_udeb_line "$expr" $package-udeb +done +for expr in $expr_nss_dns; do + add_udeb_line "$expr" libnss-dns-udeb +done +for expr in $expr_nss_files; do + add_udeb_line "$expr" libnss-files-udeb +done --- eglibc-2.12.1.orig/debian/libc6.symbols.mips +++ eglibc-2.12.1/debian/libc6.symbols.mips @@ -0,0 +1,12 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### TLS support enabled in Debian upload 2.4 + __tls_get_addr@GLIBC_2.3 2.4 +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### +### Override headers already defined in libc6.symbols.common +### +libpthread.so.0 #PACKAGE# (>= 2.4), #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6.1.symbols.ia64 +++ eglibc-2.12.1/debian/libc6.1.symbols.ia64 @@ -0,0 +1,58 @@ +ld-linux-ia64.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### TLS support added/enabled in debian upload 2.3.5 + __tls_get_addr@GLIBC_2.3 2.3.5 +libc.so.6.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libBrokenLocale.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libSegFault.so #PACKAGE# #MINVER# + __invoke_dynamic_linker__@Base 2.3.6 +libcidn.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libcrypt.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libdl.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libm.so.6.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libmemusage.so #PACKAGE# #MINVER# + __invoke_dynamic_linker__@Base 2.3.6 + calloc@Base 2.3.6 + free@Base 2.3.6 + malloc@Base 2.3.6 + mmap64@Base 2.3.6 + mmap@Base 2.3.6 + mremap@Base 2.3.6 + munmap@Base 2.3.6 + realloc@Base 2.3.6 +libnsl.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_compat.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_dns.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_files.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_hesiod.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_nis.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_nisplus.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libpcprofile.so #PACKAGE# #MINVER# + __cyg_profile_func_enter@Base 2.3.6 + __cyg_profile_func_exit@Base 2.3.6 + __invoke_dynamic_linker__@Base 2.3.6 +libresolv.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +librt.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libutil.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libanl.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libpthread.so.0 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libthread_db.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6.symbols.arm +++ eglibc-2.12.1/debian/libc6.symbols.arm @@ -0,0 +1,12 @@ +#include "libc6.symbols.common" +ld-linux.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### TLS support enabled in Debian upload 2.4 + __tls_get_addr@GLIBC_2.3 2.4 +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### +### Override headers already defined in libc6.symbols.common +### +libpthread.so.0 #PACKAGE# (>= 2.4), #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/changelog.upstream +++ eglibc-2.12.1/debian/changelog.upstream @@ -0,0 +1,3 @@ +The upstream changelog being composed of multiple files with a total size +of more than 1.5MB, they are provided by the glibc-doc package in the +/usr/share/doc/glibc-doc/ directory. --- eglibc-2.12.1.orig/debian/libc6-sparc64.symbols.sparc +++ eglibc-2.12.1/debian/libc6-sparc64.symbols.sparc @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld-linux.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6-mipsn32.symbols.mipsel +++ eglibc-2.12.1/debian/libc6-mipsn32.symbols.mipsel @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6-mips64.symbols.mips +++ eglibc-2.12.1/debian/libc6-mips64.symbols.mips @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6.symbols.m68k +++ eglibc-2.12.1/debian/libc6.symbols.m68k @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6-mips64.symbols.mipsel +++ eglibc-2.12.1/debian/libc6-mips64.symbols.mipsel @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6.symbols.amd64 +++ eglibc-2.12.1/debian/libc6.symbols.amd64 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld-linux-x86-64.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/TODO +++ eglibc-2.12.1/debian/TODO @@ -0,0 +1,33 @@ +Outstanding concerns +==================== + + - no entry + +TODO +==== + +* General: + + - Make sure that prep.sh and version aren't in the root of the source + package. + +* libc: + - Only add some libraries to the optimized packages instead of all of them? + - Add patch to display (or ignore) linux-gate.so.1 in ldd. + - Check dpkg-shlibdeps for linux-gate.so.1 handling. + - Don't do make install for libc6-i686 if we aren't going to use the + results - it's very slow. + +* libc-dev: + + - What do we do for headers on 32/64 systems? Do we generate + #if wrappers for /usr/include? This looks like a non-issue since + only asm needs it. + +* locales: + + - locales debconf template is a bit difficult for newbie users. + Using localedata/locales/*, it can be readable. For example, + "ja_JP" -> "Japanese", "Japan". + + --- eglibc-2.12.1.orig/debian/libc6-s390x.symbols.s390 +++ eglibc-2.12.1/debian/libc6-s390x.symbols.s390 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld64.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6-i386.symbols.amd64 +++ eglibc-2.12.1/debian/libc6-i386.symbols.amd64 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld-linux.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6.symbols.i386 +++ eglibc-2.12.1/debian/libc6.symbols.i386 @@ -0,0 +1,12 @@ +#include "libc6.symbols.common" +ld-linux.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### TLS support enabled with Debian upload 2.3.6-6 + __tls_get_addr@GLIBC_2.3 2.3.6-6~ +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### +### Override headers already defined in libc6.symbols.common +### +libpthread.so.0 #PACKAGE# (>= 2.3.6-6~), #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/control +++ eglibc-2.12.1/debian/control @@ -0,0 +1,788 @@ +Source: eglibc +Section: libs +Priority: required +Build-Depends: gettext, make (>= 3.80), dpkg-dev (>= 1.15.3.1), bzip2, lzma, xz-utils, file, quilt, + texinfo (>= 4.0), texi2html, + autoconf, sed (>= 4.0.5-4), gawk, debhelper (>= 5.0), tar (>= 1.22), + linux-libc-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], + mig (>= 1.3-2) [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386], gnumach-dev [hurd-i386], libpthread-stubs0-dev [hurd-i386], + kfreebsd-kernel-headers [kfreebsd-i386 kfreebsd-amd64], + binutils (>= 2.20-1), + g++-4.4 (>= 4.4.4-1), g++-4.4-multilib [amd64 i386 kfreebsd-amd64 mips mipsel powerpc ppc64 s390 sparc] +Build-Depends-Indep: perl, po-debconf (>= 1.0) +Maintainer: Ubuntu Core developers +XSBC-Original-Maintainer: GNU Libc Maintainers +Uploaders: GOTO Masanori , Jeff Bailey , Daniel Jacobowitz , Clint Adams , Aurelien Jarno , Pierre Habouzit +Standards-Version: 3.8.4 +XS-Debian-Vcs-Browser: http://svn.debian.org/wsvn/pkg-glibc/glibc-package/ +XS-Debian-Vcs-Svn: svn://svn.debian.org/pkg-glibc/glibc-package/ +Vcs-Bzr: https://code.launchpad.net/~ubuntu-core-dev/eglibc/eglibc-2.12-pkg +Homepage: http://www.eglibc.org + +Package: libc-bin +Architecture: any +Section: libs +Priority: required +Depends: ${misc:Depends} +Breaks: libc0.1 (<< 2.10), libc0.3 (<< 2.10), libc6 (<< 2.10), libc6.1 (<< 2.10) +Replaces: libc0.1, libc0.3, libc6, libc6.1 +Description: Embedded GNU C Library: Binaries + This package contains utility programs related to the GNU C Library. + . + * catchsegv: catch segmentation faults in programs + * getconf: query system configuration variables + * getent: get entries from administrative databases + * iconv, iconvconfig: convert between character encodings + * ldd, ldconfig: print/configure shared library dependencies + * locale, localedef: show/generate locale definitions + * rpcinfo: report RPC information + * tzselect, zdump, zic: select/dump/compile time zones + +Package: libc-dev-bin +Architecture: any +Section: libdevel +Priority: optional +Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: manpages-dev +Replaces: libc0.1-dev, libc0.3-dev, libc6-dev, libc6.1-dev +Description: Embedded GNU C Library: Development binaries + This package contains utility programs related to the GNU C Library + development package. + +Package: glibc-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Provides: glibc-doc-reference +Conflicts: glibc-doc-reference +Replaces: glibc-doc-reference +Description: Embedded GNU C Library: Documentation + Contains The GNU C Library Reference manual in info and html format + as well as the man pages for libpthread functions and the complete + GNU C Library ChangeLog. + +Package: eglibc-source +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends} +Recommends: xz-utils +Description: Embedded GNU C Library: sources + This package contains the sources and patches which are needed to + build eglibc. + +Package: locales +Architecture: all +Section: localization +Priority: standard +Depends: ${locale:Depends}, ${misc:Depends}, debconf | debconf-2.0 +Conflicts: base-config, belocs-locales-bin, belocs-locales-data +Replaces: base-config, lliurex-belocs-locales-data +Description: Embedded GNU C Library: National Language (locale) data [support] + Machine-readable data files, shared objects and programs used by the + C library for localization (l10n) and internationalization (i18n) support. + . + This package contains the libc.mo i18n files, plus tools to generate + locale definitions from source files (included in this package). It + allows you to customize which definitions actually get + generated. This is a space-saver over how this package used to be, + with all locales generated by default. This created a package that + unpacked to an excess of 30 megs. + +Package: locales-all +Architecture: any +Section: localization +Priority: extra +Depends: ${locale:Depends}, ${misc:Depends}, lzma +Provides: locales +Description: Embedded GNU C Library: Precompiled locale data + This package contains the precompiled locale data for all supported locales. + A better alternative is to install the locales package and only select + desired locales, but it can be useful on a low-memory machine because some + locale files take a lot of memory to be compiled. + +Package: nscd +Architecture: any +Section: admin +Priority: optional +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Embedded GNU C Library: Name Service Cache Daemon + A daemon which handles passwd, group and host lookups + for running programs and caches the results for the next + query. You should install this package only if you use + slow Services like LDAP, NIS or NIS+ + +Package: libc6 +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: libs +Priority: required +Depends: libc-bin (= ${binary:Version}), hurd (>= 20070606-1+SVN) [hurd-i386], libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 [hppa], tzdata, findutils (>= 4.4.0-2ubuntu2) +Recommends: libc0.1-i686 [kfreebsd-i386] +Suggests: glibc-doc, debconf | debconf-2.0, locales [!hurd-i386] +Provides: ${locale-compat:Depends}, libc6-i686 [i386] +Conflicts: belocs-locales-bin, tzdata-etch, tzdata (<< 2007k-1), libc6-i686 [i386] +Replaces: belocs-locales-bin +Breaks: nscd (<< 2.12) +Description: Embedded GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc6-dev +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: optional +Depends: libc6 (= ${binary:Version}), libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], kfreebsd-kernel-headers (>= 0.11) [kfreebsd-any], gnumach-dev [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386], libpthread-stubs0-dev [hurd-i386] +Recommends: gcc | c-compiler +Suggests: glibc-doc, manpages-dev +Provides: libc-dev, libc6-dev [alpha ia64 hurd-i386 kfreebsd-i386 kfreebsd-amd64] +Conflicts: binutils (<< 2.20.1-1), binutils-gold (<< 2.20.1-11) +Description: Embedded GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc6-dbg +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: debug +Priority: extra +Provides: libc-dbg +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: detached debugging symbols + This package contains the detached debugging symbols for the GNU C + library. + +Package: libc6-prof +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: extra +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc6-pic +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc6-udeb +XC-Package-Type: udeb +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: debian-installer +Priority: extra +Provides: libc6, libc-udeb, ${locale-compat:Depends} +Description: Embedded GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + +Package: libc6.1 +Architecture: alpha ia64 +Section: libs +Priority: required +Depends: libc-bin (= ${binary:Version}), hurd (>= 20070606-1+SVN) [hurd-i386], libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 [hppa], tzdata, findutils (>= 4.4.0-2ubuntu2) +Recommends: libc0.1-i686 [kfreebsd-i386] +Suggests: glibc-doc, debconf | debconf-2.0, locales [!hurd-i386] +Provides: ${locale-compat:Depends}, libc6-i686 [i386] +Conflicts: belocs-locales-bin, tzdata-etch, tzdata (<< 2007k-1), libc6-i686 [i386] +Replaces: belocs-locales-bin +Breaks: nscd (<< 2.12) +Description: Embedded GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc6.1-dev +Architecture: alpha ia64 +Section: libdevel +Priority: optional +Depends: libc6.1 (= ${binary:Version}), libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], kfreebsd-kernel-headers (>= 0.11) [kfreebsd-any], gnumach-dev [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386], libpthread-stubs0-dev [hurd-i386] +Recommends: gcc | c-compiler +Suggests: glibc-doc, manpages-dev +Provides: libc-dev, libc6-dev [alpha ia64 hurd-i386 kfreebsd-i386 kfreebsd-amd64] +Conflicts: binutils (<< 2.20.1-1), binutils-gold (<< 2.20.1-11) +Description: Embedded GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc6.1-dbg +Architecture: alpha ia64 +Section: debug +Priority: extra +Provides: libc-dbg +Depends: libc6.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: detached debugging symbols + This package contains the detached debugging symbols for the GNU C + library. + +Package: libc6.1-prof +Architecture: alpha ia64 +Section: libdevel +Priority: extra +Depends: libc6.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc6.1-pic +Architecture: alpha ia64 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc6.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc6.1-udeb +XC-Package-Type: udeb +Architecture: alpha ia64 +Section: debian-installer +Priority: extra +Provides: libc6.1, libc-udeb, ${locale-compat:Depends} +Description: Embedded GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + +Package: libc0.3 +Architecture: hurd-i386 +Section: libs +Priority: required +Depends: libc-bin (= ${binary:Version}), hurd (>= 20070606-1+SVN) [hurd-i386], libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 [hppa], tzdata, findutils (>= 4.4.0-2ubuntu2) +Recommends: libc0.1-i686 [kfreebsd-i386] +Suggests: glibc-doc, debconf | debconf-2.0, locales [!hurd-i386] +Provides: ${locale-compat:Depends}, libc6-i686 [i386] +Conflicts: belocs-locales-bin, tzdata-etch, tzdata (<< 2007k-1), libc6-i686 [i386] +Replaces: belocs-locales-bin +Breaks: nscd (<< 2.12) +Description: Embedded GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc0.3-dev +Architecture: hurd-i386 +Section: libdevel +Priority: optional +Depends: libc0.3 (= ${binary:Version}), libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], kfreebsd-kernel-headers (>= 0.11) [kfreebsd-any], gnumach-dev [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386], libpthread-stubs0-dev [hurd-i386] +Recommends: gcc | c-compiler +Suggests: glibc-doc, manpages-dev +Provides: libc-dev, libc6-dev [alpha ia64 hurd-i386 kfreebsd-i386 kfreebsd-amd64] +Conflicts: binutils (<< 2.20.1-1), binutils-gold (<< 2.20.1-11) +Description: Embedded GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc0.3-dbg +Architecture: hurd-i386 +Section: debug +Priority: extra +Provides: libc-dbg +Depends: libc0.3 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: detached debugging symbols + This package contains the detached debugging symbols for the GNU C + library. + +Package: libc0.3-prof +Architecture: hurd-i386 +Section: libdevel +Priority: extra +Depends: libc0.3 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc0.3-pic +Architecture: hurd-i386 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc0.3 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc0.3-udeb +XC-Package-Type: udeb +Architecture: hurd-i386 +Section: debian-installer +Priority: extra +Provides: libc0.3, libc-udeb, ${locale-compat:Depends} +Description: Embedded GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + +Package: libc0.1 +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libs +Priority: required +Depends: libc-bin (= ${binary:Version}), hurd (>= 20070606-1+SVN) [hurd-i386], libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 [hppa], tzdata, findutils (>= 4.4.0-2ubuntu2) +Recommends: libc0.1-i686 [kfreebsd-i386] +Suggests: glibc-doc, debconf | debconf-2.0, locales [!hurd-i386] +Provides: ${locale-compat:Depends}, libc6-i686 [i386] +Conflicts: belocs-locales-bin, tzdata-etch, tzdata (<< 2007k-1), libc6-i686 [i386] +Replaces: belocs-locales-bin +Breaks: nscd (<< 2.12) +Description: Embedded GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc0.1-dev +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: optional +Depends: libc0.1 (= ${binary:Version}), libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], kfreebsd-kernel-headers (>= 0.11) [kfreebsd-any], gnumach-dev [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386], libpthread-stubs0-dev [hurd-i386] +Recommends: gcc | c-compiler +Suggests: glibc-doc, manpages-dev +Provides: libc-dev, libc6-dev [alpha ia64 hurd-i386 kfreebsd-i386 kfreebsd-amd64] +Conflicts: binutils (<< 2.20.1-1), binutils-gold (<< 2.20.1-11) +Description: Embedded GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc0.1-dbg +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: debug +Priority: extra +Provides: libc-dbg +Depends: libc0.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: detached debugging symbols + This package contains the detached debugging symbols for the GNU C + library. + +Package: libc0.1-prof +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: extra +Depends: libc0.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc0.1-pic +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc0.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc0.1-udeb +XC-Package-Type: udeb +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: debian-installer +Priority: extra +Provides: libc0.1, libc-udeb, ${locale-compat:Depends} +Description: Embedded GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + +Package: libc6-i386 +Architecture: amd64 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Replaces: libc6-dev-i386 +Conflicts: ia32-libs (<= 1.5) +Description: GNU C Library: 32-bit shared libraries for AMD64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for AMD64 systems. + +Package: libc6-dev-i386 +Architecture: amd64 +Section: libdevel +Priority: optional +Conflicts: ia32-libs-dev (<< 1.18) +Provides: lib32c-dev +Depends: libc6-i386 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 32-bit development libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for AMD64 systems. + +Package: libc6-sparc64 +Architecture: sparc +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + +Package: libc6-dev-sparc64 +Architecture: sparc +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-sparc64 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for UltraSPARC + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for UltraSPARC systems. + +Package: libc6-s390x +Architecture: s390 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: 64bit Shared libraries for IBM zSeries + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for zSeries systems. + +Package: libc6-dev-s390x +Architecture: s390 +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-s390x (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for IBM zSeries + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for zSeries systems. + +Package: libc6-amd64 +Architecture: i386 +Section: libs +Priority: standard +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Conflicts: amd64-libs (<= 1.2) +Description: GNU C Library: 64bit Shared libraries for AMD64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for AMD64 systems. + +Package: libc6-dev-amd64 +Architecture: i386 +Section: libdevel +Priority: optional +Depends: libc6-amd64 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Replaces: amd64-libs-dev (<= 1.2) +Provides: lib64c-dev +Description: GNU C Library: 64bit Development Libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for AMD64 systems. + +Package: libc6-powerpc +Architecture: ppc64 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: 32bit powerpc shared libraries for ppc64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for ppc64 systems. + +Package: libc6-dev-powerpc +Architecture: ppc64 +Section: libdevel +Priority: optional +Provides: lib32c-dev +Depends: libc6-powerpc (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 32bit powerpc development libraries for ppc64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for ppc64 systems. + +Package: libc6-ppc64 +Architecture: powerpc +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: 64bit Shared libraries for PowerPC64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for PowerPC64 systems. + +Package: libc6-dev-ppc64 +Architecture: powerpc +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-ppc64 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for PowerPC64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for PowerPC64 systems. + +Package: libc6-mipsn32 +Architecture: mips mipsel +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: n32 Shared libraries for MIPS64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the n32 version + of the library, meant for MIPS64 systems. + +Package: libc6-dev-mipsn32 +Architecture: mips mipsel +Section: libdevel +Priority: optional +Provides: libn32c-dev +Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: n32 Development Libraries for MIPS64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the n32 version of the + library, meant for MIPS64 systems. + +Package: libc6-mips64 +Architecture: mips mipsel +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: 64bit Shared libraries for MIPS64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for MIPS64 systems. + +Package: libc6-dev-mips64 +Architecture: mips mipsel +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-mips64 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for MIPS64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for MIPS64 systems. + +Package: libc0.1-i386 +Architecture: kfreebsd-amd64 +Section: libs +Priority: optional +Depends: libc0.1 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: 32bit shared libraries for AMD64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for AMD64 systems. + +Package: libc0.1-dev-i386 +Architecture: kfreebsd-amd64 +Section: libdevel +Priority: optional +Provides: lib32c-dev +Depends: libc0.1-i386 (= ${binary:Version}), libc0.1-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 32bit development libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for AMD64 systems. + +Package: libc6-sparcv9b +Architecture: sparc sparc64 +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${binary:Version}) +Depends: ${misc:Depends} +Description: GNU C Library: Shared libraries [v9b optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the UltraSPARC v9b ABI. It only + needs to be installed on UltraSPARC machines. If you install this on a + non-UltraSPARC, it won't even be used. + +Package: libc6-sparcv9v +Architecture: sparc +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${Source-Version}) +Description: GNU C Library: Shared libraries [v9v optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for SUN4V Niagara and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparcv9v2 +Architecture: sparc +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${Source-Version}) +Description: GNU C Library: Shared libraries [v9v2 optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for SUN4V Niagara 2 and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara 2 and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64b +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9b optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for UltraSPARC-III and derivative + processors. It only needs to be installed on machines using + UltraSPARC-III and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64v +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9v optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for SUN4V Niagara and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64v2 +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9v2 optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for SUN4V Niagara 2 and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara 2 and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-xen +Architecture: i386 +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${binary:Version}) +Depends: ${misc:Depends} +Description: GNU C Library: Shared libraries [Xen version] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the Xen hypervisor, and will be + selected instead when running under Xen. + +Package: libc0.1-i686 +Architecture: kfreebsd-i386 +Section: libs +Priority: extra +Pre-Depends: libc0.1 (= ${binary:Version}) +Depends: ${misc:Depends} +Description: GNU C Library: Shared libraries [i686 optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for i686 machines, and will only be + used on an i686 class CPU (check the output of `uname -m'). This includes + Pentium Pro, Pentium II/III/IV, Celeron CPU's and similar class CPU's + (including clones such as AMD Athlon/Opteron, VIA C3 Nehemiah, but not VIA + C3 Ezla). + +Package: libc6.1-alphaev67 +Architecture: alpha +Section: libs +Priority: extra +Pre-Depends: libc6.1 (= ${binary:Version}) +Depends: ${misc:Depends} +Description: GNU C Library: Shared libraries (EV67 optimized) + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the Alpha EV67. It only + needs to be installed on Alpha EV67/68 and EV7 machines. If you install + this on an older machine, it won't even be used. + +Package: libnss-dns-udeb +XC-Package-Type: udeb +Architecture: any +Section: debian-installer +Priority: extra +Description: GNU C Library: NSS helper for DNS - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains the DNS NSS helper needed for the Debian installer. + Do not install it on a normal system. + +Package: libnss-files-udeb +XC-Package-Type: udeb +Architecture: any +Section: debian-installer +Priority: extra +Description: GNU C Library: NSS helper for files - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains the files NSS helper needed for the Debian installer. + Do not install it on a normal system. + --- eglibc-2.12.1.orig/debian/libc6.symbols.armel +++ eglibc-2.12.1/debian/libc6.symbols.armel @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld-linux.so.3 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/quiltrc +++ eglibc-2.12.1/debian/quiltrc @@ -0,0 +1,4 @@ +QUILT_PATCHES="debian/patches" +QUILT_PATCH_OPTS="--unified-reject-files" +QUILT_DIFF_ARGS="--no-timestamps --no-index" +QUILT_REFRESH_ARGS="-pab --no-timestamps --no-index --diffstat" --- eglibc-2.12.1.orig/debian/libc6.symbols.s390 +++ eglibc-2.12.1/debian/libc6.symbols.s390 @@ -0,0 +1,12 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### TLS support enabled in Debian upload 2.4 + __tls_get_offset@GLIBC_2.3 2.4 +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### +### Override headers already defined in libc6.symbols.common +### +libpthread.so.0 #PACKAGE# (>= 2.4), #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/debver2localesdep.pl +++ eglibc-2.12.1/debian/debver2localesdep.pl @@ -0,0 +1,18 @@ +#!/usr/bin/perl + +for my $i (0..$#ARGV) { + $_ = $ARGV[$i]; + /(.*)-(.*)/m; + + $debver = $1; + $devrev = $2; + + @revs = split('\.', $devrev); + + $devrev = $revs[0]; + $devrev = "$devrev.$revs[1]" if defined($revs[1]) and $revs[1] ne "0"; + + print ", " if $i > 0; + print "glibc-$debver-$devrev"; +} +print "\n"; --- eglibc-2.12.1.orig/debian/libc6.symbols.common +++ eglibc-2.12.1/debian/libc6.symbols.common @@ -0,0 +1,55 @@ +libBrokenLocale.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libSegFault.so #PACKAGE# #MINVER# + __invoke_dynamic_linker__@Base 2.3.6 +#include "symbols.wildcards" +libcidn.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libcrypt.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libdl.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libm.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libmemusage.so #PACKAGE# #MINVER# + __invoke_dynamic_linker__@Base 2.3.6 + calloc@Base 2.3.6 + free@Base 2.3.6 + malloc@Base 2.3.6 + mmap64@Base 2.3.6 + mmap@Base 2.3.6 + mremap@Base 2.3.6 + munmap@Base 2.3.6 + realloc@Base 2.3.6 +#include "symbols.wildcards" +libnsl.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_compat.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_dns.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_files.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_hesiod.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_nis.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_nisplus.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libpcprofile.so #PACKAGE# #MINVER# + __cyg_profile_func_enter@Base 2.3.6 + __cyg_profile_func_exit@Base 2.3.6 + __invoke_dynamic_linker__@Base 2.3.6 +#include "symbols.wildcards" +libresolv.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +librt.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libutil.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libanl.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libpthread.so.0 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libthread_db.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/rules +++ eglibc-2.12.1/debian/rules @@ -0,0 +1,224 @@ +#! /usr/bin/make -f +# -*- makefile -*- +# debian/rules file for GNU libc. +# Copyright 1998, 1999 by Joel Klecker +# Copyright 2000 Ben Collins +# Copyright 2003 Jeff Bailey +# This Makefile is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# What are the phases to building glibc? + +# Unpack main tarball +# Do any necessary overlays +# Apply patches +# Determine how many builds there are to do. For Each build: + +# Create build directory +# Configure +# Build +# Test as desired +# Install to package directories + +# Run debian magic to build packages. + +# Things you may need to customise: + +# These are done as absolute paths so that in the case of filesystem size +# limitations, they can be overridden and spread all over. +build-tree := build-tree +stamp := $(CURDIR)/stamp-dir/ +DUMMY := $(shell mkdir -p $(stamp)) + +# The minimum package version with which these packages are compatible. +include debian/shlibver +shlib_dep = $(libc) (>= $(shlib_dep_ver)) + +# The version of the C library that locales needs for its format. +include debian/locales-depver + +# Beyond here you shouldn't need to customise anything: + +export SHELL = /bin/bash -e + +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) +DEB_HOST_GNU_CPU ?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_HOST_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM) +DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) +DEB_BUILD_GNU_CPU ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_CPU) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_BUILD_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_SYSTEM) + +DEB_HOST_GNU_CPU_ALT ?= +DEB_HOST_GNU_TYPE_ALT ?= + +DEB_SOURCE_PACKAGE := $(strip $(shell egrep '^Source: ' debian/control | cut -f 2 -d ':')) + +DEB_VERSION := $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ') +EGLIBC_VERSION = $(shell echo $(DEB_VERSION) | sed -e 's/-.*//') + +DEB_SRCDIR ?= $(CURDIR) +DEB_BUILDDIR ?= $(build-tree)/$(DEB_HOST_ARCH)-$(curpass) + +EGLIBC_SOURCES = $(addprefix $(shell basename $(CURDIR))/, \ + $(filter-out debian $(shell basename $(stamp)) $(build-tree), $(wildcard *))) + +# The kernel uses different CPU appreviations (uname output) than the GNU +# tools do (config.sub). Map them. +KERNEL_HOST_CPU := $(subst powerpc,ppc,$(DEB_HOST_GNU_CPU)) + +# Support multiple makes at once based on number of processors +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +NJOBS := -j $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +endif + +ifeq ($(DEB_HOST_ARCH),lpia) + export DEB_BUILD_OPTIMIZING_SIZE=0 +endif + +ifneq (,$(filter $(DEB_HOST_ARCH),hppa)) + ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + DEB_BUILD_OPTIONS += nocheck + export DEB_BUILD_OPTIONS + endif +endif + +# use the package settings, not the settings from the environment +define unsetenv + unexport $(1) + $(1) = +endef +$(foreach v, CPPFLAGS CFLAGS CXXFLAGS LDFLAGS, $(if $(filter environment,$(origin $(v))),$(eval $(call unsetenv, $(v))))) + +# Default setup +EGLIBC_PASSES ?= libc + +prefix=/usr +bindir=$(prefix)/bin +datadir=$(prefix)/share +localedir=$(prefix)/lib/locale +sysconfdir=/etc +libexecdir=$(prefix)/lib +rootsbindir=/sbin +includedir=$(prefix)/include +docdir=$(prefix)/share/doc +mandir=$(prefix)/share/man +sbindir=$(prefix)/sbin +slibdir=/lib +libdir=/usr/lib + +BUILD_CC = gcc-4.4 -fno-stack-protector -U_FORTIFY_SOURCE +BUILD_CXX = g++-4.4 -fno-stack-protector -U_FORTIFY_SOURCE + +RUN_TESTSUITE = yes + +# Set CC and CXX for cross-compiling +ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH)) +CC = $(DEB_HOST_GNU_TYPE)-gcc +CXX = $(DEB_HOST_GNU_TYPE)-g++ +else +CC = $(BUILD_CC) +CXX = $(BUILD_CXX) +endif + +BUILD_CFLAGS = -O2 -g +HOST_CFLAGS = -pipe -O2 -fstrict-aliasing -g $(call xx,extra_cflags) + +configure_target := $(DEB_HOST_GNU_TYPE) + +# Normally we'll just use this for --build. If the architecture requires +# that build daemons be able to run a particular optimized library, then +# they can set the --build to match --host for that optimized build. +# Among other things this lets tests run. +configure_build := $(DEB_BUILD_GNU_TYPE) + +log_build = $(build-tree)/log-build-$(call xx,configure_target)-$(curpass) +log_test = $(build-tree)/log-test-$(call xx,configure_target)-$(curpass) +log_results = $(build-tree)/test-results-$(call xx,configure_target)-$(curpass) +log_expected = debian/testsuite-checking/expected-results-$(call xx,configure_target)-$(curpass) + +# Which build pass are we on? +curpass = $(filter-out %_,$(subst _,_ ,$@)) + +ifeq ($(DEB_STAGE),stage1) + DEB_ARCH_REGULAR_PACKAGES = $(libc)-dev + DEB_INDEP_REGULAR_PACKAGES = + DEB_UDEB_PACKAGES = +else + DEB_ARCH_REGULAR_PACKAGES = $(libc) $(libc)-dev $(libc)-dbg $(libc)-prof $(libc)-pic libc-bin libc-dev-bin + DEB_INDEP_REGULAR_PACKAGES = glibc-doc eglibc-source + DEB_UDEB_PACKAGES = $(libc)-udeb libnss-dns-udeb libnss-files-udeb +endif + +# Generic kernel version check +define kernel_check +(if [ $(CURRENT_KERNEL_VERSION) -lt $(1) ]; then \ + false; \ +fi) +endef + +# Include libidn for both NPTL and LinuxThreads targets. +standard-add-ons = libidn, + +# Pull in all the per-arch magic! + +-include debian/sysdeps/$(DEB_HOST_ARCH_OS).mk +-include debian/sysdeps/$(DEB_HOST_ARCH).mk + +# Don't run dh_strip on this package +NOSTRIP_$(libc)-dbg = 1 + +ifneq ($(DEB_STAGE),stage1) + ifeq ($(threads),yes) + DEB_ARCH_REGULAR_PACKAGES += nscd + endif +endif + +# And now the rules... +include debian/rules.d/*.mk + +clean:: unpatch + make -C $(CURDIR)/linuxthreads/man clean + -make -C $(CURDIR)/manual realclean + rm -f $(CURDIR)/po/*.mo + rm -rf $(patsubst %,debian/tmp-%,$(EGLIBC_PASSES)) + rm -rf $(build-tree) + rm -rf $(stamp) + rm -rf debian/include + rm -f manual/stamp-* manual/*.html manual/libm-err.texi manual/pkgvers.texi + rm -f po/*.mo + +# Required Debian targets +binary-indep: build testroot debian/control $(build-tree) \ + $(patsubst %,$(stamp)binaryinst_%,$(DEB_INDEP_REGULAR_PACKAGES)) + +binary-arch: build testroot debian/control $(build-tree) \ + $(patsubst %,$(stamp)binaryinst_%,$(DEB_ARCH_REGULAR_PACKAGES)) \ + $(patsubst %,$(stamp)binaryinst_%,$(DEB_UDEB_PACKAGES)) + +binary: binary-indep binary-arch + +pre-build: +#ifneq (,$(filter $(DEB_HOST_ARCH), armel i386)) +# @echo Build it ... +#else +# @echo Explicitely fail the build for architecture $(DEB_HOST_ARCH) +# false +#endif + +ifdef DEB_STAGE +build: pre-build $(stamp)info \ + $(patsubst %,$(stamp)build_%,$(EGLIBC_PASSES)) +else +build: pre-build $(stamp)info \ + $(patsubst %,$(stamp)build_%,$(EGLIBC_PASSES)) \ + $(patsubst %,$(stamp)check_%,$(EGLIBC_PASSES)) \ + $(stamp)source $(stamp)doc +endif + +testroot: + dh_testroot --- eglibc-2.12.1.orig/debian/README +++ eglibc-2.12.1/debian/README @@ -0,0 +1,37 @@ +This directory contains the files needed to build glibc for the Debian +GNU/Linux and GNU/Hurd distributions. + +If you have pulled this version from CVS, you will probably need to go +and get the tar.bz2 files that match the file 'version'. You can +generally find these at sources.redhat.com in pub/libc. Put both the +regular glibc tar.bz2 *AND* the matching linuxthreads tar.bz2. After +that follow the usual build procedures. + +Compiling the GNU C library yourself requires a lot of resources. For +a complete build using dpkg-buildpackage you need at least 750MB free +disk space and at least 16MB of RAM and 32MB of swap space (if you +have only that much you're better off not running X at the same +time). Note that the C library on the Hurd is also somewhat larger: +you'll need over 800MB of free disk space to build Hurdish packages. + +A complete build takes 45 minutes on a Pentium III 735Mhz machine, and +25 minutes to run the test suite. The cause for this is the intricate +Makefile structure of glibc which needs a lot of computing power for +make to figure out the automatically generated dependencies. If you +are building all of the optimized libraries for the IA32 family, allow +2.5 hours for this build. + +For Linux, you will need at least the kernel headers for the specific +kernel version required for your machine's architecture. These are +specified in the `debian/sysdeps/linux.mk' file, and can be overridden +by exporting the environment variable LINUX_SOURCE set to the path to +the desired kernel. + +For the Hurd, you will need to have installed the GNU Mach and Hurd +header files (which come with the `gnumach-dev' and `hurd-dev' +packages). See the Hurd source package's `INSTALL' file for more +information. + +Please consider reading the `FAQ' file in this directory. It is also +suggested that you also read the `README' and `INSTALL' files in the +top-level of the glibc source tree. --- eglibc-2.12.1.orig/debian/libc6-ppc64.symbols.powerpc +++ eglibc-2.12.1/debian/libc6-ppc64.symbols.powerpc @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld64.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6.1.symbols.alpha +++ eglibc-2.12.1/debian/libc6.1.symbols.alpha @@ -0,0 +1,58 @@ +ld-linux.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### TLS support added/enabled in debian upload 2.3.5 + __tls_get_addr@GLIBC_2.3 2.3.5 +libc.so.6.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libBrokenLocale.so.1.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libSegFault.so #PACKAGE# #MINVER# + __invoke_dynamic_linker__@Base 2.3.6 +libcidn.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libcrypt.so.1.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libdl.so.2.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libm.so.6.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libmemusage.so #PACKAGE# #MINVER# + __invoke_dynamic_linker__@Base 2.3.6 + calloc@Base 2.3.6 + free@Base 2.3.6 + malloc@Base 2.3.6 + mmap64@Base 2.3.6 + mmap@Base 2.3.6 + mremap@Base 2.3.6 + munmap@Base 2.3.6 + realloc@Base 2.3.6 +libnsl.so.1.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_compat.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_dns.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_files.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_hesiod.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_nis.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_nisplus.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libpcprofile.so #PACKAGE# #MINVER# + __cyg_profile_func_enter@Base 2.3.6 + __cyg_profile_func_exit@Base 2.3.6 + __invoke_dynamic_linker__@Base 2.3.6 +libresolv.so.2.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +librt.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libutil.so.1.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libanl.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libpthread.so.0 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libthread_db.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6.symbols.sparc64 +++ eglibc-2.12.1/debian/libc6.symbols.sparc64 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld-linux.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc0.1-i386.symbols.kfreebsd-amd64 +++ eglibc-2.12.1/debian/libc0.1-i386.symbols.kfreebsd-amd64 @@ -0,0 +1,5 @@ +#include "libc0.1.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.0.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6.symbols.powerpc +++ eglibc-2.12.1/debian/libc6.symbols.powerpc @@ -0,0 +1,12 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### TLS support enabled in Debian upload 2.3.5 + __tls_get_addr@GLIBC_2.3 2.3.5 +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### +### Override headers already defined in libc6.symbols.common +### +libpthread.so.0 #PACKAGE# (>= 2.3.5), #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6.symbols.sparc +++ eglibc-2.12.1/debian/libc6.symbols.sparc @@ -0,0 +1,50 @@ +#include "libc6.symbols.common" +ld-linux.so.2 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +### +### Override headers already defined in libc6.symbols.common +### +# Minimal dependency set to 2.6 due to SPARCV8 -> SPARCV8PLUS ABI transition +libBrokenLocale.so.1 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libSegFault.so #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libcidn.so.1 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libcrypt.so.1 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libdl.so.2 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libm.so.6 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libmemusage.so #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +libnsl.so.1 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_compat.so.2 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_dns.so.2 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_files.so.2 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_hesiod.so.2 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_nis.so.2 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_nisplus.so.2 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libpcprofile.so #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libresolv.so.2 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +librt.so.1 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libutil.so.1 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libanl.so.1 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libpthread.so.0 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libthread_db.so.1 #PACKAGE# (>= 2.6), #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/symbols.wildcards +++ eglibc-2.12.1/debian/symbols.wildcards @@ -0,0 +1,30 @@ +| #PACKAGE# (>> 2.12), #PACKAGE# (<< 2.13) + *@GLIBC_PRIVATE 0 1 + *@GLIBC_2.0 2.0 + *@GLIBC_2.1 2.1 + *@GLIBC_2.1.1 2.1.1 + *@GLIBC_2.1.2 2.1.2 + *@GLIBC_2.1.3 2.1.3 + *@GLIBC_2.1.4 2.1.4 + *@GLIBC_2.2 2.2 + *@GLIBC_2.2.1 2.2.1 + *@GLIBC_2.2.2 2.2.2 + *@GLIBC_2.2.3 2.2.3 + *@GLIBC_2.2.4 2.2.4 + *@GLIBC_2.2.5 2.2.5 + *@GLIBC_2.2.6 2.2.6 + *@GLIBC_2.3 2.3 + *@GLIBC_2.3.1 2.3.1 + *@GLIBC_2.3.2 2.3.2 + *@GLIBC_2.3.3 2.3.3 + *@GLIBC_2.3.4 2.3.4 + *@GLIBC_2.4 2.4 + *@GLIBC_2.5 2.5 + *@GLIBC_2.6 2.6 + *@GLIBC_2.7 2.7 + *@GLIBC_2.8 2.8 + *@GLIBC_2.9 2.9 + *@GLIBC_2.10 2.10 + *@GLIBC_2.11 2.11 + *@GLIBC_2.12 2.12 + *@GCC_3.0 2.3.6 --- eglibc-2.12.1.orig/debian/changelog +++ eglibc-2.12.1/debian/changelog @@ -0,0 +1,11356 @@ +eglibc (2.12.1-0ubuntu8) maverick-security; urgency=low + + * SECURITY UPDATE: root escalation via LD_AUDIT DST expansion. + - debian/patches/any/dst-expansion-fix.diff: upstream fixes. + - CVE-2010-3847 + - debian/patches/any/disable-ld_audit.diff: turn off LD_AUDIT + for setuid binaries. + + -- Kees Cook Thu, 21 Oct 2010 12:45:24 -0700 + +eglibc (2.12.1-0ubuntu7) maverick-proposed; urgency=low + + * Fix issue #12092, strstr broken for some inputs on pre-SSE4 machines. + LP: #655463. + + -- Matthias Klose Thu, 07 Oct 2010 09:01:06 +0200 + +eglibc (2.12.1-0ubuntu6) maverick; urgency=low + + * Fix applying the local-syscall-mcount.diff. + + -- Matthias Klose Fri, 10 Sep 2010 18:47:31 +0200 + +eglibc (2.12.1-0ubuntu5) maverick; urgency=low + + [ Steve Langasek ] + * debian/patches/arm/local-syscall-mcount.diff: unset CALL_MCOUNT for + __libc_do_syscall. Thanks to Peter Pearse + . Closes LP: #605030. + + [ Matthias Klose ] + * Fix _FORITY_SOURCE version of longjmp for Linux/x86-64 (Chung-Lin Tang) + LP: #601030. + + -- Matthias Klose Fri, 10 Sep 2010 18:19:01 +0200 + +eglibc (2.12.1-0ubuntu4) maverick; urgency=low + + * Again, revert the upstream change from the last upload to + enable running java on the babbage boards. + + -- Matthias Klose Wed, 08 Sep 2010 00:02:11 +0200 + +eglibc (2.12.1-0ubuntu3) maverick; urgency=low + + * Reapply the upstream change (tested by Yao Qi). LP: #605042. + 2010-06-02 Kirill A. Shutemov + * elf/dl-reloc.c: Flush cache after solving TEXTRELs if arch + requires it. + + -- Matthias Klose Mon, 06 Sep 2010 12:33:53 +0200 + +eglibc (2.12.1-0ubuntu2) maverick; urgency=low + + [ Marcin Juszkiewicz ] + * Add build support to only build single stages. LP: #603498. + + -- Matthias Klose Mon, 23 Aug 2010 17:05:04 +0200 + +eglibc (2.12.1-0ubuntu1) maverick; urgency=low + + * Build eglibc_2.12.1.orig.tar.gz, based on 2.12 branch (r11211). + * Provide packaging rules in eglibc-source binary packag. LP: #609162. + * Don't patch the sources when PATCHED_SOURCES is set to `yes'. + LP: #612631. + + -- Matthias Klose Mon, 16 Aug 2010 09:55:40 +0200 + +eglibc (2.12-0ubuntu5) maverick; urgency=high + + * Revert upstream change: + 2010-06-02 Kirill A. Shutemov + * elf/dl-reloc.c: Flush cache after solving TEXTRELs if arch + requires it. + Breaks the OpenJDK ARM assembler interpreter. LP: #605042. + * expected-results-arm-linux-gnueabi-libc: Remove scanf15, scanf17 + and tst-eintr1, passing the tests on the buildds. + + -- Matthias Klose Wed, 14 Jul 2010 01:06:39 +0200 + +eglibc (2.12-0ubuntu4) maverick; urgency=low + + * Update to the eglibc 2.12 branch (r10817). + - patches/any/cvs-flush-cache-textrels.diff: Remove. + - patches/any/cvs-redirect-throw.diff: Remove. + * Merge with Debian (r4360, trunk, 2.11.2-2). + * On i386, don't build with -Wa,-mtune=i686. LP: #587186. + + -- Matthias Klose Mon, 28 Jun 2010 00:47:05 +0200 + +eglibc (2.12-0ubuntu3) maverick; urgency=low + + * Merge with Debian (r4318, trunk). + * Rebuild for i386. LP: #587186. + + -- Matthias Klose Fri, 04 Jun 2010 14:32:19 +0200 + +eglibc (2.12-0ubuntu2) maverick; urgency=low + + * Apply hppa/local-dlfptr.diff, containing architecture independent + chunks needed for ia64. + + -- Matthias Klose Sun, 30 May 2010 14:36:27 +0200 + +eglibc (2.12-0ubuntu1) maverick; urgency=low + + * Build eglibc_2.12.orig.tar.gz, based on 2.12 branch (r10591). + * Merge with Debian (r4299, trunk). + + -- Matthias Klose Sun, 30 May 2010 11:05:12 +0200 + +eglibc (2.12~20100519-0ubuntu1) maverick; urgency=low + + * Mark testcases as failing: + - ia64: tst-makecontext3.out. + - sparc: testgrp.out, tst-cancelx4.out, tst-cancelx5.out + + -- Matthias Klose Fri, 28 May 2010 14:19:11 +0200 + +eglibc (2.12~20100519-0ubuntu1~ppa1) maverick; urgency=low + + * Update to the eglibc 2.12 branch (r10508). + * Remove patches applied upstream: any/arm-syscalls-out-of-line.diff, + any/cvs-futimens.diff, any/cvs-malloc_info-init.diff, any/cvs-remove.diff, + any/cvs-resolv-bindv6only.diff, any/libc-arch-1.patch, + any/libc-arch-2.patch, any/libc-memcpy-1.patch, + any/libc-memcpy-ssse3-fixes.diff, any/local-ntp-update.diff, + any/submitted-stat-issock.diff, any/x86.git-*.patch, + localedata/fr_BE-first_weekday.diff, localedata/locale-es_CR.diff, + localedata/locale-et_EE.diff, localedata/submitted-pt_BR.diff, + sparc/cvs-sparcv9-memchr.diff, sparc/submitted-msgrcv.diff. + * Update patches: any/local-disable-test-tgmath2.diff, + any/local-ldso-disable-hwcap.diff, any/local-no-pagesize.diff, + any/submitted-futex_robust_pi.diff, any/submitted-longdouble.diff, + localedata/first_weekday.diff, localedata/locales-fr.diff, + localedata/sort-UTF8-first.diff. + * debian/shlibver: Bump to 2.12~ + * debian/symbols.wildcards: Update version. + * debian/debhelper.in/libc.{pre,post}inst: Restart services on update to 2.12. + + -- Matthias Klose Wed, 19 May 2010 12:21:27 +0200 + +eglibc (2.11.2-2) unstable; urgency=medium + + [ Aurelien Jarno ] + * control.in/libc: update the Conflicts on binutils to (<< 2.20.1-1) + and add a Conflicts on binutils-gold (<< 2.20.1-11). Closes: #585937. + * Replace patches/alpha/local-longjmp-chk.diff by upstream version + patches/alpha/cvs-longjmp-chk.diff. + * Add patches/any/cvs-redirect-throw.diff to fix some header files + with regard to C++. + * Add patches/any/cvs-flush-cache-textrels.diff to fix random crashes + on ARM, if the executable or shared library has TEXTREL. + * Add patches/any/cvs-__block.diff from upstream to not conflict with + clang. + * script.in/nohwcap.sh: consider all packages not in status "n" (not + installed) and not in status "c" (conf-files) as installed. Closes: + bug#586241. + + [ Samuel Thibault ] + * patches/hurd-i386/local-pthread_posix-option.diff: Avoid letting glibc try + to install its own headers for libpthread. + + [ Carlos O'Donell] + * Add patches/hppa/cvs-vfork.diff to fix stack frame creating during + vfork in multithreaded environments. + + -- Aurelien Jarno Thu, 24 Jun 2010 21:03:55 +0200 + +eglibc (2.11.2-1) unstable; urgency=low + + * New upstream stable release: + - Remove debian/patches/amd64/submitted-cpuid.diff (merged). + - Remove debian/patches/sh4/cvs-register_dump.diff (merged). + + [ Samuel Thibault ] + * Add patches/hurd-i386/local-mkdir_root.diff to fix busybox' mkdir -p. + + [ Aurelien Jarno ] + * Danish debconf translation update from Joe Hansen. Closes: #585548. + * Add patches/localedata/submitted-translit-colon.diff to add + transliteration support for ₡ sign. Closes: #585727. + * control.in/libc: add a Breaks: on locales (<< 2.11), locales-all + (<< 2.11). Closes: bug#585737. + * Add patches/any/submitted-group_member.diff to fix an off-by-one error + in group_member(). Closes: bug#570047. + * Update local/manpages/getconf.1. Closes: bug#576691. + + -- Aurelien Jarno Sun, 13 Jun 2010 23:22:29 +0200 + +eglibc (2.11.1-3) unstable; urgency=low + + [ Samuel Thibault ] + * Add patches/hurd-i386/cvs-linkat.diff to fix new coreutils' ln. + * Add patches/hurd-i386/submitted-ttyname.diff to fix io/tst-ttyname_r, + marked as such in testsuite-checking/expected-results-i486-gnu-libc. + * Restore patches/hurd-i386/submitted-getnprocs.diff which got lost during + the 2.11 merge. + + [ Aurelien Jarno ] + * Add patches/i386/local-cpuid-level2.diff to not trigger an abort + when an i586 Intel CPU is running the i686 library, as valgrind does. + Closes: bug#584748. + * mips testsuite: allow failure of tst-tls3 as it is not a regression. + * Add patches/any/submitted-string2-strcmp.diff to fix warnings in the + testsuite on armel. + * Add patches/alpha/submitted-syscall.diff from Mike Hommey to add support + for 6th argument system calls on alpha. Closes: bug#583911. + * Temporarily add patches/i386/local-pthread_cond_wait.diff to use the C + version of pthread_cond_wait() which uses cleanup functions to reacquire + the mutex on cancellation (instead of unwinding for the assembly + version). Closes: bug#551903. + + -- Aurelien Jarno Tue, 08 Jun 2010 10:05:49 +0200 + +eglibc (2.11.1-2) unstable; urgency=low + + [ Aurelien Jarno] + * nscd.init: don't use and absolute path to call start-stop-daemon, the + PATH variable already take care of that. + * check-execstack.out is a new test, therefore not a regression. Mark it + as failing in expected-results-powerpc64-linux-gnu-ppc64. + * Update tst-ttyname_r.out error value in expected-results-i486-gnu-libc + as part of the test is now passing. + * Add patches/mips/cvs-mips-atomic_h.diff to fix atomic issues on MIPS. + * Add patches/amd64/submitted-cpuid.diff to fix properly check CPU + family and model. + * sysdeps/i386.mk, control.in/main: switch i386 to gcc-4.4. Closes: + bug#583858. + + -- Aurelien Jarno Tue, 01 Jun 2010 05:50:51 +0200 + +eglibc (2.11.1-1) unstable; urgency=low + + [ Clint Adams ] + * New upstream release: + - Fixes a house of mind attack. Closes: bug#568488. + - Add the fallocate64() syscall. Closes: bug#568924. + - Add RES_USE_DNSSEC support. Closes: bug#569592. + - Don't abort in getifaddrs. Closes: bug#582383. + - Update debian/patches/all/local-pthread-manpages.diff + - Remove debian/patches/alpha/submitted-getsysstats.diff (merged) + - Remove debian/patches/alpha/submitted-includes.diff (merged) + - Remove debian/patches/alpha/submitted-lowlevellock.diff (merged) + - Remove debian/patches/alpha/submitted-procfs_h.diff (merged) + - Remove debian/patches/any/cvs-broken-dns.diff (merged) + - Remove debian/patches/any/cvs-getutmpx-compat.diff (merged) + - Remove debian/patches/any/cvs-ksm.diff (merged) + - Remove debian/patches/any/cvs-malloc_info-output.diff (merged) + - Remove debian/patches/any/cvs-nis-not-configured.diff (merged) + - Remove debian/patches/any/cvs-nptl-init.diff (merged) + - Remove debian/patches/any/cvs-resolv-edns0.diff (merged) + - Remove debian/patches/any/cvs-resolv-init.diff (merged) + - Remove debian/patches/any/cvs-resolv-uninitialized.diff (merged) + - Remove debian/patches/any/cvs-resolv-v6mapped.diff (merged) + - Remove debian/patches/any/cvs-sched_h.diff (merged) + - Remove debian/patches/any/local-dynamic-resolvconf.diff (merged) + - Update debian/patches/any/local-libgcc-compat-main.diff + - Remove debian/patches/any/submitted-confname.h.diff (merged) + - Remove debian/patches/any/submitted-getent-gshadow.diff (merged) + - Remove debian/patches/any/submitted-getaddrinfo-nodata.diff (merged) + - Remove debian/patches/any/submitted-gethostbyname3.diff (merged) + - Update debian/patches/any/submitted-missing-etc-hosts.diff. + - Remove debian/patches/arm/cvs-setjmp-longjmp-fpu.diff (merged) + - Update debian/patches/hppa/cvs-nptl-compat.diff. + - Update debian/patches/hppa/local-stack-grows-up.diff from + Carlos O'Donell. + - Remove debian/patches/hppa/submitted-pie.diff (merged) + - Remove debian/patches/hppa/submitted-sock_nonblock.diff (merged) + - Update debian/patches/hurd-i386/cvs-setsid.diff. + - Remove debian/patches/hurd-i386/cvs-termios-IXANY.patch (merged) + - Remove debian/patches/hurd-i386/submitted-getnprocs.diff (merged) + - Update debian/patches/hurd-i386/submitted-readlinkat.diff + - Remove debian/patches/ia64/cvs-memchr.diff (merged) + - Remove debian/patches/ia64/submitted-memchr.diff (merged) + - Remove debian/patches/ia64/submitted-siginfo.diff (merged) + - Update debian/patches/kfreebsd/local-readdir_r.diff. + - Remove debian/patches/locale/cvs-C-first_weekday.diff (merged) + - Update debian/patches/localedata/first_weekday.diff + - Update debian/patches/localedata/tailor-iso14651_t1.diff + - Remove debian/patches/mips/local-lazy-eval.diff (obsolete) + - Remove debian/patches/s390/submitted-siginfo.diff (merged) + - testsuite-checking/expected-results-ia64-linux-gnu-libc: update + - Update testsuite-checking/expected-results-sparc-linux-gnu-libc + - Update testsuite-checking/expected-results-sparcv9b-linux-gnu-sparcv9b + + * Add debian/patches/alpha/local-fcntl_h.diff. + * Add debian/patches/ia64/local-dlfptr.diff and + debian/patches/hppa/local-dlfptr.diff from Carlos O'Donnell. + * Add debian/patches/localedata/locale-hsb_DE.diff + + [ Aurelien Jarno ] + * Enable multi-arch. + * kfreebsd/local-sysdeps.diff: update to revision 3039 (from glibc-bsd). + * Add debian/patches/alpha/local-longjmp-chk.diff and + debian/patches/alpha/cvs-timer_settime.diff to fix FTBFS on alpha, and + debian/patches/alpha/local-lowlevellock.diff to fix the testsuite. + * Add debian/patches/mips/local-lowlevellock.diff to fix the testsuite + on mips. + * Re-enable the testsuite on mips/mipsel build daemons. + * Add debian/patches/arm/local-atomic.diff and + debian/patches/arm/local-lowlevellock.diff to fix the testsuite on arm. + * Add debian/patches/hppa/local-longjmp-chk.diff to fix FTBFS on hppa. + * Add debian/patches/hppa/local-lowlevellock.diff to fix the testsuite + on hppa. + * Add debian/patches/s390/cvs-makecontext.diff from upstream to fix + makecontext() on s390. + * Replace debian/patches/submitted/cvs-stat-issock.diff by the upstream patch + debian/patches/any/cvs-stat-issock.diff. + * Explictely call /sbin/start-stop-daemon in nscd.init. Closes: bug#575404. + * Add debian/patches/any/cvs-getaddrinfo.diff from upstream to not abort + the getaddrinfo loop on the first successful. + * Add debian/patches/any/cvs-umount-nofollow.diff from upstream to define + UMOUNT_NOFOLLOW. + * Add debian/patches/any/cvs-glob.diff from upstream to fix glob() with empty + pattern. + * Add debian/patches/submitted-tst-audit6-avx.diff to skip AVX tests if if + AVX is not available. + * Allow failures of the testsuite on HPPA until bugs are fixed: + - tstdiomisc.out (due to bug #582787 on gcc-4.4) + - tst-fork1.out (due to bug #561203 on linux-2.6) + * Add debian/patches/sh4/cvs-register_dump.diff from upstream to fix + iov[] size register-dump.h. + * Add debian/patches/hurd-i386/submitted-regex_internal.diff to fix FTBFS on + hurd-i386. + + [ Samuel Thibault ] + * debian/patches/hurd-i386/submitted-rtld_lock_recursive.diff: New patch to + fix elf/ build on hurd-i386. + * debian/patches/hurd-i386/local-longjmp_chk.diff: New patch to fix + debug/____longjmp_chk.S build on hurd-i386. + * Update debian/patches/hurd-i386/local-pthread.diff. + * Update debian/testsuite-checking/expected-results-i486-gnu-libc. + + [ Petr Salinger] + * define __rtld_lock_initialize also in linuxthreads + variant (enhance local-linuxthreads-weak.diff). + * allow failure of tst-longjmp_chk.out on GNU/kFreeBSD + * Add kfreebsd/local-dosavesse.diff, which does not work, + so rather use also added kfreebsd/local-nosavesse.diff + + -- Aurelien Jarno Sat, 29 May 2010 14:31:50 +0200 + +eglibc (2.11.1-0ubuntu9) maverick; urgency=low + + * Merge with Debian (r4267, trunk). + * Update to the eglibc 2.11 branch (r10490). + - patches/ia64/submitted-memchr.diff, patches/any/cvs-readdir_r.diff, + patches/any/submitted-confname.h.diff: Remove, applied upstream. + * Stop building libc6-i686 on architecture i386. + * Disable patches/any/arm-syscalls-out-of-line.diff to fix build + failure on armel. + + -- Matthias Klose Wed, 19 May 2010 12:21:27 +0200 + +eglibc (2.11.1-0ubuntu8) maverick; urgency=low + + * Apply from the 2.11-x86 branch: + - x86-64 SSE4 optimized memcmp. + * [armel] make syscalls out-of-line to improve debugging. LP: #571647 . + + -- Matthias Klose Sat, 01 May 2010 14:30:23 +0200 + +eglibc (2.11.1-0ubuntu7) lucid; urgency=low + + * Fix logic that tests if gdm needs a restart or a reload + to handle both the initscript and upstart cases. This fixes + a gdm restart during a hardy to lucid upgrade (LP: #568292) + + -- Michael Vogt Thu, 22 Apr 2010 10:40:19 +0200 + +eglibc (2.11.1-0ubuntu6) lucid; urgency=low + + [ Kees Cook ] + * [BZ #11333], Handle unnecessary padding in getdents64. LP: #392501. + + [ Matthias Klose ] + * Apply from the 2.11-x86 branch: + - Fix bugs in strcmp-sse4.S and strcmp-ssse3.S (H.J. Lu). LP: #563291. + - Fix bugs in memcpy-ssse3. LP: #560135. + * Assign global scope to RFC 1918 addresses in getaddrinfo(). Thanks + Tore Anderson. LP: #555210. + * Re-enable the local-ipv6-lookup patch. Addresses #417757. + + -- Matthias Klose Sun, 18 Apr 2010 00:05:05 +0200 + +eglibc (2.11.1-0ubuntu5) lucid; urgency=low + + * Apply from the 2.11-x86 branch: + - Append -U__i686 in ASFLAGS on x86. + - Backport 32bit SSSE3/SSE4 optimized memcmp and strcmp from trunk. + - Correct unwind info in strcmp-sse4.S. + - Fix sysdeps/i386/i686/multiarch/memcmp-ssse3.S. + * Extend logic to restart upstart based services on NSS upgrade. + LP: #505838. + + -- Matthias Klose Sun, 21 Mar 2010 15:11:00 +0100 + +eglibc (2.11.1-0ubuntu4) lucid; urgency=low + + * debian/patches/any/submitted-nis-shadow.diff: updated to fix + incorrect password overwriting (LP: #526530). + * debian/control.in/main: update already uploaded g++ version Depend. + + -- Kees Cook Wed, 03 Mar 2010 11:48:30 -0800 + +eglibc (2.11.1-0ubuntu3) lucid; urgency=low + + * Merge with Debian (r4205, trunk). + * Merge from debian-2.11 branch: + - Add debian/patches/arm/local-atomic.diff to fix the testsuite on arm. + + -- Matthias Klose Fri, 26 Feb 2010 05:14:17 +0100 + +eglibc (2.11.1-0ubuntu2) lucid; urgency=low + + * Update to the eglibc 2.11 branch (r9744). + + -- Matthias Klose Wed, 27 Jan 2010 11:40:07 +0100 + +eglibc (2.11.1-0ubuntu1) lucid; urgency=low + + * Build package as eglibc-2.11.1 (based on r9672). + * Merge with Debian (r4096, trunk). + + -- Matthias Klose Mon, 18 Jan 2010 17:48:39 +0100 + +eglibc (2.11~20100104-0ubuntu5) lucid; urgency=low + + * debian/*symbols*: Replace the upper dependency on (<< 2.11) with (<< 2.12). + dpkg-gensymbols didn't complain about missing symbols in earlier uploads. + LP: #508702. + * Add expected testsuite failures: + - tst-cputimer1.out (powerpc 64bit). + + -- Matthias Klose Sun, 17 Jan 2010 15:24:48 +0100 + +eglibc (2.11~20100104-0ubuntu4) lucid; urgency=low + + * Still build the package as a 2.11 pre-release; packages like + libglib2.0-0, libnih1 and upstart have 'libc6 (<< 2.11)' dependencies, + for whatever reason, but they already did fail to see the pre-release. + See LP: #508702. + * Backport from the trunk: Optimize 32bit memset/memcpy with SSE2/SSSE3 + (H.J. Lu). + + -- Matthias Klose Sun, 17 Jan 2010 12:42:12 +0100 + +eglibc (2.11~20100104-0ubuntu3) lucid; urgency=low + + * Upgrade the NSS min compat version to 2.11 in the maintainer scripts, to + force maintainer restarts. LP: #504847. + * debian/control: point Vcs-Bzr at a branch whose access rights match those + of the archive. + + -- Steve Langasek Fri, 08 Jan 2010 19:34:19 +0000 + +eglibc (2.11~20100104-0ubuntu2) lucid; urgency=low + + [ Matthias Klose ] + * Mark test-fenv.out as failing on powerpc again. + * Mark tst-backtrace2.out, tst-longjmp_chk2.out as failing on sparc64 + again. + * Call locale-gen --purge when updating from eglibc-2.10.x. LP: #504198. + * Merge with Debian (r4063, trunk, 2.10.2-4). + + [ Kees Cook ] + * debian/patches/ubuntu/*: update patch tags on patches recommended + to Debian (Debian bug 563637). + + -- Matthias Klose Thu, 07 Jan 2010 13:32:10 +0100 + +eglibc (2.11~20100104-0ubuntu1) lucid; urgency=low + + * Remove expected test failures: + - test-fenv.out (powerpc). + * Add expected testsuite failures: + - tst-cputimer1.out (powerpc 32bit), check-execstack.out (powerpc 64bit). + + -- Matthias Klose Wed, 06 Jan 2010 12:52:31 +0100 + +eglibc (2.11~20100104-0ubuntu1~ppa1) lucid; urgency=low + + * Test build, trunk 20100104 (r9600). + * Merge with Debian (r4046, trunk). + * Merge with Ubuntu 2.10.2-3ubuntu1. + * Don't apply the any/cvs-futimens.diff patch on powerpc. The powerpc + buildds still run linux-2.6.15. + + -- Matthias Klose Tue, 05 Jan 2010 10:45:37 +0100 + +eglibc (2.11~20091226-0ubuntu1~ppa3) lucid; urgency=low + + * Remove expected test failures: + - globtest.out (ix86). User and default group must exist in + /etc/{passwd,group}. + - tst-cputimer1.out, tst-nanosleep.out (powerpc). + - tst-cancel1.out, test-memchr.out (sparc, sparc64, sparcv9b). + * Add expected testsuite failures: + - tst-backtrace2.out, tst-longjmp_chk2.out (sparc64, sparcv9b). + + -- Matthias Klose Mon, 28 Dec 2009 01:44:39 +0100 + +eglibc (2.11~20091226-0ubuntu1~ppa2) lucid; urgency=low + + * ia64/submitted-siginfo.diff, s390/submitted-siginfo.diff: Remove, + applied upstream. + + -- Matthias Klose Sun, 27 Dec 2009 01:01:22 +0100 + +eglibc (2.11~20091226-0ubuntu1~ppa1) lucid; urgency=low + + * Merge with Debian (r4035, trunk). + * Test build, trunk 20091226 (r9539). + + -- Matthias Klose Sat, 26 Dec 2009 11:47:39 +0100 + +eglibc (2.11~20091201-0ubuntu1~ppa1) lucid; urgency=low + + * Test build, trunk 20091201 (r9153). + + -- Matthias Klose Tue, 01 Dec 2009 16:13:20 +0100 + +eglibc (2.11~20091028-0ubuntu1~ppa1) lucid; urgency=low + + * Test build, trunk 20091028 (r9153). + * Configure with --enable-multi-arch on ix86. + + -- Matthias Klose Wed, 28 Oct 2009 17:54:06 +0100 + +eglibc (2.10.2-9) unstable; urgency=low + + [ Aurelien Jarno ] + * Add powerpcspe port support. Closes: #579778. + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 3038 (from glibc-bsd). + Closes: #581545. + + [ Aurelien Jarno ] + * debian/control.in/libc: don't make libc0.1/0.3/6/6.1 depends on + ${misc:Depends} as suggested by lintian, as it is turned out into a + debconf depends. Closes: #581835. + * debian/debhelper.in/nscd.init: stop supporting the reload argument. + Closes: #578870. + * debian/script.in/nsscheck.sh: correctly detect stopped and running + services. Closes: #573247, #575868. + * debian/patches/mips/submitted-rld_map.diff: don't segfault for MIPS + binaries with RLD_MAP set to 0. Closes: #579917. + * Add debian/source/format and debian/source/lintian-overrides files. + + -- Aurelien Jarno Thu, 20 May 2010 12:09:58 +0200 + +eglibc (2.10.2-8) unstable; urgency=low + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 3036 (from glibc-bsd). + + [ Clint Adams ] + * Spanish debconf translation update from Omar Campagne Polaino. + closes: #579351. + * Add patches/arm/cvs-setjmp-longjmp-fpu.diff. closes: #580529 + ("setjmp/longjmp broken on ARM w/ FPU"). + + -- Clint Adams Tue, 27 Apr 2010 20:33:40 -0400 + +eglibc (2.10.2-7) unstable; urgency=low + + [ Samuel Thibault ] + * patches/hurd-i386/local-pthread.diff: Refresh patch. + * Update debian/testsuite-checking/expected-results-i486-gnu-libc. + * patches/hurd-i386/cvs-setsid.diff: Update to git version. + * patches/hurd-i386/local-locarchive.diff: New patch to fix installation of + locales-all. + * patches/hurd-i386/cvs-remove.diff: New upstream patch to fix remove() + on directory on non-Linux ports. + + [ Aurelien Jarno ] + * debian/control.in/*: add ${misc:Depends} to all binary packages. + * debian/*symbols*: simplify symbol files by using the new #PACKAGE# + feature. + * Bump to Standards-Version 3.8.4. + * Update patches/alpha/submitted-sock_nonblock.diff to also fix + SOCK_CLOEXEC. Closes: #569646. + * Update patches/hppa/submitted-sock_nonblock.diff to also fix + SOCK_CLOEXEC. + * Add patches/any/submitted-stat-issock.diff to define the S_ISSOCK + macro starting with POSIX 2001. Closes: #569517. + * scripts.in/nsscheck.sh: remove non-breaking space. Closes: #569701. + * rules.d/debhelper.mk: remove obsolete comment. Closes: #570946. + * Replace patches/sparc/local-sparcv9-memchr.diff by + patches/sparc/cvs-sparcv9-memchr.diff. + * Add patches/sparc/submitted-msgrcv.diff to fix msgrcv() on sparc64, + and with it fakeroot. + * Add patches/any/submitted-nptl-invalid-td.patch to also catch + uninitialized thread descriptors in INVALID_TD_P macro. Closes: + #571639. + * Fix lang_ab field in es_CR locales. Closes: #571755. + + [ Petr Salinger] + * kfreebsd/local-sysdeps.diff: update to revision 3034 (from glibc-bsd). + * any/local-linuxthreads-stacksize.diff: New patch to restrict + max stack size in threads + + [ Clint Adams ] + * Add any/local-gai-rfc1918-scope-global.patch. closes: #468801. + + -- Clint Adams Thu, 22 Apr 2010 09:38:27 -0400 + +eglibc (2.10.2-6) unstable; urgency=low + + [ Aurelien Jarno ] + * kfreebsd/local-sysdeps.diff: update to revision 2957 (from glibc-bsd). + * Don't run the testsuite in parallel, as it sometimes causes some failures + in some tests. + * Add patches/any/cvs-malloc_info-init.diff to fix malloc_info() with no + malloc() done. Closes: #562679. + * Add patches/sh4/submitted-set_fpscr.diff to add __set_fpscr() prototype. + Closes: #565369. + * debian/rules.d/build.mk: Add --with-pkgversion and --with-bugurl + arguments. + * Add patches/ia64/submitted-memchr.diff to fix memchr() overshoot on ia64. + Closes: #563882 + * Add patches/any/submitted-leading-zero-stack-guard.diff and + patches/any/submitted-stack-guard-quick-randomization.diff from Ubuntu and + Fedora to improve stack randomisation. Closes: #568488. + * Update es_CR locale from Marcelo Magallon. Closes: #567351. + * debian/script.in/nsscheck.sh: Only restart services that are currently + running. Closes: #528755. + * Move locales and locales-all to section localization. Closes: #568753. + + [ Samuel Thibault ] + * patches/hurd-i386/local-pthread.diff: New hurd-only patch to provide + LIBPTHREAD_SO and disable nscd. + * patches/hurd-i386/local-pthread_posix-option.diff: Tell glibc Makefiles that + we have a libpthread. + * testsuite-checking/expected-results-i486-linux-gnu-libc: Update results. + * patches/hurd-i386/submitted-posix_opt.h.diff: Update. + * patches/hurd-i386/submitted-sysvshm.diff: Resync. + * patches/hurd-i386/submitted-net.diff: New patch to factorize net/ files + between Linux and Hurd. + * patches/hurd-i386/submitted-getnprocs.diff: New patch to add get_nprocs() + and such weak aliases. + + -- Aurelien Jarno Sun, 07 Feb 2010 16:54:24 +0100 + +eglibc (2.10.2-5) unstable; urgency=low + + [ Petr Salinger] + * Update kfreebsd/local-no-SOCK_NONBLOCK.diff to cvs-resolv-* changes. + Move it into any/local-no-SOCK_NONBLOCK.diff, as it is used also on hurd. + Closes: #564008. + + [ Samuel Thibault ] + * patches/hurd-i386/submitted-posix_opt.h.diff: New patch to update standard + macros in posix_opt.h. + * patches/hurd-i386/local-pthread_posix-option.diff: Refresh and update + standard macros in posix_opt.h. + * patches/hurd-i386/submitted-sysvshm.diff: Add standard macro _XOPEN_SHM in + posix_opt.h. + * patches/hurd-i386/local-tls-support.diff: Use kern_return_t instead of + error_t to avoid a dependency on a GNU-specific type. + * patches/hurd-i386/submitted-getcwd.diff: renamed to cvs-getcwd.diff since + merged upstream. + * patches/hurd-i386/submitted-setsid.diff: renamed to cvs-setsid.diff since + merged upstream. + + [ Aurelien Jarno ] + * Fix sparc64 build. + + -- Aurelien Jarno Thu, 07 Jan 2010 20:57:49 +0100 + +eglibc (2.10.2-3ubuntu1) lucid; urgency=low + + * Merge with Debian (r4046, trunk). + + -- Matthias Klose Mon, 04 Jan 2010 10:10:22 +0100 + +eglibc (2.10.2-4) unstable; urgency=low + + [ Samuel Thibault ] + * testsuite-checking/expected-results-i486-linux-gnu-libc: Add + tst-atime.out failure. + + [ Aurelien Jarno ] + * Also build a libc6-sparcv9b package on sparc64. + * Disable debian/patches/any/cvs-futimens.diff. Addresses: #563726, + #563754. + * Add debian/patches/localedata/locale-et_EE.diff to change weekday + and workday to Monday. Closes: #563636. + * Add debian/patches/any/cvs-resolv-init.diff to fix mixing IPv4 and + IPv6 name server in resolv.conf. + * Add debian/patches/any/cvs-resolv-uninitialized.diff to fix an + uninitialized variable in resolv code. + * Add debian/patches/any/cvs-resolv-bindv6only.diff to not use + IPV4-mapped addresses in the resolver code. Closes: #563552. + * Add debian/patches/any/cvs-resolv-edns0.diff to handle overly large + answer buffers in resolver. + * Add debian/patches/any/cvs-resolv-v6mapped.diff to fix lookup failure + with IPv6 mapping enabled and big answers. Closes: #558984. + * Add debian/patches/any/submitted-nis-shadow.diff to remove encrypted + passwords from passwd entries, and add them in shadow entries. + Closes: #560333. + + [ Petr Salinger] + * kfreebsd/local-sysdeps.diff: update to revision 2907 (from glibc-bsd). + + -- Aurelien Jarno Wed, 06 Jan 2010 22:18:19 +0100 + +eglibc (2.10.2-3) unstable; urgency=low + + [ Aurelien Jarno ] + * Update from the latest SVN, branch eglibc-2_11: + - Remove any/cvs-malloc-check.diff (merged upstream). + * debhelper.in/libc.postinst: also restart incron on upgrade. Closes: + #557801. + * debhelper.in/libc.postinst: restart the services instead of stopping + them and then starting them again. Closes: #211784. + * Use gcc/g++-4.4 on hppa, hurd-i386, mips and mipsel. + * Mention EGLIBC in packages description. Closes: #559121. + * Add support for sparc64 architecture. + * debian/sysdeps/mips.mk, debian/sysdeps/mipsel.mk: remove hack to support + buildds kernels now that they have been upgraded. + * debian/control.in/main: add a Homepage: pseudo header. Closes: #561034. + * debian/local/manpages/gai.conf.5: fix a typo. Closes: #560144. + * Replace debian/any/submitted-nis-not-configured.diff by upstream patch + debian/any/cvs-nis-not-configured.diff. + * Add debian/patches/any/local-ntp-update.diff to partially update the NTP + API, backported from upstream. Closes: #559482. + * Add debian/patches/any/cvs-malloc_info-output.diff from upstream to fix + malloc_info() output. Closes: #562678. + * Add debian/patches/any/cvs-futimens.diff from upstream to correctly handle + AT_FDCWD in futimens(). + + [ Samuel Thibault ] + * testsuite-checking/expected-results-i486-linux-gnu-libc: Add hurd-i386 + testsuite results. + * sysdeps/hurd.mk: Enable testsuite. + * patches/hurd-i386/submitted-getcwd.diff: Add patch to fix duplicate port + deallocation. + * patches/hurd-i386/submitted-setsid.diff: Add patch to fix bogus port + deallocation. + + [ Petr Salinger] + * kfreebsd/local-sysdeps.diff: update to revision 2904 (from glibc-bsd). + + -- Aurelien Jarno Sat, 02 Jan 2010 13:07:44 +0100 + +eglibc (2.10.2-2ubuntu4) lucid; urgency=low + + * Update to r9527 from the eglibc-2.10 branch. + - LP: #425723. + * Merge with Debian (r4032, trunk). + * Rebuild to link with --hash-style=both on armel. + + -- Matthias Klose Wed, 23 Dec 2009 21:40:58 +0100 + +eglibc (2.10.2-2ubuntu3) lucid; urgency=low + + * Mark tst-eintr1 as failing on armel; fails on the buildd with -mthumb, + not reproducible with a local build. + + -- Matthias Klose Mon, 14 Dec 2009 17:34:20 +0100 + +eglibc (2.10.2-2ubuntu2) lucid; urgency=low + + * glibc-doc: Fix installation of manual files. + + -- Matthias Klose Mon, 30 Nov 2009 16:33:20 +0100 + +eglibc (2.10.2-2ubuntu1) lucid; urgency=low + + * Merge with Debian (r4021, trunk). + + -- Matthias Klose Sat, 28 Nov 2009 17:48:13 +0100 + +eglibc (2.10.2-2) unstable; urgency=low + + [ Carlos O'Donell] + * debian/patches/hppa/cvs-nptl-compat.diff: new version to fix + pthread structures alignment on hppa. + + [ Aurelien Jarno ] + * debian/control: bump libc-bin breaks on libc0.1/0.3/6/6.1 to (<< 2.10). + Closes: #556945. + * patches/localedata/submitted-pt_BR.diff: new patch to fix the thousand + separator on pt_BR locale. Closes: #474479. + * debhelper.in/locales.postinst: if an selected entry is present more than + once, only uncomment the first one. Closes: #529368. + * patches/any/submitted-gethostbyname3.diff: return an error if the + nameserver timeouts. Closes: #499781. + + -- Aurelien Jarno Tue, 24 Nov 2009 06:12:57 +0100 + +eglibc (2.10.2-1) unstable; urgency=low + + [ Aurelien Jarno ] + * New upstream minor release. + - fix build timeout on SH4. Closes: #552407. + - disabled patches/svn-updates.diff. + - remove patches/powerpc/cvs-readahead.diff (merged). + - remove patches/any/submitted-libgcc_s.so.diff (merged). + - remove patches/any/cvs-preadv-pwritev.diff (merged). + - remove patches/any/cvs-getaddrinfo-nss-notfound.diff (merged). + * patches/ia64/cvs-memchr.diff: new patch from upstream replacing + patches/ia64/submitted-memchr.diff. + * patches/any/cvs-malloc-check.diff: new patch from upstream to fix bugs + with MALLOC_CHECK. Closes: #557158. + * patches/any/cvs-ksm.diff: add support to KSM, define MADV_MERGEABLE and + MADV_UNMERGEABLE. Closes: #556631. + * Replace patches/locale/fix-C-first_weekday.diff by upstream version + patches/locale/cvs-C-first_weekday.diff. Closes: #556884. + * rules.d/debhelper.mk: don't use --strip-unneeded when stripping .o + objects. Closes: #556951. + * patches/any/submitted-bits-fcntl_h-at.diff: new patch to move AT_* + constants from to . Closes: #555303. + * Replace patches/any/submitted-sched_h.2.diff by upstream version + patches/any/cvs-sched_h.diff. + * Use gcc/g++-4.4 on sparc. + * patches/any/submitted-nis-not-configured.diff: fix getaddrinfo() if + NIS is not configured. Fixes CVE-2010-0015. Closes: #556600. + * patches/any/submitted-getaddrinfo-nodata.diff: new patch from Michael + Stone to fix getaddrinfo() if a plugin returns TRY_AGAIN or NO_DATA. + Closes: #557596. + + [ Carlos O'Donell] + * patches/hppa/local-stack-grows-up.diff: new version. + + [ Petr Salinger] + * kfreebsd/local-sysdeps.diff: update to revision 2859 (from glibc-bsd). + Closes: #557248. + + -- Aurelien Jarno Mon, 23 Nov 2009 09:46:23 +0100 + +eglibc (2.10.1-7) unstable; urgency=low + + [ Aurelien Jarno ] + * patches/all/local-ldd.diff: new patch to handle the case where ld.so is + not executable (wrong architecture), and always trace dynamic library + dependencies through the dynamic linker. Closes: #502189, + #552518, #499016. + * Strip *.o files manually (dh_strip does not do it) to prevent + leakage of the build directory (has been lost in a merge). + * script.in/nsscheck.sh: fix call to invoke-rc.d. Closes: #555463. + * patches/ia64/submitted-memchr.diff: fix memchr() when data is shorter + than software pipeline. + * Bump to Standards-Version 3.8.3. + * Re-enable PIE on mips and build-depends on binutils (>= 2.20-3). + * Build-depends on g++-4.4 (>= 4.4.2-2) and use gcc-4.4 on armel. + * libc-bin-dev: recommends manpages-dev. Closes: #485608. + * Generate /usr/lib{,32,64}/gconv/gconv-modules.cache at build time + instead of during package installation. Closes: #548042. + * debhelper.in/locales-all.prerm: remove /usr/lib/locale on removal, to + make puiparts happy. + + [ Carlos O'Donell] + * patches/hppa/local-stack-grows-up.diff: fix pthread stack related + functions when the stack grows up. Closes: #553722. + + -- Aurelien Jarno Thu, 12 Nov 2009 12:53:04 +0100 + +eglibc (2.10.1-6) unstable; urgency=high + + [ Aurelien Jarno ] + * Don't ask to stop gdm before an upgrade, but run reload in the postint + Closes: #553362. + * patches/powerpc/cvs-readahead.diff: fix readahead on PowerPC. + * patches/any/cvs-preadv-pwritev.diff: fix preadv, pwritev and fallocate + for-D_FILE_OFFSET_BITS=64. Closes: #554608. + * patches/any/submitted-sched_h.2.diff: allow const argument to CPU_ISSET() + Closes: #554901. + * kfreebsd/local-sysdeps.diff: update to revision 2819 (from glibc-bsd). + * patches/any/submitted-etc-resolv.conf.diff: also handle case when the file + is present, but a nameserver entry is missing. Closes: #552010. + + -- Aurelien Jarno Sun, 08 Nov 2009 18:56:15 +0100 + +eglibc (2.10.1-5) unstable; urgency=low + + [ Samuel Thibault ] + * patches/hurd-i386/local-disable-ioctls.diff: New patch to disable some + non-working ioctls. + * patches/hurd-i386/local-pthread_types.diff: Fix path typo. + + [ Aurelien Jarno ] + * Move xz-utils to Build-Depends from Build-Depends-Indep. + + -- Aurelien Jarno Sun, 01 Nov 2009 17:19:00 +0100 + +eglibc (2.10.1-4) unstable; urgency=low + + [ Aurelien Jarno ] + * patches/any/submitted-localedef-mmap.diff: new patch to cope with + different mmap alignment restrictions between MMAP_SHARED and + MMAP_PRIVATE. On SPARC64, MMAP_SHARED implies a 16kB alignment (L1 + D-Cache size), while MMAP_PRIVATE implies a 8kB alignment (page + size). Closes: #552233. + * patches/any/submitted-confname.h.diff: new patch to fix build of + bits/confname.h with -pedantic-errors. Closes: #552819. + * kfreebsd/local-sysdeps.diff: update to revision 2817 (from glibc-bsd). + Fixes . Closes: #552138. + * Disable PIE on MIPS/MIPSEL. + * Replace patches/s390/submitted-getutmpx.diff by upstream version + (patches/any/cvs-getutmpx-compat.diff). + * Don't include debian/ and stamp-dir/ in eglibc source tarball. Closes: + #553053. + * Switch to the more common xz format from lzma for eglibc-source + tarball. + + -- Aurelien Jarno Fri, 30 Oct 2009 09:48:09 +0100 + +eglibc (2.10.1-3) unstable; urgency=low + + [ Samuel Thibault ] + * patches/hurd-i386/local-bigmem.diff: Fix patch. + + [ Aurelien Jarno ] + * patches/s390/submitted-getutmpx.diff: new patch to fix getutmpx() on + s390. Closes: #544838. + * patches/any/submitted-missing-etc-resolv.conf.diff: new patch to fix + name resolution with empty or missing /etc/resolv.conf. Closes: + #552453. + * debian/sysdeps/i386.mk: build with gcc-4.3 on i386. Closes: #551903. + + -- Aurelien Jarno Mon, 26 Oct 2009 19:40:34 +0100 + +eglibc (2.10.1-2) unstable; urgency=low + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 2806 (from glibc-bsd). + * Drop kfreebsd/local-sysdeps-2.10.diff (merged in local-sysdeps.diff). + + [ Samuel Thibault ] + * patches/hurd-i386/local-bigmem.diff: New patch to fix dl.so crash when + running on GNU Mach with VM_MAX_ADDRESS < 0xc0000000. + + [ Aurelien Jarno ] + * patches/any/submitted-missing-etc-hosts.diff: return HOST_NOT_FOUND + instead of NO_DATA. Closes: #551622, #551760, #551879, #552010. + * Restart NSS related services after upgrade. Closes: #551971, #551885. + * testsuite-checking/*kfreebsd*: the *at syscalls emulation is not + working under all conditions, allow failure of related tests. That + should be removed after switching to kernel 8.0. + + -- Aurelien Jarno Fri, 23 Oct 2009 08:48:29 +0200 + +eglibc (2.10.1-0ubuntu15) karmic; urgency=low + + * Don't fail the build explicitely on any architecture (used for ppa + uploads to save buildd resources). + + -- Matthias Klose Tue, 06 Oct 2009 23:59:12 +0200 + +eglibc (2.10.1-0ubuntu14) karmic; urgency=low + + * Tighten build dependencies for binutils and gcc-4.4 with fix + for PR debug/40521. LP: #440172. + * On armel, don't explicitely build with -fno-dwarf2-cfi-asm. + * On armel, remove check-textrel.out test from expected to fail. + + -- Matthias Klose Tue, 06 Oct 2009 23:48:37 +0200 + +eglibc (2.10.1-0ubuntu13) karmic; urgency=low + + * On armel build with -fno-dwarf2-cfi-asm (will be the default with + gcc-4.4 (>= 4.4.1-5ubuntu1). + * Build-depend on binutils fixing PR ld/9863. + + -- Matthias Klose Thu, 01 Oct 2009 17:22:58 +0200 + +eglibc (2.10.1-0ubuntu12) karmic; urgency=low + + [ Steve Langasek ] + * Restore missing depends/conflicts/replaces handling for findutils and + belocs-locales-bin, lost in the latest merge. + * Move ldconfig trigger handling to libc-bin postinst, since that's where + ldconfig and the trigger are actually located. + * Drop debian/local/etc_init.d from the source, which is no longer shipped + in the package having been dropped in Debian + * debian/rules.d/debhelper.mk: revert breakage from Debian experimental; + pulling in file substitutions from script.in has to happen before + substituting other tokens, since script.in/nohwcap.sh contains other + tokens that have to be replaced. LP: #427288. + + [ Matthias Klose ] + * Don't apply hppa patches, don't apply + any/local-linuxthreads-kill_other.diff. + + -- Steve Langasek Mon, 14 Sep 2009 16:16:10 -0700 + +eglibc (2.10.1-0ubuntu11) karmic; urgency=low + + * Fix merge error resulting in a build failure of glibc-doc. + + -- Matthias Klose Sat, 12 Sep 2009 14:32:03 +0200 + +eglibc (2.10.1-0ubuntu10) karmic; urgency=low + + [ Matthias Klose ] + * Merge with Debian (r3833, eglibc-2.10 branch). + * Don't build libc6-vfp anymore. + * Update from the eglibc 2.10 maintainance branch (rev 8895). + - Remove patches/any/submitted-libgcc_s.so.diff. + * Move the ldconfig trigger from libc6 to libc-bin. + + [ Loïc Minier + * Update testsuite for armel since the real FPU on the buildds passes more + tests than the software emulation. + * Fix Vcs-Bzr URL to use https. + + -- Matthias Klose Sat, 12 Sep 2009 11:45:41 +0200 + +eglibc (2.10.1-0ubuntu9) karmic; urgency=low + + * debian/sysdeps/i386.mk: cherrypick fix from Debian, lost somewhere along + the way, that prevents /etc/ld.so.conf.d/xen.conf being added to the + libc6-xen package. LP: #427288. This still leaves us with a delta + relative to the Debian conffile name, which we ought to clean up at some + later date. + + -- Steve Langasek Sat, 12 Sep 2009 00:31:45 +0000 + +eglibc (2.10.1-0ubuntu8) karmic; urgency=low + + * Refresh debian/patches/ubuntu/retain-fatal-msg.diff to match the + final upstream commit. + + -- Kees Cook Fri, 28 Aug 2009 09:54:10 -0700 + +eglibc (2.10.1-0ubuntu7) karmic; urgency=low + + * patches/ubuntu/submitted-leading-zero-stack-guard.diff: require that + the stack guard start with a zero-byte to protect against str* + function more completely (LP: #413278). + + -- Kees Cook Wed, 12 Aug 2009 16:35:43 -0700 + +eglibc (2.10.1-0ubuntu6) karmic; urgency=low + + * patches/all/submitted-missing-etc-hosts.diff: a missing /etc/hosts should + be treated as a simple "not found", not as an internal error. + LP: #408901. + + -- Steve Langasek Tue, 11 Aug 2009 19:58:18 +0000 + +eglibc (2.10.1-0ubuntu5) karmic; urgency=low + + * Expected testsuite results on powerpc64: Mark test-fenv.out as + failing again. + + -- Matthias Klose Fri, 07 Aug 2009 12:05:04 +0200 + +eglibc (2.10.1-0ubuntu4) karmic; urgency=low + + * Expected testsuite results on powerpc: Mark tst-cputimer1.out as failing. + + -- Matthias Klose Fri, 07 Aug 2009 01:25:47 +0200 + +eglibc (2.10.1-0ubuntu3) karmic; urgency=low + + * Expected testsuite results on powerpc64: Mark test-fenv.out and + tst-timer5.out as succeeding, tst-cputimer1.out as failing. + + -- Matthias Klose Thu, 06 Aug 2009 18:14:20 +0200 + +eglibc (2.10.1-0ubuntu2) karmic; urgency=low + + * Merge with Debian (r3733, eglibc-2.10 branch). + * Update to r8758 from the eglibc-2.10 branch. + * Remove testcases from expected results, which don't fail anymore (ia64). + * Mark test-memchr.out as failing on sparc. + * patches/any/local-ipv6-lookup.diff: Don't apply. LP: #239701, #374674. + * Work around Ubuntu buildd limitation: allow just 2.6.15 for libc6 + installation, although 2.6.18 is required for some patches (requested by + soyuz maintainers). + + -- Matthias Klose Tue, 04 Aug 2009 00:36:31 +0200 + +eglibc (2.10.1-0ubuntu1) karmic; urgency=low + + * Rebuild .orig.tar.gz, based on revision 8733 of the eglibc-2.10 branch. + * Merge with Debian (r3733, eglibc-2.10 branch). + + -- Matthias Klose Mon, 03 Aug 2009 10:17:12 +0200 + +eglibc (2.10.1-0ubuntu1~ppa11) karmic; urgency=low + + * Merge with Debian (r3719, eglibc-2.10 branch). + + -- Matthias Klose Thu, 30 Jul 2009 19:09:16 +0200 + +eglibc (2.10.1-0ubuntu1~ppa10) karmic; urgency=low + + * Merge with Debian (r3641, eglibc-2.10 branch). + * Mark test cases as failing: + - armel: check-textrel + - sparc: tst-cancel1 + + -- Matthias Klose Fri, 24 Jul 2009 16:19:39 +0200 + +eglibc (2.10.1-0ubuntu1~ppa9) karmic; urgency=low + + * Update to r8680 from the eglibc-2.10 branch. + * Remove tst-fgetwc.out testcase as failing on all architectures; + fixed by update to the current eglibc-2.10 branch. + * Merge with Debian (r3625, eglibc-2.10 branch). + * Build using GCC-4.4. + + -- Matthias Klose Sat, 18 Jul 2009 18:12:57 +0200 + +eglibc (2.10.1-0ubuntu1~ppa8) karmic; urgency=low + + * Mark tst-fgetwc.out testcase as failing on all architectures; remove + testcases from expected results, which don't fail anymore. + + -- Matthias Klose Wed, 08 Jul 2009 15:39:50 +0200 + +eglibc (2.10.1-0ubuntu1~ppa7) karmic; urgency=low + + * Merge with Debian (r3600, eglibc-2.10 branch). + * Drop changes for Debian's /emul/ia32-linux to /usr/lib32 transition. + + -- Matthias Klose Tue, 07 Jul 2009 12:16:06 +0200 + +eglibc (2.10.1-0ubuntu1~ppa6) karmic; urgency=low + + [ Matthias Klose ] + * Merge with Debian (r3562, eglibc-2.10 branch). + * Drop changes for Debian's /emul/ia32-linux to /usr/lib32 transition. + + -- Matthias Klose Thu, 25 Jun 2009 10:14:41 +0200 + +eglibc (2.10.1-0ubuntu1~ppa4) UNRELEASED; urgency=low + + * Add debian/patches/ubuntu/retain-fatal-msg.diff: attempt to retain the + assert and internal error messages so they can be examined during core + dump analysis. + + -- Kees Cook Tue, 02 Jun 2009 11:56:21 -0700 + +eglibc (2.10.1-0ubuntu1~ppa3) karmic; urgency=low + + [ Kees Cook ] + * debian/patches/ubuntu/stack-guard-quick-randomization.diff: Update + and reenable. + + [ Matthias Klose ] + * Merge with Debian (r3498, eglibc-2.10 branch). + * Recognize sparcv9v2 and sparc64v2 as valid machine names. The configure.in + still supports these machines, and the Debian build system misuses this as + the name of the build directory. + * Build with -fno-stack-protector -U_FORTIFY_SOURCE on ia64. + + -- Matthias Klose Wed, 13 May 2009 10:58:16 +0200 + +eglibc (2.10.1-0ubuntu1~ppa2) karmic; urgency=low + + * Fix build failure on ia64. LP: #375509. + + -- Matthias Klose Tue, 12 May 2009 18:16:44 +0200 + +eglibc (2.10.1-0ubuntu1~ppa1) karmic; urgency=low + + * WARNING: Ignore regressions in the testsuite, install at your own risk. + + * Build .orig.tar.gz from eglibc-2_10 branch (r8444). + * Merge with Debian (r3494, eglibc-2.10 branch); remaining changes: + - Packaging: + + External tzdata + + Addition of Niagara and Niagara2 optimised libraries + + GFDL Documentation added back in, build glibc-doc from this source. + + Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + + Use dpkg triggers for ldconfig + + Do not die if extra libc libraries or symlinks found + + Do not do a test run of nscd when starting + + Only apply patches we actually use in Ubuntu + + Use /lib and /usr/lib for amd64 + + amd64 biarch is i686, not i486. + + Non-optimised i386 glibc is Xen-friendly. + + Support sparcv9v, v9v2, 64b, 64v, 64v2 + + Add support for lpia. + + Use .conf for files in /etc/ld.so.conf.d. + + Add vfp pass for armel. + + Set DEB_BUILD_OPTIMIZING_SIZE=0 on lpia. + - Patches: + + Applied any/local-ipv6-lookup. + + Not applied any/local-sysctl. + + Applied debian/patches/all/fedora-nss_dns-gethostbyname4-disable.diff. + + Updated arm/local-no-hwcap. + + Don't declare the fwrite and fwrite_unlocked functions with + __attribute__((warn_unused_result)). + * debian/patches/arm/local-memset.diff: Remove, applied upstream. + * debian/patches/arm/local-memset.diff: Likewise. + * debian/patches/ubuntu/stack-guard-quick-randomization.diff: Disable. + * debian/patches/ubuntu/no-sprintf-pre-truncate.diff: Update. + + -- Matthias Klose Tue, 12 May 2009 15:36:04 +0200 + +eglibc (2.10-0exp1) experimental; urgency=low + + [ Aurelien Jarno ] + * New upstream release. + - Fix C++ declaration of string functions. Closes: #496763. + - Add Handling for group shadow files. Closes: #519479. + - Use AT_RANDOM for randomized stack protector value. Closes: + #533077. + - don't trigger assertion on __pthread_mutex_lock anymore. Closes: + #479952. + - Fix week specifier in en_GB. Closes: #511474. + - Update sys/timex.h. Closes: #550857. + - debian/copyright, debian/*symbols*, debian/shlibver, + debian/locales-depver, debian/debhelper.in/*.lintian: upgrade + to 2.10. + - alpha has been moved to ports, update debian/sysdeps/alpha.mk and + debian/patches/alpha/* accordingly. + - Remove debian/patches/arm/submitted-setjmp.diff (merged). + - Remove debian/patches/arm/submitted-fpu_control_h.diff (merged). + - Remove debian/patches/hppa/cvs-tsd.diff (merged). + - Remove debian/patches/hppa/cvs-nptl.diff (merged). + - Remove debian/patches/hurd-i386/cvs-resource-prio.diff (merged). + - Remove debian/patches/hurd-i386/cvs-hurdsig-fix.diff (merged). + - Remove debian/patches/hurd-i386/cvs-net-headers.diff (merged). + - Remove debian/patches/hurd-i386/cvs-report-wait-fix.diff (merged). + - Remove debian/patches/hurd-i386/cvs-get_pc_thunk.diff (merged). + - Remove debian/patches/hurd-i386/cvs-strerror_l.diff (merged). + - Remove debian/patches/hurd-i386/cvs-rtld.diff (merged). + - Update debian/patches/hurd-i386/local-tls-support.diff. + - Update debian/patches/hurd-i386/submitted-extern_inline.diff. + - Update debian/patches/hurd-i386/local-atomic-no-multiple_threads.diff. + - Remove debian/patches/mips/cvs-context.diff (merged). + - Remove debian/patches/sparc/cvs-siginfo.diff (merged). + - Remove debian/patches/all/submitted-readme-version.diff (merged). + - Remove debian/patches/any/submitted-install-map-files.diff (merged). + - Remove debian/patches/any/cvs-pthread_h.diff (merged). + - Remove debian/patches/any/local-bashisms.diff (merged). + - Remove debian/patches/any/cvs-bz7058-nss_nss-nis.diff (merged). + - Remove debian/patches/any/cvs-iconv-utf16.diff (merged). + - Remove debian/patches/any/submitted-cross-zic.diff (merged). + - Remove debian/patches/any/cvs-binutils_2.20.diff (merged). + - Remove debian/patches/any/submitted-nss-nsswitch.diff (merged). + - Remove debian/patches/any/cvs-bz9706-nss_nss-files_files-parse.diff + (merged). + - Remove debian/patches/any/cvs-broken-dns.diff. + - Remove debian/patches/any/cvs-bz9697-posix-regcomp.diff (merged). + - Remove debian/patches/any/cvs-bz697-posix-regexec.diff (merged). + - Remove debian/patches/any/submitted-broken-dns.diff (merged). + - Remove debian/patches/any/submitted-mount_h.diff (merged). + - Update debian/patches/any/submitted-futex_robust_pi.diff. + - Update debian/patches/any/local-dynamic-resolvconf.diff. + - Update debian/patches/any/local-libgcc-compat-main.diff. + - Update debian/patches/any/local-libgcc-compat-ports.diff. + - Update debian/patches/any/local-no-pagesize.diff. + - Remove debian/patches/any/submitted-date-and-unknown-tz.diff (merged). + - Remove debian/patches/any/cvs-sunrpc-license.diff (merged). + - Remove debian/patches/any/submitted-tst-cpucount.diff (merged). + - Remove debian/patches/any/submitted-signalfd-eventfd.diff (merged). + - Remove debian/patches/any/cvs-unsetenv.diff (merged). + - Remove debian/patches/localedata/mt_MT_euro.diff (merged). + - Remove debian/patches/localedata/submitted-bz9731-el_CY_euro.diff + (merged). + - Remove debian/patches/localedata/sk_SK_euro.diff (merged). + - Remove debian/patches/localedata/submitted-bz9730-locale-sv_FI.diff + (merged). + - Remove debian/patches/localedata/cvs-el_CY-el_GR-frac_digits.diff + (merged). + - Update debian/patches/localedata/sort-UTF8-first.diff. + - Update debian/patches/localedata/fr_CA-first_weekday.diff + - Update debian/patches/localedata/fr_BE-first_weekday.diff + - Update debian/patches/localedata/cy_GB-first_weekday.diff + - Remove debian/patches/localedata/submitted-bz9835-en_GB-first_day.diff + (merged). + - Update debian/patches/localedata/first_weekday.diff + - Update debian/patches/localedata/fr_LU-first_weekday.diff + - Update debian/patches/localedata/fr_CH-first_weekday.diff + - Remove debian/patches/sh4/cvs-headers-update.diff (merged). + - Remove debian/patches/any/local-revert-3270.diff (fixed upstream). + * Remove localedata/locale-fr_FR.diff as coreutils has been fixed. + * Add debian/patches/any/submitted-autotools.diff to update config.guess + and config.sub. + * Remove debian/patches/powerpc/local-sysconf.diff, as it only concerns + kernel that are not supported anymore. + * Add debian/patches/ia64/submitted-sysconf.diff to fix sysconf() on ia64. + * Add debian/patches/alpha/submitted-getsysstats.diff, + debian/patches/alpha/submitted-includes.diff and + debian/patches/alpha/submitted-lowlevellock.diff to partially fix FTBFS + on alpha. + * Add debian/patches/any/local-linuxthreads-unwind.diff to fix exception + handling with linuxthreads. + * Add debian/patches/any/cvs-nptl-init.diff to allow overwriting + architectures init.c in csu and nptl individually. + * Add debian/patches/any/submitted-accept4-hidden.diff to fix build + on non Linux architectures. + * Add debian/patches/kfreebsd/local-sysdeps-2.10.diff to update sysdeps + for glibc 2.10 on GNU/kFreeBSD. + * Add debian/patches/alpha/submitted-rtld-fPIC.diff to fix build on alpha. + * Add debian/patches/any/submitted-getent-gshadow.diff to add gshadow + support to getent. + * debian/rules.d/tarball.mk: store the checkout revision in the tarball + (file .svn-revision). + * debian/rules.d/tarball.mk: add an "update-from-upstream-svn" rule to + automatically update debian/patches/svn-updates.diff. + * patches/ia64/submitted-libm.diff: new patch to fix errors in the + math testsuite on ia64. + * Use gcc 4.4 by default, except on armel, hppa, mips, mipsel, sparc and + hurd-i386. + * Update to upstream revision 8758. + * patches/any/submitted-missing-etc-hosts.diff: new patch from Steve + Langasek to treat a missing /etc/hosts as a simple "not found", not as + an internal error. Closes: bug#539950. + * libc.postinst: only call telinit on Linux as originally. + * Fix package name in alpha/ia64 private symbols versioning. + * Add patches/sparc/local-sparcv9-memchr.diff to fix test-memchr. + + [ Petr Salinger ] + * Add kfreebsd/local-no-SOCK_NONBLOCK.diff to fix build on GNU/kFreeBSD. + + [ Samuel Thibault ] + * Add debian/patches/hurd-i386/local-_dl_random.diff to fix build on + hurd-i386. + * Add debian/patches/hurd-i386/local-unwind-resume.diff to fix build on + hurd-i386. + * Fix debian/patches/hurd-i386/local-tls-support.diff to align up includes + on Linux, to fix build. + + [ Carlos O'Donell ] + * Add hppa/cvs-nptl-compat.diff to keep ABI compatibility between + linuxthreads and NPTL on HPPA. + * sysdeps/hppa.mk: switch to NPTL. Closes: bug#538513. + * testsuite-checking/expected-results-hppa-linux-gnu-libc: update. + + -- Aurelien Jarno Sun, 18 Oct 2009 18:35:20 +0200 + +eglibc (2.9-27) unstable; urgency=low + + [ Aurelien Jarno ] + * Extend description of libc-bin, patch by Christoph Berg. Closes: + bug#544389. + * Strip *.o files manually (dh_strip does not do it) to prevent + leakage of the build directory. + * libc.postinst: re-add "telinit u", removed by accident in version + 2.9-24. Closes: bug#545179. + * nscd.init: set PATH to "/sbin:/usr/sbin:/bin:/usr/bin". Closes: + bug#544942. + * nscd.conf.5: add documentation for max-db-size and auto-propagate + options. Closes: bug#544544. + * Merge from the multiarch branch: + - allow to specify libdir and slibdir also for the main flavor. + - use real dependencies between the build_* and binaryinst_* + targets. + - simplify clean target. + * Set the minimum kernel version to 6.0.0 for biarch library on + kfreebsd-amd64 to match the main library. + * alpha/submitted-sock_nonblock.diff: adjust patch location (alpha is + still a main architecture in glibc 2.9). Closes: bug#540871. + + [ Samuel Thibault ] + * debian/debhelper.in/libc.install: Install libc/*-gnu*/ instead of + libc/*-*-gnu*/, to fix FTBFS on hurd-i386 due to it now being i486-gnu/. + * debian/patches/hurd-i386/submitted-null-pathname.diff: New patch to fix + chdir("") and chroot("") into returning ENOENT. + * debian/patches/hurd-i386/submitted-sbrk.diff: New patch to fix sbrk beyond + 128MB. + * debian/patches/hurd-i386/local-thread-cancel.diff: New patch to fix ext2fs + crash. + * debian/patches/hurd-i386/submitted-readlinkat.diff: New patch to add + support for readlinkat(), to fix insserv build. + * debian/patches/hurd-i386/cvs-termios-IXANY.patch: New patch to + define IXANY in XOpen environment too, to fix libgphoto2 build. + * debian/patches/hurd-i386/submitted-SOL_IP.patch: New patch to add SOL_IP + definition, to fix directfb build. + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 2779 (from glibc-bsd). + + [ Clint Adams ] + * debian/rules.d/debhelper.mk: make sure that snippets are included + before doing CURRENT_VER substitution; fix thanks to Steve + Langasek. + * Bump to Standards-Version 3.8.3. + + -- Clint Adams Wed, 30 Sep 2009 16:24:56 -0400 + +eglibc (2.9-26) unstable; urgency=low + + [ Aurelien Jarno ] + * alpha/submitted-sock_nonblock.diff, hppa/submitted-sock_nonblock.diff: + create the files at the correct location. Closes: bug#540871. + * Use the full triplet for optimized and biarch packages. + * cvs-unsetenv.diff: new patch to not segfault in unsetenv() if run after + clearenv(). + + [ Samuel Thibault ] + * Convert config_os' gnu-gnu into gnu to fix multiarch paths. + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 2744 (from glibc-bsd). + * any/local-linuxthreads-kill_other.diff, fixes ruby 1.9 testsuite failure + + -- Aurelien Jarno Mon, 31 Aug 2009 07:05:00 +0200 + +eglibc (2.9-25) unstable; urgency=low + + * Remove Ben Collins from the uploaders (Closes: + bug#540901). + * Recommends libc6-i686 on i386 and libc0.1-i686 on kfreebsd-i386 + (instead of amd64 and kfreebsd-amd64). Closes: bug#455603. + * rules.d/debheper.in: fix a one letter typo causing libc6-udeb to be + empty. Closes: bug#541725. + * alpha/submitted-sock_nonblock.diff, hppa/submitted-sock_nonblock.diff: + new patches to accommodate SOCK_NONBLOCK != O_NONBLOCK on these + architectures. Closes: bug#540871. + * Add dependency on $syslog in /etc/init.d/nscd. Closes: bug#541492. + + -- Aurelien Jarno Sun, 16 Aug 2009 13:43:11 +0200 + +eglibc (2.9-24) unstable; urgency=low + + [ Aurelien Jarno ] + * Remove any/cvs-pthread_mutex_lock.diff following upstream decision. + * Replace debian/sysdeps/depflags.{mk,pl} by entries in debian/control + using the "new" dpkg-dev features. Clean-out some very old entries. + * Recommends libc6-i686 on amd64 and libc0.1-i686 on kfreebsd-amd64 + (Closes: bug#455603). + * Don't access dpkg files directly in libc6.preinst. + * patches/any/local-ld-multiarch.diff: convert i586 and i686 into i486 + (Closes: bug#540646). + * debian/rules.d/debhelper.mk: use dh_lintian instead doing the work + manually. + * Split out libc-bin from libc6 and libc-dev-bin from libc6-dev. + (Closes: #330735). + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 2696 (from glibc-bsd). + + -- Aurelien Jarno Mon, 10 Aug 2009 14:32:35 +0200 + +eglibc (2.9-23) unstable; urgency=low + + * debhelper.in/libc.postinst, sysdeps/depflags.pl: remove upgrade code + for pre-etch installations. + * Don't ship /etc/init.d/glibc.sh anymore: the GNU libc is now smart + enough to print "FATAL: kernel too old" alone. This also speed up + the boot a bit. + * Don't ship /usr/share/doc/libc6/TODO, but keep the file in the + sources. + * Don't ship /usr/share/doc/libc6/{README,PROJECT}.gz, they are + irrelevant for an already built GNU libc. + * Move /usr/share/doc/libc6/{CONFORMANCE,NAMESPACE,NOTES}.gz to + libc6-dev. + * Move all upstream changelogs in glibc-docs, and install a small + changelog file explaining the reason. + * Ship README.libm in libc6-dev. + * Update any/cvs-broken-dns.diff from upstream. + * any/cvs-pthread_mutex_lock.diff: new patch from upstream to fix + a memory ordering problem in pthread_mutex_{,timed}lock. + * Replace any/submitted-signalfd-eventfd.diff by upstream version + any/cvs-signalfd-eventfd.diff. + * alpha/submitted-asm-memchr.diff: new patch to fix broken prefetching + in memchr() on alpha. + * control.in/i386: replace the Pre-Depends by a Conflicts. Closes: + #538807. Update the breaks version of the packages not yet + transitioned. + + -- Aurelien Jarno Mon, 27 Jul 2009 15:37:54 +0200 + +eglibc (2.9-22) unstable; urgency=low + + * kfreebsd/local-sysdeps.diff: update to revision 2670 (from glibc-bsd). + * any/submitted-signalfd-eventfd.diff: new patch to support < 2.6.27 + kernels in eventfd/signalfd. Closes: #537509. + * alpha/submitted-fdatasync.diff: update to keep fdatasync() as a + cancellation point. Closes: #537586. + * sparc/cvs-siginfo.diff, s390/submitted-siginfo.diff, + ia64/submitted-siginfo.diff: new patches to get "struct sigevent" + from bits/siginfo.h in sync with the kernel version. Closes: #534548. + * debhelper.in/libc-alt.preinst: also clear old /lib32 and /usr/lib32 + symlinks on install, as they might have been left by a previous + installation of the package. + * patches/any/cvs-getaddrinfo-nss-notfound.diff: new patch to correctly + handle missing NSS modules. Closes: #535106, #298290. + * Add X-Interactive: true to /etc/init.d/glibc.sh. Closes: #538435. + + -- Aurelien Jarno Sun, 26 Jul 2009 10:16:30 +0200 + +eglibc (2.9-21) unstable; urgency=low + + [ Aurelien Jarno ] + * Re-add /usr/include/scsi/scsi.h. Closes: #537354. + * libc6-dev-i386: pre-depends on libc6-i386. Closes: #535313. + * /etc/bindresvport.blacklist: add rsync (port 873). Closes: #537289. + * any/local-bindresvport_blacklist.diff: update from latest openSUSE + version. + * kfreebsd/local-sysdeps.diff: update to revision 2643 (from glibc-bsd). + Closes: #537492. + * debian/local/etc_init.d/glibc.sh: add support for start/stop/restart/ + force-reload options. + * debian/debhelper.in/libc-alt.preinst: add set -e. + + -- Aurelien Jarno Sun, 19 Jul 2009 21:09:38 +0200 + +eglibc (2.9-20) unstable; urgency=low + + [ Clint Adams ] + * Bump to Standards-Version 3.8.2. + + [ Aurelien Jarno ] + * Don't ship /usr/include/scsi/scsi.h anymore. Closes: #535809. + * Add sysdeps/sh4.mk. Closes: #536199. + * debian/control.in/main: Build-Depends on dpkg-dev (>= 1.15.3.1). + Closes: #536482. + * kfreebsd/local-sysdeps.diff: update to revision 2624 (from glibc-bsd). + + -- Aurelien Jarno Sun, 12 Jul 2009 14:39:01 +0200 + +eglibc (2.9-19) unstable; urgency=low + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 2611 (from glibc-bsd). + Closes: #534115. Thanks to Javier Mendez Gomez. + + [ Aurelien Jarno ] + * libc6-i386/presubj: remove. Closes: #533768. + * eu.po update from Piarres Beobide. closes: #534283. + * arm/local-hwcap-updates.diff, arm/local-no-hwcap.diff: update ARM + hwcaps to support NEON and VFP. Closes: #534126. + * control.in/i386: add a breaks nvidia-glx-ia32 (<= 185.18.14-1) and + nvidia-libvdpau-ia32 (<= 185.18.14-1). Closes: #534874. + * Merge any/submitted-broken-dns.diff into any/cvs-broken-dns.diff and + update from upstream. + + [ Clint Adams ] + * ru.po update from Yuri Kozlov. closes: #534781. + * cs.po update from Miroslav Kure. closes: #534787. + + -- Clint Adams Sun, 05 Jul 2009 11:49:39 -0400 + +eglibc (2.9-18) unstable; urgency=low + + * Remove /lib32 and /usr/lib32 in the libc6-i386 preinst. closes: #533773. + + -- Clint Adams Sun, 21 Jun 2009 03:17:50 -0400 + +eglibc (2.9-17) unstable; urgency=low + + [ Aurelien Jarno ] + * Fix the versionned conflict of libc6-i386 with libc6-i386-dev. Closes: + #533482. + + [ Clint Adams ] + * Use Breaks instead of Conflicts for the /emul/ia32-linux transition. + closes: #533503. + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 2599 (from glibc-bsd). + + -- Clint Adams Thu, 18 Jun 2009 18:36:51 -0400 + +eglibc (2.9-16) unstable; urgency=low + + * Restore /lib/ld-linux.so.2 symlink. Closes: #533364. + * control.in/i386: tighten a bit the conflicts given the recent uploads. + + -- Aurelien Jarno Wed, 17 Jun 2009 07:32:47 +0200 + +eglibc (2.9-15) unstable; urgency=low + + * kfreebsd/local-sysdeps.diff: update to revision 2587 (from glibc-bsd). + Update expected testsuite results accordingly. + * any/cvs-broken-dns.diff: backport more parts from upstream. + * Update Italian debconf translation, by Luca Monducci. Closes: #531431. + * sh4/cvs-headers-update.diff: new patch from upstream to fix build failure + on SH4. Closes: #532385. + * sysdeps/amd64.mk: fix i386_slibdir. + * control.in/i386: remove duplicate entries. + + -- Aurelien Jarno Sat, 13 Jun 2009 22:25:41 +0200 + +eglibc (2.9-14) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/debhelper.in/locales.postrm: remove /etc/default/locale on + purge. Closes: #530902. + + [ Clint Adams ] + * Move /emul/ia32-linux libraries to /usr/lib32. + + -- Clint Adams Sat, 13 Jun 2009 09:51:12 -0400 + +eglibc (2.9-13ubuntu1~ppa1) karmic; urgency=low + + * WARNING: Ignore regressions in the testsuite, install at your own risk. + + * Build .orig.tar.gz from eglibc-2_9 branch (r7806). + * Merge with Debian (r3491, trunk); remaining changes: + - Packaging: + + External tzdata + + Addition of Niagara and Niagara2 optimised libraries + + GFDL Documentation added back in, build glibc-doc from this source. + + Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + + Use dpkg triggers for ldconfig + + Do not die if extra libc libraries or symlinks found + + Do not do a test run of nscd when starting + + Only apply patches we actually use in Ubuntu + + Use /lib and /usr/lib for amd64 + + amd64 biarch is i686, not i486. + + Non-optimised i386 glibc is Xen-friendly. + + Support sparcv9v, v9v2, 64b, 64v, 64v2 + + Add support for lpia. + + Use .conf for files in /etc/ld.so.conf.d. + + Add vfp pass for armel. + + Set DEB_BUILD_OPTIMIZING_SIZE=0 on lpia. + - Patches: + + Applied any/local-ipv6-lookup. + + Not applied any/local-sysctl. + + Applied debian/patches/all/fedora-nss_dns-gethostbyname4-disable.diff. + + Updated arm/local-no-hwcap. + + Don't declare the fwrite and fwrite_unlocked functions with + __attribute__((warn_unused_result)). + + -- Matthias Klose Mon, 11 May 2009 13:24:56 +0200 + +eglibc (2.9-13) unstable; urgency=low + + * debian/debhelper.in/nscd.init: fix return code when querying status + and nscd is not running to comply with LSB. Closes: #527883. + * debian/debhelper.in/locales.config: don't use "echo -e". Closes: + #527945, #529173. + * debian/patches/localedata/supported.diff: add kk_KZ.RK1048 locale. + Closes: #528177. + * debian/debhelper.in/locales.config: use previous debconf settings if + /etc/environment and /etc/default/locale do not exist. + * debian/bug/locales/presubj: fix a typo. Closes: #528353. + * debian/local/manpages/validlocale.8: fix a typo. Closes: #528658. + * debian/patches/any/cvs-sunrpc-license.diff: new patch from upstream + to change the SUNRPC license into BSD one. Update debian/copyright + accordingly. Closes: #382175. + * debian/patches/any/submitted-tst-cpucount.diff: new patch to fix + tst-cpucount test on non Linux kernels. + * kfreebsd/local-sysdeps.diff: update to revision 2545 (from glibc-bsd). + * debian/patches/kfreebsd/local-config_h_in.patch: new patch to correctly + define __KFREEBSD_KERNEL_VERSION. + * debian/sysdeps/kfreebsd.mk: bump minimal kernel version to 6.0. + * debian/debhelper.in/libc.NEWS: detail the exact line that has to be + added to /etc/resolv.conf. + + -- Aurelien Jarno Mon, 11 May 2009 10:56:10 +0200 + +eglibc (2.9-12) unstable; urgency=low + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 2503 (from glibc-bsd). + + [ Aurelien Jarno ] + * any/local-revert-3270.diff: new patch to revert fix for PR nptl/3270. + (closes: bug#527541). + + -- Aurelien Jarno Fri, 08 May 2009 11:57:16 +0200 + +eglibc (2.9-11) unstable; urgency=low + + * Switch to Embedded GLIBC (EGLIBC), sources taken from the 2.9 + branch. + - Update all/submitted-readme-version.diff. + - Update any/local-bashisms.diff. + - Update any/cvs-bz9697-posix-regcomp.diff. + - Update any/cvs-binutils_2.20.diff. + - Drop any/local-makeconfig.diff. + - Drop any/submitted-getcwd-sys_param_h.diff (merged in eglibc). + - Add any/submitted-cross-zic.diff to fix biarch builds. + - Add any/submitted-nss-nsswitch.diff to fix linuxthreads builds. + - Add any/submitted-install-map-files.diff to fix GNU/Hurd builds. + - More tests of flavour/biarch builds are run, update the expected + testsuite results accordingly. + - Rename glibc-source package into eglibc-source. + + -- Aurelien Jarno Tue, 05 May 2009 09:54:14 +0200 + +glibc (2.9-10) unstable; urgency=low + + [ Samuel Thibault ] + * hurd-i386/local-pthread_posix-option.diff: Set _POSIX_TIMEOUTS to 200112 + too, to fix gthread compilation in gcc-4.4 + + [ Petr Salinger ] + * fix up GNU/kFreeBSD specific macro LIST_FOREACH_SAFE. + + [ Aurelien Jarno ] + * any/cvs-broken-dns.diff: backport more parts from upstream. + * any/submitted-broken-dns.diff: new patch to not raise an error if one + query returns NOTIMP or FORMERR and the other NOERROR. Closes: #526823. + + -- Aurelien Jarno Tue, 05 May 2009 01:39:50 +0200 + +glibc (2.9-9ubuntu1) karmic; urgency=low + + * Merge with Debian (r3342, trunk); remaining changes: + - Packaging: + + External tzdata + + Addition of Niagara and Niagara2 optimised libraries + + GFDL Documentation added back in, build glibc-doc from this source. + + Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + + Use dpkg triggers for ldconfig + + Do not die if extra libc libraries or symlinks found + + Do not do a test run of nscd when starting + + Only apply patches we actually use in Ubuntu + + Use /lib and /usr/lib for amd64 + + amd64 biarch is i686, not i486. + + Non-optimised i386 glibc is Xen-friendly. + + Support sparcv9v, v9v2, 64b, 64v, 64v2 + + Add support for lpia. + + Use .conf for files in /etc/ld.so.conf.d. + + Add vfp pass for armel. + - Patches: + + Applied any/local-ipv6-lookup. + + Not applied any/local-sysctl. + + Applied debian/patches/all/fedora-nss_dns-gethostbyname4-disable.diff. + + Updated arm/local-no-hwcap. + + Don't declare the fwrite and fwrite_unlocked functions with + __attribute__((warn_unused_result)). + * Fix build failure with recent binutils. + * Set DEB_BUILD_OPTIMIZING_SIZE=0 on lpia. + + -- Matthias Klose Wed, 29 Apr 2009 18:20:17 +0200 + +glibc (2.9-9) unstable; urgency=low + + * mips/cvs-context.diff: add missing part from upstream. + + -- Aurelien Jarno Tue, 28 Apr 2009 23:11:30 +0200 + +glibc (2.9-8) unstable; urgency=low + + [ Aurelien Jarno ] + * Update Swedish debconf translation, by Martin Bagger. Closes: #522982. + * mips/cvs-context.diff: new patch from upstream to add getcontext, + setcontext, makecontext, swapcontext. + * any/submitted-mount_h.diff: new patch to add MNT_DETACH and MNT_EXPIRE to + sys/mount.h. Closes: #523952. + * arm/submitted-fpu_control_h.diff: new patch to disable macros from + on EABI. Closes: #525261. + * any/cvs-iconv-utf16.diff: new patch from upstream to reject UTF-8-encoded + UTF-16 surrogates in iconv. Closes: #525299. + * any/local-getaddrinfo-interface.diff: ignore addresses with no interface + assigned while sorting with rule 7. Closes: #521439. + * any/cvs-broken-dns.diff: new patch from CVS to provide a fallback for + broken DNS server while doing unified IPv4/IPv6 requests. The first lookup + will be slow, but subsequent requests will fallback to the previous + behaviour. This can be enabled by default by setting 'single-request' in + /etc/resolv.conf. + * debhelper.in/libc.NEWS: add entry explaining the new behaviour and the new + option. + * any/local-disable-gethostbyname4.diff: disabled this patch to re-enable + unified IPv4/IPv6 requests. Closes: bug#343140, bug#435646. + * localedata/cvs-el_CY-el_GR-frac_digits.diff: new patch from CVS to fix + frac_digits and int_frac_digits on el_CY ad el_GR locales. Closes: + bug#511621. + * mips_asm_unistd.h, sysdeps/mipsel.mk, sysdeps/mips.mk: use our own version + of unistd.h corresponding to the one of a 2.6.24 kernel to workaround kernel + bugs on the build daemons. + * any/cvs-binutils_2.20.diff: new patch from upstream to fix build failure + with binutils 2.20. + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 2482 (from glibc-bsd). + Closes: #522686. Thanks to Jan Christoph Nordholz. + + [ Samuel Thibault ] + * hurd-i386/cvs-rtld.diff: new patch, fixes boot of glibc built with + binutils >= 2.19. + + -- Aurelien Jarno Mon, 27 Apr 2009 00:44:59 +0200 + +glibc (2.9-7) unstable; urgency=low + + [ Aurelien Jarno ] + * Update German debconf translation, by Helge Kreutzman. Closes: #519992. + * Update testsuite results on alpha, tst-timer.out exits with SIGILL on + some machines, it was already the case with glibc 2.7 on the same + machines. + * Update testsuite results on hppa, tst-posix_fallocate.out and + tst-makecontext.out are known to fail with a 32-bit kernel. + * debian/script.in/nsscheck.sh: fix a typo. Closes: #520455. + * kfreebsd/local-sysdeps.diff: update to revision 2390 (from glibc-bsd). + * libc6.1.symbols.alpha: fix package name for private symbols. + + [ Samuel Thibault ] + * debian/rules.d/debhelper.mk: let grep libpthread.so fail because on + hurd-i386 glibc does not provide it. + + -- Aurelien Jarno Tue, 07 Apr 2009 07:58:50 +0200 + +glibc (2.9-6) unstable; urgency=low + + [ Samuel Thibault ] + * debian/patches/hurd-i386/local-tls-support.diff: fix typo in tlsdesc.sym. + + [ Aurelien Jarno ] + * debian/po/de.po: fix German translation. Closes: bug#519612. + * Update French debconf translation, by Christian Perrier. Closes: #519662. + * any/local-disable-gethostbyname4.diff: disable unified lookup for + getaddrinfo(). While unified lookup fix the problem of DNS servers simply + dropping AAAA requests, it breaks lookup with even more broken DNS servers + only returning a broken AAAA answer. As it seems the second type of broken + DNS concerns more users, let's revert to the old behaviour. Closes: + #516218. + * any/submitted-getaddrinfo-lo.diff: correctly handle the lo interface and + associated addresses when checking for native connection. Closes: + bug#519545. + * debian/control.in/libc: change -dbg packages to section debug. + * debian/control.in/main: update Standards-Version to 3.8.1: + - debian/local/etc_init.d/glibc.sh: move set -e out from the shebang line. + - debian/debhelper.in/nscd.init: exit successfully if the daemon was + already running. + * debian/debhelper.in/nscd.dirs: remove /var/run/nscd directory. + + -- Aurelien Jarno Sun, 15 Mar 2009 21:22:48 +0100 + +glibc (2.9-5) unstable; urgency=low + + [ Clint Adams ] + * Change first day of the week in ru_UA locale to Monday. closes: + #517386. + + [ Aurelien Jarno ] + * testsuite-checking/expected-results-i486-linux-gnu-libc, + testsuite-checking/expected-results-i686-linux-i686: remove + testgrp.out from the ignore list, it was due to a misconfiguration + of the build daemon. + * debhelper.in/libc.{preinst,postint}: bump the version triggering the + restart of NSS related services to 2.9-5. + * debhelper.in/libc.postint: change cupsys into cups. + * script.in/nsscheck.sh: convert mysql-server into mysql. Closes: + bug#172123. + * merge lost patch from lenny: + - debhelper.in/locales.config: use previous debconf settings if + /etc/locales does not exists. Closes: bug#517884. + * debian/local/manpages/ld.so.8: fix a typo. Closes: bug#518394. + * debhelper.in/libc.preinst, debhelper.in/libc.templates: warn users + about the need to disable xscreensaver and xlockmore before libc6 + is unpacked. Closes: bug#517795. + + [ Samuel Thibault ] + * debian/patches/hurd-i386/cvs-ECANCELED.diff: rename into + submitted-ECANCELED.diff + * debian/patches/hurd-i386/local-net-headers.diff: rename into + cvs-net-headers.diff + * debian/patches/hurd-i386/local-pthread_types.diff: make it create a new + sysdep/mach/hurd/bits/pthreadtypes.h instead of modifying + bits/pthreadtypes.h. Move from series.hurd-i386 to series. + * debian/patches/hurd-i386/local-tls-dtv-offset.diff: remove patch, make + local-tls-support.diff create tlsdesc.sym instead. + * debian/patches/hurd-i386/local-no-strerror_l.diff: remove patch, replaced + by... + * debian/patches/hurd-i386/cvs-strerror_l.diff: new patch from Thomas + Schwinge. + + -- Aurelien Jarno Thu, 12 Mar 2009 00:13:02 +0100 + +glibc (2.9-4ubuntu5) jaunty; urgency=low + + * This upload allows NEON hwcap usage; FFE LP: #343602. + * New patch, arm/local-hwcap-updates, add support for some recent ARM hwcaps + additions. + * Update patch arm/local-no-hwcap to also flag HWCAP_ARM_NEON as an + important hwcap; this adds /lib/neon, /usr/lib/neon etc. to the ldconfig + and ld.so search pathes. + + -- Loic Minier Tue, 31 Mar 2009 20:28:41 +0200 + +glibc (2.9-4ubuntu4) jaunty; urgency=low + + * Don't declare the fwrite and fwrite_unlocked functions with + __attribute__((warn_unused_result)). See + https://lists.ubuntu.com/archives/ubuntu-devel/2009-March/027832.html + + -- Matthias Klose Fri, 27 Mar 2009 21:17:24 +0100 + +glibc (2.9-4ubuntu3) jaunty; urgency=low + + [ Colin Watson ] + * Rename Debian's Vcs-* fields in debian/control to XS-Debian-Vcs-* to + reduce confusion. + + [ Loic Minier ] + * Add vfp pass for armel. + - sysdeps/armel.mk: add vfp pass with the same add-ons as the libc pass, + with "-mfpu=vfp -mfloat-abi=softfp" appended to CFLAGS, using + /lib/vfp as slibdir (could as well be /lib/tls/vfp but the armel port + was always NPTL which implies TLS), and configured with + --disable-profile like the other optimized passes. + - control.in/opt, control: add libc6-vfp package on armel. + - script.in/nohwcap.sh: list libc6-vfp in hwcappkgs on armel. + - testsuite-checking/expected-results-arm-linux-gnueabi-vfp: copied from + testsuite-checking/expected-results-arm-linux-gnueabi-libc. + + -- Loic Minier Thu, 19 Mar 2009 21:34:59 +0100 + +glibc (2.9-4ubuntu2) jaunty; urgency=low + + * Merge with Debian (r3342, trunk); remaining changes: + - Packaging: + + External tzdata + + Addition of Niagara and Niagara2 optimised libraries + + GFDL Documentation added back in, build glibc-doc from this source. + + Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + + Use dpkg triggers for ldconfig + + Do not die if extra libc libraries or symlinks found + + Do not do a test run of nscd when starting + + Only apply patches we actually use in Ubuntu + + Use /lib and /usr/lib for amd64 + + amd64 biarch is i686, not i486. + + Non-optimised i386 glibc is Xen-friendly. + + Support sparcv9v, v9v2, 64b, 64v, 64v2 + + Add support for lpia. + + Use .conf for files in /etc/ld.so.conf.d. + - Patches: + + Applied any/local-ipv6-lookup. + + Not applied any/local-sysctl. + + Applied debian/patches/all/fedora-nss_dns-gethostbyname4-disable.diff. + + Updated arm/local-no-hwcap. + * Remove some passing testcases from the expected test results. + + -- Matthias Klose Mon, 02 Mar 2009 08:57:05 +0100 + +glibc (2.9-4) unstable; urgency=low + + * testsuite-checking/expected-results-ia64-linux-gnu-libc: ignore + result of tst-oddstacklimit.out, it is known to fail with old + kernels, just like in glibc 2.7. + * debian/debhelper.in/libc{-alt,-otherbuild,}.lintian: remove outdated + overrides. + * debhelper.in/libc.postinst: restart NSS services on upgrades from + versions prior to 2.9-1. + * testsuite-checking/expected-results-arm-linux-gnueabi-libc: ignore + result of test-fenv.out and test-fpucw.out, as they were already + failing with glibc 2.7. + * patches/any/submitted-futex_robust_pi.diff: new patch to correctly + define when PI futexes and robust mutexes have been introduced + in the kernel, on a per architecture basis. + * testsuite-checking/expected-results-{alpha,ia64}-linux-gnu-libc: + remove PI futexes failures. + * patches/all/submitted-readme-version.diff: fix the upstream version + number in upstream README. Closes: bug#516908. + * debian/rules.d/build.mk: disable the testsuite on ball/mayr/mayer/rem + build daemons. + * debian/rules.d/info.mk: new file to dump useful info in the build log. + * debian/rules: always define and export SHELL as "/bin/bash -e". + Closes: bug#517077. + * patches/any/cvs-bz7058-nss_nss-nis.diff: new patch to fix crash when + doing host lookup with nss-nis. Closes: bug#517094. + * Add debian/libc6-mips{n32,64}.symbols.mips{el,} symbol files. + * debian/debhelper.in/glibc-source.install, debian/rules.d/build.mk: + switch the format of glibc-source to lzma, sparing 6MB. + * debian/libc6.1.symbols.{alpha,ia64}: fix symbols. + * debian/*symbols*: rename symbols.common into libc6.symbols.common. + * rules.d/debhelper.mk: don't strip debugging symbols. Remove + debhelper.in/libc-dbg.{install,lintian} and wrapper/objcopy. + control.in/libc: update description of libc-dbg. Closes: bug#516516. + * patches/kfreebsd/local-scripts.diff: correctly define the soname of + libthread_db. + * libc0.1.symbols.common, libc0.1.symbols.kfreebsd-{amd64,i386], + libc0.1-i386.symbols.kfreebsd-amd64: new files. + + -- Aurelien Jarno Fri, 27 Feb 2009 19:01:26 +0100 + +glibc (2.9-3) unstable; urgency=low + + * debhelper.in/nscd.init: fix the for loop. Closes: bug#516509. + + -- Aurelien Jarno Sat, 21 Feb 2009 11:40:24 +0100 + +glibc (2.9-2) unstable; urgency=low + + [ Aurelien Jarno ] + * testsuite-checking/*: ignore tst-cpuclock2 test, as it fails on + machines using cpufreq. + * Rename submitted/cvs-tsd.diff into hppa/cvs-tsd.diff. + * patches/any/local-bashisms.diff: fix more bashisms in the testsuite. + * rules.d/build.mk: define SHELL as /bin/bash. + * patches/any/cvs-pthread_h.diff: patch from upstream to fix warning + in pthread.h. + * debhelper.in/libc.preinst: restart NSS services on upgrades from + versions prior to 2.9-1. + * debhelper.in/*symbols*, rules.d/debhelper.mk: allow linking against + private symbols again, but with a strict dependency on the upstream + version. + * debhelper.in/nscd.init: fix cache flushing on restart/reload. Closes: + bug#516212. + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 2370 (from glibc-bsd). + * drop kfreebsd/local-sysdeps28.diff (merged into local-sysdeps.diff). + + -- Aurelien Jarno Fri, 20 Feb 2009 22:25:19 +0100 + +glibc (2.9-1) unstable; urgency=low + + Removed the changelog entries for earlier merges from the glibc-2.9 branch. + + [ Aurelien Jarno ] + * debian/rules.d/build.mk: enable stackguard randomization. Closes: + bug#511811. + * expected-results-i486-linux-gnu-libc, expected-results-i686-linux-i686: + Add tests that fail on a Xen machine. Sigh. + * any/local-linuxthreads-thread_self.diff: new patch to fix a warning on + linuxthreads builds. + * rules.d/build.mk: unset LANG to make sure testsuite errors are not + localized. + * debian/rules: remove *.mo file in the clean target. + * sysdeps/alpha.mk, control.in/main: use gcc-4.3 on alpha. + * debhelper.in/locales.postinst: make sure /etc/default/locale is always + created. Closes: bug#515099. + * debian/wrapper/objcopy: apply special strip to libraries only. Closes: + bug#513882. + * debian/localedata/locale-fr_FR.diff: revert change of week of day and + month abbreviations in fr_FR locale. Closes: bug#509191. + + [ Clint Adams ] + * patches/localedata/submitted-bz9835-en_GB-first_day.diff: new patch to + fix first_weekday and first_workday for en_GB. closes: #512343. + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 2352 (from glibc-bsd). + * add kfreebsd/local-linuxthreads29.diff: + update to fix build on kfreebsd architectures. + + [ Samuel Thibault ] + * hurd-i386/cvs-resource-prio.diff: new patch to fix detection of PRIO_* + values in some packages + * hurd-i386/cvs-hurdsig-fix.diff: new patch to fix hurd signal FD locking. + * hurd-i386/cvs-report-wait-fix.diff: patch from CVS instead of + hurd-i386/submitted-report-wait.diff. + * hurd-i386/submitted-critical-sections.diff: new patch to fix some missing + critical sections. + * hurd-i386/submitted-dup2-fix.diff: new patch to fix dup2 FD locking. + * hurd-i386/local-net-headers.diff: new patch to install net/*.h headers. + * hurd-i386/local-tls-dtv-offset.diff: new patch to fix DTV_OFFSET macro. + * hurd-i386/local-pthread_posix-option.diff: put back to series. + * hurd-i386/local-check_native.diff: new patch to provide a dummy + __check_native() function. + * hurd-i386/cvs-get_pc_thunk.diff: new patch to fix missing + __i686.get_pc_thunk.bx reference. + * hurd-i386/submitted-dl-sysdep.diff: new patch to fix static linking. + * hurd-i386/submitted-stat.diff: clean up patch. + * hurd-i386/submitted-itimer-lock.diff: new patch fixing itimer unlocking. + + -- Aurelien Jarno Tue, 17 Feb 2009 22:49:15 +0100 + +glibc (2.9-0ubuntu12) jaunty; urgency=low + + * debian/patches/all/fedora-nss_dns-gethostbyname4-disable.diff: Patch + from Fedora 2.9-3 to temporarily disable _nss_dns_gethostbyname4_r, + which caused problems for systems with broken IPv6 connectivity + (LP: #313218, https://bugzilla.redhat.com/show_bug.cgi?id=459756). + + -- Colin Watson Sat, 21 Feb 2009 07:40:16 +0000 + +glibc (2.9-0ubuntu11) jaunty; urgency=low + + * Update patch arm/local-no-hwcap to flag HWCAP_ARM_VFP as an important + hwcap; this adds /lib/vfp, /usr/lib/vfp etc. to the ldconfig and ld.so + search path. + * Update patch arm/local-no-hwcap to drop HWCAP_ARM_FAST_MULT from important + hwcaps as fastmult is even present on StrongARM according to Wookey; + suggested by Riku Voipio. + + -- Loic Minier Mon, 16 Feb 2009 13:32:55 +0100 + +glibc (2.9-0ubuntu10) jaunty; urgency=low + + * Move locale generation programs back to libc6, belocs-locales-bin + is dead upstream, and more and more incapable of building current + locale definitions: + - debhelper.in/libc.install: Install localedef, locale, + update-locale, and validlocale again. (locale-def will be + shipped in langpack-locales, since it is closely related to it). + - debhelper.in/libc.manpages: Install manpages for above programs. + - sysdeps/depflags.pl: Conflicts/Replaces: belocs-locales-bin. + * Merged current fixes from Debian's glibc-2.9 branch (r3269). + + -- Martin Pitt Fri, 13 Feb 2009 18:31:04 +0100 + +glibc (2.9-0ubuntu9) jaunty; urgency=low + + * Merge with Debian, glibc-2.9 branch, r3244. + - Fix testsuite failure in locale test. + + -- Matthias Klose Mon, 19 Jan 2009 21:42:02 +0100 + +glibc (2.9-0ubuntu8) jaunty; urgency=low + + * Merge with Debian, glibc-2.9 branch, r3241. + * Apply localedata patches. LP: #318507. + * Remove progressions from expected test results. + + -- Matthias Klose Mon, 19 Jan 2009 18:26:53 +0100 + +glibc (2.9-0ubuntu7) jaunty; urgency=low + + [ Matthias Klose ] + * Merge with Debian, glibc-2.9 branch, r3226. + + [ Kees Cook ] + * Added debian/patches/any/cvs-bz-9720-resource.diff: upstream + fixes for resource.h mis-compile (LP: #302087). + + -- Kees Cook Thu, 08 Jan 2009 13:27:48 -0800 + +glibc (2.9-0exp1) UNRELEASED; urgency=low + + [ Aurelien Jarno ] + * New upstream release. + - This version has been tagged in the CVS, update debian/rules and + debian/rules.d/tarball.mk accordingly. + - shs_CA locale is enabled. Closes: #504663. + - fix snprintf with low-memory. Closes: #481543. + - fix mtrace warning message. Closes: #507488. + - Disable m68k/local-mathinline_h.diff. + - Update any/local-bashisms.diff. + - Update hurd-i386/local-tls-support.diff. + - Update localedata/locale-en_DK.diff. + - Update localedata/sort-UTF8-first.diff. + - Update localedata/supported.diff. + - Update localedata/first_weekday.diff. + - Remove all/submitted-iconv-latin9.diff (merged). + - Remove any/submitted-user_h.diff (merged). + - Remove any/cvs-bug-iconv6_tst-iconv7.diff (merged). + - Remove any/cvs-getaddrinfo.diff (merged). + - Remove any/cvs-iconv-braces.diff (merged). + - Remove any/cvs-nscd-getservbyport.diff (merged). + - Remove any/cvs-regex_anchor.diff (merged). + - Remove any/cvs-tst-regex.diff (merged). + - Remove any/submitted-rpcgen-makefile.diff (merged). + - Remove hppa/cvs-context.diff (merged). + - Remove hppa/submitted-atomic_h.diff (merged). + - Remove hppa/submitted-fesetenv.diff (merged). + - Remove hurd-i386/cvs-lock-memory-clobber.diff (merged). + - Remove hurd-i386/cvs-mig-init.diff (merged). + - Remove hurd-i386/cvs-MSG_NOSIGNAL.diff (merged). + - Remove hurd-i386/cvs-open_2.diff (merged). + - Remove hurd-i386/cvs-signal-werror.diff (merged). + - Remove hurd-i386/cvs-termios.diff (merged). + - Remove hurd-i386/cvs-fcntl-types.diff (merged). + - Remove mips/local-setjmp.diff (merged). + - Remove sparc/cvs-context.diff (merged). + - Remove localedata/locale-ks_IN.diff (replaced upstream by + ks_IN@devanagari). + - debian/shlibver: bump to 2.9. + - debian/locales-depver: bump to 2.9. + - debian/sysdeps/depflags.pl: add a conflict on nscd (<< 2.9) to libc. + - Finnish (fi_FI) time format is fixed. closes: #468849. + * debhelper.in/locales.config: convert ks_IN into ks_IN@devanagari. + * symbols.wildcards: update for glibc 2.9. + * debhelper.in/*.lintian: update for glibc 2.9. + * testsuite-checking/compare.sh: don't assume expected and current + testsuite results in same order. Closes: bug#504031. + * testsuite-checking/expected-results-powerpc64-linux-ppc64: update. + * debian/local/etc_init.d/glibc.sh: add Description and Short-Description. + Closes: bug#510083. + * Remove manpage that will be provided by manpages-dev. Closes: bug#506515, + bug#505784. + * debian/copyright: update. Closes: bug#506881. + * any/submitted-popen.diff: new patch from Gentoo to fix popen() on >= 2.6.27 + kernels. Closes: bug#512238. + * arm/submitted-setjmp.diff: new patch to fix build on arm. + * debian/rules: set BUILD_CC (host compiler) to gcc, and set CC (target + compiler) to gcc-4.3. The later can be override on a per target basis. + + [ Clint Adams ] + * patches/any/cvs-bz697-posix-regexec.diff: regex fix from Paolo Bonzini. + * patches/any/cvs-bz9697-posix-regcomp.diff: regex fix from Paolo Bonzini, + closes: #510219. + * patches/localedata/submitted-bz9725-locale-sv_SE.diff: fix from David + Weinehall for incorrect sv_SE date format. closes: #489960. + * patches/any/cvs-bz9706-nss_nss-files_files-parse.diff: unify NSS + behavior between 32-bit and 64-bit platforms. addresses: #483645. + * localedata/submitted-bz9730-locale-sv_FI.diff: make sv_FI time format + conform to that of fi_FI. closes: #489946. + * Rename patches/localedata/el_CY_euro.diff to + patches/localedata/submitted-bz9731-el_CY_euro.diff. + * Rename patches/localedata/dz_BT-collation.diff to + patches/localedata/submitted-bz9732-dz_BT-collation.diff. + + [ Arthur Loiret ] + * patches/any/local-nss-overflow.diff: new patch to ignore uids greater + than UINT_MAX. Closes: #483645. + * patches/hppa/submitted-tsd.diff: new patch from to fix build on hppa. + Closes: bug#511430. + + -- Aurelien Jarno Sun, 18 Jan 2009 23:25:16 +0100 + +glibc (2.9-0ubuntu6) jaunty; urgency=low + + [ Matthias Klose ] + * Merge with Debian, glibc-2.9 branch, r3200. + + [ Kees Cook ] + * Add debian/patches/ubuntu/no-sprintf-pre-truncate.diff: do not + pre-clear target buffers on sprintf to retain backward compatibility + (LP: #305901). + + -- Kees Cook Thu, 01 Jan 2009 13:28:59 -0800 + +glibc (2.9-0ubuntu5) jaunty; urgency=low + + * Mark tst-pselect.out as failing on armel. + + -- Matthias Klose Wed, 03 Dec 2008 23:16:24 +0100 + +glibc (2.9-0ubuntu4) jaunty; urgency=low + + * Mark tst-mqueue5.out as failing on sparcv9b. + * Mark tst-cpuclock2.out as failing on sparc. + + -- Matthias Klose Wed, 03 Dec 2008 01:33:20 +0100 + +glibc (2.9-0ubuntu3) jaunty; urgency=low + + * Update expected testsuite results for powerpc64. Fixes build failure + on powerpc. + * Build with gcc-4.3 on sparc again (still fails on the buildd, builds + on a T1000). + * debian/testsuite-checking/compare.sh: Robustify. + + -- Matthias Klose Sun, 30 Nov 2008 12:45:05 +0100 + +glibc (2.9-0ubuntu2) jaunty; urgency=low + + * Drop the build dependency on gcc-4.2-multilib on sparc for an initial build. + + -- Matthias Klose Sat, 29 Nov 2008 16:01:59 +0100 + +glibc (2.9-0ubuntu1) jaunty; urgency=low + + * New upstream, release, taken from the glibc-2_9-base tag. + - Remove patches applied upstream: any/cvs-bug-iconv6_tst-iconv7.diff, + sparc/cvs-context.diff, any/cvs-getaddrinfo.diff, + any/cvs-iconv-braces.diff, any/cvs-nscd-getservbyport.diff, + any/cvs-nscd-getservbyport.diff, any/cvs-tst-regex.diff, + any/cvs-regex_anchor.diff, hppa/submitted-atomic_h.diff, + hppa/submitted-fesetenv.diff, any/submitted-rpcgen-makefile.diff, + any/regexp_h___REPB_PREFIX.diff. + - Update patches: any/local-bashisms.diff, any/local-ipv6-lookup.diff. + - any/submitted-user_h.diff: Remove, replaced with #error stub. + - Use barriers and SMP-safe operations on ARM NPTL. LP: #303188. + * debian/symbols.wildcards: Update for 2.9. + * Add tst-tls6.out to expected test failures on sparc64. + * Merge with Debian, r3198. + * patches/arm/local-memset.diff: Performance improve on ARM memset. + + -- Matthias Klose Sat, 29 Nov 2008 15:25:22 +0100 + +glibc (2.8+20081027-0ubuntu10) jaunty; urgency=low + + * Mark tst-cancel7.out, tst-cancelx7.out, tst-cleanup0.out and tst-fmon.out + as failing on armel as well. + + -- Matthias Klose Sat, 15 Nov 2008 13:56:40 +0100 + +glibc (2.8+20081027-0ubuntu9) jaunty; urgency=low + + * debian/testsuite-checking/compare.sh: Output the contents of the failure + logs to the build log for non-regressions as well. + Report progressions as well. + * Mark test failures on armel as expected for a first build. + + -- Matthias Klose Sat, 15 Nov 2008 09:34:14 +0100 + +glibc (2.8+20081027-0ubuntu8) jaunty; urgency=low + + * debian/testsuite-checking/compare.sh: if there are regressions in + the test suite, output the contents of the failure logs to the build + log. (wanted for debugging current armel build failure) + + -- Steve Langasek Sat, 15 Nov 2008 00:44:59 +0000 + +glibc (2.8+20081027-0ubuntu7) jaunty; urgency=low + + * debian/sysdeps/ia64.mk, debian/sysdeps/sparc.mk, + debian/sysdeps/powerpc.mk, debian/sysdeps/linux.mk, + debian/script.in/kernelcheck.sh: make 2.6.15 the minimum kernel + version across all archs, because there are no major differences + between 2.6.15 and 2.6.18 for any architectures and this lets us run + jaunty chroots on kernels from Ubuntu 6.06 LTS. + + -- Steve Langasek Fri, 14 Nov 2008 19:22:19 +0000 + +glibc (2.8+20081027-0ubuntu6) jaunty; urgency=low + + * debian/script.in/kernelcheck.sh: Treat `uname -m` == powerpc* or ppc* as + powerpc. (Argh.) + + -- Colin Watson Tue, 04 Nov 2008 01:48:57 +0000 + +glibc (2.8+20081027-0ubuntu5) jaunty; urgency=low + + * debian/script.in/kernelcheck.sh: Treat `uname -m` == sparc64 as sparc. + + -- Colin Watson Mon, 03 Nov 2008 12:39:47 +0000 + +glibc (2.8+20081027-0ubuntu4) jaunty; urgency=low + + * debian/testsuite-checking/expected-results-ia64-linux-gnu-libc, + debian/testsuite-checking/expected-results-powerpc-linux-gnu-libc, + debian/testsuite-checking/expected-results-powerpc64-linux-ppc64, + debian/testsuite-checking/expected-results-sparc-linux-gnu-libc, + debian/testsuite-checking/expected-results-sparc64-linux-sparc64, + debian/testsuite-checking/expected-results-sparcv9b-linux-sparcv9b: Add + tst-pselect, since the Ubuntu buildds for these architectures are still + running 2.6.15 and pselect is racy there. + + -- Colin Watson Mon, 03 Nov 2008 11:50:33 +0000 + +glibc (2.8+20081027-0ubuntu3) jaunty; urgency=low + + * debian/sysdeps/ia64.mk, debian/sysdeps/sparc.mk, + script.in/kernelcheck.sh: Set the minimal kernel version to 2.6.15 for + ia64 and sparc, whose Ubuntu buildds are also still running 2.6.15. + * debian/patches/ubuntu/stack-guard-quick-randomization.diff: Add test + changes from Fedora patch by Jakub Jelinek: + - elf/tst-stackguard1.c (do_test): Don't fail if the poor man's + randomization doesn't work well enough. + * debian/testsuite-checking/expected-results-powerpc-linux-gnu-libc: + Expect failure from test-fenv, since it's been failing at least back to + Ubuntu 8.04 and this is probably due to use of an old kernel on the + Ubuntu powerpc buildds (LP: #292360). + + -- Colin Watson Sun, 02 Nov 2008 11:28:16 +0000 + +glibc (2.8+20081027-0ubuntu2) jaunty; urgency=low + + * Reapply changes from 2.8~20080505-0ubuntu7. + * debian/sysdeps/powerpc.mk, script.in/kernelcheck.sh: Set the + minimal kernel version to 2.6.15 for powerpc. + + -- Matthias Klose Sat, 01 Nov 2008 07:41:22 +0100 + +glibc (2.8+20081027-0ubuntu1) jaunty; urgency=low + + * Merge with Debian; remaining changes: + - Packaging: + + External tzdata + + Use external locale information + + Addition of Niagara and Niagara2 optimised libraries + + GFDL Documentation added back in, build glibc-doc from this source. + + Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + + Use dpkg triggers for ldconfig + + Do not die if extra libc libraries or symlinks found + + Do not do a test run of nscd when starting + + Only apply patches we actually use in Ubuntu + + Use /lib and /usr/lib for amd64 + + amd64 biarch is i686, not i486. + + Non-optimised i386 glibc is Xen-friendly. + + Support sparcv9v, v9v2, 64b, 64v, 64v2 + + Add support for lpia. + + Use .conf for files in /etc/ld.so.conf.d. + - Patches: + + Applied any/local-ipv6-lookup. + + Not applied any/local-sysctl. + * testsuite-checking: Use Debian's testsuite checking, sort expected and + current test results before comparing. + + -- Matthias Klose Fri, 31 Oct 2008 19:05:39 +0100 + +glibc (2.8+20080809-3) experimental; urgency=low + + [ Aurelien Jarno ] + * New upstream release. + - Fix conversions to ISO-2022-JP. Closes: #466340. + - "Tarballs are a completely outdated concept": + + use a flat .orig.tar.gz + + rules.d/tarball.mk: remove all, add a get-orig-source target + + rules.d/quilt.mk: fix the unpatch target + - Update any/cvs-getaddrinfo.diff. + - Update any/submitted-i686-timing.diff. + - Update hurd-i386/cvs-lock-memory-clobber.diff. + - Update kfreebsd/local-sys_queue_h.diff + - Update locale/preprocessor-collate-uli-sucks.diff + - Update localedata/tailor-iso14651_t1.diff. + - Update localedata/locales-fr.diff. + - Update localedata/cy_GB-first_weekday.diff. + - Update localedata/fr_BE-first_weekday.diff. + - Update localedata/fr_CA-first_weekday.diff. + - Update localedata/fr_CH-first_weekday.diff. + - Update localedata/fr_LU-first_weekday.diff. + - Remove alpha/submitted-xstat.diff (outdated). + - Remove amd64/cvs-vdso_clock_gettime.diff (merged). + - Remove arm/cvs-ioperm.diff (merged). + - Remove arm/cvs-gcc4-inline.diff (merged). + - Remove arm/local-args6.diff (merged). + - Remove arm/submitted-RTLD_SINGLE_THREAD_P.diff (merged). + - Remove hppa/cvs-atomic.diff (merged). + - Remove hppa/cvs-lowlevellock.diff (merged). + - Remove hurd-i386/cvs-kernel-features.diff (merged). + - Remove hurd-i386/cvs-O_CLOEXEC_fix.diff (merged). + - Remove hurd-i386/cvs-epfnosupport.diff (merged). + - Remove hurd-i386/cvs-df.diff (merged). + - Remove hurd-i386/cvs-blocked-exceptions.diff (merged). + - Remove i386/cvs-short-for-fnstsw.diff (merged). + - Remove mips/cvs-memory-barriers.diff (merged). + - Remove mips/cvs-mknod.diff (merged). + - Remove mips/cvs-fcsr.diff (merged). + - Remove mips/cvs-mipsn32.diff (merged). + - Remove sh4/cvs-nptl-private-futexes.diff (merged). + - Remove all/cvs-gai_conf.diff (merged). + - Remove any/cvs-epoll_h.diff (merged). + - Remove any/cvs-ether_line.diff (merged). + - Remove any/cvs-ethertype.diff (merged). + - Remove any/cvs-fchmodat.diff (merged). + - Remove any/cvs-gcc-4.3.diff (merged). + - Remove any/cvs-iconv-iso2022jp-loop-bug.diff (merged). + - Remove any/cvs-isoc99_vscanf.diff (merged). + - Remove any/cvs-rfc3484.diff (merged). + - Remove any/cvs-sched_h.diff (merged). + - Remove any/cvs-strerror_r.diff (merged). + - Remove any/local-strfry.diff (merged). + - Remove any/cvs-strtod.diff (merged). + - Remove any/cvs-tzfile.diff (merged). + - Remove any/cvs-vfscanf.diff (merged). + - Remove any/cvs-sunrpc_rpc_thread.diff (merged). + - Remove any/cvs-wchar_h.diff (merged). + - Remove any/local-dl-execstack.diff (outdated). + - Remove any/local-gcc4-wcstol_l.diff (outdated). + - Remove any/local-ip6-localhost.diff (fixed differently). + - Remove any/local-notls.diff (outdated). + - Remove any/submitted-ieee754_h.diff (merged). + - Remove any/submitted-link-local_resolver.diff (merged). + - Remove localedata/cvs-locale-ig_NG.diff (merged). + - Remove localedata/cvs-locale-lo_LA.diff (merged). + - Remove localedata/cvs-locale-ug_CN.diff (merged). + - Remove localedata/locale-es_CR.diff (merged). + - Remove localedata/locale-pt_PT.diff (merged). + - Add patches/alpha/submitted-creat64.diff from Gentoo. + - Add patches/alpha/submitted-dl-support.diff from Gentoo. + - debian/shlibver: bump to 2.8. + - debian/locales-depver: bump to 2.8. + * Convert all patch to patchlevel -p1. Closes: #485165. + * debian/rules.d/quilt.mk: add a refresh target. + * local/manpages/*: fix comments to make lintian happy. + * locale/check-unknown-symbols.diff: changes errors to warnings. + * debian/control.in/main: update Standards-Version to 3.8.0: + - Add debian/README.source. + * debian/rules, debian/rules.d/build.mk, debian/testsuite-checking/*: + implement regression check, based on a patch from Carlos O'Donell. + * testsuite-checking/expected-results-alpha-linux-gnu-libc: new file. + * testsuite-checking/expected-results-alphaev67-linux-alphaev67: new file. + * testsuite-checking/expected-results-arm-linux-gnueabi-libc: new file. + * testsuite-checking/expected-results-hppa-linux-gnu-libc: new file. + * testsuite-checking/expected-results-i486-kfreebsd-gnu-libc: new file. + * testsuite-checking/expected-results-i486-linux-gnu-libc: new file. + * testsuite-checking/expected-results-i686-kfreebsd-i386: new file. + * testsuite-checking/expected-results-i686-kfreebsd-i686: new file. + * testsuite-checking/expected-results-i686-linux-i386: new file. + * testsuite-checking/expected-results-i686-linux-i686: new file. + * testsuite-checking/expected-results-i686-linux-xen: new file. + * testsuite-checking/expected-results-ia64-linux-gnu-libc: new file. + * testsuite-checking/expected-results-mips-linux-gnu-libc: new file + * testsuite-checking/expected-results-mips32-linux-mipsn32: new file. + * testsuite-checking/expected-results-mips64-linux-mips64: new file. + * testsuite-checking/expected-results-mips32el-linux-mipsn32: new file. + * testsuite-checking/expected-results-mips64el-linux-mips64: new file. + * testsuite-checking/expected-results-mipsel-linux-gnu-libc: new file. + * testsuite-checking/expected-results-powerpc-linux-gnu-libc: new file. + * testsuite-checking/expected-results-powerpc64-linux-ppc64: new file. + * testsuite-checking/expected-results-s390-linux-gnu-libc: new file. + * testsuite-checking/expected-results-s390x-linux-s390x: new file. + * testsuite-checking/expected-results-sparc64-linux-sparc64: new file. + * testsuite-checking/expected-results-sparc-linux-gnu-libc: new file. + * testsuite-checking/expected-results-sparcv9b-linux-sparcv9b: new file. + * testsuite-checking/expected-results-x86_64-kfreebsd-gnu-libc: new file. + * testsuite-checking/expected-results-x86_64-linux-amd64: new file. + * testsuite-checking/expected-results-x86_64-linux-gnu-libc: new file. + * control.in/main: build-depends on dpkg (>= 1.14.17). + * Add symbols files for the various libraries, based on a patch by + Raphaël Hertzog. Closes: #462444. + * localedata/supported.diff: sort locales by alphabetical order. Closes: + #493231. + * debian/rules, debian/rules.d/build.mk, debian/sysdeps.mk/*: use a common + huge TIMEOUTFACTOR for all architectures. + * debian/sysdeps/mipsel.mk: use the correct triplet for mipsn32 and mips64 + builds. + * debian/sysdeps/kfreebsd-amd64.mk: remove wrong symlink /lib32/lib32. + * debian/sysdeps/amd64.mk,kfreebsd-amd64.mk: enable i686 optimizations. + * debhelper.in/locales-all.prerm, debhelper.in/locales.postinst: remove + prepended path. + * debian/sysdeps/hppa.mk: use relative symlinks for hppa64 include + directories. + * patches/all/submitted-iconv-latin9.diff: add latin9 as an alias to + latin-9 for consistency with other charsets. Closes: #497449. + * rules, rules.d/build.mk, debhelper.in/glibc-doc.manpages: install + preprocessed manpages instead of raw ones. + * debian/sysdeps/*.mk, script.in/kernelcheck.sh: bump minimal kernel + version to 2.6.18. Closes: #499689. + * debian/control.in/main: add Vcs-Svn and Vcs-Browser field. Closes: + #499769. + * debian/sysdeps/depflags.pl: add a conflict on nscd (<< 2.8) to libc + Closes: #498516). + * rules, rules.d/build.mk, debhelper.in/glibc-doc.manpages: install the + generated manpages. + * any/cvs-bug-iconv6_tst-iconv7.diff: new patch from upstream to fix + bug-iconv6 and tst-iconv7 when the locales package is not installed. + + [ Petr Salinger ] + * add any/local-linuxthreads-ptw.diff. Closes: #494908. + * add kfreebsd/local-sysdeps28.diff, glibc 2.8 specific kfreebsd sysdeps. + + -- Aurelien Jarno Mon, 13 Oct 2008 18:28:11 +0200 + +glibc (2.8~20080505-0ubuntu7) intrepid; urgency=low + + * Add debian/patches/ubuntu/stack-guard-quick-randomization.diff: do + light-weight randomization of the stack guard value instead of using + a static sentinel (LP: #275493). + + -- Kees Cook Sun, 28 Sep 2008 09:30:01 -0700 + +glibc (2.8~20080505-0ubuntu6) intrepid; urgency=low + + [ Matthias Klose ] + * Add debian/patches/any/regexp_h___REPB_PREFIX.diff patch (LP: #234056): + fix xview FTBFS error (Devid Filoni). LP: #234056. + + [ Michael Vogt ] + * sysdeps/depflags.pl: + - really add "findutils (>= 4.4.0-2ubuntu2)" to the libc6 depends, + this needs to be done in sysdeps/depflags.pl the regular + depend lines in debian/control.in/libc are just ignored + (LP: #234345) + + -- Michael Vogt Fri, 20 Jun 2008 17:28:24 +0200 + +glibc (2.8~20080505-0ubuntu5) intrepid; urgency=low + + * Do not run the testsuite on hppa ("threading on hppa is kinda goofy, + so the thread-stressing testsuite breaks"). + + -- Matthias Klose Tue, 10 Jun 2008 14:37:08 +0200 + +glibc (2.8~20080505-0ubuntu4) intrepid; urgency=low + + [ Michael Vogt ] + * debian/control: + - add a depends on findutils (>= 4.4.0-2ubuntu2) to libc6 to ensure + that xargs is unpacked before the new libc6 is unpacked. The xargs + from hardy crashes with the libc6 from intrepid (LP: #234345) + + [ Matthias Klose ] + * Merge Debian 2.7-12: + + [ Aurelien Jarno ] + * patches/alpha/submitted-procfs_h.diff: don't include elf/asm.h on alpha, + as it has been removed from linux-libc-dev. + * patch/arm/cvs-ioperm.diff: don't include asm/page.h as it has been removed + from linux-libc-dev. Closes: #480892. + * patches/hppa/cvs-atomic.diff: don't remove "memory" asm constraint. Fixes + FTBFS on hppa. + * Update Swedish debconf translation, by Martin Bagge. Closes: #482467. + * sysdeps/amd64.mk, sysdeps/i386.mk, control.in/main: bump g++-4.3 build-depends + to (>= 4.3.0-2) to make sure the cld fix is applied. Use gcc-4.3 on amd64 + and i386. + * patches/any/cvs-iconv-braces.diff: new patch from upstream to fix various + iconv bugs. + * local/manpages/nscd.conf.5: update nscd.conf manpage. Closes: #482505. + + [ Clint Adams ] + * Add any/cvs-regex_anchor.diff to fix performance anomaly with ^$. + closes: #475474. + + [ Samuel Thibault ] + * patches/hurd-i386/cvs-termios.diff: update patch, fixes compilation of jove. + * patches/hurd-i386/local-pthread-unsupported-stubs.diff: new patch to + declare the unsupported function stubs, fixes compilation of pike. Also + bump the dependency on hurd-dev to get . + * patches/hurd-i386/local-unlockpt-chroot.diff: new patch to fix ptys in + chroots. + + -- Matthias Klose Tue, 03 Jun 2008 16:07:12 +0200 + +glibc (2.8~20080505-0ubuntu3) intrepid; urgency=low + + * Merge from Debian: + - patches/any/local-no-pagesize.diff: don't include asm/page.h from + sys/user.h on alpha. Closes: #480295. + - patches/any/submitted-user_h.diff: don't include linux/user.h from + sys/user.h. Closes: #480093. + - patches/hppa/submitted-fesetenv.diff: fix fesetenv() on hppa with + gcc-4.3. + - sysdeps/arm.mk, sysdeps/hppa.mk, sysdeps/s390.mk, control.in/main: use + gcc-4.3 on arm, hppa and s390. + - debian/shlibs-add-udebs: new script from Frans Pop to correctly compute + the udev dependencies. Closes: #474293. + - rules.d/debhelper.mk: remove linda overrides installation. + - debhelper.in/*lintian: update. + - control.in/main: relax a few dependencies. + - rules.d/debhelper.mk: avoid creating empty directories when building + libc6-dbg. + + -- Matthias Klose Sun, 11 May 2008 13:09:59 +0200 + +glibc (2.8~20080505-0ubuntu2) intrepid; urgency=low + + * Don't build-depend on g++-multilib on lpia. + + -- Matthias Klose Fri, 09 May 2008 20:20:05 +0200 + +glibc (2.8~20080505-0ubuntu1) intrepid; urgency=low + + * New upstream version, built from a prerelease tarball. + - Remove patches applied upstream: amd64/cvs-vdso_clock_gettime.diff, + hppa/cvs-atomic.diff, hppa/hppalll.diff, sparc/submitted-v9v2.diff, + all/cvs-gai_conf.diff, any/cvs-epoll_h.diff, any/cvs-ether_line.diff, + any/cvs-ethertype.diff, any/cvs-fchmodat.diff, any/cvs-gcc-4.3.diff, + any/cvs-iconv-iso2022jp-loop-bug.diff, any/cvs-rfc3484.diff, + any/cvs-sched_h.diff, any/cvs-strtod.diff, any/cvs-tzfile.diff, + any/cvs-vfscanf.diff, any/cvs-wchar_h.diff, + any/cvs-sunrpc_rpc_thread.diff, any/cvs-strerror_r.diff, + any/cvs-short-for-fnstsw.diff, any/local-strfry.diff, + any/submitted-ieee754_h.diff, any/submitted-link-local_resolver.diff. + - Update patches: i386/submitted-i686-timing.diff. + * debian/*.symbols*: + - Add new symbols. + - Remove GLIBC_PRIVATE symbols not found anymore in 2.8: + _dl_tls_get_addr_soft@GLIBC_PRIVATE, __nss_services_lookup@GLIBC_PRIVATE. + * debhelper.in/libc.install: Relax file location for snapshot builds. + + -- Matthias Klose Fri, 09 May 2008 14:22:01 +0200 + +glibc (2.7-18) unstable; urgency=low + + * patches/localedata/mt_MT_euro.diff, patches/localedata/el_CY_euro.diff: + new patches to switch Cyprus and Malta currency to Euro. + + -- Aurelien Jarno Sun, 04 Jan 2009 11:28:23 +0100 + +glibc (2.7-17) unstable; urgency=low + + * patches/localedata/sk_SK_euro.diff: new patch to switch Slovakia + currency to Euro. Closes: bug#510423. + + -- Aurelien Jarno Fri, 02 Jan 2009 22:49:53 +0100 + +glibc (2.7-16) unstable; urgency=low + + * patches/any/submitted-rpcgen-makefile.diff: new patch to fix fancy + Makefile filename when using rpcgen -a. Closes: bug#503182. + + -- Aurelien Jarno Thu, 23 Oct 2008 15:39:04 +0200 + +glibc (2.7-15) unstable; urgency=low + + * debhelper.in/locales.config, debhelper.in/locales.postinst: modify + /etc/locale.gen instead of regenerating it. Closes: bug#494468. + * any/cvs-nscd-getservbyport.diff: new patch from upstream to fix getservbyport() + when nscd is used. Closes: bug#500055. + + -- Aurelien Jarno Sun, 12 Oct 2008 23:04:27 +0200 + +glibc (2.7-14) unstable; urgency=low + + [ Petr Salinger ] + * kfreebsd/local-sysdeps.diff: update to revision 2322 (from glibc-bsd). + * extend kfreebsd/local-ftw.diff: do not use *at functions also in glob.c, + this patch is applied only on kfreebsd, fixes globtest.out failure. + * any/local-linuxthreads-weak.diff: new patch to pass + stdio-common/scanf15.out test on linuxthreads platforms, + although it seems to be rather gcc 4.x bug, see GCC Bugzilla Bug 37266. + + [ Aurelien Jarno ] + * patches/mips/cvs-mknod.diff: new patch from upstream to allow > 255 minors + on mips. Closes: #493751. + * patches/sparc/cvs-context.diff: new patch from upstream to add + getcontext(), setcontext(), makecontext() on Sparc. Closes: #295173. + * patches/hppa/cvs-context.diff: new patch from upstream to add + getcontext(), setcontext(), makecontext() on PARISC. Closes: #492778. + * any/local-ip6-localhost.diff: new patch from upstream BTS, to remove the + ::1 -> 127.0.0.1 mapping. + * any/cvs-isoc99_vscanf.diff: new patch from upstream to fix vscanf on + non-GNU compilers. + * Fix nosegneg pseudo hwcap. Closes: #499366. + + [ Samuel Thibault ] + * patches/hurd-i386/cvs-lock-memory-clobber.diff: new patch from upstream + to fix safety of locks. + * patches/hurd-i386/local-pthread_posix-option.diff: new patch to advertise + the libpthread from the hurd packages. + * patches/hurd-i386/cvs-signal-werror.diff: new patch to fix gdb compilation. + * patches/hurd-i386/local-tls-support.diff: fix cthread compilation. + + -- Aurelien Jarno Sat, 20 Sep 2008 10:00:36 +0200 + +glibc (2.7-13) unstable; urgency=low + + [ Aurelien Jarno ] + * Update Brazilian Portuguese debconf translation, by Felipe Augusto van de + Wiel. Closes: #485381. + * patches/any/cvs-getaddrinfo.diff: new patch from CVS to correctly + initialize internal resolver structures in getaddrinfo(). Closes: + #489586. + * Update Romanian debconf translation, by Eddy Petrişor. Closes: #488734. + * any/cvs-tst-regex.diff: new patch from CVS to add a timeout to tst-regex. + Closes: #489856. + * control.in/main: build depends on gcc-4.3 (>= 4.3.0-7), remove + mips/local-gcc-ice.diff. + * Update Swedish debconf translation, by Martin Bagge. Closes: #492191. + * Revert the changes to patches/hppa/cvs-atomic.diff, it was not the cause + of the "tst-regex problem". + * hppa/cvs-lowlevellock.diff: new patch from upstream to fix build of NPTL + glibc on hppa. Closes: #486589. + + [ Petr Salinger] + * debian/sysdeps/kfreebsd.mk: also use the bsm/ directory from kernel + headers. + * kfreebsd/local-sysdeps.diff: update to revision 2265 (from glibc-bsd). + * Disable call to "GL(dl_wait_lookup_done)" in linuxthreads builds. Proper + solution still have to be created. Stop crashes in mean time. See #489066. + + [ Samuel Thibault ] + * patches/hurd-i386/cvs-MSG_NOSIGNAL.diff: New patch to implement + MSG_NOSIGNAL. + * patches/hurd-i386/local-msg-nosignal.diff: Forcibly set MSG_NOSIGNAL to 0 + until pfinet gets recompiled. Only apply on hurd-i386. + * Use gcc-4.3 on hurd-i386. + * patches/hurd-i386/cvs-open_2.diff: New patch to implement __open_2 + and __openat_2. Together with kfreebsd update closes: #489357. + * patches/hurd-i386/local-pthread_types.diff: New patch to drag pthread + types from hurd headers. Bump the hurd-dev dependency version + accordingly. + * patches/hurd-i386/cvs-fcntl-types.diff: New patch to include + from like on Linux. Fixes a lot of FTBFS on + hurd. + * patches/hurd-i386/local-tls.diff: Resync with upstream. + * patches/hurd-i386/local-tls-support.diff: Make tls.h also include + and include , like on Linux. + * patches/hurd-i386/submitted-trivial.diff: Remove, thanks to updated tls.h. + + [ Pierre Habouzit ] + * Cherry-pick upstream fixes with respect to locale rwlocks, merge them into + patches/any/cvs-strerror_r.diff. Closes: #489906. + + -- Aurelien Jarno Tue, 29 Jul 2008 03:09:20 +0200 + +glibc (2.7-12) unstable; urgency=low + + [ Aurelien Jarno ] + * patches/alpha/submitted-procfs_h.diff: don't include elf/asm.h on alpha, + as it has been removed from linux-libc-dev. + * patch/arm/cvs-ioperm.diff: don't include asm/page.h as it has been removed + from linux-libc-dev. Closes: #480892. + * patches/hppa/cvs-atomic.diff: don't remove "memory" asm constraint. Fixes + FTBFS on hppa. + * Update Swedish debconf translation, by Martin Bagge. Closes: #482467. + * sysdeps/amd64.mk, sysdeps/i386.mk, control.in/main: bump g++-4.3 build-depends + to (>= 4.3.0-2) to make sure the cld fix is applied. Use gcc-4.3 on amd64 + and i386. + * patches/any/cvs-iconv-braces.diff: new patch from upstream to fix various + iconv bugs. + * local/manpages/nscd.conf.5: update nscd.conf manpage. Closes: #482505. + + [ Clint Adams ] + * Add any/cvs-regex_anchor.diff to fix performance anomaly with ^$. + closes: #475474. + + [ Samuel Thibault ] + * patches/hurd-i386/cvs-termios.diff: update patch, fixes compilation of jove. + * patches/hurd-i386/local-pthread-unsupported-stubs.diff: new patch to + declare the unsupported function stubs, fixes compilation of pike. Also + bump the dependency on hurd-dev to get . + * patches/hurd-i386/local-unlockpt-chroot.diff: new patch to fix ptys in + chroots. + + -- Aurelien Jarno Mon, 02 Jun 2008 19:14:35 +0200 + +glibc (2.7-11ubuntu1) intrepid; urgency=low + + * Merge with Debian (r2892:2919). + - Packaging: + + External tzdata + + Use external locale information + + Addition of Niagara and Niagara2 optimised libraries + + GFDL Documentation added back in, build glibc-doc from this source. + + Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + + Use dpkg triggers for ldconfig + + Do not die if extra libc libraries or symlinks found + + Do not do a test run of nscd when starting + + Only apply patches we actually use in Ubuntu + + Use /lib and /usr/lib for amd64 + + amd64 biarch is i686, not i486. + + Non-optimised i386 glibc is Xen-friendly. + + Support sparcv9v, v9v2, 64b, 64v, 64v2 + + Add support for lpia. + + Call `sync' before building the tarball of supported locales. + + Downgrade priority of debconf questions for RELEASE_UPGRADE_MODE=desktop. + + Use the package settings for *FLAGS, not the settings from the env. + + Fail the build when regressions are detected in the testsuite. + + Build with GCC-4.3 on amd64 and i386. + - Patches: + + sparc/submitted-v9v2 + + hppa/hppalll + + Applied any/local-ipv6-lookup. + + Not applied any/local-sysctl. + * any/cvs-short-for-fnstsw.diff: Backport from the trunk, fix build failure + with binutils from trunk. + + -- Matthias Klose Thu, 08 May 2008 12:06:01 +0200 + +glibc (2.7-11) unstable; urgency=low + + [ Aurelien Jarno ] + * Re-enable testsuite on MIPS SB1 platforms. + * mips/cvs-memory-barriers.diff: new patch from CVS to fix test_and_set. + * mips/cvs-fcsr.diff: new patch from CVS to fix floating point control + register accesses. + * local/manpages/ld.so.8: fix libraries search order. Closes: #473458. + * Update Finish debconf translation, by Esko Arajärvi. Closes: #473802. + * Replace patches/mips/submitted-mipsn32.diff by the version merged + upstream. + * patches/hppa/cvs-atomic.diff: new patch from upstream to fix atomic + locks witch gcc-4.3. + * patches/any/cvs-rfc3484.diff: update tests from CVS. Closes: #474226. + * patches/localedata/locale-shs_CA.diff: add Secwepemctsín from CVS. + * debhelper.in/libc-prof.README.Debian: new file to explain how to use + libc-prof. Closes: #442858. + * patches/any/cvs-ethertype.diff: new patch to add new ETHERTYPE_* + definitions. Closes: #474171. + * sysdeps/depflags.pl: conflicts with tzdata-etch. + * kfreebsd/local-sysdeps.diff: update to revision 2163 (from glibc-bsd). + * patches/s390/submitted-nexttowardf.diff: fix IEEE exceptions raising in + nexttowardf() on s390 with gcc-4.3. + * sysdeps/arm.mk, sysdeps/s390.mk, control.in/main: use gcc-4.3 on arm + and s390. + + [ Pierre Habouzit ] + * Add any/cvs-strerror_r.diff to make strerror_r actually thread safe. + Closes: #456531. + + [ Samuel Thibault ] + * patches/hurd-i386/cvs-termios.diff: new patch to revamp ioctls/termios + bits. + + -- Aurelien Jarno Mon, 05 May 2008 22:24:48 +0200 + +glibc (2.7-10ubuntu3) hardy; urgency=low + + * Probably built on the good buildds last time; pessimize expected + test results on ia64, i386. + * debian/expected_test_summary: Fix typos in expected sparc results. + + -- Matthias Klose Sat, 05 Apr 2008 00:03:19 +0200 + +glibc (2.7-10ubuntu2) hardy; urgency=low + + * Adjust debian/expected_test_summary: + - Fix typo for i386 xen. + - crypt/sha512c fails on i386 (log-test-i486-linux-gnu-libc), but not on + the PPA build. + - Add current results for ia64, powerpc, sparc. + + -- Matthias Klose Fri, 04 Apr 2008 09:09:37 +0200 + +glibc (2.7-10ubuntu1) hardy; urgency=low + + * Merge remaining changes from 2.7-10 (r2869:2892). + * If RELEASE_UPGRADE_MODE is set to `desktop', make the glibc/restart-services, + glibc/restart-failed and glibc/upgrade questions of medium priority (and + restarting the services automatically). LP: #174002. + Works as well around the upgrade errors mentioned in LP #205079 in a KDE + environment, when the upgrade is done using the update-manager. + * debian/rules: Always use the package settings for *FLAGS, not the settings + from the environment. + * Fail the build if regressions are found running the testsuite compared to + expected results from debian/expected_test_summary. Take initial values + from a PPA build predating this upload. + * Merge from Debian trunk: + - local/manpages/ld.so.8: fix libraries search order. Closes: #473458. + - Update Finish debconf translation, by Esko Arajärvi. Closes: #473802. + - Add any/cvs-strerror_r.diff to make strerror_r actually thread safe. + Closes: #456531. + * debian/rules.d/build.mk: Call `sync' before building the tarball of + supported locales. Our buildds trigger http://lkml.org/lkml/2007/8/1/337 + on every build. + + -- Matthias Klose Thu, 03 Apr 2008 21:50:42 +0200 + +glibc (2.7-10) unstable; urgency=low + + * Update Chinese debconf translation, by LI Daobing. + * Update Dutch debconf translation, by Bart Cornelis. Closes: #468300. + * Update Polish debconf translation, by Emilian Nowak. + * Update Vietnamese debconf translation, by Clytie Siddall. Closes: #468453. + * Update Basque debconf translation, by Piarres Beobide. Closes: #468463. + * Update Romanian debconf translation, by Stan Ioan-Eugen. Closes: #468671. + * Update Czech debconf translation, by Miroslav Kure. Closes: #468910. + * Update Russian debconf translation, by Sergey Alyoshin. Closes: #469037. + * Update Korean debconf translation, by Sunjae Park. Closes: #469097. + * Update French debconf translation, by Christian Perrier. Closes: #469249. + * patches/localedata/locale-es_CR.diff: chane AM/PM format to "a.m./p.m." + from "A.M/P.M.". + * Remove uk_UA from patches/localedata/first_weekday.diff: merged upstream + in a different way. Closes: bug#469439. + * patches/any/cvs-rfc3484.diff: update from CVS to allow the definition of + IPv4 scopes in /etc/gai.conf. + * patches/all/cvs-gai_conf.diff: update gai.conf from CVS to also mention + Teredo tunnels and scopev4 defaults. + * sysdeps/mips.mk, sysdeps/mipsel.mk: define TIMEOUTFACTOR. + * patches/any/cvs-strtod.diff: new patch from CVS to fix strtod(). Closes: + #465769. + * Update Italian debconf translation, by Luca Monducci. Closes: #469985. + * control.in/main, sysdeps/*.mk, rules: build with gcc-4.3 by default, + except on alpha, arm, hppa, s390 and hurd-i386. + * rules, rules.d/build.mk: fix parallel build. + * control.in/main: build witch gcc-4.2 on i386 and amd64, as gcc-4.3 does + not emit cld instructions in the prologue of the functions anymore. + Closes: #469568. + * debian/rules.d/build.mk: disable testsuite on ARM machines running a + 2.6.21 to 2.6.24 kernel. + * Replace any/submitted-gcc-4.3.diff by any/cvs-gcc-4.3.diff. + * debhelper.in/libc.preinst, debhelper.in/libc.postinst: remove support for + upgrade from Potato, and misc fixes. + * control.in/main, rules.d/control.mk: remove @threads_arches@, as all + architectures now support threads. + * control.in/main, debhelper.in/glibc-source.install: build a glibc-source + package. + * sysdeps/mips.mk, sysdeps/mipsel.mk, control.in/main: enable n32 and 64 + flavours. Closes: #341884. + * Update Arabic debconf translation, by Ossama Khayat. Closes: #471472. + * rules.d/build.mk: reset LDFLAGS, as dpkg now defines it to a default + value which breaks the glibc. + * patches/mips/local-gcc-ice.diff: decrease optimisations on a few files + to workaround gcc ICE on mips/mipsel n32/64. + + [ Samuel Thibault ] + * patches/hurd-i386/cvs-blocked-exceptions.diff: new patch to dump + core when a blocked exception arises. + * patches/hurd-i386/cvs-df.diff: new patch to clear DF for signal + handlers (Closes: #470021). + * patches/hurd-i386/local-gcc-4.1-init-first.diff: update and actually + apply. + * patches/hurd-i386/submitted-mig-init.diff: new patch to fix uninitialized + local variables. + * patches/hurd-i386/local-pthread_stubs.diff: new patch to use libpthread + stubs from libpthread-stubs. Add libpthread-stubs0-dev dependency on + hurd-i386. + + -- Aurelien Jarno Thu, 27 Mar 2008 23:09:00 +0100 + +glibc (2.7-9ubuntu2) hardy; urgency=low + + * Clear out LDFLAGS when building; glibc isn't happy building with + -Wl,-Bsymbolic-functions. LP: #201673 + + -- Steve Langasek Thu, 13 Mar 2008 08:34:28 +0000 + +glibc (2.7-9ubuntu1) hardy; urgency=low + + * Merge with Debian (r2869); remaining changes: + - Packaging: + + External tzdata + + Use external locale information + + Addition of Niagara and Niagara2 optimised libraries + + GFDL Documentation added back in, build glibc-doc from this source. + + Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + + Use dpkg triggers for ldconfig + + Do not die if extra libc libraries or symlinks found + + Do not do a test run of nscd when starting + + Only apply patches we actually use in Ubuntu + + Use /lib and /usr/lib for amd64 + + amd64 biarch is i686, not i486. + + Non-optimised i386 glibc is Xen-friendly. + + Support sparcv9v, v9v2, 64b, 64v, 64v2 + + Add support for lpia. + - Patches: + + sparc/submitted-v9v2 + + hppa/hppalll + + Applied any/local-ipv6-lookup. + + Not applied any/local-sysctl. + * debian/sysdeps/*.mk: Still build main flavours with -O3 (using gcc-4.2). + * Use .conf for files in /etc/ld.so.conf.d. LP: #70315 + + * patches/any/local-ipv6-lookup.diff: Update (Tollef van Heen). + + [changes from Debian svn after -9] + * Update Chinese debconf translation, by LI Daobing. + * Update Dutch debconf translation, by Bart Cornelis. Closes: #468300. + * Update Polish debcon translation, by Emilian Nowak. + * Update Vietnamese debconf translation, by Clytie Siddall. Closes: #468453. + * Update Basque debconf translation, by Piarres Beobide. Closes: #468463. + * Update Romanian debconf translation, by Stan Ioan-Eugen. Closes: #468671. + * Update Czech debconf translation, by Miroslav Kure. Closes: #468910. + * Update Russian debconf translation, by Sergey Alyoshin. Closes: #469037. + * Update Korean debconf translation, by Sunjae Park. Closes: #469097. + * Update French debconf translation, by Christian Perrier. Closes: #469249. + * patches/localedata/locale-es_CR.diff: chane AM/PM format to "a.m./p.m." + from "A.M/P.M.". + * Remove uk_UA from patches/localedata/first_weekday.diff: merged upstream + in a different way. Closes: bug#469439. + * patches/any/cvs-rfc3484.diff: update from CVS to allow the definition of + IPv4 scopes in /etc/gai.conf. + * patches/all/cvs-gai_conf.diff: update gai.conf from CVS to also mention + Teredo tunnels and scopev4 defaults. + * sysdeps/mips.mk, sysdeps/mipsel.mk: define TIMEOUTFACTOR. + * patches/any/cvs-strtod.diff: new patch from CVS to fix strtod(). Closes: + #465769. + * Update Italian debconf translation, by Lica Monducci. Closes: #469985. + * control.in/main, sysdeps/*.mk, rules: build with gcc-4.3 by default, + except on alpha, arm, armel, hppa, s390 and hurd-i386. + * rules, rules.d/build.mk: fix parallel build. + * control.in/main: build-depends on gcc-4.3 (>= 4.3.0-2) to make sure a cld + instruction is emitted in the prologue of functions using stringops. + Closes: #469568. + * debian/rules.d/build.mk: disable testsuite on ARM machines running a + 2.6.21 to 2.6.24 kernel. + + -- Matthias Klose Wed, 12 Mar 2008 22:08:00 +0100 + +glibc (2.7-9) unstable; urgency=low + + * patches/any/local-ldso-disable-hwcap.diff: revert previous changes + as they break etch -> lenny upgrades. Closes: #465753. + * kfreebsd/local-sysdeps.diff: update to revision 2137 (from glibc-bsd). + * any/submitted-link-local_resolver.diff: kernel 2.6.24 is out, don't wait + indefinitely for upstream. This patch from Pierre Ynard adds support for + link-local addresses in /etc/resolv.conf. + * Factorize NSS detection code: + - debhelper.in/libc.preinst, debhelper.in/libc.postinst: move NSS code + to... + - script.in/nsscheck.sh: ... this file. + - rules.d/debhelper.mk: Replace NSS_CHECK with code from + script.in/nsscheck.sh. + * debhelper.in/libc.preinst, debhelper.in/libc.templates: debconfize preinst + script. + * patches/localedata/locale-es_CR.diff: new patch to default to am/pm format + for es_CR locale. Closes: #466482. + * control.in/main, sysdeps/amd64.mk, sysdeps/i386.mk, + sysdeps/kfreebsd-amd64.mk, sysdeps/kfreebsd-i386.mk, sysdeps/sparc.mk : use + gcc-4.3 on amd64, i386, kfreebsd-i386, kfreebsd-amd64 and sparc. + * sysdeps/i386.mk, sysdeps/kfreebsd-i386.mk: use default gcc optimizations + on i386 and kfreebsd-i386 (-march=i486 -mtune=generic). + * debian/local/manpages/ldconfig.8: describe --ignore-aux-cache option. + Closes: #467509. + * Update Lithuanian debconf translation, by Gintautas Miliauskas. + * Update Catalan debconf translation, by Jordi Mallach. + * Update Spanish debconf translation, by Carlos Valdivia Yagüe. + * Update German debconf translation, by Helge Kreutzman. Closes: #468072. + * Update Galician debconf translation, by Jacobo Tarrio. Closes: #468080. + * Update Slovak debconf translation, by Ivan Masár. Closes: #468082. + * Update Portuguese debconf translation, by Ricardo Silva. Closes: #468091. + * update Japanese debconf translation, by Kenshi Muto. Closes: #468099. + + -- Aurelien Jarno Wed, 27 Feb 2008 19:14:37 +0100 + +glibc (2.7-8) unstable; urgency=low + + * any/cvs/rfc3484.diff: patch from CVS to fix recognition of interface + family. Closes: #465583. + + -- Aurelien Jarno Wed, 13 Feb 2008 17:12:18 +0100 + +glibc (2.7-7) unstable; urgency=low + + [ Arthur Loiret ] + * patches/sh4/cvs-nptl-private-futexes.diff: new patch from CVS to fix + FTBFS on sh4. + + [ Samuel Thibault ] + * patches/hurd-i386/cvs-epfnosupport.diff: new patch to fix socket() + error for IPV6. + + [ Aurelien Jarno ] + * patches/any/local-ldso-disable-hwcap.diff: enable tls/ directory even + when hardware capabilities are disabled. This workarounds a bug in + nvidia-glx. Closes: #453480. + * patches/mips/local-r10k.diff: new patch from Florian Lohoff to + workaround LL/SC bug on R10k. Closes: #462112. + * patches/mips/submitted-mipsn32.diff: new patch to fix truncate64() + on MIPS n32. + * kfreebsd/local-sysdeps.diff: update to revision 2129 (from glibc-bsd). + * patches/any/cvs-epoll_h.diff: new patch from CVS to define EPOLLRDHUP + in /usr/include/sys/epoll.h. Closes: #463342. + * patches/any/submitted-gcc-4.3.diff: pass -isystem option for GCC's + include-fixed/ directory. Fixes build with gcc-4.3. + * debian/control.in/main: bump to Standards-Version 3.7.3. + * debian/sysdeps/*.mk: build main flavours with -O2 instead of -O3 (risks to + trigger a bug in the compiler are higher with -O3). Remove -g from cflags, + as it is automatically added by the glibc scripts. + * debhelper.in/nscd.init: depends on $remote_fs instead of $local_fs. + Closes: #464022. + * patches/any/submitted-ieee754_h.diff: use __BIG_ENDIAN instead of + BIG_ENDIAN. Closes: #464594. + * local/manpages/ld.so.8: Add missing options to manpage. Closes: + #464395. + * rules.d/build.mk: build the locales in the build target instead of the + install one to workaround a bug in fakeroot. Closes: #464924. + * patches/alpha/local-dl-procinfo.diff: fix _dl_string_platform() to accept + NULL pointers, which happens on statically linked binaries. Closes: + bug#456260. + * local/manpages/gai.conf.5: new manpage. + * any/submitted-rfc3484-sortv4.diff: Drop. Replaced by ... + * ... any/cvs/rfc3484.diff: patch from upstream to fix various RFC3484 + issues: + - Fix source IPv4 source address length computation. Closes: bug#456779. + - Only apply rule 9 for IPv4 if source and destination addresses are on + the same subnet. Closes: bug#438179. + + -- Aurelien Jarno Tue, 12 Feb 2008 22:29:56 +0100 + +glibc (2.7-6) unstable; urgency=low + + [ Aurelien Jarno ] + * patches/localedata/locale-ks_IN.diff: new locale contributed by Rakesh + Pandit. Closes: #457351. + * patches/series: enable patches/any/cvs-vfscanf.diff. Closes: #453408. + * Support dpkg-buildpackage -j, but only debian/rules is actually run in + parallel. + * patches/any/cvs-iconv-iso2022jp-loop-bug.diff: patch from CVS to fix + iconv hang when converting to ISO-2022-JP. Thanks to Bryan Donlan for + the patch. Closes: #458579. + * kfreebsd/local-sysdeps.diff: update to revision 2094 (from glibc-bsd). + * patches/amd64/cvs-vdso_clock_gettime.diff: new patch from CVS to fix + static linking on amd64. + * patches/any/local-linuxthreads-fd.diff: new patch to make sure + linuxthreads doesn't use stdin, stdout or stderr for its internal + use. + * debhelper.in/libc.preinst: also check for libc6-xen in non-dpkg-owned + files test. Closes: #459523. + * patches/any/submitted-rfc3484-labels.diff: remove, this patch is actually + broken, and the observed behaviour conforms with the RFC. + * patches/any/submitted-fileops-and-signals.diff: disabled as it breaks too + much programs. Closes: #459643. + * patches/localedata/locale-pt_PT.diff: new patch from Flávio Martins to + fix mon_decimal_point for pt_PT. Closes: #459217. + * debian/debhelper.in/locales.postinst: don't update /etc/default/locale + if it already exists and DEBCONF_RECONFIGURE is not empty. Closes: + #458914. + * debian/sysdeps/depflags.pl: bump conflict against tzdata to (<< 2007k-1). + + [ Clint Adams ] + * debhelper.in/nscd.init: use lsb output functions. Closes: #457661. + * patches/any/cvs-sunrpc_rpc_thread.diff: patch by André Cruz to fix + sunrpc memory leak. closes: #460226. + + [ Samuel Thibault ] + * patches/hurd-i386/submitted-extern_inline.diff: new patch to fix extern + inline declarations for c++. + + -- Aurelien Jarno Sat, 12 Jan 2008 15:33:10 +0100 + +glibc (2.7-5ubuntu2) hardy; urgency=low + + * Really stop setting MAKEINFO to :, so that the info documentation is + built. + + -- Colin Watson Tue, 01 Jan 2008 12:10:28 +0000 + +glibc (2.7-5ubuntu1) hardy; urgency=low + + * Resynchronise with Debian. Remaining changes: + - Packaging: + + External tzdata + + Use external locale information + + Addition of Niagara and Niagara2 optimised libraries + + GFDL Documentation added back in. + + Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + + Use dpkg triggers for ldconfig + + Do not die if extra libc libraries or symlinks found + + Do not do a test run of nscd when starting + + Only apply patches we actually use in Ubuntu + + Use /lib and /usr/lib for amd64 + + amd64 biarch is i686, not i486. + + Non-optimised i386 glibc is Xen-friendly. + + Support sparcv9v, v9v2, 64b, 64v, 64v2 + + Add support for lpia. + - Patches: + + any/local-ipv6-sanity + + i386/local-clone + + amd64/local-clone + + sparc/submitted-v9v2 + + hppa/hppalll + * Debian any/cvs-vfscanf patch fixes LP: #178045. Actually add it to + debian/patches/series (forgotten in Debian). + * Stop setting MAKEINFO to :, which prevented the info documentation being + built. See also 2.5-0ubuntu3. + * any/submitted-rfc3484-sortv4: Return to disabling RFC3484 s6 rule 9 by + default. As requested by Ubuntu sysadmins, we want this regardless of + the Debian technical committee's decision. + + -- Colin Watson Mon, 24 Dec 2007 09:55:32 +0000 + +glibc (2.7-5) unstable; urgency=low + + [ Aurelien Jarno ] + * Moved merged parts of patches/any/submitted-sched_h.diff into + patches/any/cvs-sched_h.diff. + * patches/any/cvs-ether_line.diff: new patch from upstream to fix + ether_line(). Closes: bug#453899. + * patches/any/cvs-vfscanf.diff: new patch from upstream to fix + crash when %as is used with sscanf(). Closes: bug#453408. + * debian/rules: also set CXX when cross-compiling. + * patches/any/submitted-malloc_h.diff: removed, replaced by + patches/any/cvs-wchar_h.diff. + * debian/sysdeps/depflags.pl: conflict against tzdata (<< 2007j-2) as + etch now have version 2007j-1etch1. Closes: bug#455783. + * debian/sysdeps/depflags.pl: suggests libc6-i686 on i386 architecture. + Closes: bug#455603. + * any/submitted-rfc3484-labels.diff: new patch to fix RFC 3484 default + label ordering. Closes: bug#456779. + * patches/alpha/local-dl-procinfo.diff: add missing part. Closes: + bug#456260. + + [ Petr Salinger] + * kfreebsd/local-sysdeps.diff: update to revision 2082 (from glibc-bsd). + * any/cvs-fchmodat.diff: properly declare as stub - needed by GNU/kFreeBSD. + + [ Samuel Thibault] + * patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff: update to also + handle unsigned char/int/short/long and ssize_t. + + -- Aurelien Jarno Wed, 19 Dec 2007 01:22:06 +0100 + +glibc (2.7-4ubuntu1) hardy; urgency=low + + * Merge with Debian; remaining changes (see 2.7-1ubuntu1) + + -- Matthias Klose Mon, 10 Dec 2007 10:34:38 +0100 + +glibc (2.7-4) unstable; urgency=low + + [ Aurelien Jarno ] + * patches/localedata/locale-de_LI.diff: fix locale. Closes: bug#453860. + * debian/debhelper.in/locales.NEWS: fix location of the README file. + Closes: bug#453515. + * debian/debhelper.in/locales.README: rename into locales.README.Debian. + * debian/debhelper/in/locales.NEWS: fix a typo. Closes: bug#453613. + * Update any/submitted-sched_h.diff: allow compilation of with + -pedantic. Closes: bug#453687. + * Fix a typo in debian/sysdeps/alpha.mk. Closes: bug#452890. + * Disable amd64/local-x86_64_bits_sigcontext.diff. Closes: #454598. + * debhelper.in/libc.preinst: check for non-dpkg owned versions of + libc6-i686 before upgrade. Closes: #454557. + * Load debconf frontend after the optimized libraries have been + re-enabled. Closes: #453480. + + -- Aurelien Jarno Fri, 07 Dec 2007 00:49:02 +0100 + +glibc (2.7-3ubuntu1) hardy; urgency=low + + [ Matthias Klose ] + * Merge with Debian; remaining changes (see 2.7-1ubuntu1) + * debian/rules.d/control.mk: Re-add support for lpia. + * debian/sysdeps/amd64.mk: Restore i386_includedir. + + [ Jeff Bailey ] + * debian/patches/hppa/hppalll.diff: Fix build failure on hppa. + + -- Matthias Klose Fri, 07 Dec 2007 23:21:12 +0100 + +glibc (2.7-3) unstable; urgency=low + + [ Aurelien Jarno ] + * Remove cs_CZ-first_weekday.diff: merged upstream in a different way. + Closes: bug#344470. + * Remove da_DK-first_weekday.diff: likewise. + * Remove de_DE-first_weekday.diff: likewise. + * Remove en_GB-first_weekday.diff: likewise. + * Remove et_EE-first_weekday.diff: likewise. + * Remove en_US-first_weekday.diff: likewise. + * Remove fr_FR-first_weekday.diff: likewise. + * Remove hu_HU-first_weekday.diff: likewise. + * Remove nb_NO-first_weekday.diff: likewise. + * Remove nn_NO-first_weekday.diff: likewise. + * Remove pl_PL-first_weekday.diff: likewise. + * Remove sk_SK-first_weekday.diff: likewise. + * amd64, i386/local-clone.diff: restore patch to fix gij running out of + memory, as it has been lost upstream. + * debian/sysdeps/alpha.mk: fix alphaev67_rltddir. Closes: #452890. + * patches/localedata/locale-de_LI.diff: new locale contributed by Giacomo + Catenazzi. Closes: #453041. + * debian/debhelper.in/locales-all.postinst: honor TMPDIR. Closes: #453326. + * patches/any/submitted-malloc_h.diff: defines __need_ptrdiff_t, + __need_size_t and __need_NULL in malloc.h. Closes: #453264. + * support user defined locales in /usr/local/share/i18n. Closes: #453131. + + -- Aurelien Jarno Thu, 29 Nov 2007 18:01:03 +0100 + +glibc (2.7-2) unstable; urgency=low + + [ Aurelien Jarno ] + * sysdeps/alpha.mk: define alphaev67_MIN_KERNEL_SUPPORTED to 2.6.9. + Closes: #452890. + * alpha/submitted-fdatasync.diff: new patch to fix fdatasync() on alpha. + Closes: #452081. + * debian/script.in/nohwcap.sh: add libc6-alphaev67 to the list of optimized + packages. + * any/cvs-tzfile.diff: new patch from CVS to fix reading version 0 timezone + data files. Closes: #451892. + * debhelper.in/locales.config, debhelper.in/locales.postinst, + rules.d/debhelper.mk: rework the maintainer scripts of locales to handle + locales addition or removal. + * debhelper.in/locales.config: convert no_NO into nb_NO while upgrading. + Closes: #452788. + * debhelper.in/locales-all.NEWS, debhlper/locales-all.NEWS: add a note + about no_NO locale. + + -- Aurelien Jarno Mon, 26 Nov 2007 19:03:17 +0100 + +glibc (2.7-1ubuntu1) UNRELEASED; urgency=low + + * Merge changes from Debian. + Remaining changes: + * Packaging: + * External tzdata + * Use external locale information + * Addition of Niagara and Niagara2 optimised libraries + * GFDL Documentation added back in. + * Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + * Use dpkg triggers for ldconfig + * Do not die if extra libc libraries or symlinks found + * Do not do a test run of nscd when starting + * Only apply patches we actually use in Ubuntu + * Use /lib and /usr/lib for amd64 + * amd64 biarch is i686, not i486. + * Non-optimised i386 glibc is Xen-friendly. + * Support sparcv9v, v9v2, 64b, 64v, 64v2 + * Patches: + * any/local-ipv6-sanity + * i386/local-clone + * amd64/local-clone + * sparc/submitted-v9v2 + + -- Jeff Bailey Sun, 25 Nov 2007 17:44:13 -0800 + +glibc (2.7-1) unstable; urgency=low + + [ Clint Adams ] + * New upstream release with linuxthreads snapshot. + - Fixes an ABBA deadlock in ld.so. Closes: #443460. + - Render dgettext" thread safe. Closes: #443660. + - Fixes CVE-2007-4840 (multiple errors in iconv + function). Closes: #442250. + - Fixes strtod("-0", 0). Closes: #448723. + - Remove localedata/locale-de_CH.diff (merged). + - Update locale/fix-LC_COLLATE-rules.diff. + - Update locale/LC_COLLATE-keywords-ordering.diff. + - Update locale/fix-C-first_weekday.diff. + - Update locale/preprocessor-collate.diff. + - Update localedata/locales-fr.diff. + - Remove localedata/locale-sa_IN.diff (merged). + - Remove localedata/locale-wo_SN.diff (merged). + - Update localedata/tailor-iso14651_t1.diff. + - Add localedata/tailor-iso14651_t1-common.diff. + - Remove localedata/fix-unknown-symbols.diff (merged). + - Update localedata/first_weekday.diff. + - Add localedata/cs_CZ-first_weekday.diff. + - Add localedata/da_DK-first_weekday.diff. + - Add localedata/pl_PL-first_weekday.diff. + - Add localedata/de_DE-first_weekday.diff. + - Add localedata/en_GB-first_weekday.diff. + - Add localedata/en_US-first_weekday.diff. + - Add localedata/et_EE-first_weekday.diff. + - Add localedata/fr_BE-first_weekday.diff. + - Add localedata/fr_CA-first_weekday.diff. + - Add localedata/fr_CH-first_weekday.diff. + - Add localedata/fr_FR-first_weekday.diff. + - Add localedata/fr_LU-first_weekday.diff. + - Add localedata/hu_HU-first_weekday.diff. + - Add localedata/nb_NO-first_weekday.diff. + - Add localedata/nn_NO-first_weekday.diff. + - Add localedata/sk_SK-first_weekday.diff. + - Add localedata/cy_GB-first_weekday.diff. + - Update localedata/sort-UTF8-first.diff. + - Remove localedata/submitted-as_IN.diff (merged). + - Remove hppa/submitted-multiple-threads.diff (merged). + - Remove hppa/submitted-ustat.diff (merged). + - Remove hurd-i386/cvs-sigsuspend-nocancel.diff (merged). + - Remove hurd-i386/cvs-lock-intern.diff (merged). + - Remove sparc/local-undefined-registers.diff (obsolete). + - Remove all/local-pt_BR.diff (merged). + - Remove any/cvs-ld_library_path.diff (merged). + - Remove any/cvs-initfini.diff (merged). + - Remove any/cvs-posix-glob.diff (merged). + - Update any/local-bashisms.diff. + - Remove any/local-forward-backward-collation.diff (merged). + - Remove any/local-version-sanity.diff (merged). + - Remove any/submitted-strtok.diff (merged). + - Remove any/submitted-regex-collate.diff (merged). + - Remove localedata/locale-no_NO.diff (obsolete). + - Update localedata/supported.diff. + * Bump shlib version to 2.7-1. + * Add localedata/cvs-locale-ig_NG.diff BZ#5224, missing collation symbols + for ig_NG. + * Add localedata/cvs-locale-lo_LA.diff BZ#5237, missing collation symbols + for lo_LA. + * Add localedata/cvs-locale-ug_CN.diff BZ#5238, missing collation symbols + for ug_CN. + + [ Aurelien Jarno ] + * any/submitted-longdouble.diff: update. + * Improve any/submitted-rfc3484-sortv4.diff. + * Update hurd-i386/submitted-trivial.diff. + * any/local-strfry.diff: new patch to fix strfry(), as Ulrich Drepper + has still not managed to commit a correct version. + * Remove hppa/submitted-threaddb.diff (merged). + * Update hppa/submitted-nptl-carlos.diff. + * Update hurd-i386/submitted-libc_once.diff. + * Remove hurd-i386/cvs-ioctl-delay.diff (merged). + * Update hurd-i386/local-tls-support.diff. + * Add hurd-i386/cvs-kernel-features.diff: provide almost empty + kernel-features.h for files that include it. + * Add arm/local-args6.diff: provide DOCARGS_6 and UNDOCARGS_5 for + arm old-abi. + * Add arm/local-lowlevellock.diff: new patch to fix build on arm. + * debian/rules, debian/rules.d/build.mk: allow per architecture + TIMEOUTFACTOR. + * sysdeps/arm.mk, sysdeps/armel.mk, sysdeps/hppa.mk, sysdeps/s390.mk, + sysdeps/sh4.mk: define TIMEOUTFACTOR. + * locales-depver: tighten locales dependencies. + * any/local-disable-test-tgmath2.diff: new patch to disable test-tgmath2, + which take too much resources during compilation. + * Add hurd-i386/submitted-strtoul.diff: new patch to use + __strtoul_internal() instead of strtoul() in internal functions. + * Add hurd-i386/submitted-ptr-mangle.diff: new patch to define PTR_MANGLE + and PTR_DEMANGLE. + * Update Galician debconf translation, by Jacobo Tarrio. Closes: #447928. + * Update Dutch debconf translation, by Bart Cornelis. Closes: #448928. + * Add sh4/local-fpscr_values.diff and any/local-allocalim-header.diff + from Arthur Loiret. Closes: #448248. + * Fix encoding of Japanese translation. Closes: #447221. + * Add any/submitted-sched_h.diff: new patch to define `__CPU_ALLOC_SIZE. + * Add mips/local-setjmp.diff: new patch to fix g++ tests on mips/mipsel. + * Add any/local-fhs-nscd.diff: move nscd directory to /var/cache/nscd from + /var/db/nscd. Closes: #449198. + * debhelper.in/nscd.postrm: remove /var/cache/nscd on purge. Closes: + #449193. + * script.in/kernelcheck.sh, sysdeps/alpha.mk: bump minimum kernel version to + 2.6.9 for alpha. + * script.in/kernelcheck.sh, sysdeps/sh4.mk: bump minimum kernel version to + 2.6.11 for sh4. + * debian/patches/arm/local-eabi-wchar.diff: new patch from Riku Voipio to + fiw WCHAR_MIN and WCHAR_MAX definitions on armel. Closes: #444580. + * debian/po/zh_CN.po: update from LI Daobing. Closes: #447866. + * debhelper.in/locales-all.postinst: trap exit signal and remove temporary + directory. Closes: #447328. + * debhelper.in/libc.NEWS: mention that the tzconfig script has been replaced + by the maintainer scripts of tzdata. Closes: bug#448796. + * patches/all/local-alias-et_EE.diff: switch estonian locales alias to + ISO-8859-15. + * patches/alpha/submitted-fpu-round.diff: restore the old version of + ceil/floor/rint functions. Closes: #442568. + * patches/alpha/local-dl-procinfo.diff: new patch to add platform + capabilities support on alpha. + * Add an ev67 flavour on alpha: Closes: #229251 + - control.in/opt: add libc6-alphaev67 packages. + - sysdeps/alpha.mk: add a new pass for ev67 flavour. + * debian/local/manpages/iconv.1: document //translit and //ignore + options. Closes: #451304. + * debian/local/manpages/getent.1: document exit codes. Closes: + #445631. + * debian/local/manpages/ld.so.8: document $ORIGIN, $PLATFORM and $LIB + features. Closes: #444145. + * local/manpages/ldconfig.8: remove --force option from the manpage + to be consistent with the binary. Closes: #451958. + * kfreebsd/local-sysdeps.diff: update to revision 2046 (from glibc-bsd). + + [ Petr Salinger] + * any/local-stdio-lock.diff: make _IO_*_lock linuxthreads compliant. + * any/local-o_cloexec.diff: don't assume O_CLOEXEC is always defined. + * any/local-linuxthreads-signals.diff: always use non-RT signal handler + on GNU/kFreeBSD. + + [ Pierre Habouzit ] + * Remove any/local-iconv-fix-trampoline.diff (obsolete). + * Remove any/submitted-strfry.diff (merged). + * Update any/submitted-rfc3484-sortv4.diff. + * Update localedata/*first_weekday.diff. + * Remove localedata/fix-am_ET.diff (obsolete). + * Add locale/preprocessor-collate-uli-sucks.diff to revert Ulrich's + preprocessor that isn't enough for Debian. + * Update patches/locale/preprocessor-collate.diff. + * Add alpha/submitted-PTR_MANGLE.diff (Closes: #448508). + + [ Samuel Thibault ] + * hurd-i386/submitted-ptr-mangle.diff: Define PTR_MANGLE for assembly. + * hurd-i386/cvs-O_CLOEXEC_fix.diff: New patch to fix conflicting O_CLOEXEC + value. + + -- Aurelien Jarno Fri, 23 Nov 2007 10:46:24 +0100 + +glibc (2.6.1-6ubuntu2) hardy; urgency=low + + * Reapply any/local-ipv6-sanity.diff, lost when merging 2.6. LP: #156720. + + -- Matthias Klose Wed, 24 Oct 2007 18:15:43 +0200 + +glibc (2.6.1-6ubuntu1) hardy; urgency=low + + [Fabio M. Di Nitto] + * debian/patches/sparc/submitted-v9v2.diff: Add Niagara 2 optimized + memcpy support. + Code, patch and test done by David S. Miller. + * debian/patches/series: update. + * debian/sysdeps/sparc.mk: Add v9v2 32 and 64 bit targets. + * debian/control.in/opt: Add sparc64v2 and sparcv9v2 packages. + * debian/control: update. + * debian/script.in/nohwcap.sh: + memcpy support. + Code, patch and test done by David S. Miller. + * debian/patches/series: update. + * debian/sysdeps/sparc.mk: Add v9v2 32 and 64 bit targets. + * debian/control.in/opt: Add sparc64v2 and sparcv9v2 packages. + * debian/control: update. + * debian/script.in/nohwcap.sh: + - fix list of sparc optimized libc6. + - add v9v2 optimized packages. + + [Matthias Klose] + * Merge with Debian; remaining changes: + - Upstream tarball including GFDL'd documentation. + - Don't apply patches for architectures not found in Ubuntu. + - Build optimized sparc packages. + - Support lpia. + - No support for linuxthreads. + + -- Matthias Klose Fri, 19 Oct 2007 15:25:11 +0200 + +glibc (2.6.1-6) unstable; urgency=low + + [ Aurelien Jarno ] + * Update Spanish debconf translation, by Carlos Valdivia Yagüe. + + [ Clint Adams ] + * debian/po/de.po: update from Helge Kreutzmann. closes: #442888. + * debian/po/cs.po: update from Miroslav Kure. closes: #442904. + * debian/po/it.po: update from Luca Monducci. closes: #443497. + * debian/po/ja.po: update from Kenshi Muto. closes: #446577. + * Add any/cvs-posix-glob.diff, fixing improper of treatment of \ + in glob(). closes: #445210 + + -- Clint Adams Sun, 14 Oct 2007 10:02:35 -0400 + +glibc (2.6.1-5) unstable; urgency=low + + [ Pierre Habouzit ] + * remove any/local-sysmacros.diff: sorry for bug #439859 but it makes gimp + (and presumably other software) FTBFS, it's too dispruptive. + Closes: #442427. + + [ Clint Adams ] + * amd64/local-x86_64_bits_sigcontext.diff: use a copy of the generic header + for x86_64. closes: #442418. + + -- Clint Adams Sun, 16 Sep 2007 14:42:17 -0400 + +glibc (2.6.1-4) unstable; urgency=low + + * Disable any/local-ipv6-lookup.diff as it is causing breakages. + Closes: bug#441857. + * any/local-sysmacros.diff: use __inline instead of inline for + compatibility with ANSI. Closes: #441959. + * patches/localedata/tailor-iso14651_t1.diff: correctly fix fi_FI + locale. Closes: bug#441026. + * debian/rules.d/debhelper.mk: fix regex. Closes: #441824. + * Update French debconf translation, by Christian Perrier. Closes: + #442101. + * any/submitted-regex-collate.diff: fix regex engine for multibyte + characters and C collation. Closes: #441355. + * debian/local/manpages/locale-gen.8: fix manpage. Closes: #442104. + + -- Aurelien Jarno Thu, 13 Sep 2007 17:05:17 +0200 + +glibc (2.6.1-3) unstable; urgency=low + + * sysdeps/amd64.mk: uses x86_64 headers also for the i486 flavour now + that they are compatible. + * sysdeps/i386.mk: uses x86_64 headers also for the main flavour. + * debian/local/etc_default/locale: remove. Closes: bug#441360. + * sysdeps/*.mk: don't provide include symlink for bi-arch, but only + an empty directory. + * debian/rules.d/debhelper.mk: modify nscd/DEBIAN/control during build + to workaround a dpkg-shlibdeps bug. Closes: bug#433723. + * debian/local/manpages/nscd.conf.5: document the persistent and shared + cache options. Closes: bug#338504. + * patches/all/local-alias-UTF-8.diff: encode locales.alias in UTF-8. + Closes: bug#404433. + * debhelper.in/locales.links, debhelper.in/locales.install: move + locales.alias into /etc and provide a symlink in + /usr/share/locale/locale.alias. + * patches/localedata/tailor-iso14651_t1.diff: fix fi_FI locale. Closes: + bug#441026. + * kfreebsd/local-sysdeps.diff: update to revision 1998 (from glibc-bsd). + * sysdeps/kfreebsd-amd64.mk: uses x86_64 headers also for the i486 flavour + now that they are compatible. + * any/local-sysmacros.diff: new patch to declare "major", "minor" and + "makedev" as inline function instead of macros. Closes: #439859. + * debhelper.in/libc.postinst, debhelper.in/libc.templates: prompt user + with debconf if it is available. Closes: #440964. + * debian/control.in/libc: suggests debconf | debconf-2.0. + * Update Brazilian Portuguese debconf translation, by Felipe Augusto van de + Wiel. + * Update Vietnamese debconf translation, by Clytie Siddall. + * Update Basque debconf translation, by Piarres Beobide. + * Update Swedish debconf translation, by Daniel Nylander. + * Update Slovak debconf translation, by Ivan Masár. + * Update Lithuanian debconf translation, by Gintautas Miliauskas. + * Update Russian debconf translation, by Sergey Alyoshin. + + -- Aurelien Jarno Tue, 11 Sep 2007 04:42:20 +0200 + +glibc (2.6.1-2) unstable; urgency=low + + [ Samuel Thibault ] + * Rename hurd-i386/submitted-lock-intern.diff into + hurd-i386/cvs-lock-intern.diff, hurd-i386/submitted-ECANCELED.diff + into hurd-i386/cvs-ECANCELED.diff and + hurd-i386/submitted-sigsuspend-nocancel.diff into + hurd-i386/cvs-sigsuspend-nocancel.diff as the patches have been accepted + upstream. + * hurd-i386/local-tls-support.diff: update to fix TLS leak in /hurd/exec + server. + * hurd-i386/cvs-ioctl-delay.diff: new patch to add standard *DLY ioctl macros. + * hurd-i386/submitted-IPV6_PKTINFO.diff: new patch to add standard + IPV6_PKTINFO macro. + + [ Aurelien Jarno ] + * debian/rules.d/build.mk: disable testsuite on ARM machines running a + 2.6.21 or 2.6.22 kernel. + * debian/debhelper.in/locales.{prerm,postinst}: look for supported.tar.lzma + instead of supported.tar.gz. + * debian/local/etc_default/devpts: remove. + * debian/local/etc_default/locale: new file. Closes: bug#437404. + * debhelper.in/locales.install: install it. + * debian/local/manpages/locale.1: fix a typo. Closes: bug#438114. + * kfreebsd/local-sysdeps.diff: update to revision 1995 (from glibc-bsd). + * any/submitted-rfc3484-sortv4.diff: new patch to allow bypassing RFC3484 + rule 9 for IPv4 adresses. Closes: bug#438179 + * debian/debhelper.in/libc.preinst: change version check for NSS services to + (<< 2.6-1). + * debian/debhelper.in/libc.preinst: add proftpd to the list of services to + restart. Closes: bug#435640. + * Bump shlibdeps version to 2.6.1-1 due to SPARC v9 transition. + * New Slovak debconf translation, by Ivan Masár. Closes: bug#438576. + * any/local-ipv6-lookup.diff: new patch to do IPv6 lookups only when an + IPv6 address is configured. Patch by Tollef Fog Heen and Andrew McMillan. + Closes: #435646. + + [ Pierre Habouzit ] + * Document new libc.conf in ld.so.conf.d that puts /usr/local/lib front. + + -- Aurelien Jarno Mon, 3 Sep 2007 18:15:37 +0200 + +glibc (2.6.1-1ubuntu9) gutsy; urgency=low + + * Rebuild using g++-4.2 (>= 4.2.1-5ubuntu4). + + -- Matthias Klose Mon, 01 Oct 2007 00:04:19 +0200 + +glibc (2.6.1-1ubuntu8) gutsy; urgency=low + + * hppa/local-private-futex-lamont.diff: fix hppa FTBFS. + + -- LaMont Jones Thu, 27 Sep 2007 18:51:24 +0000 + +glibc (2.6.1-1ubuntu7) gutsy; urgency=low + + * any/submitted-rfc3484-sortv4.diff: new patch to allow bypassing RFC3484 + rule 9 for IPv4 adresses. Closes: bug#438179. + [ by Aurelien Jarno; imported from glibc 2.6.1-2 into Ubuntu by iwj ] + * any/submitted-rfc3484-sortv4.diff: disable RFC3484 s6 rule 9 by + default as requested by Ubuntu sysadmins and in anticipation of + that change in Debian (which looks likely). + + -- Ian Jackson Thu, 20 Sep 2007 14:49:50 +0100 + +glibc (2.6.1-1ubuntu6) gutsy; urgency=low + + * Do not print "ldconfig: wrapper deferring update (trigger activated)" + message (unless LDCONFIG_TRIGGER_DEBUG is set). + + -- Ian Jackson Thu, 20 Sep 2007 14:20:30 +0100 + +glibc (2.6.1-1ubuntu5) gutsy; urgency=low + + * Do not install the ppu symlinks in the powerpc packages. + + -- Matthias Klose Wed, 19 Sep 2007 00:27:46 +0200 + +glibc (2.6.1-1ubuntu4) gutsy; urgency=low + + * sysdeps/amd64.mk: uses x86_64 headers also for the i486 flavour now + that they are compatible. don't provide include symlink for bi-arch, + but only an empty directory. + + -- Matthias Klose Sun, 09 Sep 2007 21:09:21 +0200 + +glibc (2.6.1-1ubuntu3) gutsy; urgency=low + + * Actually exec ldconfig.real. (LP #137129.) + + -- Ian Jackson Mon, 03 Sep 2007 20:47:11 +0100 + +glibc (2.6.1-1ubuntu2) gutsy; urgency=low + + * Use dpkg-trigger to avoid multiple calls to ldconfig. + + -- Ian Jackson Mon, 03 Sep 2007 14:48:39 +0100 + +glibc (2.6.1-1ubuntu1) gutsy; urgency=low + + * Merge with Debian (outstanding changes for the final 2.6.1-1 package). + Remaining changes: + - Upstream tarball including GFDL'd documentation. + - Don't apply patches for architectures not found in Ubuntu. + - Build optimized sparc packages. + - Support lpia. + - No support for linuxthreads. + + * debian/patches/sparc/sparc-sparcv9.diff: sparc-sparcv9 directory fix + (David Miller). + + -- Matthias Klose Tue, 28 Aug 2007 13:04:00 +0200 + +glibc (2.6.1-1) unstable; urgency=low + + * New upstream version: + - Workaround bug in java's unwinder. Closes: #434484. + + [ Aurelien Jarno ] + * debian/copyright: update. + * Remove any/cvs-glibc-2_6-branch.diff (merged upstream). + * Remove any/cvs-printf_fp.c.diff (merged upstream). + * Remove sparc/submitted-gscope_flag.diff (merged upstream). + * Remove arm/cvs-gscope_flag.diff (merged upstream). + * Remove hppa/submitted-gscope_flag.diff (merged upstream). + * Remove mips/cvs-gscope_flag.diff (merged upstream). + * any/local-bindresvport_blacklist.diff: patch from openSUSE to + add support for /etc/bindresvport.blacklist. + * debian/local/etc/bindresvport.blacklist: new default configuration + file. + * debian/debhelper.in/libc.install: install it! + * debian/rules.d/debhelper.mk: fix arguments order when calling find. + * kfreebsd/local-sysdeps.diff: update to revision 1992 (from glibc-bsd). + * any/local-linuxthreads-gscope.diff: update for kfreebsd futexes. + * i386/local-linuxthreads-gscope.diff: update for kfreebsd futexes. + * amd64/local-linuxthreads-gscope.diff update for kfreebsd futexes. + + [ Samuel Thibault ] + * hurd-i386/local-gscope.diff: resync, mostly merged upstream. + + -- Aurelien Jarno Tue, 07 Aug 2007 13:34:26 +0200 + +glibc (2.6.1-0ubuntu1) gutsy; urgency=low + + * New upstream version 2.6.1, including glibc-ports-2.6.1. + - Remove applied patches: patches/any/cvs-ports-glibc-2_6-branch.diff, + patches/arm/cvs-gscope_flag.diff, patches/mips/cvs-gscope_flag.diff, + patches/hppa/submitted-gscope_flag.diff. + * debian/wrapper/objcopy: Revert the workaround. + + -- Matthias Klose Mon, 06 Aug 2007 22:38:54 +0200 + +glibc (2.6.1~pre-0ubuntu1) gutsy; urgency=low + + * New upstream version 2.6.1, glibc-ports is still version 2.6. + * Remove patches applied upstream. + * Merge from the Debian repository. + * debian/wrapper/objcopy: Remove -R .debug_aranges, fixing broken + debug symbols. + + -- Matthias Klose Fri, 03 Aug 2007 12:22:19 +0200 + +glibc (2.6-5ubuntu1) gutsy; urgency=low + + * Merge with Debian. + - cvs-printf_fp.c.diff: new patch to print the wrong number of + digits with %#g. LP: #128355. + + -- Matthias Klose Sun, 29 Jul 2007 20:39:57 +0200 + +glibc (2.6-5) unstable; urgency=low + + [ Aurelien Jarno ] + * mips/cvs-gscope_flag.diff: new patch to fix build on mips/mipsel. + * arm/cvs-gscope_flag.diff: new patch to fix build on arm/armel. + * any/cvs-initfini.diff: new patch from upstream to fix crti.o on + ppc64. Closes: #434626. + * debian/sysdeps/powerpc.mk: build libc6-ppc64 with gcc-4.2. + * debian/sysdeps/alpha.mk: build with gcc-4.2. + * debian/control: Remove build-depend on gcc-4.1 on powerpc and alpha. + * sparc/submitted-gscope_flag.diff: update from upstream. + * hppa/submitted-gscope_flag.diff : new patch to fix build on hppa + with NPTL. + * any/local-linuxthreads-gscope.diff: new patch to add gscope support + to linuxthreads. + * hppa/local-linuxthreads-gscope.diff: new patch to fix build on hppa + with linuxthreads. Closes: #434799. + * cvs-printf_fp.c.diff: new patch to print the correct number of digits + with %#g. + * amd64/local-linuxthreads-gscope.diff: new patch to fix build on *amd64 + with linuxthreads. + * i386/local-linuxthreads-gscope.diff: new patch to fix build on *i386 + with linuxthreads. + * kfreebsd/local-sysdeps.diff: update to revision 1989 (from glibc-bsd). + * any/submitted-longdouble.diff: patch from Carlos O'Donell to fix long + double tests. + * any/submitted-libgcc_s.so.diff: patch from Carlos O'Donell to allow + differents libgcc_s.so SONAME on architecture basis. + * hppa/submitted-fadvise64_64.diff: patch from Carlos O'Donell to add + support for fadvise64_64 syscall. + * debian/control: Simplify build-dependencies. + + -- Aurelien Jarno Sun, 29 Jul 2007 17:25:52 +0200 + +glibc (2.6-4ubuntu3) gutsy; urgency=low + + * patches/lpia/local-i686-redefine.diff: Redefine __i686, which gets + clobbered to "1" by the compiler, causing the assembler to have a fit + + -- Adam Conrad Sat, 28 Jul 2007 05:30:06 +1000 + +glibc (2.6-4ubuntu2) gutsy; urgency=low + + * Fix gij memory hog on amd64, thanks to Aurelien Jarno. + * sparc/submitted-gscope_flag.diff: update from upstream. + + -- Matthias Klose Thu, 26 Jul 2007 23:28:49 +0200 + +glibc (2.6-4ubuntu1) gutsy; urgency=low + + * Merge with Debian; remaining changes: + - Upstream tarball including GFDL'd documentation. + - Don't apply patches for architectures not found in Ubuntu. + - Build optimized sparc packages. + - Support lpia. + - Minor differences to be cleaned up. + * glibc-doc: Install the documentation in info format. Closes: LP: #60607. + + * Merge changes from Debian: + * mips/cvs-gscope_flag.diff: new patch to fix build on mips/mipsel. + * arm/cvs-gscope_flag.diff: new patch to fix build on arm/armel. + * any/cvs-initfini.diff: new patch from upstream to fix crti.o on + ppc64. Closes: #434626. + * debian/sysdeps/powerpc.mk: build libc6-ppc64 with gcc-4.2. + * debian/control: Remove build-depend on gcc-4.1 on powerpc. + + -- Matthias Klose Thu, 26 Jul 2007 16:22:15 +0200 + +glibc (2.6-4) unstable; urgency=low + + [ Samuel Thibault ] + * sysdeps/hurd.mk (CC, BUILD_CC): Remove. + * control: Build-depend on gcc-4.2 on hurd-i386. + + [ Pierre Habouzit ] + * any/cvs-glibc-2_6-branch.diff: upstream branch pull, includes: + + any/cvs-ld-integer-overflow.diff + + any/cvs-malloc.diff + + any/cvs-nis-nss-default.diff + + any/cvs-nscd-short-replies.diff + + any/cvs-vfscanf.diff + + [ Aurelien Jarno ] + * debian/sysdeps/powerpc.mk: build libc6-ppc64 with gcc-4.1 as gcc-4.2 + produces broken binaries. + * debian/control: Build-depend on gcc-4.1 on powerpc + * debian/control: Build-depend on g++-4.1/g++-4.2 and + g++-4.1-multilib/g++-4.2-multilib. + * debian/*.NEWS: move to debian/debhelper.in/*.NEWS. + * rules.d/debhelper.mk: remove debian/*.NEWS on clean. + * sparc/submitted-gscope_flag.diff: new patch to fix build on sparc. + + -- Aurelien Jarno Thu, 26 Jul 2007 08:57:48 +0200 + +glibc (2.6-3ubuntu3) gutsy; urgency=low + + * patches/sparc/submitted-gscope_flag.diff: New patch to fix build + on sparc (Aurelien Jarno). + + -- Matthias Klose Thu, 26 Jul 2007 00:56:49 +0200 + +glibc (2.6-3ubuntu2) gutsy; urgency=low + + * Build the 64bit powerpc library with gcc-4.1. + * Update to the glibc-2_6-branch 20070725. + - patches/any/cvs-libc-glibc-2_6-branch.diff: New. + - patches/any/cvs-ports-glibc-2_6-branch.diff: New. + - patches/any/cvs-ld-integer-overflow.diff: Remove. + - patches/any/cvs-malloc.diff: Remove. + - patches/any/cvs-nis-nss-default.diff: Remove. + - patches/any/cvs-nscd-short-replies.diff: Remove. + - patches/any/cvs-vfscanf.diff: Remove. + * Build-depend on g++-4.1-multilib/g++-4.2-multilib. + * debian/sysdeps/hppa.mk: Don't explicitely use gcc-4.2. + + -- Matthias Klose Wed, 25 Jul 2007 15:34:26 +0200 + +glibc (2.6-3ubuntu1) gutsy; urgency=low + + * Merge with Debian. + * debian/sysdeps/lpia.mk: Build using -march=i686 -mtune=i586 -g -O3. + + -- Matthias Klose Mon, 23 Jul 2007 15:02:03 +0200 + +glibc (2.6-3) unstable; urgency=low + + [ Aurelien Jarno ] + * script.in/kernelcheck.sh: s/kernel_compare_version/linux_compare_versions/ + for arm. + * script.in/kernelcheck.sh: the minimum kernel version is now 2.6.8 and not + 2.6.1. Closes: bug#432721. + * hppa/submitted-threaddb.diff: new patch from Randolph Chung to fix + debugging interface for NPTL on hppa. + * Drop SPARC V8 support: + - control.in/opt: drop libc6-sparcv9. + - sysdeps/sparc.mk: drop libc6-sparcv9. + - script.in/kernelcheck.sh: add check for SPARC V8 or earlier CPU. + - patches/series: disable sparc/submitted-timing.diff. + - patches/sparc/local-sparcv8-target.diff: rename to + local-sparcv9-target.diff and default to v9. + * Build with gcc-4.2 except on alpha (untested). + * patches/any/cvs-ld_library_path.diff: new patch from CVS to fix segfaults + with empty LD_LIBRARY_PATH variable. + * rules.d/build.mk: create /etc/ld.so.conf.d/libc.conf to add + /usr/local/lib as a default search path. Closes: #395177. + * Honor parallel= option in DEB_BUILD_OPTIONS. Closes: #413744. + + [ Pierre Habouzit ] + * rules.d/debhelper.mk: add some magic to copy debian/bug/$pkg/ files into + /usr/share/bug/. + * add libc6-i386/presubj to document /usr/lib32 issues not being a + libc6-i386 problem. + * add locales/presubj about locales depends that are correct, and tell bug + reporters how to look for their package being built or not. + * add patches/any/local-missing-linux_types.h.diff to add missing + #include due to migration to linux-libc-dev. + Closes: #433962. + + [ Samuel Thibault ] + * hurd-i386/local-tls-support.diff: new patch to support TLS. + * debian/sysdeps/hurd.mk (libc_extra_config_options): Removed + --without-__thread, --without-tls and libc_cv_z_relro=no. + * hurd-i386/local-atomic-no-multiple_threads.diff: new patch, hurd-i386 + doesn't need the multiple_threads field. + * hurd-i386/local-gscope.diff: new patch, backport of the CVS global scope. + * hurd-i386/local-no-strerror_l.diff: new patch to disable non-implemented + strerror_l(). + * hurd-i386/submitted-lock-intern.diff: new patch to fix a header inclusion. + * sysdeps/depflags.pl: make libc0.3 depend on TLS-enabled hurd packages. + * hurd-i386/local-sigsuspend-nocancel.diff: renamed into + submitted-sigsuspend-nocancel.diff. + * hurd-i386/submitted-ECANCELED.diff: new patch to fix ECANCELED value. + Closes: #396135. + * hurd-i386/local-gcc-4.1-init-first.diff: New patch by Thomas + Schwinge to fix building with gcc-4.1. + * sysdeps/hurd.mk (CC, BUILD_CC): Change to gcc-4.1. + * control: Depend on gcc-4.1 on hurd-i386. + + -- Aurelien Jarno Mon, 23 Jul 2007 08:01:26 +0200 + +glibc (2.6-2ubuntu2) gutsy; urgency=low + + * debian/rules.d/control.mk: Add lpia to threads_archs and to libc6 list + * debian/sysdeps/lpia.mk: Add gcc-4.2 usage, but comment it out for now, + while we bootstrap with gcc-4.1 (because we're FTBFS with gcc-4.2) + + -- Adam Conrad Thu, 12 Jul 2007 13:36:23 +0100 + +glibc (2.6-2ubuntu1) gutsy; urgency=low + + * Merge Debian changes 2.6-1 -> 2.6-2. + + -- Matthias Klose Tue, 10 Jul 2007 14:18:22 +0200 + +glibc (2.6-2) unstable; urgency=low + + [ Clint Adams ] + * Add any/cvs-nis-nss-default.diff: preserve errno. + * Add any/cvs-vfscanf.diff: add additional test for EOF + in loop to look for conversion specifier to avoid testing of + wrong errno value. + + [ Aurelien Jarno ] + * Add any/cvs-ld-integer-overflow.diff: fix an integer + overflow in ld.so. Closes: bug#431858. + * hppa/submitted-multiple-threads.diff: new patch to fix an FTBFS on + hppa. Closes: bug#428509, bug#429487. + + -- Aurelien Jarno Tue, 10 Jul 2007 09:17:49 +0200 + +glibc (2.6-1ubuntu1) gutsy; urgency=low + + [Jeff Bailey] + * debian/sysdeps/hppa.mk: Use gcc-4.2 + * debian/control.in/main: Build-dep on gcc-4.2 [hppa] + * debian/control: Regenerate + + [Matthias Klose] + * Merge Debian changes 2.6-0exp3 -> 2.6-1. + * debian/sysdeps/lpia: New. + + -- Matthias Klose Mon, 9 Jul 2007 12:20:28 +0200 + +glibc (2.6-0ubuntu1) gutsy; urgency=low + + * New upstream release. + * Merge with Debian; remaining changes: + - Include unmodified glibc-2.6 upstream tarball. + - Don't build locale* packages. + - TODO: list remaining changes. + + -- Matthias Klose Mon, 2 Jul 2007 13:29:33 +0200 + +glibc (2.6-0exp3) experimental; urgency=low + + [ Pierre Habouzit ] + [ Clint Adams] + * New upstream version. + - Remove locale/iso3166-RS.diff (obsolete). + - Remove locale/fix-exhausted-memory.diff (merged upstream). + - Update locale/LC_COLLATE-keywords-ordering.diff. + - Remove localedata/locale-hy_AM.diff (obsolete). + - Remove localedata/locale-pl_PL.diff (merged upstream). + - Remove localedata/locales-sr.diff (obsolete). + - Update localedata/tailor-iso14651_t1.diff. + - Update localedata/first_weekday.diff. + - Remove alpha/cvs-cfi.diff (merged upstream). + - Remove arm/cvs-check_pf.c (merged upstream). + - Remove hppa/cvs-hppa-update.diff (obsolete). + - Update hppa/submitted-nptl-carlos.diff from "upstream". + - Remove hppa/submitted-nptl-carlos2.diff (merged upstream). + - Remove hppa/local-r19use.diff (merged upstream). + - Remove hurd-i386/cvs-futimes.diff (merged upstream). + - Remove m68k/cvs-m68k-update.diff (obsolete). + - Update m68k/local-mathinline_h.diff. + - Remove mips/cvs-ldsodefs_h.diff (merged upstream). + - Remove mips/submitted-msq.diff (merged upstream). + - Remove all/cvs-iconv-E13B.diff (obsolete). + - Remove all/submitted-new-brf-encoding.diff (merged upstream). + - Remove any/cvs-2.5-branch-update.diff (obsolete). + - Remove any/cvs-pow.diff (obsolete). + - Remove any/cvs-printf_fp-c.diff (obsolete). + - Remove any/cvs-ftw-c.diff (obsolete). + - Remove any/cvs-bits_in_h-ipv6.diff (obsolete). + - Remove any/cvs-itoa-c.diff (obsolete). + - Remove any/cvs-lt-update.diff (obsolete). + - Remove any/cvs-realpath.diff (obsolete). + - Remove any/cvs-vfprintf-stack-smashing.diff (obsolete). + - Remove any/cvs-zdump-64-bit.diff (obsolete). + - Update any/local-ldso-disable-hwcap.diff. + - Remove any/submitted-gethostbyname_r.diff (obsolete). + - Remove any/submitted-iconv-colon.diff (merged upstream). + - Update any/submitted-strfry.diff. + - Remove any/submitted-unistd_XOPEN_VERSION.diff (obsolete). + - Remove any/cvs-glob-c.diff (obsolete). + - Remove any/cvs-scanf_hexfloat.diff (obsolete). + - Remove alpha/submitted-sigsuspend.diff (merged upstream). + - Remove arm/cvs-procinfo-eabi.diff (obsolete). + * debian/sysdeps/depflags.pl: Clean out relationships for packages + that do not exist in sarge or later. + * debian/debhelper.in/libc.install: do not hardcode the glibc + version number in the path to gai.conf. + * debian/control.in/main, debian/sysdeps/depflags.pl: + use linux-libc-dev on all linux architectures, and + remove all references to linux-kernel-headers. + * Bump shlibdeps version to 2.6-1 due to sync_file_range, futimens, + utimensat, __sched_cpucount, sched_getcpu, strerror_l, and + epoll_pwait symbols. + * debian/rules.d/build.mk: pass --enable-profile to configure. + + [ Aurelien Jarno ] + * patches/sparc/local-undefined-registers.diff: new file to ignore + global registers while looking for undefined symbols. + * debian/script.in/kernelcheck.sh: add a warning for FreeBSD kernels + 5.X. + * local/etc_init.d/glibc.sh, debhelper.in/libc.preinst: don't check for + linux kernel, it is now done in script.in/kernelcheck.sh. + * patches/any/cvs-malloc.diff: new patch from upstream to fix malloc ABI. + * patches/any/local-linuxthreads-lowlevellock.diff: new patch to support + low level locking on linuxthreads. + * patches/any/local-linuxthreads-fatalprepare.diff: new patch to support + FATAL_PREPARE on linuxthreads, by not using __libc_pthread_functions_init + and PTHFCT_CALL. + * patches/hppa/local-linuxthreads.diff: new patch to get glibc buildable on + hppa with linuxthreads. + * patches/arm/submitted-RTLD_SINGLE_THREAD_P.diff: fix a missing #defined + on arm. + * patches/localedata/submitted-as_IN.diff: new patch to fix a not anymore + unassigned unicode code. + * locales-depver: tighten locales dependencies. + * debian/sysdeps/linux.mk, debian/script.in/kernelcheck.sh: bump minimum + kernel requirement to 2.6.8. + * debian/rules, debian/rules.d/build.mk, debian/sysdeps/*.mk: also defines + CXX as g++ is used in the testsuite. + + [ Petr Salinger] + * kfreebsd/local-sysdeps.diff: update to revision 1949 (from glibc-bsd). + * any/local-linuxthreads-defines.diff: new patch to restore a few defines + in config.make.in still needed by linuxthreads. + * patches/local-tst-mktime2.diff: fix time/tst-mktime2.c. + + [ Pierre Habouzit ] + * kernelchecks.sh: Make the warning about kernel 2.6 more explicit so that + people can deal with it without adding yet-another critical bug on the + glibc. + * kernelchecks.sh: add some quotes to unconfuse syntax hilighting a bit. + * nscd.init: ksh is confused if you call functions start or stop. + Closes: 428884. + * patches/locale/preprocessor-collate.diff: update it to work (with + restrictions) with depth >= 2 copies. The patch is scurvy and make locale + parsing completely non reentrant. + * debian/control: ${Source-Version} -> ${binary:Version}. + * debian/debhelper.in/nscd.lintian: yes, /var/db for lintian is ok. + * patches/any/submitted-fileops-and-signals.diff: fixes libio file + operations in presence of recoverable errors. + Closes: 429021. + * patches/localedata/fix-am_ET.diff: fix am_ET using our preprocessor + extensions. + + [ Samuel Thibault ] + * Remove patches/hurd-i386/cvs-getsid.diff (merged upstream). + * patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff: new patch to fix + some packages that use unsigned or size_t in ioctls. + Closes: 431365. + + -- Clint Adams Sat, 07 Jul 2007 09:43:02 -0400 + +glibc (2.5-11ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-10 - 2.5-11). + * Add ppu symlinks on powerpc. + + -- Matthias Klose Wed, 13 Jun 2007 17:20:14 +0200 + +glibc (2.5-11) unstable; urgency=low + + [ Aurelien Jarno ] + * patches/hppa/submitted-pie.diff: new patch to fix PIE on hppa. Patch by + Sébastien Bernard and John David Anglin. Closes: #427990. + * debian/debhelper.in/libc.preinst: use -e instead of -f to canonicalize + links. Closes: #427416. + + [ Pierre Habouzit ] + * pass -X/usr/lib/debug to dh_makeshlibs so that libc6-dbg gets no useless + shlibs. Closes: #427637. + + -- Aurelien Jarno Mon, 11 Jun 2007 15:06:21 +0200 + +glibc (2.5-10ubuntu2) gutsy; urgency=low + + * libc6-dev-ppc64: Install gnu-stubs-64.h in /usr/include/gnu. + + -- Matthias Klose Fri, 08 Jun 2007 12:01:55 +0000 + +glibc (2.5-10ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-9 - 2.5-10). + + -- Matthias Klose Mon, 4 Jun 2007 23:31:10 +0200 + +glibc (2.5-10) unstable; urgency=low + + [ Aurelien Jarno ] + * kfreebsd/local-sysdeps.diff: update to revision 1942 (from glibc-bsd). + Thanks to Petr Salinger. + * arm/cvs-procinfo-eabi.diff: patch from CVS to not include asm/procinfo.h. + * any/submitted-strtok.diff: new patch to fix a typo in strings/strtok.c. + Closes: #426118. + * debian/sysdeps/depflags.pl: depends on libgcc1/libgcc2/libgcc4. + * any/cvs-nscd-short-replies.diff: new patch from CVS to fix crash on + short replies. + * sysdeps/depflags.mk, sysdeps/depflags.pl: use DEB_HOST_ARCH_OS and + DEB_HOST_ARCH instead of DEB_HOST_GNU_SYSTEM and DEB_HOST_GNU_TYPE. + * debian/sysdeps/arm.mk, debian/script.in/kernelcheck.sh: bump minimum + kernel requirement to 2.6.12 on arm to get __ARM_NR_set_tls syscall. + Closes: #421037. + * debian/sysdeps/armel.mk: bump minimum kernel requirement to 2.6.14 + on armel. + * patches/series: disable any/local-ldconfig-timestamps.diff as this + patch does not take into account sub-directories. + + [ Clint Adams ] + * debian/local/manpages/ld.so.8: quote accepted values for LD_DEBUG. + closes: #426101. + * New Malayalam debconf translation, by Sajeev പിആര്‍. + closes: #426203. + * Update Vietnamese debconf translation, by Clytie Siddall. + closes: #426824. + + -- Aurelien Jarno Sun, 03 Jun 2007 19:01:50 +0200 + +glibc (2.5-9) unstable; urgency=low + + * debian/patches/arm/local-ioperm.diff: Remove the check + involving LINUX_VERSION_CODE. + * debian/patches/hppa/submitted-atomic_h.diff: update to loop again + when the kernel returns -EDEADLOCK. Workaround: #425567. + + -- Aurelien Jarno Tue, 22 May 2007 17:03:23 +0200 + +glibc (2.5-8ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-7 - 2.5-8). + * Fix installation location of sparc64 headers. + + -- Matthias Klose Sun, 20 May 2007 15:01:08 +0200 + +glibc (2.5-8) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/sysdeps/depflags.pl: Add a conflicts on binutils + (<< 2.17cvs20070426-1) for libc-dev. Closes: #422625. + + [ Clint Adams ] + * debian/sysdeps/depflags.pl: Clean out relationships for packages + that do not exist in sarge or later. + * debian/debhelper.in/libc.install: do not hardcode the glibc + version number in the path to gai.conf. + * debian/control.in/main, debian/sysdeps/depflags.pl: + use linux-libc-dev to build on all linux architectures. + (retain Depends alternative on linux-kernel-headers) + + [ Aurelien Jarno ] + * debian/local/etc_init.d/glibc.sh: fix a typo. Closes: #423870. + * debian/patches/hppa/submitted-atomic_h.diff: new patch to fix the + atomic CAS function on hppa. Closes: #424057. + * debian/control.in/main: unify the gcc-4.1 depends to (>= 4.1.2-6). + + -- Aurelien Jarno Sun, 20 May 2007 03:43:09 +0200 + +glibc (2.5-7ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-5 - 2.5-7). + + -- Matthias Klose Tue, 15 May 2007 17:31:45 +0200 + +glibc (2.5-7) unstable; urgency=low + + * debian/sysdeps/i386.mk: switch from --includir= to amd64_includedir. + * debian/local/etc_init.d/glibc.sh: fix the broken comment. Closes: + #422587. + + -- Aurelien Jarno Mon, 07 May 2007 11:45:41 +0200 + +glibc (2.5-6) unstable; urgency=low + + * patches/any/cvs-vfprintf-stack-smashing.diff: new patch from + upstream (fix enormous alloca triggered with %-X.Ys like formats + specifier, with Y big, and in multi-byte locales). Closes: #380195, + #421555. + * patches/hppa/cvs-hppa-update.diff: update from CVS to fix + bits/pthreadtypes.h on hppa. + * patches/any/local-disable-nscd-host-caching.diff: the comment lines + should have the '#' on the first column. Closes: #421882. + * Remove patches/any/local-Rminkernel.diff (not needed anymore). + * debian/patches/hppa/submitted-ustat.diff: new patch from Jeff Bailey + to makes glibc build with exported kernel headers. + * debian/patches/hppa/submitted-nptl-carlos2.diff: new patch to add + STACK_GROWS_UP case to NPTL. + * debian/patches/hppa/local-r19use.diff: new patch from Carlos O'Donell + (specify r19 as input to asms that save/restore). + * debian/patches/alpha/cvs-cfi.diff: new patch from CVS (fix + cfi instructions in sysdep-cancel.h). Closes: #422067. + * debian/sysdeps/kfreebsd-i386.mk: tune for i686. + * debian/sysdeps/i386.mk: drop i386-linux-gnu compat symlinks, all the + toolchain is now using i486-linux-gnu. + * Merge from multiarch tree: + - debian/rules: define localedir, sysconfdir and rootsbindir. + - debian/rules.d/build.mk: use $(localedir), $(sysconfdir) and + $(rootsbindir) instead of hardcoded values. Make includedir + flavour specific. + - debian/sysdeps/amd64.mk: define i386_includedir. + - debian/sysdeps/powerpc.mk: define ppc64_includedir. + - debian/sysdeps/ppc64.mk: define powerpc_includedir. + - debian/sysdeps/s390.mk: define s390x_includedir. + - debian/sysdeps/kfreebsd-amd64.mk: define i386_includedir. + - debian/sysdeps/sparc.mk: define sparc64_includedir. + * debian/control.in/main: build-depends on gcc-4.1.2 (>= 4.1.2-6) on + hppa. + + -- Aurelien Jarno Mon, 07 May 2007 03:27:10 +0200 + +glibc (2.5-5ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-2 - 2.5-5). + + -- Matthias Klose Wed, 02 May 2007 09:04:02 +0200 + +glibc (2.5-5) unstable; urgency=low + + [ Aurelien Jarno ] + * Rename patches/all/submitted-iconv-E13B.diff into + patches/all/cvs-iconv-E13B.diff as the patch has been accepted + upstream. + * debian/debhelper.in/libc.NEWS: new file to warn user to upgrade + to a 2.6.1 or later kernel before upgrading the glibc. + * debian/script.in/kernelcheck.sh: improve the kernel error message. + * New Tamil debconf translation, by Tirumurti Vasudevan. Closes: + #420755. + * script.in/nohwcap.sh: use sed instead of awk. Closes: #420799. + * Update Catalan debconf translation, by Jordà Polo. Closes: #420835. + * Add support for n32 and 64 ABIs on mips and mipsel, but keep it + disabled for now: + - control.in/main: add libc6-dev-mipsn32, libc6-dev-mips64 to the + build-dependencies. + - control.in/mips64: add libc6-mips64 and libc6-dev-mips64 packages. + - control.in/mipsn32: add libc6-mipsn32 and libc6-dev-mipsn32 packages. + - rules.d/control.mk: use control.in/mips64 and control.in/mipsn32. + - sysdeps/mips.mk: add two new passes for n32 and 64 ABIs. + - sysdeps/mipsel.mk: likewise. + * debian/control.in/main: drop build-depends on libssp32 and libssp64, + build-depends on gcc-4.1 (>= 4.1.2-5) instead. Drop build-conflicts + on gcc-4.1 (= 4.1.1-14). Closes: #413370. + * debian/sysdeps/hppa.mk: switch back to gcc-4.1. + * debian/debhelper.in/libc.preinst: add a check for silly users having + LD_ASSUME_KERNEL=2.4.1 in their /etc/profile, ~/.bashrc or shell + init script. + * debian/control.in/main: build depends on binutils (>= 2.17cvs20070426-1). + Closes: #405738. + * debian/shlibver: bump shlib to 2.5-5 for the transition to + hash-style=gnu. + * debian/control.in/main: build depends on gcc-4.1-multilib on bi-arch + architectures. + * control.in/amd64, control.in/i386, control.in/kfreebsd-i386, + control.in/mipsn32, control.in/mips64, control.in/powerpc, + control.in/ppc64, control.in/s390x, control.in/sparc64: drop the + depends on lib32gcc1/lib64gcc1. Recommends gcc-multilib. + * debhelper.in/libc.postint: remove the version check when creating + ld.so.conf. Closes: #420726. + + [ Michael Banck ] + * patches/hurd-i386/local-dl-dynamic-weak.diff: new patch (turn + _dl_dynamic_weak on by default for hurd-i386). + + [ Pierre Habouzit ] + * nscd.init: + + use nscd --shutdown rather than start-stop-daemon to stop nscd more + gracefuly. Closes: #338507. + + also invalidate hosts on reload. + + drop oldies (nscd_nischeck things, does not exists anymore). + * patches/any/cvs-scanf_hexfloat.diff: fix a bug when parsing a float in + hexadicimal form with no exponent. Closes: #166403. + * disable hosts caching in nscd by default as it breaks gethostby* calls + (does not respect DNS TTLs, see #335476): + + document it in nscd.NEWS.Debian. + + patches/any/local-disable-nscd-host-caching.diff: update nscd.conf. + + [ Clint Adams ] + * Switch from linux-kernel-headers to linux-libc-dev | linux-kernel-headers. + + -- Aurelien Jarno Mon, 30 Apr 2007 21:55:09 +0200 + +glibc (2.5-4) unstable; urgency=low + + * debian/rules.d/build.mk: fix the testsuite workaround on the MIPS SB1 + platform. + * debian/locales-all.README.Debian: Remove again, it is useless now. + (Closes: #378191) + * debhelper.in/libc.preinst: use dpkg-query instead of looking into + /var/lib/dpkg/info. Thanks to Guillem Jover for the hint. + * patches/mips/cvs-ldsodefs_h.diff: new patch (correct multiple + inclusion guard in sysdeps/mips/ldsodefs.h) from CVS. + * patches/any/cvs-printf_fp-c.diff: update patch from CVS (fix exponent + -4 special case handling when wcp == wstartp + 1). Closes: #419225. + * patches/any/cvs-bits_in_h-ipv6.diff: new patch from CVS (defines + IPV6_V6ONLY in bits/in.h). Closes: #420188. + * debhelper.in/libc.preinst: check the library files instead of links + while checking for a non-dpkg owned libc6 in /lib/tls. Links are + recreated by ldconfig. + * patches/any/cvs-realpath.diff: new patch (fix wrong comment about + realpath() in /usr/include/stdlib) from CVS. Closes: #239427. + * debian/local/manpages/iconv.1: mention that -t is optional. Closes: + #354292. + * debian/local/manpages/iconv.1: mention that multiple fils could be + specified on the command line. Closes: #340911. + * debian/patches/any/submitted-strfry.diff: new patch (fix strfry() + distribution) by Steinar H. Gunderson. Closes: #341903. + * patches/all/submitted-iconv-E13B.diff: new patch to fix wrong E13B + charset alias. patches/any/submitted-iconv-colon.diff: new patch to + allow colons in charset names. Closes: #91935. + * New Hungarian debconf translation, by Attila Szervác. Closes: #420420. + * debian/patches/any/local-ldd.diff: update to discard the error message + that appears if one of the dynamic loader is not supported by the + kernel. Closes: #263494. + * debian/patches/arm/cvs-check_pf.c: new patch (fix assertion in + check_pf.c) from CVS. Closes: #420552. + * debian/debhelper.in/glibc-doc.links: add missing manpages links for + functions documented with others. Closes: #413989. + + -- Aurelien Jarno Mon, 23 Apr 2007 11:41:18 +0200 + +glibc (2.5-3) unstable; urgency=low + + [ Pierre Habouzit ] + * patches/any/submitted-unistd_XOPEN_VERSION.diff: set _XOPEN_VERSION to 600 + when __USE_XOPEN2K is set. Closes: #203412. + * patches/any/cvs-glob-c.diff: fixes glob wrt \/ escapes (among other + fixes). Closes: #234880. + + [ Aurelien Jarno ] + * Update Italian debconf translation, by Luca Monducci. Closes: #419399. + * Put back ld.so into optimized packages, it can be useful in some cases. + * Update French debconf translation, by Christian Perrier. Closes: #419445. + * Switch from gzip to lzma for compressing the locales in the locales-all + package. The unpacked size is decreased by 10 and the packed size by 4 for + no measurable difference on the unpacking time. + * patches/any/submitted-gethostbyname_r.diff: new patch to fix unaligned + memory access in gethostbyname_r.diff(). Closes: #419459. + * Rewrite from scratch /etc/ld.so.nohwcap handling. Closes: #419036 + - script.in/nohwcap.sh: new snipplet to check dpkg and handle + /etc/ld.so.nohwcap + - rules.d/debhelper.mk: replace NOHWCAP with nohwcap.sh in debhelper + scripts + - debhelper.in/libc.preinst: only touch /etc/ld.so.nohwcap + - debhelper.in/libc.postinst: replace the old code with NOHWCAP, + add code to remove /etc/ld.so.hwcappkgs file on upgrade + - debhelper.in/libc-otherbuild.postrm: replace the old code with NOHWCAP + - debhelper.in/libc-otherbuild.postinst: ditto + - debhelper.in/libc-otherbuild.preinst: remove + * debhelper.in/libc.install: remove /usr/bin/lddlibc4 from the libc6 + package. + * debhelper.in/libc.preinst: check for a non-dpkg owned libc6 in /lib/tls. + Closes: #419189. + * Update Dutch debconf translation, by Bart Cornelis. Closes: #419729. + * debhelper.in/libc.postinst: fix the chroot detection, code taken from + udev scripts. + * debian/rules.d/build.mk: disable testsuite on the MIPS SB1 platform. + * patches/localedata/first_weekday.diff: Add first_workday for *_NO + and *_DK. Closes: #379100. + + -- Aurelien Jarno Thu, 19 Apr 2007 07:55:58 +0200 + +glibc (2.5-2ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-0exp6 - 2.5-2). + + -- Matthias Klose Wed, 18 Apr 2007 22:14:32 +0200 + +glibc (2.5-0ubuntu21.2) toolchain-test; urgency=low + + * libc6-dev-sparc64: Copy headers into /usr/include/sparc64-linux-gnu. + A symlink to /usr/include works for libc6-dev-sparc64, but not for + other packages which install into /usr/include/sparc64-linux-gnu. + + -- Matthias Klose Fri, 6 Apr 2007 13:45:41 +0200 + +glibc (2.5-0ubuntu21.1) toolchain-test; urgency=low + + * Update to current glibc-2_5-branch. + - debian/patches/sparc/local-pthread-shlib.diff: Update. + - debian/patches/any/branch-pr3429.diff: Remove. + * Merge Debian changes (2.5-0exp3 - 2.5-0exp6). + + -- Matthias Klose Wed, 21 Mar 2007 17:22:13 +0100 + +glibc (2.5-2) unstable; urgency=low + + * Update Portuguese debconf translation, by Ricardo Silva. Closes: #418301, + #418472. + * Update Brazilian Portuguese debconf translation, by Felipe Augusto van de + Wiel. Closes: #418332. + * Update Romanian debconf translation, by Stan Ioan-Eugen. Closes: #418337. + * Update Turkish debconf translation, by Erçin Eker. Closes: #418340. + * Update Galician debconf translation, by Jacobo Tarrio. Closes: #418365. + * Update Arabic debconf translation, by Ossama Khayat. Closes: #418378. + * Update German debconf translation, by Helge Kreutzmann. Closes: #418426. + * Update Basque debconf translation, by Piarres Beobide. Closes: #418521. + * Update Swedish debconf translation, by Daniel Nylander. Closes: #418545. + * Update Spanish debconf translation, by Carlos Valdivia Yagüe. Closes: + #418720. + * Update Russian debconf translation, by Yuri Kozlov. Closes: #418748. + * Update Czech debconf translation, by Miroslav Kure. Closes: #418767. + * debian/locales-depver: remove exp from the locales version. + * Replace patches/alpha/submitted-sigsuspend.diff by + patches/alpha/cvs-sigsuspend.diff from upstream. + * patches/any/local-ldconfig-fsync.diff: call fsync() before closing + /etc/ld.so.cache. Closes: #416716. + * Update Korean debconf translation, by Sunjae Park. Closes: #418872. + * patches/any/local-notls.diff: also include pthread.h from + linuxthreads/sysdeps/pthread/gai_misc.h. + m68k/cvs-m68k-update.diff: update from CVS. Closes: #418881. + * debian/local/usr_sbin/tzconfig: removed. + * debian/local/manpages/tzconfig.8: removed. + * debian/sysdeps/depflags.pl: conflict with tzdata (<< 2007e-2). Older + versions need tzconfig. + * patches/any/cvs-printf_fp-c.diff: update patch from CVS (fix exponent + -4 special case handling when wcp == wstartp + 1). Closes: #419225. + + -- Aurelien Jarno Sat, 14 Apr 2007 17:23:17 +0200 + +glibc (2.5-1) unstable; urgency=low + + * New upstream version 2.5. + - Adds support of POSIX_MADV_* on mips, mipsel, arm and hppa. Closes: + #381294. + - Fixes a pointer-to-long overflow in sunrpc code. Closes: #389084. + - Fixes getent wrt ipv4 hosts lookups. Closes: #347358. + - Fixes strtod wrt hex floats with negative exponent. Closes: #172562. + - Fixes nice() errno when called without appropriate privileges. Closes: + #286825. + - Provides sys/inotify.h. Closes: #369402. + - Fixes strtod("INF") with some locales. Closes: #415417. + + [ Aurelien Jarno ] + * debian/shlibver: Bump up to 2.5. + * debian/copyright: update. + * Remove locale/cvs-iso3166.diff (merged upstream). + * Remove localedata/locale-ro_RO.diff (merged upstream). + * Remove arm/cvs-portshead.patch (merged upstream). + * Remove arm/local-dwarf2-buildfix.diff (merged upstream). + * Remove hppa/cvs-clone.patch (merged upstream). + * Remove hppa/cvs-portshead.diff (merged upstream). + * Remove hppa/submitted-drop-utimes.diff (merged upstream). + * Remove hurd-i386/cvs-machrules-make.diff (merged upstream). + * Remove mips/cvs-fork.diff (merged upstream). + * Remove mips/cvs-resource.diff (merged upstream). + * Remove powerpc/cvs-procfs.diff (merged upstream). + * Remove any/cvs-argp_h.diff (merged upstream). + * Remove any/cvs-getcwd_c.diff (merged upstream). + * Remove any/cvs-sysctl.diff (merged upstream). + * Remove any/cvs-thread_signals.diff (merged upstream). + * Remove any/cvs-uio_h.diff (merged upstream). + * Remove any/cvs-sunrpc-xdrmem_setpos.diff (merged upstream). + * Remove any/cvs-getent-wrong-struct-size.diff (merged upstream). + * Remove any/submitted-strfmon.diff (merged upstream). + * Remove all/submitted-uninitialized-byte-LC_CTYPE.diff (merged upstream). + * Remove any/local-ttyname-devfs.diff (devfs is not supported anymore). + * Update arm/local-no-hwcap.diff. + * Update any/local-ldso-disable-hwcap.diff. + * Update all/submitted-new-brf-encoding.diff. + * debhelper.in/libc.docs: remove INTERFACE as it has been removed upstream. + * sysdeps/depflags.pl: don't make libc6 depends on tzdata, as this package + is of priority required. Should help to debconfize tzdata. + * sysdeps/i386.mk: put the static Xen libc flavour in /usr/lib/xen. Closes: + #391372. + * sysdeps/powerpc.mk: install 64-bit headers (actually gnu/stubs-64.h) + directly into /usr/include and provide /usr/include/powerpc64-linux-gnu as + a symlink to /usr/include for compatibility reasons. Closes: #391858. + * sysdeps/ppc64.mk: install 32-bit headers (actually gnu/stubs-32.h) + directly into /usr/include and provide /usr/include/powerpc-linux-gnu as + a symlink to /usr/include for compatibility reasons. + * kfreebsd/local-scripts.diff: update. + * kfreebsd/local-sys_queue_h.diff: update. + * kfreebsd/local-sysdeps.diff: update to revision 1689 (from glibc-bsd). + * kfreebsd/local-sysdeps-2.4.diff: remove. + * sysdeps/kfreebsd: enable the ports add-on. + * sysdeps/kfreebsd-i386.mk: ditto. + * any/local-stubs_h.diff: new patch to fix a warning in stubs.h. Closes: + #394128. + * alpha/submitted-sigsuspend.diff: new patch (fix the build on alpha) from + the libc-alpha mailing list. + * debian/local/manpages/*: fix typos. Closes: #395427. + * debian/debhelper.in/libc.dirs: don't provide /sys, now provided by + initscripts. + * debian/debhelper.in/nscd.init: add lsb header. + * debian/rules.d/debhelper.mk: add support for installing lintian and linda + overrides files. + * debian/debhelper.in/libc.overrides: new file. + * debian/debhelper.in/libc-dev.overrides: new file. + * debian/debhelper.in/libc-alt.overrides: new file. + * debian/debhelper.in/libc-otherbuild.overrides: new file. + * debian/debhelper.in/libc-dev-otherbuild.overrides: new file. + * debian/any/submitted-getcwd-sys_param_h.diff: new patch (fix the build + with linuxthreads) from the libc-alpha mailing list. + * debian/powerpc/cvs-tls-debug.diff: new patch (fix for debugging + thread-local variables on powerpc) from CVS. + * Build depends on gcc-4.2 on hppa to enable TLS on hppa. Closes: #397813. + * debian/patches/hppa/cvs-hppa-update.diff: new patch (CVS update). + * debian/sysdeps/hppa.mk, debian/script.in/kernelcheck.sh: bump minimum + kernel requirement to 2.6.9 on hppa to get LWS CAS support. + * debian/any/patches/local-linuxthreads-semaphore_h.diff: new patch (fix + /usr/include/semaphore.h with linuxthreads). + * sysdeps/sparc.mk: install 64-bit headers (actually gnu/stubs-64.h) + directly into /usr/include and provide /usr/include/sparc64-linux-gnu as + a symlink to /usr/include for compatibility reasons. Closes: #403980. + * sysdeps/*.mk: build with -g instead of -g1. Closes: bug#403270. + * debhelper.in/libc.install: install gai.conf in /etc. Closes: #404379. + * Add patches/any/local-ldconfig-timestamps.diff (use the timestamps to + update the cache only when needed) by Josselin Mouette. Closes: #374945. + * Add partial support for armel, from http://armel-debs.applieddata.net/diffs/. + * debian/debhelper.in/: delete /usr/doc removal from postinst scripts. + * debian/control.in: drop the dependency on tzdata. It is a required package + and the glibc from Etch depends on it, ensuring tzdata is always present + post-Etch. + * debian/script.in/kernelcheck.sh, debian/sysdeps/linux.mk: set the minimum + kernel version to 2.6.1, except on m68k where it is set to 2.4.1. + * patches/any/cvs-2.5-branch-update.diff: new patch (2.5 branch update) from + upstream CVS. + * patches/any/cvs-lt-update.diff: new patch (linuxthreads update) from + upstream CVS. + * debhelper.in/locales.templates: recommends UTF-8 locales by default. + Closes: #312927. + * control.in/main, rules.d/debhelper.mk: use dh_shlibdeps to set the + dependencies of nscd. Closes: #409288. + * sysdeps/s390.mk: install 64-bit headers (actually gnu/stubs-64.h) + directly into /usr/include and provide /usr/include/s390x-linux-gnu as + a symlink to /usr/include for compatibility reasons. + * patches/all/local-pthread-manpages.diff: update to fix a typo in + pthread_detach(3). Closes: #98852. + * Change any/local-__thread.diff into any/local-notls.diff. + * Update any/local-notls.diff (make glibc buildable without TLS support) + from Petr Salinger and Aurelien Jarno. + * hurd-i386/submitted-trivia.diff: new patch from Thomas Schwinge (make glibc + partly buildable on Hurd). + * hurd-i386/submitted-stat.diff: new patch from Thomas Schwinge (update + struct stat on Hurd). + * hurd-i386/submitted-libc_once.diff: new patch from Thomas Schwinge (add + __libc_once_else to make glibc buildable on Hurd). + * hurd-i386/local-msg-nosignal.diff: new patch from Thomas Schwinge + (workaround the missing MSG_NOSIGNAL support). + * m68k/cvs-m68k-update.diff: new patch (bits from CVS). Closes: #364098. + * any/submitted-clock-settime.diff: new patch (include to get + clockid_t). + * hurd-i386/local-sigsuspend-nocancel.diff: new patch (workaround missing + sigsuspend_not_cancel() on Hurd). + * debhelper.in/glibc-doc.links: add symlinks from pthread_setcanceltype(3), + pthread_setcancelstate(3) and pthread_testcancel(3) to pthread_cancel(3). + Closes: #411132. + * debian/control.in/i386: Changed the conflicts on ia32-libs-dev to a + versioned conflict. Closes: #407540. + * any/local-mktemp.diff: new patch (also propose mkdtemp as an alternative + to mktemp). Closes: #377310. + * any/cvs-ftw-c.diff: new patch (fix nftw() with FTW_CHDIR in /) from CVS. + Closes: #367522. + * any/cvs-printf_fp-c.diff: new patch (fix printf %#.0g) from CVS. + Closes: #209136. + * New Norwegian bokmål debconf translation, by Bjørn Steensrud. Closes: + #412559. + * Remove patches/arm/local-softfloat.diff and patches/series.arm-softfloat. + Remove arm-softfloat from debian/rules.d/control.mk. armel (ARM EABI) + replaces the softfloat architecture. + * patches/any/cvs-pow.diff: new patch (fix pow(-inf, nan)) from upstream. + Closes: #226291. + * Update Catalan debconf translation, by Jordà Polo. Closes: #413259. + + [ Denis Barbier ] + * Remove localedata/locale-en_NZ.diff (merged upstream). + * Remove localedata/locale-nr_ZA.diff (merged upstream). + * Remove localedata/new-catalan-locales.diff (merged upstream). + * Remove localedata/update-ZA.diff (merged upstream). + * Remove localedata/locale-te_IN.diff (merged upstream). + * Remove locale/iso4217-RON.diff (merged upstream). + * Update localedata/locales_CH.diff + * Update localedata/supported.diff + * Update localedata/locale-hy_AM.diff + * Update localedata/locale-csb_PL.diff + * Update localedata/dz_BT-collation.diff + * Update localedata/locale-ia.diff + * Update localedata/locales-sr.diff + * Update localedata/tailor-iso14651_t1.diff + * Update localedata/fix-lang.diff + * Update localedata/first_weekday.diff + + [ Pierre Habouzit ] + * Adding myself to Uploaders. + * Rework patches/any/local-ldd.diff so that we don't use file(1) anymore (it + wasn't used anyway). Closes: #165417, #413095. + * Rework patch for #340871 (patches/m68k/local-mathinline_h.diff to use + __NTH rather than __THROW) in function implementations. + * Fix rpcgen(1) manpage, to match rpcgen(1) behaviour more closely. + Closes: #46175. + * patches/any/submitted-date-and-unknown-tz.diff: fix date output in case of + an unknown timezone in $TZ, submitted upstream as #4028. + Closes: #55648, #119540, #269238. + + [ Michael Banck ] + * patches/hurd-i386/local-tls.diff: New patch (fixes building with TLS) by + Samuel Thibault and Barry deFreese. Closes: #413787. + + [ Clint Adams ] + * debian/watch: add watch file. + * debian/control, debian/control.in/opt, debian/control.in/main, + debian/control.in/libc0.1, debian/control.in/libc, + debian/debhelper.in/locales.templates: English corrections from + Christian Perrier for Debconf templates and package descriptions. + Closes: #418006. + + -- Clint Adams Mon, 09 Apr 2007 16:17:20 -0400 + +glibc (2.5-0ubuntu12) feisty; urgency=low + + * debian/patches/any/branch-pr3429.diff: Fix a race condition in + _dl_open with r_debug.r_state consistency check. Ubuntu #72639. + * debian/debhelper.in/nscd.init: Invalidate the hosts database as + well. Ubuntu #72647. + * debian/local/manpages/nscd.conf.5: Fix formatting. Ubuntu #55331. + * Fix typo in libc6-i686 package description. Ubuntu #81153. + * debian/patches/any/local-iconv-fix-trampoline.diff: Import from + Debian; new patch (fix iconvconfig segfault when run under exec-shield, + PaX or similar) from hlfs. Ubuntu #63353. + * Set Ubuntu maintainer address. + + -- Matthias Klose Wed, 21 Mar 2007 08:16:00 +0100 + +glibc (2.5-0ubuntu14) feisty; urgency=low + + * Twiddle the diff a little so it actually applies. + + -- Tollef Fog Heen Tue, 3 Apr 2007 21:34:51 +0200 + +glibc (2.5-0ubuntu13) feisty; urgency=low + + * debian/patches/any/local-ipv6-sanity.diff: Only do AAAA lookups if we + have an interface with better than link-local addresses available. + + -- Tollef Fog Heen Tue, 3 Apr 2007 14:11:26 +0200 + +glibc (2.5-0ubuntu11) feisty; urgency=low + + * debian/patches/hppa/cvs-missing-cfi_procend.diff: New file to work around + FTBFS uncovered by January CVS binutils. + * debian/patches/series: Use it. + + -- Jeff Bailey Sun, 11 Feb 2007 08:51:24 -0700 + +glibc (2.5-0ubuntu10) feisty; urgency=low + + [ Colin Watson ] + * debian/debhelper.in/libc.postinst: Correct grammar of NSS reboot warning + (LP: #70567). + + [ Jeff Bailey ] + * debian/patches/hppa/submitted-nptl-carlos2.diff: New patch to add + STACK_GROWS_UP case to NPTL. + * debian/patches/series: Use it. + + -- Jeff Bailey Sat, 10 Feb 2007 12:03:41 -0500 + +glibc (2.5-0ubuntu9) feisty; urgency=low + + * debian/debhelper.in/libc.preinst: turn libc6 duplication + check from an error to a warning and point to the bug when + printing the warning. + (Closes Ubuntu: #81125) + + -- Fabio M. Di Nitto Sat, 06 Jan 2007 07:06:22 +0100 + +glibc (2.5-0ubuntu8) feisty; urgency=low + + * no change upload to rebuild with proper binutils/gcc-4.1 + + -- Fabio M. Di Nitto Sat, 06 Jan 2007 06:46:26 +0100 + +glibc (2.5-0ubuntu7) feisty; urgency=low + + [ Colin Watson ] + + * debian/debhelper.in/glibc-doc.links: Restore + /usr/share/doc/glibc-doc/html/index.html symlink. + + [ Fabio M. Di Nitto ] + + * debian/patches/sparc/local-pthread-shlib.diff: New file. + * debian/patches/series: Update. + + -- Fabio M. Di Nitto Thu, 04 Jan 2007 17:36:19 +0100 + +glibc (2.5-0ubuntu6) feisty; urgency=low + + * Rebuild using gcc 4.1.1-21ubuntu3. + + -- Fabio M. Di Nitto Thu, 21 Dec 2006 08:52:45 -0800 + +glibc (2.5-0ubuntu5) feisty; urgency=low + + * Rebuild using gcc 4.1.1-21ubuntu2. + + -- Matthias Klose Thu, 14 Dec 2006 14:12:56 +0000 + +glibc (2.5-0ubuntu4) feisty; urgency=low + + [ Fabio M. Di Nitto ] + * Fix path to patch in ubuntu2 changelog. + * debian/sysdeps/sparc.mk: re-enable testsuite on Niagara. + It was a kernel bug and fix is on the way upstream. + * debian/debhelper.in/libc.postinst: set back NSS version check. + It was bumped by mistake. + (Closes Ubuntu: #21117) + + -- Fabio M. Di Nitto Wed, 29 Nov 2006 06:26:46 +0100 + +glibc (2.5-0ubuntu3) feisty; urgency=low + + * debian/rules.d/build.mk: Do not define MAKEINFO to :, this prevented + generation of the info documentation, which we are happy to distribute. + * debian/control.in: + * main: + * glibc-doc Provides/Replaces/Conflicts glibc-doc-reference instead of + Suggests. Fix description. + * debian/control: Regenerate. + + -- Scott James Remnant Fri, 24 Nov 2006 14:05:17 +0000 + +glibc (2.5-0ubuntu2) feisty; urgency=low + + [ Jeff Bailey ] + * debian/patches/hppa/submitted-ustat.diff: New file. + * debian/patches/series: Update. + + -- Jeff Bailey Wed, 1 Nov 2006 14:53:41 -0500 + +glibc (2.5-0ubuntu1) feisty; urgency=low + + [ Jeff Bailey ] + * debian/rules: Define BUILD_CXX + * debian/sysdeps/sparc.mk: Define sparc64v_CXX, sparc64b_CXX, sparc64_CXX + * debian/sysdeps/powerpc.mk: Define ppc64_CXX. + * debian/sysdeps/i386.mk: Define amd64_CXX. + * debian/sysdeps/amd64.mk: Define i386_CXX. + * debian/control.in/main: Set minimum b-d version of linux-libc-dev to + 2.6.19-1.1 + Add build-dep on lib64c++6 for powerpc and sparc. + * debian/control: Regenerate. + * debian/patches/any/local-2.6.19-linux-libc-dev.diff: Patch to cope + with kernel headers from 2.6.19. + * debian/patches/series: Update. + Prune localedata, alpha, arm, hppa linuxthreads and kernel version + hurd, m68k, and mips patches. + + [ Fabio M. Di Nitto] + * use original glibc-2.5.tar.bz2 tarball from ftp.gnu.org: + * debian/patches/series: drop all/local-remove-manual.diff. + * debian/control.in: + * readd libc-dbg. + * main: + * readd Build-Depends: texinfo (>= 4.0), texi2html. + * change Build-Depends: linux-kernel-headers to linux-libc-dev. + * drop Build-Depends: lib32ssp0 and lib64ssp0. + * drop Conflicts: belocs-locales-bin, belocs-locales-data. + * opt: + * drop libc6-sparcv9. + * readd libc6-sparcv9v. + * readd libc6-sparc64b. + * readd libc6-sparc64v. + * merge descriptions from glibc 2.4 (WARNINGs and NPTL). + * Regenerate debian/control. + * debian/debhelper.in: + * readd glibc-doc.doc-base, glibc-doc.info and glibc-doc.install. + * readd libc-alt-dev.postinst. + * libc.install: drop usr/bin/locale nad usr/bin/localedef. + * libc.manpages: drop locale.1 and localedef.1. + * libc.postinst: + * fix $preversion quoting. + * bump version checking for $preversion to 2.5-0ubuntu1 for some cases. + * fix hwcappkgs lists for sparc. + * remove kernel version detection at startup. + * drop locales-all.* + * Merge debian/FAQ. + * debian/rules: + * drop locales-all and locales packages. + * readd CXX for cross-compiling. + * force -fno-stack-protector to disable automatic enablement from Ubuntu's + glibc. Glibc itself will enable it as necessary. + * debian/rules.d: + * build.mk: + * readd CXX for cross-compiling. + * drop localedir (requires check). + * readd manual generation (requires check). + * keep using /etc/ld.so.conf.d/$triplet. New debian packages use + triplet.conf, and that would require a conffile migration script. + * readd nptl bits. + * debhelper.mk: + * readd nptl bits. + * install $(libc)-dev-$$x.postinst from libc-alt-dev.postinst. + * debian/script.in/kernelcheck.sh: fix kernel version check on != m68k. + (this should be pushed to debian too) + * debian/shlibver: bump to 2.5-0ubuntu1. + * debian/sysdeps: + * amd64.mk: + * default to nptl for amd64. + * set i386 configure target to i686-linux. + * set i386 CC to use $(BUILD_CC). + * readd --disable-profile to i386_extra_config_options. + * readd i386_MAKEFLAGS to set gconvdir. + * set i386_extra_cflags back to -march=i686 -mtune=i686. + * drop i386_rtlddir (requires check). + * set i386_slibdir and _libdir to use */lib32. + * change symlinking for */lib32. + * depflags.pl: + * change linux-kernel-headers into linux-libc-dev. + * readd Recommends: tzdata. + * readd Depends: locales (>= 2.3.11). (requires review) + * readd hack to cope with */lib64. + * hppa.mk: enable nptl. + * i386.mk: + * readd no-tls-direct-seg-refs to generic libc cflags. + * make symlink absolute again. (requires review - might be droppable) + * restore nptl_* options. + * change i686_slibdir to /lib/tls/i686/cmov. + * change xen_slibdir to /lib/tls/i686/nosegneg. + * keep using /etc/ld.so.conf.d/xen.conf. New debian packages use + libc6-xen.conf, and that would require a conffile migration script. + * drop ldconfig from libc6-xen. + * linux.mk: + * readd comments about nptl. + * readd nptl config. + * powerpc.mk: revert change to fix bug #391858 that is a gcc bug + (already addressed in Ubuntu) and not a glibc one. + * sparc.mk: + * readd sparc64b pass. + * readd sparc64v pass. + * disable sparcv9 pass. + * readd sparcv9v pass. + * fix sparc64 headers install. + * dynamically disable testsuite when building on Niagara. + * debian/patches: + * port forward ubuntu dir from 2.4: + * drop local-dynamic-resolvconf.diff. now part of debian. + * readd local-altlocaledir.diff. + * series: update. + + -- Fabio M. Di Nitto Wed, 01 Nov 2006 12:49:55 +0100 + +glibc (2.5-0exp2) UNRELEASED; urgency=low + + * New upstream version 2.5. + + [ Aurelien Jarno ] + * debian/shlibver: Bump up to 2.5-1. + * debian/copyright: update. + * Remove locale/cvs-iso3166.diff (merged upstream). + * Remove localedata/locale-ro_RO.diff (merged upstream). + * Remove arm/cvs-portshead.patch (merged upstream). + * Remove hppa/cvs-portshead.patch (merged upstream). + * Remove hppa/submitted-drop-utimes.diff (merged upstream). + * Remove hurd-i386/cvs-machrules-make.diff (merged upstream). + * Remove mips/cvs-fork.diff (merged upstream). + * Remove mips/cvs-resource.diff (merged upstream). + * Remove powerpc/cvs-procfs.diff (merged upstream). + * Remove any/cvs-argp_h.diff (merged upstream). + * Remove any/cvs-getcwd_c.diff (merged upstream). + * Remove any/cvs-sysctl.diff (merged upstream). + * Remove any/cvs-thread_signals.diff (merged upstream). + * Remove any/cvs-uio_h.diff (merged upstream). + * Remove any/submitted-strfmon.diff (merged upstream). + * Remove all/submitted-uninitialized-byte-LC_CTYPE.diff (merged upstream). + * Remove any/local-ttyname-devfs.diff (devfs is not supported anymore). + * Update arm/local-no-hwcap.diff. + * Update any/local-ldso-disable-hwcap.diff. + * Update all/submitted-new-brf-encoding.diff. + * debhelper.in/libc.docs: remove INTERFACE as it has been removed upstream. + * sysdeps/depflags.pl: don't make libc6 depends on tzdata, as this package + is of priority required. Should help to debconfize tzdata. + * sysdeps/i386.mk: put the static Xen libc flavour in /usr/lib/xen. Closes: + #391372. + * sysdeps/powerpc.mk: install 64-bit headers (actually gnu/stubs-64.h) + directly into /usr/include and provide /usr/include/powerpc64-linux-gnu as + a symlink to /usr/include for compatibility reasons. Closes: #391858. + * sparc/cvs-pause-sigprocmask.diff: new patch (fix sparc64 build) from + upstream CVS. + * kfreebsd/local-scripts.diff: update. + * kfreebsd/local-sys_queue_h.diff: update. + * kfreebsd/local-sysdeps.diff: update to revision 1689 (from glibc-bsd). + * kfreebsd/local-sysdeps-2.4.diff: remove. + * sysdeps/kfreebsd: enable the ports add-on. + * sysdeps/kfreebsd-i386.mk: ditto. + * any/local-stubs_h.diff: new patch to fix a warning in stubs.h. Closes: + #394128. + * alpha/submitted-sigsuspend.diff: new patch (fix the build on alpha) from + the libc-alpha mailing list. + + [ Denis Barbier ] + * Remove localedata/locale-en_NZ.diff (merged upstream). + * Remove localedata/locale-nr_ZA.diff (merged upstream). + * Remove localedata/new-catalan-locales.diff (merged upstream). + * Remove localedata/update-ZA.diff (merged upstream). + * Remove localedata/locale-te_IN.diff (merged upstream). + * Remove locale/iso4217-RON.diff (merged upstream). + * Update localedata/locales_CH.diff + * Update localedata/supported.diff + * Update localedata/locale-hy_AM.diff + * Update localedata/locale-csb_PL.diff + * Update localedata/dz_BT-collation.diff + * Update localedata/locale-ia.diff + * Update localedata/locales-sr.diff + * Update localedata/tailor-iso14651_t1.diff + * Update localedata/fix-lang.diff + * Update localedata/first_weekday.diff + + -- Aurelien Jarno Wed, 11 Oct 2006 16:27:42 +0200 + +glibc (2.4-1) UNRELEASED; urgency=low + + * New upstream version 2.4: + - NPTL is used instead of linuxthreads on alpha. Closes: #325600. + - NPTL being the default thread library when available, only one + version of the thread library is available (either linuxthreads or + NPTL). Closes: #399035. + - .eh_frame has been fixed. Closes: #349688. + - Fix a memory leak in getprotobyname. Closes: #365233. + - Support for MALLOC_PERTURB has been added. Closes: #350579. + - Support for 2.4 kernels has been removed. Closes: #258740. + + [ Clint Adams ] + * Remove all/cvs-manual-memory.diff (merged upstream). + * Remove all/cvs-manual-string.diff (merged upstream). + * Remove any/cvs-divdi3-moddi3.diff (merged upstream). + * Remove any/cvs-errlist.diff (merged upstream). + * Remove any/cvs-siginfo_h.diff (merged upstream). + * Remove any/cvs-regcomp_c.diff (merged upstream). + * Remove any/cvs-tst-setcontext_c.diff (merged upstream). + * Remove any/local-dash.diff (merged upstream). + * Remove any/local-gcc4-elf.diff (merged upstream). + * Remove powerpc/cvs-executable-got.diff (merged upstream). + * Remove sparc/cvs-datastart.diff (merged upstream). + * Remove sparc/cvs-gcc4-inline.diff (merged upstream). + * Remove sparc/local-gcc4-mv8.diff (merged upstream). + * Remove sparc/submitted-socket-weakalias.diff (merged upstream). + * Remove everything to do with nscd_nischeck. + * Remove any/local-linuxthreads-sizefix.diff (not necessary anymore). + * Update hppa/submitted-lt.diff. + * debian/shlibver: Bump up to 2.4-1. + * Update any/local-bashisms.diff: fix invalid test operator (==) + in run-iconv-test.sh + * debian/rules.d/build.mk: don't try to build html documentation. + * debian/sysdeps/hppa.mk: use ports and linuxthreads add-ons + * debian/sysdeps/m68k.mk: use ports and linuxthreads add-ons + * debian/sysdeps/m32r.mk: use ports and linuxthreads add-ons + * debian/sysdeps/mips.mk: use ports add-on + * debian/sysdeps/mipsel.mk: use ports add-on + * debian/sysdeps/arm.mk: use ports add-on + * Build with gcc 4.1 on all architectures but hurd-i386. + * debian/debhelper.in/nscd.init: partially sync nscd initscript + with upstream. + * Remove mips/local-librt.diff. + * debian/rules.d/tarball.mk: no longer run tar with -v. + * Add hppa/cvs-portshead.patch (update hppa code to ports HEAD) + * Add arm/cvs-portshead.patch (update arm code to ports HEAD) + + [ Denis Barbier ] + * Remove locale/complex-collate.diff (merged upstream). + * Remove locale/cvs-{iso4217,iso639}.diff, locale/cvs-localedata.diff + * Remove from any/local-forward-backward-collation.diff a chunk merged + upstream. + * debian/rules.d/tarball.mk: glibc--2.4.tar.bz2 add-on unpacks + into either or glibc--2.4, in which case it is renamed + into . + + [ Michael Banck ] + * debian/sysdeps/hurd.mk: Only use libidn for add-ons. + + [ Aurelien Jarno ] + * Update all/submitted-new-brf-encoding.diff. + * Remove alpha/cvs-gcc4-profile.diff (not needed anymore). + * Update alpha/submitted-xstat.diff. + * Update arm/cvs-gcc4-inline.diff. + * Remove arm/cvs-gcc4.1-raise.diff (merged upstream). + * Remove arm/cvs-float-byteorder.diff (merged upstream). + * Remove arm/cvs-socket-weakalias.diff (merged upstream). + * Update arm/local-ioperm.diff to reflect the new port add-on. + * Update arm/local-no-hwcap.diff to reflect the new port add-on. + * Remove any/cvs-argp_h.diff (merged upstream). + * Remove any/cvs-ctan.diff (merged upstream). + * Remove any/cvs-futimes.diff (merged upstream). + * Remove any/cvs-nfs_h.diff (merged upstream). + * Remove any/cvs-path_log.diff (merged upstream). + * Remove any/cvs-resource_h.diff (merged upstream). + * Remove any/cvs-static-getpid.diff (merged upstream). + * Remove any/cvs-tls-crashfix.diff (merged upstream). + * Add any/cvs-uio_h.diff from upstream to allow inclusion of bits/uio.h from + fcntl.h and prevent multiple inclusions. + * Remove any/local-kernel-features.diff (merged upstream). + * Update any/local-ldso-disable-hwcap.diff. + * Add any/local-linuxthreads-tst-sighandler.diff to disable + tst-sighandler{1,2} tests, which seems to be buggy. + * Update any/local-rtld.diff. + * Update any/local-sysctl.diff to reflect the new port add-on. + * Update any/local-version-sanity.diff. + * Remove any/submitted-eh-frame-terminator.diff (merged upstream). + * Update any/submitted-nis-netgrp.diff. + * Remove i386/local-i486_ldt_support.diff (merged upstream). + * Remove ia64/cvs-gcc41-atomic_h.diff (merged upstream). + * Remove hppa/cvs-linesep.diff (merged upstream). + * Remove hppa/cvs-no-ldbl-128 (merged upstream). + * Replace hppa/cvs-pie-relocs.diff by submitted-nptl-carlos.diff, see + http://lists.parisc-linux.org/pipermail/parisc-linux/2006-July/029549.html. + * Remove hppa/local-gcc-4-profile.diff (not necessary anymore). + * Update hppa/local-inlining.diff to reflect the new port add-on. + * Remove hppa/local-remove-mallocdef.diff (not necessary anymore as + spinlock ldcw fix has been applied). + * Update hppa/submitted-drop-utimes.diff. + * Remove hppa/submitted-fenv-align.diff (merged upstream). + * Remove hppa/submitted-fpu.diff (merged upstream). + * Remove hppa/submitted-iitlbp.diff (merged upstream). + * Remove hppa/submitted-sysdeps.diff (merged upstream). + * Remove hurd-i386/cvs-ioctl-pfinet.diff (merged upstream). + * Remove hurd-i386/cvs-getresuid-dyslexia.diff (merged upstream). + * Remove hurd-i386/cvs-posix-opts.diff (merged upstream). + * Update hurd-i386/submitted-sysvshm.diff. + * Remove kfreebsd/local-nscd_no_mremap.diff (not necessary anymore). + * Update kfreebsd/local-scripts.diff. + * Add kfreebsd/local-ftw.diff. + * Add kfreebsd/local-sysdeps-2.4.diff. + * Add kfreebsd/local-memusage_no_mremap.diff. + * Remove m32r/cvs-elf-m32r_rel32.diff (merged upstream). + * Update m68k/local-compat.diff. + * Update m68k/local-mathinline_h.diff to reflect the new port add-on. + * Update m68k/local-fpic.diff. + * Update m68k/local-reloc.diff to reflect the new port add-on. + * Update m68k/submitted-gcc34-seccomment.diff. + * Add mips/cvs-fork.diff (fix the path to i386/fork.c) from CVS. + * Add mips/cvs-resource.diff (fix a typo in bits/resource.h) from CVS. + * Remove mips/cvs-gcc4-inline.diff (merged upstream). + * Remove mips/cvs-gcc4-sysdeps.diff (merged upstream). + * Update mips/submitted-msq.diff to reflect the new port add-on. + * Remove powerpc/cvs-gcc41-initfini.diff (merged upstream). + * Update any/local-libgcc-compat-{all,others}.diff and split them into + any/local-libgcc-compat-{main,ports}.diff. Move mips/libgcc-compat.c to + mips/mips32/libgcc-compat.c as it is only needed for the o32 ABI, and not + needed for n32 and n64 ABIs. + * Add sparc/local-fork.diff (use fork.c instead of fork.S). + * Add any/local-__thread.diff (make glibc buildable without __thread support) + from Michael Banck. + * debian/script.in/kernelcheck.sh: set the minimum kernel version to 2.6.0, + except on m68k where it is set to 2.4.1. + * debian/sysdeps/i386.mk: install the xen flavour in /lib/i686/nosegneg and + create /etc/ld.so.conf.d/libc6-xen.conf which uses the new hwcap feature. + Closes: #363442. + * debian/FAQ: Remove LD_ASSUME_KERNEL workaround, as linuxthreads versions + of the glibc are not built anymore. + + [ Jeff Bailey ] + + * debian/control.in/libc: Move tzdata dependancy to ... + * debian/sysdeps/depflags.mk: ... here. + + * debian/sysdeps/powerpc.mk: Include biarch headers in libc6-dev-ppc64 + + * debian/patches/any/local-dynamic-resolvconf.diff: New file to + check for updated resolv.conf before a nameserver call. (Closes: + #272265). + * debian/patches/series: Use it. + + -- Clint Adams Sun, 28 May 2006 03:28:14 +0200 + +glibc (2.3.6.ds1-12) UNRELEASED; urgency=low + + [ Pierre Habouzit ] + * patches/any/cvs-sunrpc-xdrmem_setpos.diff: fix a pointer-to-cast problem + in sunrpc, backport from glibc-2.5. Closes: #389084. + * patches/any/cvs-getent-wrong-struct-size.diff: fix a bad struct size in + nss/getent.c, backport from glibc-2.5. Closes: #347358. + * patches/any/local-sysctl.diff: sysctl is back for good it seems, remove + the link warning from the patch. Closes: #410816. + + [ Aurelien Jarno ] + * debian/control.in/opt: fix a typo: Ezla -> Ezra. Closes: #410839. + + -- Aurelien Jarno Tue, 13 Feb 2007 23:43:39 +0100 + +glibc (2.3.6.ds1-11) unstable; urgency=low + + * patches/kfreebsd/local-sysdeps.diff: update to revision 1886 (from + glibc-bsd). + * patches/any/cvs-itoa-c.diff: new patch from CVS (fix sprintf %0lld when + argument equals to 0). Closes: bug#292523. + * patches/all/local-pthread-manpages.diff: fix pthread manpages. Closes: + bug#220719. + * debhelper.in/libc-otherbuild.postinst: fix handling of + /etc/ld.so.hwcappkgs. Closes: bug#409374. + * debhelper.in/libc.postinst: fix code adding /etc/ld.so.conf.d support to + /etc/ld.so.conf. Closes: bug#409516. + + -- Aurelien Jarno Sat, 3 Feb 2007 20:13:29 +0100 + +glibc (2.3.6.ds1-10) unstable; urgency=low + + * sysdeps/kfreebsd.mk: Link all machine*/ directories to support + new bi-arch headers. + * Add bi-arch support on kfreebsd-amd64: + - debian/sysdeps/kfreebsd-amd64.mk: New pass for 32-bit glibc + - debian/control.in/main: Add build-depends on libc0.1-dev-i386 + - debian/control.in/kfreebsd-i386: add libc0.1-dev-i386 and + libc0.1-i386 packages + * patches/kfreebsd/local-sysdeps.diff: update to revision 1853 (from + glibc-bsd). + * debian/control.in/libc: downgrade priority of libc-dev to optional + from standard to match overrides. + * debian/patches/hppa/cvs-clone.diff: new patch by Helge Deller + inspired from upstream CVS code (fix LTP clone04 and + clone06 test). Closes: #405411. + * debian/patches/any/cvs-zdump-64-bit.diff: new patch from CVS to fix zdump + on 64-bit architectures. Closes: #402776. + * debian/quitlrc: new file. + * debian/rules.d/quilt.mk: use debian/quiltrc instead of default ~/.quiltrc. + Closes: #406136. + + -- Aurelien Jarno Mon, 8 Jan 2007 22:29:37 +0100 + +glibc (2.3.6.ds1-9) unstable; urgency=low + + [ Aurelien Jarno ] + * patches/kfreebsd/local-sysdeps.diff: update to revision 1775 (from + glibc-bsd). + * debian/po/eu.po: new file, thanks to Piarres Beobide. Closes: #398984. + * debian/wrapper/objcopy: remove useless .debug_loc (patch from Daniel + Jacobowitz). Closes: #399217. + * debian/po/de.po: Fix German translation. Closes: #372817. + + [ Michael Banck ] + * patches/hurd-i386/submitted-futimes.diff: Moved to ... + * patches/hurd-i386/cvs-futimes.diff: ... here, updated with the + version committed upstream by Roland McGrath. + + -- Aurelien Jarno Thu, 7 Dec 2006 11:27:42 +0100 + +glibc (2.3.6.ds1-8) unstable; urgency=high + + * any/local-iconv-fix-trampoline.diff: new patch (fix iconvconfig segfault + when run under exec-shield, PaX or similar) from hlfs. Closes: #397020. + * debian/po/ro.po: new file, thanks to Stan Ioan-Eugen. Closes: #395348. + * debhelper.in/locales.prerm; debhelper.in/locales.prerm, + debhelper.in/locales-all.prerm: fixed bad interactions between locales + and locales-all. Closes: #396354. + * patches/kfreebsd/local-sysdeps.diff: update to revision 1703 (from + glibc-bsd). + + -- Aurelien Jarno Sat, 4 Nov 2006 23:36:19 +0100 + +glibc (2.3.6.ds1-7) unstable; urgency=low + + [ Aurelien Jarno ] + * New any/local-no-pagesize.diff (remove the usage of PAGE_SIZE) by + Steve Langasek. Closes: #394385. + + -- Aurelien Jarno Sat, 21 Oct 2006 22:41:39 +0200 + +glibc (2.3.6.ds1-6) unstable; urgency=low + + [ Aurelien Jarno ] + * Improve the heuristic used to detect other copy of the C library. Closes: + #390950. + * Add m68k/local-pthread_lock.diff (fix deadlock with pthread_spinlock) by + Roman Zippel. Closes: #385917. + * Build-conflicts with buggy gcc-4.1 (= 4.1.1-14). Closes: #391485. + + -- Aurelien Jarno Sat, 7 Oct 2006 23:54:49 +0200 + +glibc (2.3.6.ds1-5) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/local/manpages/ldconfig.8: Update the manpage. Closes: #325921. + * debian/local/manpages/ld.so.8: Update the manpage. Closes: #171145, + #357676, #280027. + * rules.d/debhelper.mk: don't make ld.so.8.gz or ld.so.conf executable. + * debian/FAQ: specify that LD_ASSUME_KERNEL does not work on amd64. + Closes: #386924. + * patches/any/cvs-sqrt.diff: New patch from upstream to fix sqrt computation + for negative imaginary number. Closes: #388852. + + [ Michael Banck ] + * Add hurd-i386/cvs-getsid.diff (fix getsid(0) on the Hurd) by + Samuel Thibault (patch from glibc-2.4). + * Add hurd-i386/submitted-futimes.diff (fix touch on the Hurd) by + Thomas Schwinge and Samuel Thibault. Closes: #388785. + + [ Denis Barbier ] + * Add sr_ME and sr_RS locales, and keep sr_CS for backward compatibility. + * First weekday is Sunday in Brazil. Closes: #385859 + Thanks Gunther and Felipe Augusto van de Wiel. + + -- Aurelien Jarno Sun, 1 Oct 2006 18:48:27 +0200 + +glibc (2.3.6.ds1-4) unstable; urgency=low + + * debian/control.in/opt: add a new line at the end of the file. (Closes: + #384375). + * debian/rules.d/control.mk: add a check to make sur that all files in + debian/control.in have a new line at the end. + + -- Aurelien Jarno Thu, 24 Aug 2006 00:21:25 +0200 + +glibc (2.3.6.ds1-3) unstable; urgency=low + + * patches/any/cvs-sysctl.diff: patch from upstream to fix the sysctl() + problem for NPTL. + * patches/any/local-sysctl.diff: remove the NPTL fix from this patch, apply + the same kind of fix for linuxthreads than for NPTL. (Closes: #383976). + * patches/any/local-sysctl.diff: fix for arm. + * patches/any/local-bashisms.diff: fix bashisms in the testsuite. + * debian/control.in/{i386,powerpc,ppc64,s390x,sparc64}: change the bi-arch + package priority to optional (but keep libc6-i386 on amd64 to standard). + (Closes: #344253). + * debian/control.in/opt: Removed the comment about the IBM's JDK in the + descriptions of the optimized packages, as an NPTL version is also present + in the main libc. + * debian/rules.d/build.mk: force the locale directory to /usr/lib/locale. + This way the 32-bit libc6 on amd64 is able use the locales correctly (it + was already done for other bi-arch architectures). (Closes: #379959). + + -- Aurelien Jarno Wed, 23 Aug 2006 00:38:22 +0200 + +glibc (2.3.6.ds1-2) unstable; urgency=low + + [ Aurelien Jarno ] + * rules.d/build.mk: removed the call to texi2html. (Closes: #383276). + * New debian/patches/any/cvs-ctermid.diff from upstream to fix a segfault in + ctermid(NULL). Thanks Denis for the hint. (Closes: #380504, #383362). + * New debian/patches/localedata/reverted-for-etch.diff: revert a few + locales changes done in 2.3.6.ds1-1 and refused by the release managers: + - locales/vi_VN: Various fixes + - locales/ru_RU: Use U2002 for thousands_sep and mon_throusands_sep. + + [ Denis Barbier ] + * debian/patches/localedata/cvs-localedata.diff: A new test target + tst-strfmon1 was previously added into localedata/Makefile, + so add localedata/tst-strfmon1.c to really perform this test. + + -- Aurelien Jarno Thu, 17 Aug 2006 00:32:25 +0200 + +glibc (2.3.6.ds1-1) unstable; urgency=low + + [ Denis Barbier ] + * New all/submitted-uninitialized-byte-LC_CTYPE.diff patch to fix + uninitialized bytes or misaligned words in locale files. + * debian/debhelper.in/locales-all.postinst: Make localedef silent, and + fix an error, this script could not be run more than once. + * debian/debhelper.in/locales-all.prerm: New file, to remove + /usr/lib/locale/locale-archive. Thanks Lars Wirzenius. + (Closes: #382136) + * debian/debhelper.in/locales.postinst: Pass --no-checks to update-locale + to not break installation of this package even if non working locales + are selected. Thanks Robert Millan. (Closes: #365628) + * debian/patches/locale/cvs-iso4217.diff: Update to CVS 2006-08-12. + * debian/patches/localedata/cvs-localedata.diff: Update to CVS 2006-08-12 + Among other changes: + * New locale files: as_IN, ca_AD, csb_PL, el_CY, fr_AD, it_AD, nr_ZA, + or_IN, pa_PK and tr_CY. + * charmaps/MIK: New file. + * Sync bg_BG bs_BA es_MX ru_RU tg_TJ tt_RU with latest iso-4217.def + * Add transliateration support to LC_CTYPE for most locales. + * Fix date fields for several *_IN locales. + * locales/{*_ZA,ro_RO,vi_VN}: Various fixes + * locales/de_DE: Fix date_fmt. + * locales/hu_HU: Better month name abbreviations. + * locales/pl_PL: Don't ignore U0020 in collation. + * locales/ru_RU: Use U2002 for thousands_sep and mon_throusands_sep. + * locales/es_UY: Change currency_symbol. Closes: #378151 + * locales/de_CH: Change thousand separator to '. + * The following patches have been merged into localedata/cvs-localedata.diff + and are dropped: + locale/iso4217-RON.diff localedata/locale-ro_RO.diff + localedata/new-catalan-locales.diff localedata/locale-te_IN.diff + localedata/locale-nr_ZA.diff localedata/update-ZA.diff + + [ Aurelien Jarno ] + * sysdeps/{powerpc,s390,ia64}.mk: make the NPTL version buildable on 2.4 + kernels. + * New any/local-sysctl.diff patch to remove the annoying warning messages + that appear with 2.6.18+ kernels, and to warn users to not use sysctl(). + * debian/debhelper.in/libc.postinst: update list of optimized glibc + packages. Thanks Petr Salinger. (Closes: #383168). + * New any/cvs-static-getpid.diff patch from upstream to fix getpid() in + statically linked programs on some architectures. (Closes: #367656). + + -- Aurelien Jarno Tue, 15 Aug 2006 23:01:43 +0200 + +glibc (2.3.6-19) unstable; urgency=low + + [ Michael Banck ] + * debhelper.in/libc-udeb.install.hurd-i386: New file; libpthread is + not part of glibc on the Hurd. + + [ Aurelien Jarno ] + * Ship librt in the libc udeb (closes: bug#381881). + + -- Aurelien Jarno Tue, 8 Aug 2006 18:18:48 +0200 + +glibc (2.3.6-18) unstable; urgency=medium + + (urgency set to medium as it fixes a FTBFS) + + [ Aurelien Jarno ] + * Update ia64/cvs-gcc41-atomic_h.diff again (fix build failure with gcc-4.1, + nptl part) from upstream. + + -- Aurelien Jarno Tue, 1 Aug 2006 16:59:33 +0200 + +glibc (2.3.6-17) unstable; urgency=medium + + (urgency set to medium as it fixes a FTBFS) + + [ Aurelien Jarno ] + * Update ia64/cvs-gcc41-atomic_h.diff (fix build failure with gcc-4.1) from + upstream. + + [ Michael Banck ] + * debian/sysdeps/hurd.mk: Disable RUN_TESTSUITE. + + -- Aurelien Jarno Sun, 30 Jul 2006 21:25:32 +0200 + +glibc (2.3.6-16) UNRELEASED; urgency=low + + (urgency set to medium as it fixes a FTBFS) + + [ Aurelien Jarno ] + * Add arm/cvs-gcc4.1-raise.diff (fix build failure with gcc-4.1) from + upstream. + * Add ia64/cvs-gcc41-atomic_h.diff (fix build failure with gcc-4.1) from + upstream. + * Build with gcc 4.1 on all architectures but hurd-i386. + * debian/sysdeps/s390.mk: switch s390x to nptl. + * debian/rules.d/build.mk: use ld.so libc.so instead of libc.so to + determine if the host CPU is able to run the testsuite. + * debian/sysdeps/kfreebsd.mk: also use the nfs/ directory from kernel + headers. + * debian/sysdeps/kfreebsd.mk: also use the nfs/ directory from kernel + headers. + * patches/kfreebsd/local-sysdeps.diff: update to revision 1631 (from glibc-bsd). + * debian/local/manpages/iconv.1: fixed the description of the --silent + option. (Closes: #375741) + * debian/local/manpages/iconv.1: fixed the use of the TH keyword. (Closes: + #372510) + * debian/locales-all.README.Debian: File removed, it is useless now. + (Closes: #378191) + * Update Russian debconf translation, by Yuri Kozlov. (Closes: #379395) + * debian/debhelper.in/libc.postinst: add /etc/ld.so.conf.d/ support. + * Drop any/local-ldconfig-multiarch.diff, use /etc/ld.so.conf.d/ to + configure multiarch libraries. + * Update m68k/local-mathinline_h.diff (fix bits/mathinline.h), by Roger Leigh. + (Closes: #340871) + + [ Denis Barbier ] + * debian/control.in/main: also make locales Conflicts: belocs-locales-bin. + * debian/debhelper.in/locales.config: some programs keep modifying + /etc/environment to store locale variables, so read /etc/environment + even when upgrading new versions. Of course, /etc/default/locale has + still a higher precedence over /etc/environment. (Closes: #363644) + * Add new Lithuanian debconf translation, by Gintautas Miliauskas. + (Closes: #374365) + * Update Brazilian Portuguese debconf translation, by Felipe Augusto + van de Wiel. (Closes: #375451) + * debian/debhelper.in/libc.postinst: Call iconvconfig to generate + /usr/lib/gconv/gconv-modules.cache. (Closes: #376811) + * debian/debhelper.in/libc.postrm: Remove this cache file. + + -- Aurelien Jarno Thu, 8 Jun 2006 08:03:49 +0200 + +glibc (2.3.6-15) unstable; urgency=low + + * debian/rules.d/build.mk: generate a test log file even if the testsuite + is disabled, too make debhelper 5 happy. + + -- Aurelien Jarno Thu, 8 Jun 2006 08:02:47 +0200 + +glibc (2.3.6-14) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/debhelper.in/nscd: explicitely list the tables to invalidate. + (Closes: #370124) + * debian/debhelper.in/nscd: create /var/run/nscd if it does not already + exist. (Closes: #370122) + * Update m68k/local-mathinline_h.diff (fix bits/mathinline.h), by Roger Leigh. + Enable it. (Closes: #340871) + * debian/debhelper.in/libc.preinst: also check for other copies of the libc in + /lib32 and /lib64. + * debian/debhelper.in/libc.preinst, debian/rules.d/debhelper.mk: only use + the default system linker when searching for other copies of the libc. + * debian/sysdeps/i386.mk: make /lib/i386-linux-gnu and /usr/lib/i386-linux-gnu + symlinks relative. + * debhelper.in/libnss-dns-udeb.install, debhelper.in/libnss-files-udeb.install: + fix the installation path. (Closes: #370523) + * patches/kfreebsd/local-sysdeps.diff: update to revision 1583 (from glibc-bsd) + to fix the build with gcc-4.1. + * patches/m32r/local-ports-m32r.diff: remove libc_cv_gcc_unwind_find=yes + from m32r/configure by Kazuhiro Inaoka. (Closes: #371052) + * rules.d/debhelper.mk: don't install librpcsvc.a when cross-compiling. + (Closes: #369657) + * debian/compat, debian/control.in/main: switch to debhelper 5.0. + + [ Denis Barbier ] + * debian/patches/localedata/tailor-iso14651_t1.diff: Fix several collation + rules, which could cause errors in regular expressions with character + ranges, in particular with et_EE locale. (Closes: #362514) + * debian/patches/localedata/locale-csb_PL.diff + * debian/patches/localedata/locale-ro_RO.diff + * debian/patches/localedata/locale-se_NO.diff: Apply similar fixes. + * debian/main/control.in: make locales Conflicts: belocs-locales-data. + + -- Aurelien Jarno Wed, 7 Jun 2006 23:16:58 +0200 + +glibc (2.3.6-13) unstable; urgency=low + + * debian/patches/alpha/local-gcc4.1.diff: fix a small typo. sigh. + * debian/control.in/main: build-depends on libc6-dev-s390x on s390. + * Remove any/local-libgcc-static.diff. (Closes: #369636, #369641) + + -- Aurelien Jarno Wed, 31 May 2006 07:20:14 +0200 + +glibc (2.3.6-12) unstable; urgency=low + + * Don't do a udeb pass, it is still too buggy. (Closes: #369492) + * debian/control.in/main: build-depends on libc6-dev-sparc64 on sparc. + * Add patches/alpha/local-gcc4.1.diff (fix build with gcc-4.1) from + Falk Hueffner. + * patches/kfreebsd/local-sysdeps.diff: update to revision 1571 (from + glibc-bsd). + + -- Aurelien Jarno Tue, 30 May 2006 22:35:35 +0200 + +glibc (2.3.6-11) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/rules/build.mk: don't remove ld.so from udeb packages. + * debian/rules: move udeb_add-ons to debian/sysdeps/{kfreebsd,linux}.mk. + * M32R support: (Closes: #366962) + - debian/rules.d/control.mk: add m32r. + - Add debian/sysdeps/m32r.mk. + - Add debian/patches/any/cvs-futimes.diff (use fnctl64 if fnctl is no + available). + - Add debian/patch/any/local-kernel-features.diff (fix the include path + for kernel-features.h) so that it could be used from other files. + - Add debian/patches/any/local-libgcc-static.diff (link with libgcc_s). + - Add debian/patches/m32r/local-ports-m32r.diff (m32r support). + - Add debian/patches/m32r/cvs-elf-m32r_rel32.diff (Add R_M32R_REL32 to + elf/elf.h). + * debian/local/manpages/localedef.1: fix a typo. (Closes: #310477) + * debian/local/manpages/iconv.1: fix the indentation (Closes: #316148) + * debian/local/manpages/iconv.1, debian/local/manpages/localedef.1: change + sarge into etch. + * debian/sysdeps/kfreebsd.mk: build the udeb package with -Os on + kfreebsd-i386 and kfreebsd-amd64. + * debian/sysdeps/*.mk: build the udeb with -Os, except on m68k and s390. + * debian/sysdeps/hppa.mk: build the udeb with gcc 4.1. + mipsel, powerpc and sparc. + * debian/sysdeps/arm.mk: set udeb_MIN_KERNEL_SUPPORTED to 2.4.1, as the + arm build daemons are still running a 2.4 kernel. + * debian/sysdeps/sparc.mk: set udeb_MIN_KERNEL_SUPPORTED to 2.4.1, as d-i + still needs a 2.4 kernel. + * patches/kfreebsd/local-sysdeps.diff: update to revision 1577 (from + glibc-bsd). + * Add debian/patches/powerpc/cvs-gcc41-initfini.diff (fix build with gcc 4.1 + on powerpc) from upstream CVS. + * debian/sysdeps/i386.mk: add a symlink (/usr)/lib/i386-linux-gnu -> + (/usr)/lib/i486-linux-gnu. + * Remove patches/i386/local-sse-oldkernel.diff (we don't support 2.2 kernels + anymore). + * Merge debian/local/etc_init.d/nscd and debian/debhelper.in/nscd.init. + (Closes: #368587) + * Remove debian/local/etc_init.d/nscd. + + [ Denis Barbier ] + * Add patches/all/submitted-new-brf-encoding.diff: Add new BRF encoding + (ASCII Braille), submitted upstream by Samuel Thibault. + * Add patches/localedata/locale-zh_TW.diff: Remove from + dates. Thanks Dan Jacobson (Closes: #352600) + + [ Clint Adams ] + * debian/debhelper.in/libc.preinst: use POSIX syntax for kill. + * debian/control.in/main: bump to Standards-Version 3.7.2. + + -- Aurelien Jarno Tue, 30 May 2006 02:28:33 +0200 + +glibc (2.3.6-10) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/debhelper.in/libc.preinst: use the original path if readlink -f + fails to canonicalize the path. (Closes: #368116) + * Add patches/arm/local-softfloat.diff (support for arm softfloat), and + enable on arm-softfloat only, as it breaks other architectures. (Closes: + #358772) + * debian/rules.d/control.mk: Add arm-softfloat to the architectures list. + * Do a separate pass for the udeb package, so that it could use different + build options. + * Set the minimum kernel to 2.6.1 for the udeb package, except for i386, + m68k, mips, mipsel, powerpc and s390. + * Enable the locales-all package. (Closes: #308020) + * debian/sysdeps/i386.mk: build the glibc with --without-__thread again on + i386 (Closes: #368022, #368326). + * debhelper.in/libc.preinst, debhelper.in/libc-otherbuild.postinst, + debhelper.in/libc.postinst, debhelper.in/libc-otherbuild.preinst: use + /bin/sh instead of /bin/bash. (Closes: #267594) + * patches/kfreebsd/local-sysdeps.diff: update to revision 1571 (from + glibc-bsd). + + -- Aurelien Jarno Sun, 21 May 2006 22:36:27 +0200 + +glibc (2.3.6-9) unstable; urgency=low + + * Don't run make install with -j, as it is not SMP safe. + + -- Aurelien Jarno Thu, 18 May 2006 17:54:39 +0000 + +glibc (2.3.6-8) unstable; urgency=low + + [ Aurelien Jarno ] + * Disable m68k/local-mathinline_h.diff, it breaks the build of the glibc on + m68k. + * Add all/local-pt_BR.diff (fix a small typo in the Brazilian Portuguese + translation) by Guilherme de S. Pastore. (Closes: #319422) + * Add hurd-i386/local-mlock.diff (fix mlock on Hurd/Mach), by Samuel + Thibault. (Closes: #349204) + * sysdeps/i386.mk: build glibc with --with-__thread on i386. + * debian/local/manpages: s/woody/etch/g. (Closes: #364198) + * sysdeps/depflags.pl: bumped the versioned conflicts with initrd-tools + to 0.1.84.1, as older version use LD_ASSUME_KERNEL=2.4. (Closes: #365647) + * Follow symlinks while checking for other copy of the C library. + (Closes: #365838) + * Invalidate nscd cache when calling /etc/init.d/nscd restart. + (Closes: #365676, #365677) + * /usr/sbin/tzconfig: set umask to 022. (Closes: #367145) + * debian/main/control.in: make locales Replaces: lliurex-belocs-locales-data. + (Closes: #365651) + * Move the NJOBS part to debian/sysdeps/(system) to debian/rules. + * debian/debhelper.in/libc-otherbuild.postinst: fixed parsing of + /etc/ld.so.hwcappkgs. (Closes: #364666) + + [ Denis Barbier ] + * Fix location of locales/NEWS.Debian. Thanks Matthijs Mohlmann. + (Closes: #362763) + * locales.postinst: Do not abort if the current locale is not generated. + * locales.config: Fix shell scripting when "All locales" is selected along + with other choices, Thanks Olivier Trichet. (Closes: #364251) + * update-locale: When checking for invalid locale settings, do not mess up + with current environment settings. + * Remove sem_*.3 manual pages from glibc-doc, these manual pages are updated + and maintained in the manpages-dev package. (Closes: #365547) + + [ Michael Banck ] + * Add hurd-i386/cvs-posix-opts.diff (Define many missing options, most + notably _POSIX_THREAD_SAFE_FUNCTIONS) by Roland McGrath (patch from + HEAD). + + -- Aurelien Jarno Thu, 18 May 2006 15:34:08 +0000 + +glibc (2.3.6-7) unstable; urgency=medium + + [ Aurelien Jarno ] + * Urgency set to medium because this version fixes and RC bug in testing. + * Optimized libraries should actually be cross-compiled as we don't know the + CPU that will be used. + * Allow the glibc to be cross-compiled for Linux and kFreeBSD. (Closes: + #358771) + * Bumped the minimum kernel to 2.4.1 instead of 2.4.0 as there are some + important new features in this version. Thanks to Petr Salinger for + noticing me. + * Add m68k/local-mathinline_h.diff (fix bits/mathinline.h), by Roger Leigh. + (Closes: #340871) + * Add beginning and end timestamps to both the build logs and the + testsuite logs. (Closes: #155690) + * debian/sysdeps/sparc.mk: build sparcv9b optimized libraries with + -mtune=ultrasparc3. + * debian/sysdeps/kfreebsd/local-sysdeps.diff: update from the latest SVN. + * debian/patches/series: Fix the patchlevel for local-i486_ldt_support.diff + (Closes: #226716) + * Fix a typo in the previous changelog entry (s/not/now/). (Closes: #362460) + + [ Denis Barbier ] + * Remove ldd calls from libc.preinst. + * Do no more transfer variables from /etc/environment to /etc/default/locale + in locales.postinst, but instead add /usr/share/doc/locales/NEWS.Debian + to explain that /etc/environment needs to be cleaned up. + (Closes: #361048) + * Create a new locales-all package with all supported locales precompiled, + but keep it disabled for now. + Both locales and locales-all packages provide a virtual generated-locales + package. Packages which currently depends on locales should instead + depend on 'locales | generated-locales'. + * Add a new ca_ES@valencia locale, requested by Robert Millan (Closes: #361972) + + -- Aurelien Jarno Fri, 14 Apr 2006 13:48:30 +0200 + +glibc (2.3.6-6) unstable; urgency=low + + [ Aurelien Jarno ] + * Remove the timezone database from the libc6 package. It is now provided + by a separate package called tzdata. + * Put each test log file in the corresponding package instead of putting all + of them in libc6. + * Remove sparc/local-sparc64-fixups.diff as /lib64 and /usr/lib64 are now a + default search path on 32/64-bit architectures. + * Switch minimum kernel to at least 2.4.0 on all arches but m68k, and change + kernelcheck.sh accordingly. Affected architectures: + - alpha: from 2.2.0 to 2.4.0 + - arm: from 2.2.0 to 2.4.0 (but 2.4.0 was checked at installed time) + - i386: from 2.2.0 to 2.4.0 + - powerpc: from 2.2.0 to 2.4.0 + - s390: from 2.2.10 to 2.4.0 + - sparc: from 2.2.0 to 2.4.0 + (Closes: #174270, #220992) + * Add i386/local-i486_ldt_support.diff (add ldt support and thus TLS support + on i486 machines). Thanks to Petr Salinger for the hint. (Closes: #226716) + * Bump shlib to (>= 2.3.6-6) on i386. + * debian/debhelper.in/libc-alt.install: Add gconv-modules to the bi-arch + packages. (Closes: #361642) + * /etc/ld.so.nohwcap is now supported on non-Linux architectures. Drop the + "Linux" check from libc-otherbuild.preinst. + * Build a libc6-xen flavour on i386. + * Fix a typo in the description of the libc6-sparcv9 and libc6-sparcv9b + packages. + * local/usr_sbin/tzconfig: + - Put a copy of the current timezone into /etc/localtime instead of a + symlink. (Closes: #346342) + - Handle the case where /etc/localtime does not exists. (Closes: + #360383). + * local/manpages/tzconfig.8: Update the manpage accordingly. + * script.in/kernelcheck.sh: Also take in account 64-bit mips(el) kernels. + * Add GNU/kFreeBSD patches, using conditional patching until they get + accepted upstream. + * Correctly replace DEB_HOST_ARCH by its value in libc6.preinst. Thanks to + Denis for noticing me. + + [ Denis Barbier ] + * debian/debhelper.in/locales.config: /etc/locale.gen was not generated at + initial installation. (Closes: #357523) + * update-locale: Fix buggy sanity check between LANGUAGE and LANG. + (Closes: #361091) + * update-locale: Drop the --remove flag, it is useless. + * update-locale: Fix the --locale-file flag. + * Add new Galician debconf translation, by Jacobo Tarrio. (Closes: #361101) + * Use new features of po-debconf 1.0 to remove unneeded strings from PO + files. + * Fix day, abmon and mon fields for wo_SN locale. (Closes: #361338) + + [ Michael Banck ] + * Add hurd-machrules-make.diff (fixes build problems with make-3.81 for + Mach interface generation rules) by Roland McGrath (patch from HEAD). + * Add hurd-sysvshm.diff (implements SysV shared memory for GNU/Hurd) + by Marcus Brinkmann. + + -- Aurelien Jarno Mon, 10 Apr 2006 20:19:55 +0200 + +glibc (2.3.6-5) unstable; urgency=low + + [ Denis Barbier ] + * Add am_pm formatting information to en_NZ. (Closes: #356328) + * Add interlingua locale. (Closes: #224756) + * Move locale variables from /etc/environment into a dedicated + /etc/default/locale file. (Closes: #214898, #349503) + * Add a new /usr/sbin/update-locale program to handle this new file. + + [ Aurelien Jarno ] + * Fix ldconfig multiarch patch for reiserfs filesystems. + * Make ldconfig look into /lib32 and /usr/lib32 on amd64. Add /lib32 -> + /emul/ia32-linux/lib and /usr/lib32 -> /emul/ia32-linux/usr/lib links. + * Remove glibc235-gcc4-ppc-procfs.diff from debian/patches/series. + (Closes: #360126) + * Add siginfo_h.diff (fixes a typo in ILL_ILLOPN definition), backported + from upstream. (Closes: #358041) + * Replace getcwd_ia64.diff by getcwd_c.diff (fix getcwd on platforms where + PAGE_SIZE >> PATH_MAX), backported from upstream. (Closes: #355109) + * debian/control: drop alternative build-depends on ia32-libs-dev as this + package does not exist anymore. + + -- Denis Barbier Tue, 4 Apr 2006 18:07:21 +0200 + +glibc (2.3.6-4) unstable; urgency=low + + [ Aurelien Jarno ] + * Set configure_build to the same value as configure_host for sparc + optimized libraries (as on i386). This way they will be tested. + * If the CPU has biarch support, run tests for cross-compiled libraries. + * Remove ld.so from optimized libraries as it is not used. + * Add regcomp_c.diff (Call __libc_lock_init after init_dfa) from upstream + (Ulrich Drepper). This make possible to run the testsuite again on hppa. + * Enable the testsuite on hppa. + * Add tst-setcontext_c.diff (fix the arguments passed to setcontext during + test) from upstream. + * Create a link /usr/lib32 -> /emul/ia32-linux/usr/lib on amd64. + * Add argp_h.diff fixes (Remove __NTH for __argp_usage inline function) + by Ulrich Drepper (patch from HEAD). (Closes: #355264) + * Add getcwd_ia64.diff (Remove the assertion so that the behaviour is the + same on all platforms, including ia64). This is a temporary fix to bug + #355109, until the upstream takes a decision. + * debian/sysdeps/kfreebsd-amd64.mk: + - s/libc6/libc0.1/g + - Change rtlddir from /lib64 to /lib + + [ Denis Barbier ] + * locales.config: If $DEBCONF_IS_A_REGISTRY is set to a non-empty value, + the content of /etc/locale.gen does not override debconf values. + * Add strfmon.diff: the negative sign is not printed by strfmon when + current locale defines sign_posn == 4 (as in de_CH) and format + argument contains the ! modifier. + * Fix forward-backward-collation.diff: the change in strcoll_l.c has to + be applied at several places. (Closes: #357390) + * Update timezone data files to tzdata2006b (no data change, only comments). + * Fix resource_h.diff: there was a typo for mips: + s/_RLIMIT_RTPRIO/__RLIMIT_RTPRIO/ (Closes: #357419) + + -- Denis Barbier Sat, 18 Mar 2006 10:26:45 +0100 + +glibc (2.3.6-3) unstable; urgency=low + + [ Aurelien Jarno] + * Use a shell function instead of ifneq when testing a variable depending on + $(curpass), otherwise it is only evaluated at the first pass. + * Add support for the ppc64 architecture. (Closes: #301438). + * Use the new slibdir, libdir, rtlddir variables to build the various + flavours of the libc. Put them directly in the final directory, and + remove the corresponding tweaks done after the make install phase. + * Install the 32-bit libraries in /emul/ia32-linux(/usr)/lib on amd64. + * Only create the multiarch directories and the symlinks in /lib/ldconfig + for the main pass. Otherwise alternate libraries would conflict with the + main one when using multiarch. + * Fix the build-dependencies for kfreebsd-amd64. + * Add sysdeps/kfreebsd-amd64.mk and add kfreebsd-amd64 to + rules.d/control.mk. + * Make libc6-i386-dev conflicts with all versions of ia32-libs-dev. As it + won't be built anymore on amd64, this will automatically remove it during + the upgrade. + + [ Clint Adams ] + * Get rid of -o as a binary operator to [ in tzconfig and postinst. + + [ Denis Barbier ] + * Update localedata/locales/ro_RO. Thanks Eddy Petrişor. (Closes: #347173) + * Bump LOCALES_DEP_VER to 2.3.6-2. All locales can be compiled with + localedef from 2.3.6-2 and 2.3.6-3. (Closes: #352620) + * Updated Italian debconf translation, by Luca Monducci. + + -- Aurelien Jarno Wed, 1 Mar 2006 17:11:36 +0100 + +glibc (2.3.6-2) unstable; urgency=low + + [ Denis Barbier ] + * Modify debver2localesdep.pl, locales-depver and control files to provide + a smooth upgrade in unstable when locales require changes in localedef. + This is the first part for solving #352620, the proper dependency for + locales will be set by the next upload. + * debian/control: Clean up. Remove versioned dependencies on gettext, + debianutils, tar, texinfo; these versions were already in oldstable. + Drop references to localebin, wg15-locale, i18ndata, locale-ja, locale-ko, + locale-vi, locale-zh, libc6-doc, glibcdoc and libc6 (<< 2.1-4). + * debian/control: Split Build-Depends on several lines for readability + purpose. + * Add RON to locale/iso-4217.def and bump LOCALES_COMPAT_VER to 2.3.6-2. + * Fix thousand separator for de_CH, and let other Swiss locales copy + de_CH for LC_NUMERIC and LC_MONETARY sections. (Closes: #345481) + * Apply a patch from Fedora to define AM/PM strings in cy_GB and en_GB + locales. (Closes: #240901) + * Fix the week definition for the C locale. + * Check first_weekday fields against current CLDR snapshot. Modified + locales are *_GB (=2), ar_SY (=5), ms_MY (=2), id_ID (=2). Add + this field to more locales. + * locale-gen: Replace 'test ... -a ...' by two tests. + * Add an "All locales" option to the locales/locales_to_be_generated + template. When it is selected, /etc/locale.gen is a symlink to + /usr/share/i18n/SUPPORTED. (Closes: #321580, #323013) + * Updated debconf translations: (Closes: #353611) + - Brazilian Portuguese, by André Luís Lopes (Closes: #352416) + - Czech, by Miroslav Kure + - Danish, by Morten Brix Pedersen + - Dutch, by Bart Cornelis + - French, by Denis Barbier + - German, by Helge Kreutzmann + - Polish, by Emilian Nowak + - Portuguese, by Simão Pedro Cardoso + - Spanish, by Carlos Valdivia Yagüe + - Swedish, by Daniel Nylander + - Ukrainian, by Eugeniy Meshcheryakov + + [ Clint Adams ] + * Add hurd-getresuid-dyslexia.diff (fixes incorrect ordering of + arguments) with patch from Samuel Thibault. (Closes: #352500) + * Add hppa-no-ldbl-128.diff (stops implying that PA needs + 128-bit long double support in glibc) from Aurelien Jarno. + (Closes: #344836). + * debian/local/manpages/locale.1: remove double quotes from + synopsis. (Closes: #352597) + + [ Aurelien Jarno ] + * Move dependency on lib64gcc1 from libc6-amd64 to libc6-dev-amd64 to + avoid a dependency loop. (Closes: #352263) + * Use sed and test in /etc/init.d/glibc.sh to compare kernel versions. + Put the Debian architecture name in the script at build time instead + of using 'dpkg --print-architecture'. Thanks to Florent Bayle for + the idea. (Closes: #325802, #328088, #339482) + * Fix example code showing how to use hooks for malloc. (Closes: + bug#333565). + * Add hurd-ioctl-decode-argument.diff (fixes decoding of ioctl + arguments) from Samuel Thibault. (Closes: #320273) + * Fix the prototype of sbrk() in the manual. (Closes: #281863) + * Fix the strcasestr() examples in the manual. (Closes: #289853) + * Install libc_nonshared.a in /usr/lib/nptl, and fix the location + of the static libraries of the NPTL ld scripts. (Closes: #347762) + * Update debian/ files for GNU/kFreeBSD. (Closes: #351638) + * Regenerate debian/control, generate debian/control.in/libc0.1. + * Lintian cleans: + - Remove build-dependencies on tar and debianutils, they are + build-essential packages + - Fix FSF postal address + - Use policy compliant links in libc6-dev-amd64 + - Use an absolute symlink for /lib64 on amd64 + * Add myself to Uploaders. + * Switch to gcc-4.0 on powerpc. + * Remove old hack for gcc-3.4 on amd64. + * Build with the compiler defined as default for glibc (ie currently + gcc-4.0) instead of gcc on amd64. + * Decrease priorities of 64-bit main and -dev packages to standard + and optional for all architectures. It better matches override, + though it will still have to be changed. + * Fix glibc235-hppa-lt.diff (restore ret0 across calls to CDISABLE) + from Randolph Chung. (Closes: #326581) + * Switch to gcc-4.0 on hppa. + * Add support for extra_pkg_install hooks for udeb packages. + * Build back with -g1 on amd64, it was removed to permit the build with + gcc-3.4. + * Remove --with-tls and --with-__thread in sysdeps/* as they are the + default option since version 2.3.5. + * Multiarch support: + - Add ld-multiarch.diff (add (/usr)/lib/$(config-machine)-$(config-os)) + to the search path of the dynamic linker) from Tollef Fog Heen. + (Closes: #295855) + - Add ldconfig-multiarch.diff (add directories pointed from /lib/ldconfig + to the search path). + - Create (/usr)/lib/$(config-machine)-$(config-os) and add symlinks to + these directories in /lib/ldconfig/ + - Add rtld.diff (add a new configuration variable rtlddir to change the + dynamic linker in the ELF binaries) partly from Andreas Jochen. This is + necessary to be able to install a glibc in the multiarch dir while still + conforming to the various ABIs which specify a linker in /lib or /lib64. + * Remove the patch to install the libc into /lib instead of /lib64 on + amd64. Use the new libdir, slibdir and rtlddir options in configparm to + install the glibc in (/usr)/lib, and to use the dynamic linker path + specified by the ABI for path for libc objects. (Closes: #325226) + * Add -u option to the ldd manpage. (Closes: #354074) + * Merged a patch from Michael Banck to use gcc-4.0 on Hurd. + * Add resource_h.diff (RLIMIT_NICE and RLIMIT_RTPRIO support) from MAIN. + (Closes: #352636) + * Add hppa-inlining.diff (Increase the maximal overall growth of the + compilation unit caused by inlining for dl-reloc.c on hppa). + * Build a 32-bit libc on amd64, using the new multiarch directories. + (Closes: #274367) + + -- Aurelien Jarno Thu, 23 Feb 2006 17:47:58 +0100 + +glibc (2.3.6-1) unstable; urgency=low + + [ Denis Barbier ] + * debian/debhelper.in/libc.postinst: Restart webmin on upgrade. + (Closes: #345641) + * debian/debhelper.in/libc.postinst: Restart dropbear on upgrade. + (Closes: #351036) + * Fix yesexpr/noexpr in tl_PH locale. Reported by eric pareja. + (Closes: #295810) + * Fix langinfo(_NL_TIME_FIRST_WEEKDAY) for C locale. Reported by + Graham Wilson (Closes: #327025) + * Add first_weekday fields to most locales. + (Closes: #343885, #347323, #347686, #348518, #351375) + * Apply various fixes to French locales. (Closes: #248377) + * Fix d_t_fmt and date_fmt in fo_FO. Reported by Jacob Sparre Andersen. + * New sa_IN locale file, provided by Vidya Ayer and Christian Perrier. + (Closes: #331377) + * Add several locales to SUPPORTED: + - ru_RU.CP1251, requested by Michael Bravo. (Closes: #225516) + - uz_UZ.UTF-8 (its ISO-8859-1 counterpart had no UTF-8 variant) + - da_DK.ISO-8859-15, en_GB.ISO-8859-15, en_US.ISO-8859-15, no_NO.UTF-8, + no_NO and sv_SE.ISO-8859-15 are found in fedora-branch CVS branch. + * Apply several improvements to hy_AM found in upstream Bugzilla. + * Fix LC_MONETARY section of en_DK and provide en_DK.ISO-8859-15. + (Closes: #323159) + * Improve localedef(1) manual page, by Lars Wirzenius (Closes: #309846) + * Fix LC_MONETARY section of pl_PL. Reported by Michał Politowski. + (Closes: #227214) + * New wo_SN locale file, provided by Samba Ndao Diop and Christian + Perrier. (Closes: #279697) + * Add new ca_AD, ca_FR and ca_IT locale files, sent upstream by Robert + Millan. + * New csb_PL locale file, sent upstream by Andrzej Krzysztofowicz. + * Rewrite collation rules of several locales to include iso14651_t1. + This eases maintenance and saves about 1MB for installed size. + * Sort SUPPORTED to list UTF-8 locales first. This change partly + solves #312927. + * Modify localedata/locales/no_NO to copy definitions from nb_NO. + * Fix lang_* fields in gez_ER, gez_ET, tr_TR and wal_ET. + * Fix unknown symbols in collation rules of several locales: da_DK, + fa_IR, is_IS, lo_LA, lv_LV, nb_NO and sr_CS. + * Apply updates for st_ZA, xh_ZA and zu_ZA sent upstream by Dwayne Bailey. + * Add new nr_ZA locale, sent upstream by Dwayne Bailey. + * Rewrite collation rules for dz_BT, in collaboration with Pema Geyleg. + * Revert upstream change of postal_fmt in te_IN because localedef + complains. (Closes: #348804) + * New debconf translations: + - Italian, by Luca Monducci (Closes: #329428) + - Swedish, by Daniel Nylander (Closes: #334864) + * Slightly reword locales.templates to be DTSG-compliant, thanks Thomas + Huriaux. + * Updated debconf translations: (Closes: #350103) + - Brazilian Portuguese, by André Luís Lopes (Closes: #352416) + - Czech, by Miroslav Kure + - Danish, by Morten Brix Pedersen + - Dutch, by Bart Cornelis + - French, by Denis Barbier + - German, by Helge Kreutzmann + - Polish, by Emilian Nowak + - Turkish, by Erçin EKER + - Ukrainian, by Eugeniy Meshcheryakov + - Vietnamese, by Clytie Siddall + * Update timezone data files to tzdata2006a. (Closes: #345479, #347315, #351049) + * Drop Build-Depends-Indep: po4a from control file, translated manual pages + are currently not built. + + [ Clint Adams ] + * Move to upstream version 2.3.6. + - Redo debian/patches/localedata/cvs-localedata.diff + - Remove glibc235-gcc4-cvs.diff + - Remove glibc235-gcc4-jis0208.diff + - Remove glibc235-binutils216-ia64.diff + - Remove glibc235-gcc4-ia64-profile.diff + - Remove glibc235-gcc4-ppc-procfs.diff + - Remove glibc235-execvp-fix.diff + - Delete CSD (Serbian Dinar) hunk from locale-iso4217.diff + - Redo glibc235-dl-execstack.diff + - Remove glibc235-alpha-divqu.diff + - Remove amd64-semtrywait-weakalias.diff + - Remove strfry-segv.diff + - Remove ia64-binutils-libm.diff + - Remove glibc235-leapsecond.diff + - Delete several hunks from glibc235-gcc4-sparc-inline.diff + - Remove hurd-libpthread-indirect-loading.diff + - Remove glibc235-gcc4-hurd.diff + - Delete several hunks from glibc235-gcc4-arm-inline.diff + - Remove glibc235-gcc4-s390-inline.diff + * Add hppa-pie-relocs.diff, thanks to Aurelien Jarno. This + fixes nscd on hppa. (Closes: #350501) + + [ Daniel Jacobowitz ] + * Remove mips-bits-syscall.diff, merged. + + [ GOTO Masanori ] + * Update po/ja.po. + + -- Clint Adams Thu, 9 Feb 2006 21:45:45 -0500 + +glibc (2.3.5-13) unstable; urgency=low + + [ Clint Adams ] + * Acknowledge NMU. (Closes: #342545) + + [ Denis Barbier ] + * debian/rules.d/control.mk: Make sure that debian/control is regenerated. + (Closes: #351704) + + -- Denis Barbier Mon, 6 Feb 2006 22:22:23 +0100 + +glibc (2.3.5-12.1) unstable; urgency=low + + * NMU + * glibc235-hppa-fpu.diff: New, fixes hppa FPU issues. Closes: #342545 + + -- LaMont Jones Wed, 1 Feb 2006 09:47:57 -0700 + +glibc (2.3.5-12) unstable; urgency=low + + * debian/patches/glibc235-nis-netgrp.diff: New file to fix assertion + failures with NIS. (Closes: #322011) + * Switch to quilt to handle Debian patches. + - debian/control.in/main: add Build-Depends: quilt. + - Replace debian/rules.d/dpatch.mk by debian/rules.d/quilt.mk. + - Rename debian/patches/*.dpatch into debian/patches/*.diff. + - Move localedata patches into debian/patches/localedata/ + * debian/patches/localedata/cvs-localedata.diff: Update to latest CVS. + Among other changes: + - locales/mn_MN: Fix date_fmt. (Closes: #328831) + - locales/de_DE: Add transliterations for quoting characters. + (Closes: #235759) + - locales/ss_ZA locales/tn_ZA locales/ve_ZA locales/nso_ZA + locales/ts_ZA: New files. (Closes: #254417) + - locales/km_KH: New file. (Closes: #334762) + - locales/mg_MG: New file. (Closes: #271549) + - locales/sr_CS: New file. (Closes: #254993) + * debian/patches/locale-iso4217.diff: Update to latest CVS. + This includes changes from glibc235-localedata-sr_CS.diff, which + is no more needed. + * debian/patches/locale-iso639.diff: New file. + * debian/patches/locale-ku_TR.diff: New file, to provide a Kurdish + locale needed by d-i. This locale comes from upstream CVS, and has + been updated to the latest patch sent to BZ870. + * debian/patches/localedata/locale-eo_EO.diff: Apply minor updates to + this locale file. Add eo and eo.UTF-8 to SUPPORTED. (Closes: #233308) + * Import collation fixes and enhancements for localedef from + belocs-locales-bin. + * debian/patches/forward-backward-collation.diff: New file. Due to the + fixes in localedef, some bugs in code which was previously never run + did show up. (Closes: #310635) + * debian/patches/locale/locale-print-LANGUAGE.diff: New file, so that + locale displays the LANGUAGE environment variable when called without + argument. + * Add myself to Uploaders. + + -- Denis Barbier Sun, 15 Jan 2006 00:54:16 +0100 + +glibc (2.3.5-11) unstable; urgency=low + + [ Phil Blundell ] + * Apply patch from Colin Watson to add "--keep-existing" option to + locale-gen. (Closes: #298913) + * Also restart exim4 on upgrade. (Closes: #326554) + * debian/debhelper.in/libc.preinst: Clarify wording of message about + detection of services needing to be stopped before upgrade. + + [ GOTO Masanori ] + * debian/po/pt.po: New file, add Portuguese translation. + Patched by Rui Branco . (Closes: #339110) + + [ Clint Adams ] + * Patch from Lars Wirzenius to not rely on bash-like echo + behavior. (Closes: #207391). + * Add allowance for the 2005 leap second. (Closes: #345310) + + -- Clint Adams Sun, 1 Jan 2006 11:29:08 -0500 + +glibc (2.3.5-10) unstable; urgency=low + + [ GOTO Masanori ] + * debian/local/etc_init.d/glibc.sh: Change the last 'exit 0' to + ': exit 0' to not block sourcing. (Closes: #340147) + + [ Phil Blundell ] + * Merge patch from upstream CVS (courtesy Daniel Jacobowitz) to + fix weak alias related build problem on ARM. + * Merge patch from upstream CVS (courtesy Ulrich Drepper) to fix + strfry() crash. (Closes: #343365) + * Merge patch from upstream CVS (courtesy Roland McGrath and Anton + Blanchard) to fix problem with execute permissions on GOT when using + 64kB pages on PowerPC. (Closes: #344105) + * Require binutils 2.16.1cvs20051109-1 to ensure that i386 biarch + linking works properly. + * debian/script.in/kernelcheck.sh: Require kernel >= 2.4.0 on arm to + avoid llseek problem. (Closes: #324795) + * Also restart atd on upgrade. (Closes: #331293) + * Merge patch from upstream CVS (courtesy Ulrich Drepper) to fix + problems with accuracy of tanh and related functions, per request of + Rafael Laboissiere. (Closes: #328504) + * Add "validlocale" program (ex base-config) to locales package, per + request of Joey Hess. (Closes: #344954) + * sysdeps/hppa.mk: Add new /usr/hppa64-linux-gnu/include symlink, per + request of Matthias Klose. (Closes: #326583) + + [ Clint Adams ] + * Steal glibc-235-sparc-datastart.dpatch from Ubuntu. + * Steal ia64 libm symbol patch from Ubuntu. + * Compile with -g2 instead of -g1 on sparc. + + -- Clint Adams Wed, 28 Dec 2005 13:18:56 -0500 + +glibc (2.3.5-9) unstable; urgency=low + + [ Daniel Jacobowitz ] + * Downgrade priority of amd64 libraries on i386. + * Move packages from base to libs. + + [ Clint Adams ] + * Remove sparc64 TLS patch, and disable TLS for sparc64 build + (Closes: #340835, #341514). + * Add patch to fix build failure with __bind and other + socket-related symbols being already defined on + sparc (Closes: #342755). + * Add patch from Anton Blanchard to fix build failure with + __bind and other socket-related symbols being already + defined on powerpc (Closes: #343571). + * Replace amd64 sem_trywait patch from Kurt Roeckx's NMU with + fix from upstream glibc CVS (Closes: #339389). + * Add patch from Anton Blanchard to fix build failures with + "__moddi3" and friends being already defined on i386 + and powerpc (Closes: #339415). + * Bump Standards-Version to 3.6.2 and add myself to Uploaders. + + -- Clint Adams Sat, 17 Dec 2005 10:33:38 -0500 + +glibc (2.3.5-8.1) unstable; urgency=low + + * Non-maintainer upload. + * Rename sem_trywait to __new_sem_trywait in amd64 nptl code + so the alias works properly, and it can be build. + (Closes: #339389) + + -- Kurt Roeckx Sun, 27 Nov 2005 11:22:03 +0100 + +glibc (2.3.5-8) unstable; urgency=low + + * Add missing build dependency on libc6-dev-ppc64 on powerpc. + * Add patch to fix sparc64 TLS build failure, from Aurelien Jarno + (Closes: #335821). + * Also restart saslauthd at upgrades, from Philipp Hug (Closes: #334101). + * Merge .eh_frame terminator fix, by Richard Sandiford (Closes: #334112). + * Merge armeb support, from Lennert Buytenhek (Closes: #335116). + * Add LSB headers to glibc.sh and nscd init scripts, from Petter + Reinholdtsen (Closes: #335308, #335343). + * Remove obsolete mountkernfs, tmpfs, and devpts.sh files from debian/. + * Temporarily set hppa back to gcc 3.4, from Steve Langasek + (Closes: #326581). + * Re-enable libidn (Closes: #181025). + + -- Daniel Jacobowitz Sat, 12 Nov 2005 19:15:29 -0500 + +glibc (2.3.5-7) unstable; urgency=low + + [ GOTO Masanori ] + * debian/script.in/kernelcheck.sh: Drop real-i386 kernel support. + + [ Daniel Jacobowitz ] + * Build 64-bit packages on i386 - based on patches from both Ubuntu + and Andreas Jochens . + - Build depend on a biarch linux-kernel-headers package. + - Build depend on new libc6-dev-amd64 package. + - Conflict with amd64-libs to avoid stale libraries. + - Replace files from amd64-libs-dev. + - Use lib64 for 64-bit libraries on i386. + - Search lib64 for ldconfig. + - Install 64-bit headers in /usr/include/x86_64-linux-gnu. + * Remove obsolete references to NPTL as an add-on. + * Conflict with broken versions of libterm-readline-gnu-perl + (Closes: #326856, #326492). + * Merge makefile patch from Goswin Brederlow + to fail earlier if builds fail + (but omit the bit for make -k check) (Closes: #325460). + * Update debconf dependency to work with cdebconf (Closes: #331838). + * Merge MIPS fix from CVS (Closes: #329043). + * Do not complain about incompatible libraries in /etc/ld.so.conf + (Closes: #310047). + * Update hppa assembly for current CVS binutils. + * Use 8-byte-aligned buffers for doubleword FPU transfers on HPPA + (Closes: #333766). + + -- Daniel Jacobowitz Fri, 14 Oct 2005 14:18:22 -0400 + +glibc (2.3.5-6) unstable; urgency=low + + * GOTO Masanori + + * debian/script.in/kernelcheck.sh: Use sed instead of bash extension. + (Closes: #325373, #325471, #325504, #325511) + + -- GOTO Masanori Mon, 29 Aug 2005 12:40:32 +0900 + +glibc (2.3.5-5) unstable; urgency=low + + * GOTO Masanori + + * debian/debhelper.in/debhelper.mk: Don't expand debug-packages with + DEB_INDEP_REGULAR_PACKAGES. It causes binary-indep is unexpectedly + included. (Closes: #233390, #233391, #233392) + + * Add the correct new line. (Closes: #324450) + - debian/control.in/sparc64: Likewise. + - debian/control: Update. + + * Support Hurd again. (Closes: #324165) + - debian/sysdeps/gnu.mk: Rename to... + - debian/sysdeps/hurd.mk: ... this. + + * debian/local/usr_sbin/locale-gen: Don't break locale-gen when locale-def + warns errors. + + * debian/patches/glibc235-localedata-sr_CS.dpatch: New file, to fix + sr_CS localedef breakage. (Closes: #321580, #322655) + * debian/patches/glibc235-localedata-locales.dpatch: New file, to fix + mn_MN and sid_ET localedef breakage. (Closes: #321634) + + * debian/sysdeps/powerpc.mk: Enable PowerPC NPTL. + (Closes: #246689, #307984) + + * debian/README: Add the description about dropping __ctype_* symbol support + of static linked application/libraries in etch. (Closes: #324526) + + * debian/sysdeps/linux.mk: Check SETNJOBS environment variable to specify + the number of parallel make by users. + + * debian/sysdeps/depflags.pl: Add Conflicts: e2fsprogs (<< 1.35-7) + because new ldd cannot work with old e2fsprogs. (Closes: #324550) + + * debian/patches/glibc235-alpha-divqu.dpatch: New file, to fix alpha + divqu/remqu that does not return the correct result when their dividend + and divisor are the same and 63bit is 1. (Closes: #324455) + + * Hurd requires gcc-3.3 to compile instead of gcc-4.0. Requested by + Michael Banck . + - debian/sysdeps/hurd.mk: Change CC/BUILD_CC to gcc-3.3. + - debian/control.in/main: Build-Depends falls back to gcc-3.3. + - debian/control: Update. + + * Introduce bootstrap kernel version check script. + - debian/debhelper.in/libc.preinst: Move detection script to... + - debian/script.in/kernelcheck.sh: ...this, new file. + - debian/local/etc_init.d/glibc.sh: New file, it includes kernelcheck.sh. + - debian/debhelper.in/libc.postinst: Invoke /etc/init.d/glibc.sh as S01. + - debian/rules.d/debhelper.mk: Add replacing KERNEL_VERSION_CHECK and + EXIT_CHECK for libc.preinst and glibc.sh. + - debian/debhelper.in/libc.dirs: Create etc/init.d. + + * Don't use absolute path name. + - debian/debhelper.in/libc.dirs: Suppress the first slash. + - debian/debhelper.in/libc-pic.dirs: Likewise. + - debian/debhelper.in/nscd.dirs: Likewise. + - debian/debhelper.in/locales.dirs: Likewise. + + * Michael Banck : + - debian/patches/glibc235-gcc4-hurd.dpatch: New file, to build glibc + on Hurd with gcc-4.0. (Closes: #324549) + + -- GOTO Masanori Sun, 21 Aug 2005 12:33:42 +0900 + +glibc (2.3.5-4) unstable; urgency=low + + * The "hppa is important to someone, really - LaMont" release. + + * GOTO Masanori + + * d-i wants to remove libnss-files-udeb and libnss-dns-udeb dependency + from libc-udeb. Suggested by Joey Hess . + (Closes: #322506) + - debian/control.in/libc: Remove libnss-files-udeb libnss-dns-udeb + dependency. + - debian/control: Update. + + * Build-Depends fixes: + - debian/control.in/main: Change gcc-* dependency from | to ,. + Suggested by Andreas Jochens . + - debian/control.in/main: Add gcc-4.0 (>= 4.0.1-5) [hppa], because prior + versions cannot generate sane glibc binaries. + - debian/control: Update. + + * Enable libnss upgrade guard again. + (Closes: #321561, #321712, #321796, #322768, #323560) + - debian/debhelper.in/libc.preinst: Change guard to 2.3.5-1. + - debian/debhelper.in/libc.postinst: Likewise. + - debian/debhelper.in/libc.postinst: Fix to invoke NSS check again. + + * debian/debhelper.in/nscd.dirs: Add /var/db/nscd. + (Closes: #323352, #323487) + + * debian/debhelper.in/locales.prerm: Add purge to remove locale-archive. + (Closes: #321719) + + * debian/patches/00list: Drop glibc234-hppa-remove-mallocdef.dpatch. + It causes unconditional locking problem, because it was already replaced + by Carlos' new patches. Reported by LaMont Jones . + + * Add Depends: lib64gcc1 and provide lib64c-dev for 64bit -dev packages. + Suggested by Matthias Klose . (Closes: #323552) + - debian/control.in/sparc64: Likewise. + - debian/control.in/ppc64: Likewise. + - debian/control.in/s390x: Likewise. + - debian/control: Update. + + * debian/patches/glibc235-dl-execstack.dpatch: New file, to fix execstack + failed to check on kernel <= 2.4.18. (Closes: #321717, #321718, #323409) + + * Roland Stigge : + - debian/debhelper.in/glibc-doc.install: Install HTML documents + correctly. (Closes: #321740) + + -- GOTO Masanori Sat, 6 Aug 2005 06:52:42 +0900 + +glibc (2.3.5-3) unstable; urgency=low + + * The "Keep Debconf5 speed" and the "Welcome back the recent glibc to + unstable" release. + * Glibc bumps up from 2.3.2.ds1 to 2.3.5 on etch. + + * GOTO Masanori + + * Localedata update: + - debian/patches/cvs-localedata.dpatch: New file, to update localedata + to the latest cvs. Reported by Safir Secerovic , + Reviewed by Denis Barbier . (Closes: #312902) + - debian/patches/locale-iso4217.dpatch: New file, to fix localedef + breakage for tr_TR.ISO-8859-9. (Closes: #314855) + + * To make glibc-2.3.5 buidable with gcc-4.0: + - debian/patches/00list: Drop glibc234-hppa-full-nptl-2004-12-20.dpatch + line replaced by the new patches: glibc235-hppa-sysdeps.dpatch and + glibc235-hppa-lt.dpatch. It'll be removed when hppa unstable works + nicely. + - debian/patches/glibc235-gcc4-sparc-inline.dpatch: Update the patch + to compile sparc64. + - debian/patches/glibc235-gcc4-s390-inline.dpatch: New file, fix s390 + compilation breakage by changing static inline to auto inline for + dl-machine.h. + - debian/patches/glibc235-gcc4-alpha-profile.dpatch: New file, fix + alpha compilation breakage by removing strong_alias. + - debian/patches/glibc235-gcc4-hppa-profile.dpatch: New file, fix hppa + compilation breakage by removing strong_alias. + - debian/sysdeps/alpha.mk: Disabled __thread for static linked + executables. + - debian/control.in/main: Add Build-Depends: gcc-3.4 for powerpc and + m68k. + - debian/control: Regenerated. + + * To make glibc-2.3.5 buildable with gcc-3.4: + - debian/sysdeps/m68k.mk: New file, to use gcc-3.4 as CC and BUILD_CC + due to gcc-4.0 ICE. See #319312. + - debian/patches/glibc235-gcc34-m68k-seccomment.dpatch: New file, fix + m68k binutils comment parse error. + + * Introduce RUN_TESTSUITE for disabling make check, taken from Jeff + Bailey : + - debian/rules: Enable RUN_TESTSUITE in default. + - debian/rules.d/build.mk: Check RUN_TESTSUITE before invoking tests. + - debian/sysdeps/hppa.mk: Disable RUN_TESTSUITE because linuxthreads + cannot work correctly. + - debian/sysdeps/alpha.mk: Likewise. + + * Introduce loose locales version dependency to avoid locales version + mismatch for FTBFS architectures, taken from Jeff Bailey + (Closes: #204696, #308824): + - debian/locales-depver: New file, describes minimum locales dependency + version. It's renamed from locales-shlibver because it's not "shlib". + - debian/rules.d/debhelper.mk: Use LOCALES_DEP_VER to generate locales + dependency. + - debian/rules: Include debian/locales-depver. + + * debian/rules.d/build.mk: Add --without-selinux for nscd. It should be + removed after this version ASAP. + + * debian/sysdeps/depflags.pl: Drop Depends: libdb1-compat because it's + until sarge stuff. Suggested by Colin Watson . + (Closes: #318885) + + * debian/debhelper.in/nscd.dirs: New file, add /var/run/nscd dir to + invoke nscd correctly. (Closes: #314892) + + * debian/local/manpages/locale.gen.5: Fix typo, charsets -> charmaps. + (Closes: #312297, #318982) + + * debian/debhelper.in/libc.preinst: Remove dpkg --assert-support-predepends + check like base-passwrd, suggested by Bastian Blank . + (Closes: #316217) + + * debian/patches/locales-supported.dpatch: Don't apply to drop UTF-8@euro + locales from SUPPORTED. (Closes: #274491) + + * debian/debhelper.in/libc.preinst: Fix typo. (Closes: #306136) + * debian/debhelper.in/libc.postinst: Likewise. + + * Michael Banck : + - debian/patches/hurd-enable-ldconfig.dpatch: New file, to build ldconfig + again on Hurd. (Closes: #309489) + - debian/sysdeps/gnu.mk: Hurd-i386 needs --without-tls option to build. + - debian/patches/hurd-libpthread-indirect-loading.dpatch: New file, to + make libpthread load indirectly on Hurd. (Closes: #312488) + - debian/patches/hurd-ioctl-pfinet.dpatch: New file, to support part of + SIOCGIFHWADDR for pfinet on Hurd. (Closes: #295117) + + * Jeff Bailey : + - debian/patches/glibc235-hppa-sysdeps.dpatch: New file, to build hppa + linuxthreads locking problem and sysdeps correctly again. + - debian/patches/glibc235-hppa-lt.dpatch: New file, likewise. + + * Denis Barbier : + - debian/debhelper.in/locales.config: Use LANG=C for locale-dependent + commands. (Closes: #314717) + - debian/debhelper.in/locales.postinst: Likewise. + - debian/debhelper.in/locales.postinst: Fix repeated locale entry + duplication when at least a locale is defined twice in /etc/locale.gen. + (Closes: #271526) + + * Stephen Gildea : + - debian/debhelper.in/nscd.init: Provides a "status" option, fix the exit + status if the script is given an unsupported option. (Closes: #312404) + + * Serge Belyshev : + - debian/patches/glibc235-execvp-fix.dpatch: Fix execvp segv caused by + invalid free pointer. + + * This version fixes some bugs that are already marked as + fixed-in-experimental and explained the reason in this changelog. + (Closes: #144670, #185991, #258647, #276062, #279423, #280030, #298784) + (Closes: #300806, #300842, #304963, #305400, #305662, #305666, #309618) + (Closes: #311793, #313404, #314084, #315347, #315793) + + * This version fixes some bugs that are already confirmed as fixed + (fixed-in-experimental) in the experimental glibc: + - Can compile rpc/xdr.h with gcc-4.0. (Closes: #315198, #320963) + - Support posix_fadvise64 correctly on 2.4 kernel. + (Closes: #312406, #313219) + - Can static link with the recent toolchain changed with TLS/non-TLS + errno definition on amd64 and ia64. + (Closes: #317674, #317946, #318956, #318963, #319115) + - Fix mktime when setting a timezone value to AC_FUNC_MKTIME. + (Closes: #177940) + - Fix libc6-i686 to reexec init. (Closes: #270745) + + * This version fixes some bugs that are marked as fixed-upstream: + - Fix ucontext.h failure with g++-4.0 on ia64. + (Closes: #318429, #320240) + + - Missing icache flushing on PPC caused sometimes segv, and now cache + management is reworked and fixed. (Closes: #146489) + - Fix alpha atan() that gave wrong results for some operands. + (Closes: #210613) + - Fix PPC rint() that gave wrong result for negative arguments in the + rounding toward -inf and +inf mode. (Closes: #216800) + - Fix that the pmaplist frees the freed memory in xdr_pmaplist. + (Closes: #230219) + - Don't export unneeded symbol _fp_hw on s390. (Closes: #247681) + - Set locale correctly for generated threads in static linked binaries. + (Closes: #260221) + - Make g++ compilation with nptl pthread.h by changing initializers. + (Closes: #276309) + - Fix a race condition with pthread_cond_broadcast. (Closes: #276312) + - Fix re_exec() segv that caused on UTF-8 locales. + (Closes: #175163, #237681, #290551, #299137, #310443) + - Implement getcontext on alpha. (Closes: #293653) + - Fix an incorrect value of ceill and floorl on amd64. (Closes: #302458) + - Fix memory leaks in getaddrinfo/freeaddrinfo. (Closes: #304022) + - Fix mips/mipsel incomplete clobbered registers for syscalls. + (Closes: #304426) + - Support working sched_setaffinity on powerpc. (Closes: #311053) + - Support _SC_HOST_NAME_MAX in sysconf. (Closes: #314350) + - Fix pthread_rwlock_wrlock hangs with NPTL on amd64. (Closes: #314408) + + - Check timezone changes for localtime and friends. (Closes: #48184) + - Fix a race condition of sigaction and signal handler. + (Closes: #136990) + - Fix segmentation fault when invoking nscd -d. + (Closes: #156923, 245208) + - Support POSIX style strerror_r implementation. + (Closes: #159298, #169370, #182542, #202209) + - Enable to use short IPv4 address notation again. (Closes: #192091) + - Fix broken pthread_cleanup_push on Alpha. (Closes: #197988) + - Support POSIX message queues. (Closes: #202197, #280137) + - Don't use ?: in bits/mathinline.h. (Closes: #206015, #304500) + - Update Norwegian translation that fixes confusing text. + (Closes: #207266) + - Enable executable again for libc.so.*. (Closes: #215463, #264948) + - Improve putchar and io performance by changes to pthread locking code. + (Closes: #219205) + - Update sys/vm86.h. (Closes: #219476) + - Fix invalid __libc_dlclose() in nsswitch.c. (Closes: #222130) + - Support backtrace on ia64 and x86_64. (Closes: #235876) + - Fix nl_langinfo(ERA) returns NULL, not "". (Closes: #245836) + - Libintl.h is ready for some g++ compilation option. (Closes: #252753) + - Fix pthread_cond_timedwait and mutex hang with cancellation. + (Closes: #253303) + - Fix too long fraction digits handling in strtold(). (Closes: #260377) + - Fix some regexec() segv in UTF-8 locales. (Closes: #261135) + - Fix pthread_cond_timedwait with a outdated timespec destroys the + pthread_cond_t variable. (Closes: #261237) + - Declare EPOLLONESHOT in sys/epoll.h. (Closes: #261541) + - Fix returning invalid pointer when freeing valloc()-ed memory. + (Closes: #262782) + - Replace gcc-3.4 option for ppc64. (Closes: #263959) + - Fix zdump -v segv on ia64. (Closes: #266438) + - Support pthread_create with attributes. (Closes: #266507) + - Change __vector to __iovec for sys/io.h to prevent conflicts with + altivec. (Closes: #267442) + - Fix atan2 infinit loop on amd64. (Closes: #270823) + - Avoid memory leak for some gconv encoding by calling gconv_end. + (Closes: #274390) + - Fix mplayerplug-in crash closed by mozilla. (Closes: #275240) + - Fix invalid memory access of printf when its specifier combines + parameter number specification and floating point values. + (Closes: #277667, #312036) + - Don't touch unrelated bits in __feclearexcept on i386. + (Closes: #279294) + - Don't invoke unneeded cancellation if PTHREAD_CANCEL_DISABLE is set. + (Closes: #281775) + - Fix a race condition between pthread_create and pthread_exit. + (Closes: #282091, #292154) + - Fix for setfacl to handle many files in ntfw64. (Closes: #288710) + - Support large dev_t. (Closes: #289945, #299139) + - Use the correct ifndef __GNUC_PREREQ. (Closes: #315345) + + - Fix the indended first line of ldd output. (Closes: #209145, #276223) + - Fix misleading error message of ldd when kernel version is old. + (Closes: #224665) + - Fix typo of the language name in te_IN. (Closes: #276527) + - Replace old --help message that indicated glibcbug script. + (Closes: #315448) + + - Support IDN. (Closes: #181025) + - Support O_NOATIME. (Closes: #284131, #297010, #298488) + - The first day of a week in Finnish is Monday. (Closes: #288472) + + -- GOTO Masanori Sun, 17 Jul 2005 17:27:30 +0900 + +glibc (2.3.5-2) experimental; urgency=low + + * Debconf5 release. + + * GOTO Masanori + + * Merge glibc-2.3.4 branch to the main trunk for etch development. + + * These dpatches are removed from debian/patches because the similar + patches are already applied in the latest version: + - debian/patches/rtld-vdso-assertion.dpatch + - debian/patches/glibc232-sigsetjmp.dpatch + - debian/patches/hurd-weak-aliases.dpatch + - debian/patches/sched-update.dpatch + - debian/patches/glibc232-pthread-cancellation.dpatch + - debian/patches/glibc232-clock_settime.dpatch + + * The New dpkg-architecture changes: + - debian/rules: Replace DEB_HOST_BUILD_SYSTEM, use DEB_HOST_ARCH_OS. + Reported by Arthur Marsh . + (Closes: #315347, #315793) + - debian/control.in/main: Bump up Build-Depends: dpkg-dev (>= 1.13.5). + - debian/control: Updated. + - debian/debhelper.in/libc.preinst: Replace "dpkg + --print-installation-architecture", use "dpkg --print-architecture". + - debian/debhlper.in/libc.postrm: Likewise. + - debian/debhlper.in/libc.postinst: Likewise. + - debian/sysdeps/depflags.pl: Change checks from i386 to i486. + It also replaces -linux, use -linux-gnu. + + * Default compiler moves from gcc-3.3 to gcc-4.0: + - debian/rules: Use gcc-4.0 instead of gcc-3.3. (Closes: #315198) + - debian/control.in/main: Define Build-Depends: gcc-4.0. + - debian/control: Updated. + - debian/sysdeps/i386.mk: Replace depreciated "-mcpu", use "-mtune". + + * These dpatches are added to make glibc-2.3.5 buidable with gcc-4.0: + - debian/patches/glibc235-gcc4-cvs.dpatch: Fix some bad defintion of + internal for all architectures. + - debian/patches/glibc235-gcc4-elf.dpatch: Remove elf_machine_rel* + definitions for all architectures. + - debian/patches/glibc235-gcc4-jis0208.dpatch: Fix compilation breakage + for all architectures. + - debian/patches/glibc235-gcc4-wcstol_l.dpatch: Fix wcstol_l.c + compilation breakage for all 64bit architectures. + - debian/patches/glibc235-binutils216-ia64.dpatch: Fix _init/_fini was + not defined within procedure with binutils 2.16 for ia64. + - debian/patches/glibc235-gcc4-ia64-profile.dpatch: Fix compilation + breakage by removing strong_alias for ia64. + - debian/patches/glibc235-gcc4-ppc-procfs.dpatch: Fix ppc32 compilation + breakage by removing __uint128_t use. (Closes: #304963) + - debian/patches/glibc235-gcc4-arm-inline.dpatch: Fix arm compilation + breakage by changing static inline to auto inline for dl-machine.h. + - debian/patches/glibc235-gcc4-sparc-inline.dpatch: Fix sparc compilation + breakage by changing static inline to auto inline for dl-machine.h. + - debian/patches/glibc235-gcc4-sparc-mv8.dpatch: Fix obsolete gcc option + to replace newer standard one. + - debian/patches/glibc235-gcc4-mips-inline.dpatch: Fix mips compilation + breakage by changing static inline to auto inline for dl-machine.h. + - debian/patches/glibc235-gcc4-mips-sysdeps.dpatch: Fix mips compilation + breakage by changing large syscall arguments handling. + + * Move /etc/locale.alias to /usr/share/locale/locale.alias. + Don't install locale.alias.5. (Closes: #144670, #185991, #298784) + - debian/local/usr_sbin/locale-gen: Use /usr/share/locale/locale.alias + instead of /etc/locale.alias. + - debian/local/manpages/locale-gen.8: Delete reference to + locale.alias.5. + - debian/local/manpages/locale.gen.5: Likewise. + - debian/debhelper.in/locales.links: Remove file, don't link to /etc. + - debian/debhelper.in/locales.install: Install locale.alias under + /usr/share/locale, not /etc/. + - debian/debhelper.in/locales.manpages: Don't install locale.alias.5 + + * Add documents: + - debian/debhelper.in/libc.docs: Add CONFORMANCE and NAMESPACE. + + * Fix messages to add a patience message. (Closes: #305400) + - debian/local/usr_sbin/locale-gen + + * Move sprof from libc-prof to libc-dev. (Closes: #280030) + - debian/sysdeps/depflags.pl: Add Replaces: libc-dev (<< 2.3.5-2). + - debian/debhelper.in/libc-prof.install: Remove sprof install. + - debian/debhelper.in/libc-dev.install: Install sprof moved from -prof. + - debian/debhelper.in/libc-dev.install.hurd-i386: Likewise. + - debian/debhelper.in/libc-dev.manpages: Add sprof.1 install. + - debian/debhelper.in/libc-prof.manpages: Remove file, don't install + sprof.1. + + * Remove Depends: lib64gcc1 from libc6-sparc64. (Closes: #258647) + - debian/control.in/sparc64: Delete Depends: lib64gcc1. + - debian/control: Likewise. + + * Small change for libc6 upgrade problem. + - debian/debhelper.in/libc.postrm: Add plain messages and clean up. + + * Add conflicts to old initrd-tools for avoiding new glibc 2.3.4/5 ldd + blocks to generate initrd images. Suggested by Goswin von Brederlow + . + - debian/sysdeps/depflags.pl: Add conflicts initrd-tools (<< 0.1.79). + + * Add support PowerPC64, based on patches and suggestions by Bastian Blank + and Jeff Bailey : + - debian/control.in/main: Add Build-Depends: gcc-3.4 [powerpc] because + powerpc porting does not support gcc-4.0 currently. + - debian/control: Updated. + - debian/rules.d/control.mk: Add ppc64. + - debian/sysdeps/powerpc.mk: Added to support ppc64 target. + + * debian/sysdeps/hppa.mk: Add /usr/hppa64-linux-gnu/include symlinks for + dpkg-architecture changes. Reported by Matthias Klose + . (Closes: #313404) + + * A Costa . (Closes: #305662, #305666) + - debian/local/manpages/tzconfig.8: Fixed typo. + - debian/local/manpages/ldconfig.8: Likewise. + + * Clytie Siddall : + - debian/po/vi.po: Add the Vietnamese translation for locales. + (Closes: #309618, 311793) + + * Jens Seidel : + - debian/po/de.po: Fix typo. (Closes: #314084) + + -- GOTO Masanori Thu, 21 Apr 2005 16:52:36 +0900 + +glibc (2.3.5-1) experimental; urgency=low + + * GOTO Masanori + + * New upstream release. + - debian/shlibver: Bump up to 2.3.5-1. + + * Drop patches: + - debian/patches/hurd-malloc.dpatch: Removed, it's already applied in + the upstream source. + + * Merge with 2.3.2.ds1-21, added: + - debian/patches/linuxthreads-sizefix.dpatch: Added. + - debian/po/fi.po: Added. + - debian/patches/glibc23-mips-lazy-eval.dpatch: Added, drop dl-machine.h + because the recent upstream should not need such change. + - debian/patches/glibc232-tls-crashfix.dpatch: Added, remove some parts + that are applied in the recent version. + + * Merge with 2.3.2.ds1-21, changed: + - debian/debhelper.in/libc.preinst: Fix typo, proofreading. + - debian/debhelper.in/libc.preinst: Add export LC_ALL=C. + - debian/patches/00list: Update. + + * Update linuxthreads size fix for not only ia64, but also alpha, + amd64, i386, powerpc, s390, sh and sparc. + - debian/patches/linuxthreads-sizefix.dpatch: Update. + + * Fix more libc6 upgrade problem from old <= 2.3.4-1: + - debian/debhelper.in/libc.postinst: Don't use uname -m, use + dpkg --print-installation-architecture. Hwcappkgs mechanism does not + work on (ex:) install architecture: i386, kernel architecture: amd64. + - debian/debhelper.in/libc.postrm: Likewise. + + * Support libc6-dev NPTL static libraries and headers into + /usr/lib/nptl and /usr/include/nptl. (Closes: #276062, #279423) + - debian/rules.d/build.mk: Add installation code from tmp-nptl to + tmp-libc. + - debian/debhelper.in/libc-dev.install: Add tmp-libc/usr/lib/nptl*. + + -- GOTO Masanori Sun, 10 Apr 2005 14:02:19 +0900 + +glibc (2.3.4-3) experimental; urgency=low + + * GOTO Masanori + + * The complete libc6 installation breakage is fixed when hwcap packages + (libc6-i686 and libc6-sparcv9/sparcv9b) is installed. It introduced + /etc/ld.so.hwcappkgs to track hwcap packages. + - debian/debhelper.in/libc.postinst: Create /etc/ld.so.hwcappkgs if + such file is not existed. Check hwcap packages and decide to keep + /etc/ld.so.nohwcap. Put special ld.so.nohwcap string when the + downgraded version does not support ld.so.hwcappkgs. + - debian/debhelper.in/libc-otherbuild.postinst: When it's configured, + check /etc/ld.so.hwcappkgs and decides to keep /etc/ld.so.nohwcap. + - debian/debhelper.in/libc-otherbuild.postrm: When it's removed, + check /etc/ld.so.hwcappkgs and search other hwcap package's version + consistency. Then it decides to remove /etc/ld.so.nohwcap. + - debian/debhelper.in/libc.postrm: Leave /etc/ld.so.nohwcap if it's + downgrade to hwcappkgs incompatible version. + - debian/rules.d/debhelper.mk: Include "libc-" into OPT string + replacement. + + -- GOTO Masanori Tue, 29 Mar 2005 17:22:25 +0900 + +glibc (2.3.4-2) experimental; urgency=low + + * GOTO Masanori + + * Fix libc6 installation breakage when old libc6 and libc6-i686 was + installed, and it's replaced with a new libc6. This fix is limited + for i686 optimized package, not for sparc multiple opt packages. + (Closes: #300806, #300842) + - debian/debhelper.in/libc.postinst: Add check for the existence of + multiple optimized packages. + - debian/rules.d/debhelper.mk: Add the replace code from CURRENT_VER + to $(DEB_VERSION) for libc.postinst. Install libc-otherbuild.postrm. + - debian/debhelper.in/libc-otherbuild.postrm: Added to remove + unneeded ld.so.nohwcap for single optimized package. + + -- GOTO Masanori Tue, 22 Mar 2005 11:17:32 +0900 + +glibc (2.3.4-1) experimental; urgency=low + + * GOTO Masanori + + * Reflect from glibc-snapshot package 2.3.4-0.3.snapshot20041220.2. + + * Add glibc-libidn package handling for the following files: + - debian/sysdeps/gnu.mk + - debian/sysdeps/linux.mk + - debian/sysdeps/kfreebsd-gnu.mk + - debian/rules + + * Add separated shlibver file: + - debian/rules: Include debian/shlibver. + - debian/shlibver: Bump up shlibver to 2.3.4-1. + + * Delete removed file info/libc-dir-add.info: + - debian/debhelper.in/glibc-doc.install + - debian/rules.d/build.mk + + * These dpatches are added in debian/patches/: + - glibc234-alpha-xstat.dpatch: Fix alpha compilation failure when + kernel headers < 2.6.4 is used. + - glibc234-hppa-linesep.dpatch: Add to fix hppa compilation failure. + - glibc234-hppa-remove-mallocdef.dpatch: Add to + fix hppa compilation breakage until ldcw lock change is introduced. + This patch will be removed when ldcw patch is revised to apply. + - glibc234-m68k-linuxthreads-fPIC.dpatch: Add to fix m68k compilation + warnings to remove linuxthreads o-iterator. + - glibc234-hppa-full-nptl-2004-12-20.dpatch: Remove in-cvs parts, + apply the remained stuff for hppa, except for ldcw lock change. + This file is renamed from 50_glibc232-hppa-full-nptl-2003-10-22.dpatch. + + * These dpatches are modified/replaced with the newer patches in + debian/patches/: + - glibc-i686-timing.dpatch: Modify makefile. Fix i686 library breakage. + - glibc23-cmov.dpatch: Drop additional TLS parts. + - glibc23-sse-oldkernel.dpatch: Regenerated. + - hppa-drop-utimes.dpatch: Regenerated. + - ldconfig.dpatch: The previous patch seems being wrong because it + supresses all warnings about error. The new patch I introduced should + not warn during debootstrap, and works finely during normal operation. + - ldd.dpatch: Regenerated. + - ldso-disable-hwcap.dpatch: Regenerated. + - locale-no_NO.dpatch: Drop locale.alias part which is already applied. + - makeconfig.dpatch: Regenerated. + - 50_glibc232-arm-dwarf2-buildfix.dpatch: Modify to fix sjlj compilation. + - 50_glibc232-m68k-dwarf2-buildfix.dpatch: Likewise. + + * These dpatches are currently suspended to apply (those entries in + 00list are commented out) with various reasons, they need update or + confirmation: + - 30_glibc232-base.dpatch: If this patch is needed, the another + binutils related problem should be occured. It's disabled for a + while, then remove iff no problem is reported. + - alpha-pic.dpatch: #175511 said the upstream should have another + different fix. After confirmation, it should be removed. + - arm-output-format.dpatch: I believe the recent arm glibc should work + without this patch. If arm still has problem, then enable it. + - glibc232-globfree-clear.dpatch: The latest upstream has gl_pathv=NULL + part, bug gl_pathc=0 part. I think the current code is harmless. + It needs confirmation to Jeff Licquia. + - translation-fr.dpatch: The upstream rejects this wishlist bug. After + confirmation, it'll be removed. + - mips-asm-unistd.dpatch: I need to look at the result of the current cvs + unistd.h. + - hurd-enable-ldconfig.dpatch: Disabled currently. + + * These dpatches are currently applied, but it may be removed from + 00list as until sarge stuff: + - libgcc-compat-all.dpatch: It'll be removed in future. + - libgcc-compat-other.dpatch: Likewise. + + * These dpatches are currently suspended to apply from 00list because + we plan to be removed after sarge release: + - glibc23-ctype-compat.dpatch: Until sarge stuff. + - glibc23-errno-hack.dpatch: Until sarge stuff. + - glibc23-errno.dpatch: This patch should not be considered permanent; + it may be one of until sarge stuff. + - glibc23-function-compat.dpatch: Until sarge stuff. + - locales-supported.dpatch: Debian specific, until sarge stuff. + + * This dpatch is not used currently: + - 10_cvs.dpatch + + * These dpatches are removed from debian/patches/ because they are already + in upstream cvs: + - 11_cvs_locales.dpatch + - 11_shlib-lds.dpatch + - 51_glibc232-hppa-dist.dpatch + - 51_glibc232-hppa-nopltrel.dpatch + - 51_glibc232-hppa-profiling.dpatch + - 52_glibc233-hppa-feupdateenv.dpatch + - 90_glibc232-statvfs.dpatch + - 90_glibc232-timezones.dpatch + - alpha-crti.dpatch + - alpha-rtsigaction-fix.dpatch + - fno-unit-at-a-time.dpatch + - glibc23-dlclose-l_opencount.dpatch + - glibc23-libio-compat.dpatch + - glibc23-powerpc-sigcontext.dpatch + - glibc23-sparc-pread64.dpatch + - glibc232-catchsegv-insecure-temp.dpatch + - glibc232-hppa-unwindinfo.dpatch + - glibc232-ia64-unwindinfo.dpatch + - glibc232-iconv-ucs2-unalign.dpatch + - glibc232-mips-dl-machine.dpatch + - glibc232-misc-syslog.dpatch + - glibc232-nptl-posix-timer.dpatch + - glibc232-ppc32-nanosecond.dpatch + - glibc232-remove-vsyscall.dpatch + - glibc232-sparc64-softfp.dpatch + - glibcbug.dpatch + - hppa-syscall.dpatch + - hurd-cleanup.dpatch + - hurd-exit-attr-hidden.dpatch + - hurd-i386-hwcap.dpatch + - hurd-libc-lock.dpatch + - hurd-utmp-file.dpatch + - locale-byn_ER.dpatch + - locale-et_EE.dpatch + - locale-ro_RO.dpatch + - locale-strfmon.dpatch + - mips-sgidefs.dpatch + - nptl-io-locking.dpatch + - nptl-page-align.dpatch + - nptl-pthread-c++.dpatch + - nptl-pthread-create-attr.dpatch + - nptl-pthread-once.dpatch + - pthread-cleanup.dpatch + - s390-backtrace.dpatch + - s390-pthread-fpic.dpatch + - syslog-locale.dpatch + + * Hurd update: + - debian/patches/hurd-string.dpatch: Removed, it's already in cvs. + - debian/patches/00list.hurd-i386: Removed. + - debian/patches/hurd-malloc.dpatch: Add to fix Hurd build fix, patch + from Michael Banck . + + -- GOTO Masanori Fri, 18 Mar 2005 09:41:49 +0900 + +glibc (2.3.2.ds1-22) unstable; urgency=medium + + * Daniel Jacobowitz + + - debian/patches/rtld-vdso-assertion.dpatch: Fix an assertion failure + running /lib/libc.so.6. + - debian/rules.d/debhelper.mk: Mark runnable libraries +x again. + + -- Daniel Jacobowitz Tue, 10 May 2005 15:11:53 -0400 + +glibc (2.3.2.ds1-21) unstable; urgency=high + + * GOTO Masanori + + - debian/patches/linuxthreads-sizefix.dpatch: Fix ia64 TLS_PRE_TCB_SIZE + alignment where TLS_DTV_AT_TP is defined between linuxthreads and nptl. + It breaks evolution on ia64 linuxthreads ld.so + nptl environment. + (Closes: #292673) + - debian/patches/glibc232-sigsetjmp.dpatch: Fix gcc-4.0 compilation + breakage on amd64. (Closes: #295457) + - debian/debhelper.in/libc.manpages: Add tzconfig.8. Reported by Matthijs + Mohlmann . (Closes: #182981) + - debian/patches/90_glibc232-timezones.dpatch: Update to tzdata2005h. + - debian/patches/hurd-weak-aliases.dpatch: Add to fix undefined references + to build putty on Hurd, patched by Michael Banck . + (Closes: #295118) + - debian/debhelper.in/libc.preinst: Fix typo, proofreading. + (Closes: #294816, #303478) + - debian/rules: Bump up shlib_dep_ver 2.3.2.ds1-21. It's required by + adding GLIBC_2.3.4 symbol. + + - Bastian Blank : + - debian/patches/sched-update.dpatch: Update sched_[gs]et_affinity to + new interface and library version. Add GLIBC_2.3.4 versioned symbol + for new interface. (Closes: #297769) + - Jeff Bailey : + - debian/patches/glibc232-tls-crashfix.dpatch: Fix tls assertion that + crashes xmms/nvidia. (Closes: #219352) + - debian/patches/glibc232-pthread-cancellation.dpatch: Fix pthread + cancellation bug that causes JVM lockups. (Closes: #300943) + - Denis Barbier : + - debian/debhelper.in/libc.preinst: Add export LC_ALL=C like + libc.postinst, it corrects some locale dependent behavior, + especially for `tr'. (Closes: #304257) + - Lars Wirzenius : + - debian/local/manpages/iconv.1: Escape hyphens for Unicode + environments. (Closes: #292013) + - Emilian Nowak : + - debian/po/pl.po: Add Polish debconf translation. (Closes: #294444) + - Matti Polla : + - debian/po/fi.po: Add Finnish debconf translation. (Closes: #303816) + - Khalid Aziz : + - debian/patches/glibc232-clock_settime.dpatch: Fix clock_settime + always fails with EINVAL. (Closes: #304668) + - Thiemo Seufer : + - debian/patches/glibc23-mips-lazy-eval.dpatch: Workaround fix for + broken symbol resolving of lazy evaluation stubs on mips/mipsel, + that causes fakeroot breakage. (Closes: #265678, #264920) + + -- GOTO Masanori Mon, 14 Feb 2005 09:26:26 +0900 + +glibc (2.3.2.ds1-20) unstable; urgency=high + + * GOTO Masanori + + - debian/patches/hppa-drop-utimes.dpatch: Fix sudo breakage because + system call utimes() is not defined on hppa. Patched by Randolph Chung + . (Closes: #284449) + + - Fix ia64 unwind FTBFS. Patched by Matthias Klose : + - debian/patches/glibc232-ia64-unwindinfo.dpatch: Modify Makeconfig + which unconditionally set the libunwind macro to -lunwind, until the + it's safe again to regenerate the configure script, on advice of + Jeff Bailey. (Closes: #284563) + - debian/control.in/main: Tighten build dependency on ia64 to + gcc-3.3_3.3.5-5. + - debian/control: Likewise. + + - debian/sysdeps/amd64.mk: Add /lib64 and /usr/lib64 symlinks which are + provided by glibc instead of base-files for amd64. Requested by Goswin + Brederlow . (Closes: #259302) + - debian/rules.d/debhelper.mk: Replace from extra_pkg_install to + extra_debhelper_pkg_install rule which are used for debhelper.mk only. + + - debian/patches/librt-mips.dpatch: Update to provide clock_{set,get}time + with versioned symbol both GLIBC_2.0 and GLIBC_2.2. This patch should + be applied until sarge+1 will be released. + + - debian/local/manpages/locale.1: Add the description about + /usr/share/i18n/SUPPORTED. Requested by Guillermo S. Romero + . (Closes: #284137) + + -- GOTO Masanori Wed, 15 Dec 2004 19:44:47 +0900 + +glibc (2.3.2.ds1-19) unstable; urgency=high + + * GOTO Masanori + + - debian/local/manpages/gencat.1: Use \fR instead of \fT for bold + font, and use .TP instead of .PP for option usage. Patched by + Lars Wirzenius . (Closes: #279685) + - debian/local/manpages/iconvconfig.8: Likewise + fix typo. + - debian/local/manpages/mtrace.1: Likewise. + - debian/local/manpages/locale.1: Add "SEE ALSO" to the end of the + manual. (Closes: #282128) + + - debian/sysdeps/linux.mk: Drop -fomit-frame-pointer from compiling + option to build NPTL packages in order to get valid backtrace. + -D__USE_STRING_INLINES is also dropped to consider about backtraces. + Requested by David Mosberger . + - debian/sysdeps/amd64.mk: Likewise. + - debian/sysdeps/i386.mk: Likewise. + - debian/sysdeps/s390.mk: Likewise. + - debian/sysdeps/sparc.mk: Likewise. + + - debian/patches/glibc232-hppa-unwindinfo.dpatch: Add for unwind + information for hppa plt fixup routine. Patched by + Randolph Chung . (Closes: #281993) + - debian/patches/glibc232-ia64-unwindinfo.dpatch: Add to work + ia64 unwind info and libunwind properly. Requested by David Mosberger + . (Closes: #278837) + + - debian/patches/glibc232-catchsegv-insecure-temp.dpatch: Add fix + CAN-2004-0968: catchsegv creates insecure temporary file. + (Closes: #278278) + - debian/debhelper.in/libc.install: Remove glibcbug to fix CAN-2004-0968, + and it's meaningless to include nowadays. (Closes: #205600) + - debian/debhelper.in/libc.manpages: Remove glibcbug.1 from manpage. + - debian/patches/glibcbug.dpatch: Add comment to be removed. + + - debian/make-cvs-patch.sh: Change like make-cvs-locales-patch.sh. + + - debian/patches/s390-pthread-fpic.dpatch: Add to fix lam build failure. + It changes pthread_atfork in libpthread_nonshared.a is built with + -fPIC, not -fpic, that is already applied in libc_nonshared.a. + (Closes: #280445) + + - debian/control.in/libc: Add gcc | c-compiler to Recommends of libc-dev. + This change avoids that aptitude tries to install various compiler + packages if only c-compiler is specified. (Closes: #283668) + - debian/control.in/main: Add Build-Depends: gcc-3.3 (>= 1:3.3.5-3) [ia64] + | gcc-3.4 (>= 3.4.3-2) [ia64] because ia64 should be built with gcc + which supports libunwind. Requested by Matthias Klose + . + - debian/control: Update. + + - debian/patches/nptl-pthread-c++.dpatch: Add to disable using C99 + designators for nptl pthread.h to fix C++ breakage. Patched by + Andreas Jochens and Matthias Klose + . (Closes: #275997, #283461) + + -- GOTO Masanori Sat, 6 Nov 2004 19:04:26 +0900 + +glibc (2.3.2.ds1-18) unstable; urgency=high + + * GOTO Masanori + + - debian/patches/glibc232-sparc64-softfp.dpatch: Add to fix + glibc build breakage on sparc with binutils 2.15. It's caused by + the register misusage, that was allowed by the previous binutils. + (Closes: #266598) + - debian/debhelper.in/libc.postinst: Fix to execute NSS services + correctly when file-rc is used. (Closes: #275403) + + - debian/patches/90_glibc232-timezones.dpatch: Update to tzdata2004e. + + - debian/debhelper.in/locales.prerm: Add to fix warning not to remove + /usr/lib/locale/locale-archive. (Closes: #264020) + - debian/debhelper.in/locales.postrm: Add to remove /etc/locale.gen + when purge is specified. + + -- GOTO Masanori Tue, 5 Oct 2004 09:32:01 +0900 + +glibc (2.3.2.ds1-17) unstable; urgency=high + + * GOTO Masanori + + - debian/sysdeps/depflags.pl: Fix typo, from "kerberos4th-dev" to + "kerberos4kth-dev". (Closes: #266637) + - debian/patches/00list: Add locale-byn_ER.dpatch that was missing + when I fixed. (Closes: #270998) + + - debian/patches/glibc23-dlclose-l_opencount.dpatch: Fix reference + counter in dl that does not sometimes decrement correctly. + (Closes: #233301, #259211) + - debian/patches/glibc232-globfree-clear.dpatch: Workaround and + to make sure that fix to enforce clear gl_pathc and gl_pathv in + globfree() for sarge to conform LFS test, requested by Jeff Licquia. + (Closes: #264884) + + - debian/local/manpages/tzselect.1: Fix typo. (Closes: #269747) + + - debian/debhelper.in/libc.preinst: Don't install glibc when kernel + is not 2.6 on amd64. + - debian/sysdeps/amd64.mk: Patch from Andreas Jochens: + - Drop the 'nptl' pass from GLIBC_PASSES. + - Use 'nptl' instead of 'linuxthreads' in the 'libc' pass (this + requires kernel >= 2.6.0, but 2.4 is not supported by the amd64 + port anyway). + + -- GOTO Masanori Thu, 19 Aug 2004 12:39:35 +0900 + +glibc (2.3.2.ds1-16) unstable; urgency=high + + * GOTO Masanori + + - debian/FAQ: Add note about errno + NPTL workaround. + (Closes: #261035) + - debian/patches/glibc232-mips-dl-machine.dpatch: Fix mips/mipsel + compilation breakage with the recent binutils. (Closes: #262646) + - debian/patches/glibc232-m68k-reloc.dpatch: Fix m68k compilation + breakage with the recent binutils. (Closes: #263601) + + * Jeff Bailey + + - debian/debhelper.in/libc-dev.install.hurd-i386: Don't install + getconf. + + -- GOTO Masanori Mon, 2 Aug 2004 11:53:54 +0900 + +glibc (2.3.2.ds1-15) unstable; urgency=high + + * Jeff Bailey + + - debian/sysdeps/depflags.pl: Replace ${libc}, not libc6. + (Closes: #262669) + + - Marking urgency as high, last upload should have been marked + this way for RC bug fix. + + -- Jeff Bailey Sun, 1 Aug 2004 08:50:13 -0400 + +glibc (2.3.2.ds1-14) unstable; urgency=low + + * GOTO Masanori + + - debian/patches/glibc232-iconv-ucs2-unalign.dpatch: Add to fix + iconv unalignment access with UCS-2BE/UCS-2LE on some architectures. + (Closes: #234691) + - debian/patches/locale-byn_ER.dpatch: Add to fix byn_ER localedef + breakage. Patched by Denis Barbier . + (Closes: #246270, #257658) + - debian/patches/locales-supported.dpatch: Add no_NO.ISO-8859-1 into + SUPPORTED. (Closes: #246170) + - debian/patches/glibc232-nptl-posix-timer.dpatch: Fix posix timer + SIGEV_THREAD notification is broken. (Closes: #259878) + - debian/patches/glibc232-remove-vsyscall.dpatch: Remove __ASSUME_VSYSCALL + to fix the system startup failure on the machine using PAX. + (Closes: #245563) + - debian/patches/90_glibc232-timezones.dpatch: Updated to tzcode2004b + and tzdata2004b. + - debian/patches/locale-eu_FR.dpatch: Add eu_FR and eu_FR@euro. + Patched by Christian Perrier . (Closes: #257840) + - debian/patches/locale-sr_CS.dpatch: Add sr_CS and sr_CS@cyrillic. + Patched by Christian Perrier . But this patch is + conflicted to sr_YU things - it's disabled for a while. + + - debian/local/etc_init.d/nscd: Rewritten the whole script to make + use of the initscript's method. Patched by Thomas Hood + . + (Closes: #229273, #229484, #253119, #252284, #222953) + + - debian/local/manpages/iconv.1: Add small description for `-c' and + so on. (Closes: #189958) + - debian/local/manpages/rpcgen.1: Add -M option description. + (Closes: #193467) + - debian/po/de.po: Updated. Patched by Helge Kreutzmann + . (Closes: #251732) + + - debian/debhelper.in/libc.postinst: Add apache-ssl and apache-perl to + restart script. Suggested by Daniel Jacobowitz . + (Closes: #208997) + - debian/debhelper.in/libc.postinst: Add vsftpd to restart script. + Suggested by Jeff Bailey . (Closes: #213535) + - debian/debhelper.in/libc.postinst: Add lpr-ppd. Change init script + name from lpr, lpr-ppd to lpd, lpd-ppd. (Closes: #205084) + - debian/debhelper.in/libc.postinst: Fix package detection failure when + uninstalled package is encountered during NSS upgrade. + (Closes: #193278) + - debian/debhelper.in/libc.postinst: Add export LANG=C to work scripts + correctly even if user sets locale environment variable. + - debian/debhelper.in/libc.postinst: Change sleep time from 1 to 2. + It's work-around fix, actual fix is start-stop-daemon --stop should + check the process termination. See: #211784. + + - debian/local/usr_sbin/tzconfig: Fix typo: old_timezone vs oldtimezone. + Reported by Kai Henningsen . (Closes: #213159) + + - debian/control.in/libc-dbg: Add Provides: libc-dbg for -dbg package. + (Closes: #219145) + - debian/control.in/libc, debian/control: likewise. + + - /usr/bin/getconf and getconf.1 are moved from libc-dev to libc. + (Closes: #239170) + - debian/debhelper.in/libc-udeb.install: Add libutil* and libcrypt* + to -udeb. (Closes: #258956) + + - Put amd64 port from Andreas Jochens. + - debian/control: Updated. + - debian/control.in: Modify Build-Depends: gcc-3.3 | gcc-3.4. + glibc can build at least gcc-3.3 and later. And this will make it + possible to build glibc with gcc-3.4 when gcc-3.4 becomes the default + on amd64 without changing glibc again. + - debian/sysdeps/amd64.mk: Use workaround -g0 option when gcc-3.4 is + used, because gcc-3.4 on amd64 with -g0 + nested functions are broken: + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=260710 + + * Andreas Jochens + + - debian/rules.d/control.mk: Add amd64 at the appropriate places. + - Add debian/patches/amd64-lib.dpatch to disable the biarch lib64 dir on + amd64 and enable this patch in debian/patches/00list. (Closes: #246547) + - Add a new file debian/sysdeps/amd64.mk with GLIBC_PASSES += nptl + (Closes: #248192) + - debian/sysdeps/amd64.mk: Use gcc instead of gcc-3.3 on amd64. + - debian/patches/fno-unit-at-a-time.dpatch: Add -fno-unit-at-a-time + test to configure for amd64 + gcc-3.4. (Closes: #261082) + + * Jeff Bailey + + - debian/patches/syslog-locale.dpatch: Include patch from Jakub + Jelinek to make sure syslogging happens in the C locale. + Thanks to pere for catching this. (Closes: #161340, #158651) + + - debian/patches/hurd-string.dpatch: New file + - debian/patches/00list.hurd-i386: Only load hurd-string on hurd-i386. + + -- GOTO Masanori Mon, 31 May 2004 23:43:29 +0900 + +glibc (2.3.2.ds1-13) unstable; urgency=low + + * Jeff Bailey + + - debian/control.in/main: Change to new email address. + - debian/debhelper.in/libc-dev.install.hurd-i386: Add missing files. + Thanks to Michael Banck (Closes: #246355) + - debian/sysdeps/gnu.mk: Stub out kernel_check. + Thanks to Michael Banck + + * GOTO Masanori + + - debian/debhelper.in/libc.preinst: Fixed to work when kernel version is + x.y.zFOOz pattern. (Closes: #245643) + - debian/patches/locale-ro_RO.dpatch: Fix Romania can't be built. + (Closes: #245657) + - debian/local/manpages/locale.1: Fix typo: LOC_PATH -> LOCPATH. + (Closes: #246557) + - debian/rules: Fix build correctly when we execute "debian/rules binary". + Patched by Jurij Smakov . (Closes: #247241) + - debian/patches/glibc232-misc-syslog.dpatch: Fix syslog segv under + memory shortage. (Closes: #249559) + - debian/patches/s390-backtrace.dpatch: Fix 900 test failures in the + libjava testsuite in gcc-3.4 on s390. (Closes: #243394) + - debian/sysdeps/linux.mk: Fix build failure when kernel headers directory + in /usr/src has symlink asm direcotry. Patched by Wolfram Gloger + . (Closes: #249408) + + - debian/debhelper.in/libc-udeb.install: Add libnss_files.so*, + - debian/libnss-dns-udeb, libnss-dns-files: Update description. + - debian/control: Update. + + * Colin Watson + + - debian/rules: Add libnss-dns-udeb and libnss-files-udeb. + (Closes: #247430) + - debian/.cvsignore: Likewise. + - debian/control.in/libc: libc-udeb depends on libnss-dns-udeb and + libnss-files-udeb. + - debian/debhelper.in/libc-udeb.install: Remove libnss_dns and libnss_files. + - debian/rules.d/control.mk: Likewise. + - debian/control.in/libnss-dns-udeb: Update description. + + -- GOTO Masanori Wed, 26 May 2004 00:18:06 +0900 + +glibc (2.3.2.ds1-12) unstable; urgency=low + + * GOTO Masanori + + - debian/local/etc_init.d/mountkernfs: Fix typo. (Closes: #229340) + - debian/local/etc_init.d/mountkernfs: Fix error if the kernel does not + set CONFIG_TMPFS on 2.4. (Closes: #230758) + - debian/local/etc_init.d/mountkernfs: Check each mount directory is + actually directory or not. (Closes: #234813) + - debian/local/etc_init.d/mountkernfs: remove "set -e". + - debian/debhelper.in/libc.postinst: use invoke-rc.d to invoke + mountkernfs when it's available, suggested by Junichi Uekawa + . (Closes: #230008) + + - debian/debhelper.in/libc.install: drop installing three files: + debian/local/etc_init.d/mountkernfs, debian/local/etc_default/devpts, + and debian/local/etc_default/tmpfs. Because initscripts now provides + those files. (Closes: #238963) + - debian/debhelper.in/libc.preinst: devpts.sh should be actually replaced to + mountkernfs. But by now mounting filesystems should be done with + mountvirtfs in initscripts. Initscripts needs to remove devpts.sh and + mountkernfs. + - debian/debhelper.in/libc.postinst: likewise. + - debian/debhelper.in/libc.postrm: likewise. + + - debian/debhelper.in/libc.preinst: Fix kernel version detection correctly. + Patched by Goswin von Brederlow . + (Closes: #241395). + + - debian/rules.d/debhelper.mk: Fix build failure in strip processing. + + - debian/patches/51_glibc232-hppa-nopltrel.dpatch: Do not process + lezy relocations if no DT_PLTREL is present. Reported by + Richard Hirst and Patched by + Carlos O'Donell . (Closes: #228375) + - debian/patches/glibc232-ppc32-nanosecond.dpatch: Fix ppc32 stat + reports bogus nanosecond data. Patched by Anton Blanchard + . (Closes: #231358) + - debian/patches/nptl-io-locking.dpatch: Add stdio performance + improvement for nptl. Dpatched by Michael Clark + . (Closes: #238213) + - debian/patches/52_glibc233-hppa-feupdateenv.dpatch: + The newest compiler in unstable has caught a bug in the feupdateenv + implementation for hppa. The code should not be using the constant input + argument as temporary scratch. Patched by Carlos O'Donell + . + - debian/patches/localedef-fix-trampoline.dpatch: Fix localedef segv + when run under exec-shield/PaX and so on due to trampoline issue. + Dpatched by James Troup . + (Closes: #231438, #198099, #215624, #215821, #221740) + - debian/patches/alpha-rtsigaction-fix.dpatch: Fix alpha sigaction with + SA_SIGINFO (rt_sigaction), keep program execution after exiting signal + handler, with correctly calling rt_sigreturn. (Closes: #221969) + - debian/patches/translation-fr.dpatch: Include fr.po translation patch. + Patched by Petter Reinholdtsen . Related bug #243183 + is currently suspended. + - debian/patches/locale-et_EE.dpatch: Fix et_EE locale incorrect charset. + Patched by Petter Reinholdtsen . (Closes: #208238) + + - debian/debhelper.in/libc.postinst: add rsync to NSS checking code. + (Closes: #229196) + - debian/debhelper.in/libc.preinst: add kernel version check code if + real i386 is used. (Closes: #231538) + + - debian/po/da.po: added. Patched by Morten Brix Pedersen . + (Closes: #230669) + - debian/po/cs.po: added. Patched by Miroslav Kure + . (Closes: #230969) + - debian/po/el.po: added. Patched by Konstantinos Margaritis + . (Closes: #230997) + - debian/po/ru.po: added. Patched by Ilgiz Kalmetev + . (Closes: #221657) + - debian/po/uk.po: added. Patched by Eugeniy Meshcheryakov + . (Closes: #235850) + - debian/po/zh_CN.po: added. Patched by Hiei Xu + and Carlos Z.F. Liu . (Closes: #231907) + - debian/po/tr.po: added. Patched by Ercin EKER + and Recai Oktas . (Closes: #240654) + + - debian/debhelper.in/glibc-doc.links: add manpages links for sem_*. + + - debian/patches/template.dpatch: split Author to Dpatch author and + Patch author. + + - debian/sysdeps/hppa.mk: added to create symlink + /usr/hppa64-linux/include to /usr/include for hppa64. (Closes: #239020) + - debian/sysdeps/depflags.pl: added conflicts to gcc-3.3-hppa64 and + gcc-3.4-hppa64. + - debian/sysdeps/depflags.pl: Add replaces: kerberos4th-dev (<< 1.2.2-10) + to avoid conflicting /usr/include/ifaddrs.h. (Closes: #234347) + + - debian/control.in/opt: made libc6-i686 description easier to + understand from users' requests. (Closes: #218396, #239555, #242546) + + - debian/local/usr_sbin/locale-gen: Add code to write an error if the + line doesn't satisfy the format. Patched by Petter Reinholdtsen + . (Closes: #207199) + + * Jeff Bailey + + - debian/debhelper.in/libc.preinst: Don't use awk except in + upgrade mode. (Closes: #229461) + Also make sure that it doesn't trip on words being added to the + upstream revision number. Thanks to James Troup for + mentioning this. + Thanks to Bastian Blank for the fix. + - debian/debhelper.in/libc.postinst: Respect DEBIAN_FRONTEND=noninteractive + for setting timezone. Default to UTC. (Closes: #196382) + + - debian/debhelper.in/libc.docs: Add TODO. + + Hopefully the last round of hurd-i386 fixes: + + - debian/debhelper.in/libc-dev.install.hurd-i386: New file. + - debian/rules.d/debhelper.mk: Deal with the arch-specific install files. + - debian/patches/hurd-cleanup.dpatch: New file for dl-procinfo.c and + missing include in malloc.c (Both in upstream) + - debian/patches/00list: Update + + Locales surgery, with many thanks to Petter Reinholdtsen: + + - debian/patches/glibc22-eo_EO.dpatch: Rename to ... + - debian/patches/locale-eo_EO.dpatch: ... this. + - debian/patches/11_cvs_locales.dpatch: New generated file from CVS. + - debian/patches/locales-stuff.dpatch: Remove bogs code and split + into .. + - debian/patches/locale-de_CH.dpatch: ... this and ... + - debian/patches/locale-ru_RU.dpatch: this. + - debian/patches/locale-no_NO.dpatch: New file to keep no_NO around + during the transition to nb_NO. + - debian/patches/locale-strfmon.dpatch: New file from CVS needed + for new locales formatting. (Closes: #226047) + - debian/patches/00list: Update. + + - debian/patches/glibc22-locales.dpatch: Obsoleted by CVS update. + - debian/patches/locale-es_AR.dpatch: Add template header. + - debian/patches/locales-supported.dpatch: Remove entries provided + by CVS. Add no_NO for transition. + + (Closes: #211607, #215466, #218424) + + - debian/patches/template.dpatch: Tweak to make it easier to + generate patches. + - debian/make-cvs-locales-patch.sh: New file. + + * Daniel Jacobowitz + + - Add separate-debug-info files to libc6-dbg to allow backtraces through + optimized libraries (Closes: #227097, #219459) + - debian/control.in/main: Bump build dependencies for binutils and + debhelper. + - debian/control.in/libc-dbg: Update package description. + - debian/rules: Set NOSTRIP after loading sysdeps rules files, so that + it actually gets set. + - debian/rules.d/debhelper.mk: Generate separate debug info libraries. + Touch stamp file for libc-udeb. + - debian/sysdeps/i386.mk, debian/sysdeps/linux.mk, s390x_extra_cflags, + debian/sysdeps/sparc.mk: Use -g1 instead of -g0 so that we get + unwind information. + - debian/wrapper/objcopy: Wrapper script to remove excess debug + info, for now. + - Remove tabs from debian/changelog, since they confuse + dpkg-parsechangelog. + - Add missing quotes in debhelper.mk NOSTRIP test. + - Don't add libc-dir-add.info to info after all + (Closes: #222171, #230765). + (debhelper.in/glibc-doc.info, debhelper.in/glibc-doc.install) + + * Ben Collins + + - Added and enabled a sparc v9b target (UltraSPARC III). + + * Bastian Blank + + - Add libnss-dns-udeb package. + - Rename udebs to match the real packages. (Closes: #183139) + - Fix provides of udebs. (Closes: #183143) + - Use debhelper udeb knowledge. + + -- GOTO Masanori Wed, 21 Apr 2004 00:40:55 +0900 + +glibc (2.3.2.ds1-11) unstable; urgency=low + + * Jeff Bailey + + - debian/control.in/s390x: Remove -dev dependency on gcc-3.2. + - debian/sysdeps/s390.mk: Add missing ) + - debian/rules: Fixes for cross-compiling + - debian/patches/90_glibc233_tcsetaddr.dpatch: LSB Fix for tcgetattr + (Closes: #218131) + - debian/sysdeps/depflags.pl: Update wine conflicts. + (Closes: #218717) + - debian/sysdeps/depflags.pl: Update cyrus-imapd conflicts. + (Closes: #220983) + - debian/sysdeps/sparc.mk: Force -m32 when building sparcv9 + - debian/patches/glibc-sparc-timing.dpatch: New file to let sparcv9 works. + (Closes: #222886) + - debian/patches/nptl-page-align.dpatch: New file to fix page + alignment troubles. (Closes: #223241, #225466) + + - debian/patches/hurd-exit-attr-hidden.dpatch: New file to fix + compilation on gcc-3.3 and hurd-i386 + - debian/patches/hurd-i386-hwcap.dpatch: New file to give the needed + i386 HWCAP defines on hurd-i386 + - debian/patches/hurd-libc-lock.dpatch: New file to fix FTBFS on hurd-i386 + - debian/patches/hurd-utmp-file.dpatch: New file to fix FTBFS on + non-Linux. + - debian/patches/glibc23-cmov.dpatch: Update for moved i386 HWCAP + definitions. + - debian/patches/glibc23-sse-oldkernel.dpatch: Updated for + severelly munged sysdeps/unix/sysv/linux/i386/dl-procinfo.h + Thanks to Barry deFreese for helping get these in order. + + - debian/patches/00list: Update + + - debian/debhelper.in/libc.preinst: For Linux kernels of the form + x.y.z-n, fail the install if z >= 255. (Closes: #226688) + Thanks to James Morrison and Kevin Everets for help on the wording + of the error message. + + - debian/sysdeps/sparc.mk: Revert Ben's change of '-mcpu=v8 + -mtune=ultrasparc'. This was misleading because it was always + overridden by the glibc Makefile and had no effect. + + * Phil Blundell + + - Require linux-kernel-headers >= 2.5.999-test7-bk-9 to avoid module- + related problems on ARM. + + * Ben Collins + + - Bump sparcv9 back to -mcpu=v8 -mtune=ultrasparc. Should fix sparcv9. + + * Daniel Jacobowitz + + - Pass CC to configure; should fix sparc64. + - Suppress the errno warning message for now. Update to point to + README.Debian.gz. + - debian/patches/glibc23-errno-hack.dpatch, debian/FAQ + - Redirect dpkg -s sysvinit's stderr to /dev/null (Closes: #225601). + - Fix on MIPS targets. Thanks to Guido Guenther + for testing and improvements to the patch (Closes: #223891, #226483). + - debian/patches/mips-asm-unistd.dpatch + - Fix for GCC changes from Thiemo Seufer (Closes: #224744). + - debian/patches/mips-sgidefs.dpatch + - Fix i386-linux build failure. + - debian/patches/glibc23-sse-oldkernel.dpatch + - Quote a backslash in libc.preinst + + * GOTO Masanori + + - debian/debhelper.in/glibc-doc.links: add missing links for + pthread_mutex_*(), pthread_mutexattr_*(), pthread_cond_*(), and + pthread_condattr_*(). + - debian/control.in/main: remove Build-Depends-Indep: latex2html. + (Closes: #221317) + + - debian/local/etc_init.d/devpts.sh: rename to mountkernfs. + - debian/local/etc_init.d/mountkernfs: rename from devpts.sh, for + adding to mount tmpfs(shmfs), sysfs, and usbfs. + - debian/local/etc_default/tmpfs: add to control tmpfs upper limit size. + - debian/debhelper.in/libc.dirs: add to make /sys. + - debian/debhelper.in/libc.install: add mountkernfs and tmpfs, + remove devpts.sh. + - debian/debhelper.in/libc.postrm: rename devpts.sh to mountkernfs. + - debian/debhelper.in/libc.postinst: likewise. + - debian/local/etc_init.d/mountkernfs: fix devpts_mounted to check + its pathname is exactly started from the top directory. + + - debian/debhelper.in/libc.preinst: fix preinst does not stop + on mips even if it's kernel version is < 2.4.22. (Closes: #223769) + + - debian/po/pt_BR.po: Update pt_BR debconf template translation. + Patched by Andre Luis Lopes . (Closes: #219839) + - debian/po/nl.po: Update nl debconf template translation. + Patched by cobaco . (Closes: #220693) + + * Carlos O'Donell + + - debian/patches/51_glibc232-hppa-dist.dpatch: Add entry.h to dist. + - debian/patches/51_glibc232-hppa-profiling.dpatch: Fix profile support. + (Closes: #221010) + + -- Daniel Jacobowitz Tue, 20 Jan 2004 09:41:48 -0500 + +glibc (2.3.2.ds1-10) unstable; urgency=low + + This is the "Swimming to the surface" release. + + * GOTO Masanori + + - debian/control.in/opt: Add more ix86 CPUs in the description. + - debian/debhelper.in/libc.preinst: Ignore old libc4/5. + (Closes: #218449) + + * Daniel Jacobowitz + + - Add a patch to automatically disable NPTL for programs which + reference the old errno; and update the FAQ to match. + (glibc23-errno-hack.dpatch). + - Update make build dependency as reported by Mikko Kautto + (Closes: #218595). + - Update debian/po/nl.po with new translation from Bart Cornelis + (Closes: #218642). + - Update SSE disabling patch to work for static binaries too + (Closes: #218524, #219025). + - debian/debhelper.in/libc.preinst: Ignore ia32-libs also + (Closes: #219176). + - debian/control.in/main: Build depend on fixed linux-kernel-headers + to get ia64 module syscalls (Closes: #218645). + + * Jeff Bailey + + Update to Standards-Version 3.6.1: + - debian/changelog: Convert from Latin-1 to UTF-8. 1 Line affected. + - debian/control.in/main: Update version number. + Fix some lintian warnings: + - debian/changelog: Remove obsolete user-emacs settings. + - debian/control.in/libc: Remove trailing periods from synopis'. These + aren't full sentences. + - debian/local/manpages/gencat.1: New file. + - debian/local/manpages/trace.1: New file. + - debian/debhelper.in/libc-dev.manpages: Install them. + - debian/local/manpages/iconvconfig.8: New file. + - debian/debhelper.in/libc.manpages: Install it. + - debian/patches/90_glibc232-statvfs.dpatch: Don't get confused on bad + mtab. (Closes: #219271) + - debian/patches/90_glibc232-timezones.dpatch: Update timezone + information. + + * Phil Blundell + + - debian/patches/arm-ioperm.dpatch: Third time lucky? + + -- Jeff Bailey Wed, 5 Nov 2003 10:53:14 -0500 + +glibc (2.3.2.ds1-9) unstable; urgency=low + + * GOTO Masanori + + - debian/po/es.po: Update. Patched by Carlos Valdivia Yagüe + . + - debian/debhelper.in/libc.preinst: Replace s/libc6/glibc/ + in messages, actually there are not only libc6, but also + libc6.1, libc0.3, and so on. + + * Daniel Jacobowitz + + - Export libpthread symbols needed for thread debugging + (glibc23-thread-debugging.dpatch). + - Remove glibc23-thread-debugging.dpatch in response to upstream + comments. Don't strip libpthread symbols needed for thread debugging. + - Add version sanity check for kernels whose extraversion starts with a + dot (Closes: #218546). + - Disable SSE for pre-2.4 kernels (Closes: #218524). + - Symlink asm-sparc and asm-sparc64 into debian/include if necessary. + - Don't duplicate .so symlinks in libc6-s390x and libc6-dev-s390x. + - Add a build fix for sparc64; pread syscall has been renamed to + pread64. + - Add a FAQ entry for unresolved errno (Closes: #218561). + - Import patch from CVS to fix ucontext_t/mcontext_t on powerpc32 + (Closes: #207806). + - Patch from Randolph Chung for HPPA system calls + (hppa-syscall.dpatch). + + -- Daniel Jacobowitz Sat, 1 Nov 2003 18:54:16 -0500 + +glibc (2.3.2.ds1-8) unstable; urgency=low + + * Daniel Jacobowitz + + - Don't use --enable-omitfp since we don't install libc_g.a. + - Enable NPTL for S/390. + - Fix the /lib/ld64.so.1 symlink for s390x. + - Update maintainer scripts for fixes lost in the rewrite. + - Enable NPTL for ia64. Thanks to Ian Wienand for testing. + - Automatically cross-compile if the kernel is too old to build + an optimized library. + - Do not run make check if cross compiling. + - Fix msqid_ds on MIPS. Dpatch from Guido Guenther, patch by + Thiemo Seufer (Closes: #215273, #200215, #217593). + - Check for old copies of glibc in a couple of places (Closes: #212224). + - Fix a libio compatibility code bug which crashed the Citrix client + (glibc23-libio-compat.dpatch). + - Remove fuzzy markers from fr.po. Patch from Denis Barbier + (Closes: #217865). + - Re-add debian/patches/80_glibc232-locales-nb_NO-fix.dpatch, which had + gotten lost. + - Re-add typo fixes to iconv.1 and rpcgen.1. (Closes: #202161) + - Merge iconv.1 fix to iconv.pod. + - Re-add fix for locale-gen and POSIXLY_CORRECT. + - Update ldso-disable-hwcap.dpatch and preinst/postinst scripts. + - Update maintainer scripts not to use basename; dpkg invokes the + scripts as tmp.ci/postinst, not libc6.postinst. + - Add a patch for building shlib.lds which fixes a parse error when + building without an existing -dev package installed. + - debian/patches/11_shlib-lds.dpatch + + * Jeff Bailey + + - debian/sysdeps/linux.mk: Use getconf _NPROCESSORS_ONLN instead + of /proc/cpuinfo to calculate NJOBS. The cpuinfo file format + is not consistent between arch's. + - debian/.cvsignore: New file. + + * GOTO Masanori + + - debian/debhelper.in/locales.dirs: Add /usr/lib/locale, because + localedef stops to create locale data if this dir is not found. + - debian/debhelper.in/libc-otherbuild.preinst: Fix typo which + disturbs to install libc-otherbuild package. + - Dan's checking code for old copies in libc6 preinst fixes + installation breakage for example /usr/lib/debug is in + /etc/ld.so.conf, or so on. + (Closes: #165374, #212224). + - debhelper.in/libc.preinst: add kernel version sanity check for + sun4m arch which needs at least 2.4.21 due to hardware multiplication + instruction is used by default. (Closes: #215010, #215012) + - debian/debhelper.in/libc.preinst: fix check_dirs return value. + + -- Daniel Jacobowitz Tue, 28 Oct 2003 18:29:09 -0500 + +glibc (2.3.2.ds1-7) experimental; urgency=low + + * Daniel Jacobowitz + + - Fix TLS libraries, which belong in /lib/tls, not /libtls. + - Fix -march for NPTL libraries on i386 - was i686, should have + been i486. + - Move i686 libraries to /lib/tls/i686/cmov. + - Include make check output in the libc package. + - S/390 perversely uses /lib/ld64.so.1 as the dynamic linker; include + a symlink. + - Leave /lib64/ld64.so.1 executable on S/390. + - Generate SUPPORTED again. + - Update ldconfig to prefer /lib/tls to /lib/i686/cmov. + - Disable conflicts between optimized libraries and libsafe/memprof; + they've worked for a while. + - Switch the i686 optimized libraries to use NPTL, and update their + description. + - Fix dependencies for locales package. + - Include SONAME symlinks in libc6-dbg. + - Remove vestigial gconv-modules Provides. + - Install more files for libc6 and locales packages. + - Correct section for zdump.8 man page. + - Install ld.so.8 in the right directory (debhelper thinks that .so is a + language extension). + - Install info menu entries for functions provided by libc, in + glibc-doc. + - Include changelog in glibc-doc also. + - Re-add libc6-dev dependency on matching libc6. + - Fix libc-udeb build. + + * Phil Blundell + + - debian/patches/arm-ioperm.dpatch: Try again. + + * Jeff Bailey + + Welcome back HPPA, Thanks to Carlos O'Donell + + - debian/patches/50_glibc232-hppa-full-nptl-2003-10-22.dpatch: New. + - debian/patches/50_glibc23-hppa-entry.dpatch: Remove. + - debian/patches/glibc23-00-hppa-pthreads.dpatch: Remove. + - debian/patches/glibc23-01-hppa-dl-machine.dpatch: Remove. + - debian/patches/glibc23-07-hppa-atomicity.dpatch: Remove. + - debian/patches/glibc23-hppa-compat.dpatch: Remove. + - debian/patches/glibc23-hppa-malloc8.dpatch: Remove. + + - debian/patches/00list: Update. + + - debian/rules: Define NJOBS as 1. + - debian/sysdeps/linux.mk: Define NJOBS based on number of processors + - debian/rules.d/build.mk: Use -j $(NJOBS) during build. + Based on patch from Ian Wienand + + - debian/debhelper.in/libc.install: Install pt_chown + - debian/rules.d/debhelper.mk: Don't clobber SUID on pt_chown + - debian/debhelper.in/glibc-doc.docs: Install DEB_SRCDIR/ChangeLog* + - debian/rules.d/build.mk: Don't run testsuite if DEB_BUILD_OPTIONS + contains nocheck + + - debian/sysdeps/gnu.mk: Define slibdir. + - debian/rules.d/build.mk: Only set slibdir in configparms if its set. + - debian/debhelper.in/glibc-doc.doc-base: New file. + - debian/debhelper.in/glibc-doc.install: New file. + - debian/debhelper.in/glibc-doc.links: New file. + - debian/rules.d/build.mk: Generate HTML files. + - debian/rules.d/debhelper.mk: Map LIBC to $(libc) in generated files. + - debian/debhelper.in/libc.install: Install Linuxthreads ChangeLog. + - debian/debhelper.in/libc.docs: Install various docs. + - debian/sysdeps/kfreebsd-gnu.mk: New file. Put in all the magic + from the old packaging. + - debian/sysdeps/kfreebsd.mk: Deleted. + - debian/sysdeps/gnu.mk: Add in GLIBC_OVERLAYS to allow patching to work, + create ld.so symlink at end of build. + - debian/sysdeps/sparc.mk: Change MIN_KERNEL_REQUIRED to + MIN_KERNEL_SUPPORTED. + - debian/sysdeps/s390.mk: Likewise. + - debian/rules: Define kernel_check macro. + - debian/sysdeps/linux.mk: Override kernel_check for Linux. + - debian/rules.d/build.mk: Call kernel_check macro when --build == + --host + + * GOTO Masanori + + - debian/po/ru.po: Update. Patched by Ilgiz Kalmetev + . (Closes: #214349) + + -- Daniel Jacobowitz Sat, 25 Oct 2003 15:09:02 -0400 + +glibc (2.3.2.ds1-6) experimental; urgency=low + + * Phil Blundell + + - debian/patches/arm-ioperm.dpatch: New. + + * Daniel Jacobowitz + + - Add debhelper build dependency. + - Use linux-kernel-headers package for headers. + - Add S/390 support. + - Build libc6-dev-sparc64. + + -- Daniel Jacobowitz Mon, 20 Oct 2003 16:27:39 -0400 + +glibc (2.3.2.ds1-5) experimental; urgency=low + + * Daniel Jacobowitz + + - Fix a thinko in i686 timing patch for non-HP_TIMING architectures. + - Add -k to make check. + + -- Daniel Jacobowitz Mon, 13 Oct 2003 10:53:31 -0400 + +glibc (2.3.2.ds1-4) experimental; urgency=low + + * Daniel Jacobowitz + + - Update i686 timing patch to fix clock_gettime. + - Update glibc23-cmov patch to let ld load tls libraries from + ld.so.cache. + - Include symlinks in optimized library directories to placate + dpkg-shlibdeps. + - Fix shlibs files to include a version again. + - Re-enable make check. + - Update makeconfig.dpatch to fix a typo that broke make check. + - Add glibc-make-check-perms.dpatch to fix an upstream make check + problem. + - Build some optimized libraries using appropriate --build options + so that they can run make check. + + * Jeff Bailey + + - Build libraries for sparcv9 and sparc64. + - Enable TLS for ia64. + + -- Daniel Jacobowitz Sun, 12 Oct 2003 19:42:11 -0400 + +glibc (2.3.2.ds1-3) experimental; urgency=low + + * Daniel Jacobowitz + + - Use ldd* in debhelper.in/libc6, because non-i386 arches don't have + lddlibc4. + - Include gconv-modules in libc6. + - Don't include some unnecessary generated kernel headers. + - Merge previous .dpatch files (Closes: #214470). + - Run depflags.pl again (Closes: #214468). + - Don't include profiled libraries in libc-dev (Closes: #214504). + - Ship /usr/include/asm-generic (Closes: #214512). + + -- Daniel Jacobowitz Mon, 6 Oct 2003 21:18:28 -0400 + +glibc (2.3.2.ds1-2) experimental; urgency=low + + * Daniel Jacobowitz + + - Install the right headers in /usr/include/asm, instead of trying to + replace the directory with a symlink (Closes: #214233). + - Map DEB_HOST_GNU_CPU to a uname value for creating the asm symlink. + - Move libc6-dev's postinst back to preinst. + - Support multiple autoconf.h headers. + - Add an ia64 autoconf.h, from Branden Robinson. + + -- Daniel Jacobowitz Sun, 5 Oct 2003 14:47:05 -0400 + +glibc (2.3.2.ds1-1) experimental; urgency=low + + * Essentially redo the debian/ packaging directory. + + Specifically, the following directories were changed: + - debian/sysdeps/*: Redo into os-based and arch-based handling. + - debian/debhelper.in/*: Use debhelper for all package management. + - debian/rules.d/*: Split out rules file into logical pieces. + - debian/local/*: Move all of the files that Debian provides to here. + + Update dpatch to more closely match the debian package: + - debian/patches/0list: Rename to 00list to match dpatch update. + - debian/rules.d/dpatch.mk: Sync with Debian package with the + following four changes: + 1) Support srcdir != builddir builds. + 2) Support $(stampdir) + 3) patch target depends on unpack + 4) Use $(DEB_SOURCE_PACKAGE) instead of $(PACKAGE) + + Remove dependency on various kernel-headers packages, bring into + the package: + - linux-kernel-headers/: New directory, import from 2.6.0-test2 + + Add NPTL support on i386: + - debian/sysdeps/i386.mk: Add NPTL patterns, set minimum kernel. + + Redo "DBS-Style" tarball support: + - debian/rules.d/tarball.mk: New file + - debian/sysdeps/linux.mk: Bring in linuxthreads and nptl overlays. + - prep.sh: Remove. + - version: Remove. + + Update to recent CVS snapshot to support NPTL: + - debian/patches/10_cvs.dpatch: update + + This cleanup project is the result of several discussions between + Jeff Bailey, GOTO Masanori, Daniel Jacobowitz, and Philip Blundell. + + The initial work here was done by Jeff Bailey, Branden Robinson, + and Daniel Jacobowitz. + + -- Daniel Jacobowitz Thu, 2 Oct 2003 13:47:40 -0400 + +glibc (2.3.2-9) unstable; urgency=medium + + Urgency set to medium, because this version should bring HPPA alive again. + + * GOTO Masanori + + - debian/patches/82_glibc232-iconv-euc-jp-ms-fix.dpatch: Fix EUC-JP-MS + does not work even if they are listed as available in iconv. + Dpatched by Topia . (Closes: #212080) + + - debian/manpages/iconv.1: Fix typo in -o option. Patched by + Max Vozeler . (Closes: #211733) + + - debian/manpages/rpcgen.1: Fix typo which cause some infos for the '-o' + option are not shown, and add -Sm option description. Patched by + Nicolas Francois . + (Closes: #211984) + + - debian/libc/DEBIAN/preinst: Updated libc6 libnss restarting version + from 2.2.94-1 to 2.3.2-2 in preinst. Postinst code was already fixed + in 2.3.2-2. (Closes: #211825) + + - debian/locales/DEBIAN/template: There is no reason to + set LANG=C in /etc/environment, so do not display this locale + in the locales/default_environment_locale question. + - debian/locales/DEBIAN/config: Likewise. + - debian/locales/DEBIAN/postinst: If /etc/environment sets the LANG + variable and a new configuration asks for not setting it, the + line was not removed from this file. + - debian/po/templates.pot: Update templates followed by above changes. + - debian/po/fr.po: Update accordingly using debconf-updatepo with new + translation. + - debian/po/ja.po: Likewise. + - debian/po/ca.po: Update accordingly using debconf-updatepo. + - debian/po/de.po: Likewise. + - debian/po/es.po: Likewise. + - debian/po/fr.po: Likewise. + - debian/po/ko.po: Likewise. + - debian/po/pt_BR.po: Likewise. + - debian/po/ru.po: Likewise. + - debian/po/nl.po: Update accordingly using debconf-updatepo with + fixing line invalid wrapping. + All patched by Denis Barbier . + + - debian/patches/80_glibc232-locales-nb_NO-fix.dpatch: Added to fix + nb_NO as real locale, not an alias. Patched by Petter Reinholdtsen + . (Closes: #206474) + + * Jeff Bailey : + + - 20_glibc232-hppa-full-2003-10-20.dpatch: New HPPA patch. + (Closes: #209253) Thanks to Carlos O'Donell + + - 50_glibc23-hppa-entry.dpatch: Remove. + - 80_glibc232-locales-nb_NO-fix.dpatch: Remove. + - glibc23-00-hppa-pthreads.dpatch: Remove. + - glibc23-01-hppa-dl-machine.dpatch: Remove. + - glibc23-07-hppa-atomicity.dpatch: Remove. + - glibc23-hppa-compat.dpatch: Remove. + - glibc23-hppa-malloc8.dpatch: Remove. + + - 0list: Update + + -- Jeff Bailey Wed, 22 Oct 2003 13:46:39 -0400 + +glibc (2.3.2-8) unstable; urgency=low + + * Phil Blundell + + - debian/control.in/main: add gawk to Build-Depends, since testsuite + apparently requires it. + + - debian/patches/pthread-cleanup.dpatch: Vector __pthread_cleanup_push + and __pthread_cleanup_pop through __libc_pthread_functions. + (Closes: #205234) + + - debian/patches/arm-no-hwcap.dpatch: Admit HWCAP_FAST_MULT again, + since we want to start using this for openssh. + - debian/patches/arm-updates.dpatch: Add some miscellaneous arm + changes taken from upstream. + - debian/patches/arm-vfork.dpatch: Avoid bad interaction between + vfork and libpthread. + + * GOTO Masanori + + - debian/patches/80_glibc232-fesetround-fix.dpatch: Fix fesetround static + link time failure. (Closes: #211135) + + - debian/patches/lo_LA.UTF-8_not_supported.dpatch: Dropped, to support + lo_LA.UTF-8 again. + - debian/patches/80_glibc232-locales-lo_LA.dpatch: Added to support + lo_LA.UTF-8 again. + + - debian/locales/usr/sbin/locale-gen: Fix locale-gen breaks with bash + 2.03, unset POSIXLY_CORRECT iff it's previously defined. + Patched by Daniel Verite . (Closes: #210301) + + -- Philip Blundell Wed, 17 Sep 2003 20:44:48 +0100 + +glibc (2.3.2-7) unstable; urgency=medium + + * GOTO Masanori + + - debian/patches/90_glibc232-mathinline_iso.dpatch: Fix inline math + function complaints with gcc -pedantic -ffast-math. Patched by + Thomas Richter . (Closes: #208016, #207221) + + - debian/patches/template.dpatch: Added DP: Related bugs: field. You can + use it to put which bugs are related with this dpatch. + + * Daniel Jacobowitz + + - debian/control.in/main: Update binutils dependency for !s390. + + - debian/patches/linuxthreads-push-pop.dpatch: Add __libc_cleanup_push + and __libc_cleanup_pop. + - debian/patches/syslog-backrev.dpatch: Remove, no longer necessary. + This should fix the crashes in syslog without libpthread loaded. + + - debian/patches/linuxthreads-jumptable-wine.dpatch: Move + pthread_cond_timedwait out of the way, so that it doesn't break + the way Wine pokes into this structure (Closes: #210347). + + - debian/patches/ia64-memccpy.patch: Fix a segfault on ia64 + (Closes: #210441). + + -- Daniel Jacobowitz Fri, 12 Sep 2003 14:56:19 -0400 + +glibc (2.3.2-6) unstable; urgency=low + + * Phil Blundell + + - debian/control.in/main: require kernel-headers-2.4.20-m68k (>= + 2.4.20-1) for m68k. Requested by Adam Conrad . + + - debian/patches/pthread_cond_timedwait.dpatch: avoid problem when + pthread_cond_timedwait is used in code that doesn't link with + -lpthread. (Closes: #209139) + + * GOTO Masanori + + - debian/sysdeps/kfreebsd-gnu.mk: Added to support kfreebsd-gnu. + Patched by Robert Millan . (Closes: #206663) + - debian/sysdeps/freebsd.mk: Dropped because of replacing kfreebsd-gnu.mk. + - debian/sysdeps/soname.mk: Modified from freebsd to kfreebsd-gnu. + + -- Philip Blundell Mon, 8 Sep 2003 08:51:49 +0100 + +glibc (2.3.2-5) unstable; urgency=low + + * Phil Blundell + + - debian/control: change section for -pic, -dbg, -prof packages + from devel to libdevel. + + - debian/control.in/main: add Build-Depends changes from 2.3.2-3 + here as well. + + - debian/packages.d/*.mk: add md5sums for generated packages, + thanks to Petr Konecny. (Closes: #158354) + + - debian/patches/80_glibc232-locales-header.dpatch: adjust + filenames so patch applies correctly. + + - debian/locales/DEBIAN/config: The "Leave alone" option has been + removed, but locale-gen crashes if it was set by a previous run, + so really discard it. Patch by Denis Barbier (Closes: #204958) + + - debian/patches/lo_LA.UTF-8_not_supported.dpatch: remove this + locale from SUPPORTED file; requested by Denis Barbier. + (Closes: #205118) + + - debian/patches/nss_compat-shadow: fix problem with shadow + passwords and NIS. Patch from Thorsten Kukuk. (Closes: #204711) + + * GOTO Masanori + + - debian/control.in/libc: Add more missing change section for -pic, + -dbg, -prof packages from devel to libdevel. + - debian/control.in/libc-dbg: likewise. + + - debian/patches/80_glibc232-locales-header.dpatch: Fix an_ES, + wa_BE, yi_US localedata header. (Closes: #194289) + + - debian/locales/usr/sbin/locale-gen: Add "unset POSIXLY_CORRECT" + because if user set POSIXLY_CORRECT, this script is interrupted. + (Closes: #206784) + + - debian/patches/glibc22-ttyname-devfs.dpatch: Fix one byte leak + in getttyname_r. Patched by Hunor Csordas . + (Closes: #194637) + + - debian/sysdeps/freebsd.mk: Modified config-os from freebsd-gnu + to kfreebsd-gnu. Patched by Robert Millan . + (Closes: #206663) + + - debian/patches/80_glibc232-iconvdata-fix.dpatch: Fix cp932 + does not work. (Closes: #205679) + + -- Philip Blundell Tue, 26 Aug 2003 22:51:03 +0100 + +glibc (2.3.2-4) unstable; urgency=low + + * Jeff Bailey + - debian/locales/DEBIAN/postinst: Use tail -n 1 instead of tail -1. + Thanks to Jurij Smakov (Closes: #206464) + + * Phil Blundell + - debian/patches/glibc23-arm-waitpid.dpatch: deleted. + - for arm, Build-Depend on kernel-headers 2.4.19-4 or newer. + (Closes: #206895) + - debian/patches/revert-old-libio.dpatch: back out changes causing + problems with fseek in binaries linked with glibc 2.0. + (Closes: #206839) + - debian/libc/DEBIAN/postinst: also restart cucipop (Closes: #206783) + - debian/patches/arm-output-format.dpatch: Very bad hack to avoid + problem with libc.so on ARM until a proper fix is forthcoming. + - debian/patches/81_glibc232-utimes-fix.dpatch: replace with version + that applies cleanly to current sources. + - debian/control: require sed 4.0.5-4 or later. + + * GOTO Masanori + + - debian/po/es.po: Updated Spanish (es) debconf template. + Patched by Carlos Valdivia Yagüe . + - debian/patches/81_glibc232-utimes-fix.dpatch: Fix utimes wrong time + calculation. Patched by Paul Eggert . + (Closes: #204728, #202243, #205110) + + -- Philip Blundell Tue, 26 Aug 2003 17:27:00 +0100 + +glibc (2.3.2-3) unstable; urgency=low + + * GOTO Masanori + + - debian/patches/80_glibc232-futimes-buildfix.dpatch: Fix build failure + on arm, mips, mipsel, due to be missing #include . + (Closes: #204768) + + - debian/libc/DEBIAN/preinst: Modified chown owner:group separater from + `.' to `:', according to POSIX 1003.1-2001. (Closes: #205527) + - debian/packages.d/glibc-doc.mk: likewise. + - debian/packages.d/libc-dbg.mk: likewise. + - debian/packages.d/libc-dev.mk: likewise. + - debian/packages.d/libc-pic.mk: likewise. + - debian/packages.d/libc-prof.mk: likewise. + - debian/packages.d/libc-udeb.mk: likewise. + - debian/packages.d/libc.mk: likewise. + - debian/packages.d/locales.mk: likewise. + - debian/packages.d/nscd.mk: likewise. + - debian/packages.d/optimized.mk: likewise. + - debian/packages.d/s390x.mk: likewise. + - debian/packages.d/sparc64.mk: likewise. + + - debian/libc/DEBIAN/postinst: Restarting script supported dovecot. + (Closes: #205566) + + - debian/po/pt_BR.po: Updated Brazilian Portuguese (pt_BR) debconf + template. Patched by Andre Luis Lopes . + (Closes: #195873) + - debian/po/nl.po: Added nl.po debconf template. Patched by + Bart Cornelis . (Closes: #205090) + + -- GOTO Masanori Fri, 8 Aug 2003 20:32:24 +0900 + +glibc (2.3.2-2) unstable; urgency=low + + This is the "fleeing to the horizon" release... + + * GOTO Masanori + + - debian/patches/glibc23-arm-waitpid.dpatch: Fix arm ld-linux failure due + to sys_waitpid missing. Patched by Philip Blundell . + - debian/patches/50_glibc232-arm-dwarf2-buildfix.dpatch: Avoid arm dwarf2 + build failure. Patched by Philip Blundell . + - debian/patches/50_glibc232-m68k-dwarf2-buildfix.dpatch: Avoid m68k + dwarf2 build failure. Suggested by Philip Blundell , + Andreas Schwab . + - debian/libc/DEBIAN/postinst: Modified watermark of restarting NSS + services from 2.1.94-1 to 2.3.2-2, because libnss_compat is changed in + 2.3.2-1 (2003-06-17 Upstream change). + - debian/patches/80_glibc232-wcsmbs-fix.dpatch: Added to fix wcsmbs bugs + which is lacked in 2003-07-15 upstream cvs. (Closes: #202969) + + - These bugs are fixed in this update: + * Bug in dlopen/dlclose leads to segfaults with kdecore is fixed in this + version. (Closes: #201221) + * Static linking adjtimex() on alpha failed to compile due to undefined + reference to `__adjtimex_tv32'. It's fixed in this version. + (Closes: #186331) + + * Jeff Bailey + - debian/packages.d/s390x.mk: Remove gcc-3.2 hardcode + + * Phil Blundell + - debian/patches/alpha-crti.dpatch: remove stray .prologue causing + alpha build failure. + - debian/patches/alpha-pwrite.dpatch: add missing __GI___pwrite64 alias. + - debian/control: demand binutils 2.14.90.0.5-0.1 or later (required + for .usepv on alpha) + + -- GOTO Masanori Sat, 19 Jul 2003 00:37:11 +0900 + +glibc (2.3.2-1) experimental; urgency=low + + ** UPLOADING THIS TO EXPERIMENTAL ** + + * Clint Adams + - debian/control: build-dep on gcc-3.3 for sparc(64) + - debian/rules: re-enable sparc64 build + - debian/packages.d/sparc64.mk: use gcc-3.3 to build sparc64 + - debian/sysdeps/linux.mk: re-enable sparc64 build + + * Jeff Bailey + - debian/patches/hurd-enable-ldconfig.dpatch: New file + - debian/packages.d/libc.mk: Install regular ldconfig, not + debian/ldconfig-hurd.sh on hurd-i386 + - debian/patches/0list: Add hurd-enable-ldconfig + - debian/sysdeps/paths.mk: Comply with FHS, use $(prefix)/lib, not + $(prefix)/libexec + - debian/rules: Introduce "perfect_make_check_archs" concept - + arch's listed in this variable must pass make check cleanly, + or the build will fail. Start off with i386, powerpc, sparc, alpha + and s390. + - debian/control.in/main: Build-dep on gcc-3.3 + - debian/sysdeps/tools.mk: Use gcc-3.3 + - debian/patches/sparc32-buildfix.dpach: Prune after yet another CVS + update + - debian/patches/syslog-backrev.dpatch: New file + + * GOTO Masanori + - Updated glibc 2.3.2. + - debian/patches/cvs.dpatch: rename it to 10_cvs.dpatch. + I plan to introduce <2digitnumber>_.dpatch filename. + - debian/patches/10_cvs.dpatch: update 2003-07-15 upstream cvs. + - version: bump up to 2.3.2. + - rules.d/shlibs.mk: bump up to 2.3.2. + - debian/sysdeps/sysdeps.mk: i386 optimization level is back to -O2. + + - These debian/patches/ are removed from cvs because + they are no longer being used and were superceeded by CVS patches: + * document-fix.dpatch + * glibc23-cert-rpcxdr.dpatch + * glibc23-getdents64-fix.dpatch + * glibc23-getaddrinfo.dpatch + * glibc23-hppa-shmlba.dpatch + * glibc23-m68k-madv.dpatch + * glibc23-malloc-check.dpatch + * glibc23-regcomp.dpatch + * signal-texi.dpatch + * glibc23-ia64-strncpy.dpatch + * elf-machine-rela-mips.dpatch + * glibc23-linuxthreads-fix.dpatch + * locales-monetary.dpatch + + - These debian/patches/ are removed from cvs because + they are no longer being used and already fixed the previous versions: + * rtsig.dpatch + * crypt.dpatch + * s390x-lib64.dpatch + * hurd-fork-fix.dpatch + + - These debian/patches/ are fixed to apply for glibc + 2.3.2 + cvs.dpatch. + * alpha-pic.dpatch: Fix the diff conflict. + * glibc23-hppa-Rminkernel.dpatch: likewise. + * libgcc-compat-all.dpatch: remove reflected entries in glibc-2.3.2. + * libgcc-compat-other.dpatch: likewise. + * ldconfig.dpatch: modify to be enable to compile again + + - These bugs are fixed in this update: + * glibc 2.3.2 can handle errno correctly if 32 bit uid or gid is used + and errno=ENOSYS is defined before geteuid() is called. + setfsuid(), setfsgid() and getgroups() are also fixed with my patch, + bug reported by Fumihiko Kakuma. (Closes: #183694) + * Submitter Neil's patch is applied in the upstream. (Closes: #181701) + * cfmakeraw definition in manual terminal.texi is fixed with my patch. + It can be reassign only to manpages-dev. + * sparc and powerpc has O_DIRECT definition in fcntl.h. + (Closes: #157142, #157143) + * The definition both __bswap_16 and __bswap_32 in bits/byteswap.h is + fixed and it can be ready for non-gcc C-compilers. (Closes: #181910) + * BSD derived random functions are correctly braced into #if defined + __USE_BSD with my patch. (Closes: #108619) + * Dynamic loading problems with the recent OpenOffice.org, KDE, + Wine/Mono, Quake3 Arena, Oracle, and NVidia libGL library, is fixed. + Glibc TLS does not properly handle using dlopen() to access shared + libraries which utilize some TLS models. + (Closes: #171695, #184696, #167564, #192096, #200386) + * Missing ntp_adjtime weak reference on alpha is defined. + (Closes: #182654) + * Sparc64 sysdep.h typo is fixed. (Closes: #185648) + * stdio-common/sscanf.c for libc6-sparc64 with gcc-3.3 can become to be + compiled. (Closes: #185649) + * Timezone data is updated to tzdata2003a. + (Closes: #140788, #149862, #186210, #164719, #190322) + * /usr/bin/locale -a searches both /usr/lib/locale// and + /usr/lib/locale/locale-archive in this release. (Closes: #166979) + * Powerpc fpu_control.h is fixed to be enable to compile _FPU_SETCW + macro. (Closes: #137020) + * The IA-64 versions of __sigsetjmp() and getcontext failed to restore + ar.unat before returning, is fixed in this version. (Closes: #186654) + * regcomp() crashed with some regexp pattern is fixed. + (Closes: #187475) + * pthread_atfork() is removed from unistd.h. Including this definition + in unistd.h is implementation dependent issue, and the upstream + decided not to keep it. (Closes: #106254) + * It's fixed that malloc_stats() segfaults if you don't first allocate + memory. (Closes: #191295) + * Typo in the symbol lookup code is fixed, which causes the loading of + the oracle binary to fail (and possibly affects other apps as well). + (Closes: #191952) + * The abday values for de_DE is changed to two letters. (Closes: #115536) + * IA64 umount needs to set second parameter for sys_umount. It's fixed + in 2003-05-14 cvs. (Closes: #193327) + * tmpfile64() is now available on hurd-i386. (Closes: #171022) + * SIOCSIFNAME is added. (Closes: #164638) + * cos() now correctly returns the cosine, not the sine, of values near + 0.80 on machines lacking an optimised libm. (Closes: #153548) + * ioperm() returns -ENODEV on ARM machines without ISA or PCI. + (Closes: #199134) + + - debian/locales/usr/sbin/locale-gen: Fix the localedef invocation + argument order, to run under POSIXLY_CORRECT=1 environment. + (Closes: #185924) + + - debian/sysdeps/depflags.pl: add Suggests: manpages-dev in libc-dev + package. (Closes: #158410) + - debian/sysdeps/depflags.pl: Adding entry "Suggests: glibc-doc" + into depflags.pl push. + - debian/control.in/libc: Remove "Suggests: glibc-doc" in each -dev + package entry. + - debian/control: likewise. + + - debian/patches/s390-tls.dpatch: add to build glibc 2.3.2 on s390. + The correct fix is to modify the kernel headers, but for the present + we use it regardless of the kernel issue. + Patched by Gerhard Tonn . + - debian/packages.d/libc-dev.mk: s390 kernel-headers package does not have + generate-asm.sh. The current libc-dev.mk assumes the existence of this + script, but on s390 it's not existed. Now libc-dev.mk s390 asm setup + part does not use generate-asm.sh, and has the generate-asm.sh + functionality in its own. This makes s390 which has 32/64 bit multi + libraries are much easier to build. + Patched by Gerhard Tonn . + - debian/packages.d/s390x.mk: likewise. + + - debian/locales/DEBIAN/postinst: add "rm -rf /usr/lib/locale/*" + to remove all old locale dir and locale-archive in locales + configuration time. Requested by Denis Barbier . + - debian/locales/DEBIAN/config: /usr/lib/locale/* files are no more + deleted when /etc/locale/gen is not managaed by debconf. Patched by + Denis Barbier + - debian/locales/DEBIAN/postinst: likewise. + + - debian/locales/DEBIAN/{config,postinst,templates}: Debconf must not + be used to store configuration items; another even more important is + that user changes in configuration files must be preserved. + These files are now fixed with this issue. Patched by Denis Barbier + . Some suggestions by Joey Hess . + - debian/locales/DEBIAN/config: + * Replace /bin/bash by /bin/sh on the shebang line. + * Add support for backing up. + * Parse configuration files and set debconf values. + - debian/locales/DEBIAN/postinst: + * Recreate configuration files from debconf values and run locale-gen + * As explained by Joey Hess, this script should be safer because some + border cases are now taken into account: configuration files might + have no EOL at EOF, and line order is preserved. + - debian/locales/DEBIAN/templates: + * Apply patch from #117509 and another typo fix by Joey Hess + (Closes: #117509) + * In locales/locales_to_be_generated, Choices is no more translatable + because it is set to Choices: ${locales} + - debian/locales/usr/sbin/locale-gen: + * Clean up /usr/lib/locale/ before generating locales + - debian/po/{ca.po, de.po, es.po, fr.po, ja.po, ko.po, pt_BR.po, ru.po, + templates.pot}: update with debconf-updatepo. + + - debian/control: Change Section: from devel to libdevel for packages: + libc0.3-dev, libc6-dev, libc6-dev-s390x, libc6-dev-sparc64, libc6.1-dev + and libc1-dev. + - debian/control.in/libc: likewise. + - debian/control.in/s390x: likewise. + - debian/control.in/sparc64: likewise. + + - debian/control: Remove "Conflicts: php4" from libc1 and libc0.3. + - debian/control: Add "Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 + (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7)" to fix /usr/lib/64 vs + /usr/lib64 issue with upgrading from woody for sparc64 (see bug 156947). + Suggested by Dagfinn Ilmari Mannsaker . + (Closes: #188383, #193331) + - debian/control.in/sparc64: likewise. + + - debian/copyright: update the version and the year 2003. + + - debian/patches/locales-monetary.dpatch: add to change some locales + LC_MONETARY symbols: ar_SD, sr_YU, sr_YU@cyrillic, and es_EC. + And now this patch is merged into the upstream cvs, drop dpatch. + (Closes: #160040, #173963, #185342, #187142, #188159, #190785, #193020) + (Closes: #193508, #193509, #193510, #194791) + + - debian/manpages/localedef.1: remove "-h" from --help option entry. + (Closes: #187621) + + - debian/debver2localesdep.pl: add clever version recognition for binary + only NMU or source NMU/local packaging. + Patched by Gerhard Tonn . + + - debian/patches/glibc23-linuxthreads-fix.dpatch: add to revert Jakub's + change in 2003-04-02 to be enable to compile librt.so for the present. + And this bug is fixed during the development, this patch is dropped now. + Thanks to Jack Howarth . + + - debian/libc/etc/init.d/devpts.sh: Modify mounting devpts for 2.5.68 and + later. As of 2.5.68, devpts is not automounted when using devfs. So + even in that case, devpts needs to be mounted via the devpts.sh script + as well as the case that devfs is not used. + (Closes: #189792, #189879, #191785) + + - debian/libc/DEBIAN/postinst: Add code to remove a relic of the past + /usr/doc/ symlinks. This script should keep at least until + sarge release. (Closes: #189854) + - debian/glibc-doc/DEBIAN/postinst: likewise. + - debian/locales/DEBIAN/postinst: likewise. + - debian/nscd/DEBIAN/postinst: likewise. + - debian/libc/DEBIAN/postinst: Remove symlinks for libc-{dbg,dev,pic,prof}. + + - prep.sh: Add NPTL extract code. + - version: Add NPTL version. + + - debian/packages.d/sparc64.mk: bumping up --enable-kernel version from + 2.4.0 to 2.4.1. + - debian/packages.d/s390x.mk: likewise. + + - debian/patches/50_glibc232-mips-buildfix.dpatch: add for building + mips/mipsel correctly. Patched by Guido Guenther , + Thiemo Seufer . + + - debian/packages.d/libc-udeb.mk: libc-udeb includes libnss_dns and + libresolv. (Closes: #192577) + + - debian/patches/50_glibc23-hppa-entry.dpatch: added to fix funcptr + (function descriptors) for _start on hppa, so we need a + sysdeps/hppa/elf/entry.h (similar to ppc64, ia64, etc). + Patched by Randolph Chung . (Closes: #193656) + + - debian/patches/30_glibc232-base.dpatch: add that binutils 2.14.90.0.2 + has entered in sid, which contain the binutils portion of the base fix. + Reported by Jack Howarth . + + - debian/patches/sparc32-buildfix.dpatch: added to fix sparc32 build. + + * Ben Collins + - debian/contron.in/sparc64: Remove the superflous (and incorrect) dep on + gcc-3.2 for libc6-dev-sparc64. Add lib64gcc1 as a dep for libc6-sparc64. + - Use CC for building sparc64 libs. + - Remove build-dep for gcc-3.3 on sparc. + - Really fix devpts.sh so that it mounts devpts whenever devpts is + available and not mounted. + - sparcv8-target.dpatch: New patch that enables v8 optimizations for + sparc-linux compiles. Debian specific. For some reason config.sub + doesn't recognize sparcv8, else I'd just pass sparcv8-linux as the host + target. + - Change how things are passed to configure for optimized packages, so + that we let glibc set all the optimizations for us. + - Change how sparc64 and s390x are built. Before the binary stage would + force the build of the packages. Now, the build/install phases dep on + the same for sparc64 and s390x. Same way that the OPT packages are done. + + -- Jeff Bailey Tue, 15 Jul 2003 14:35:58 -0400 + +glibc (2.3.1-17) unstable; urgency=low + + * GOTO Masanori + - debian/libc/DEBIAN/preinst: Add NSS restarting preinstallation + service detection routine and messages. xdm, kdm, gdm, + postgresql, xscreensaver needs user's hand restart. + (Closes: #165258, #165915, #184036, #184495, #188724) + - debian/libc/DEBIAN/postinst: Edit NSS restarting messages to + adopt some preinst messages. + - Cleanup optimized and sparc64 builds. + + -- GOTO Masanori Sat, 19 Apr 2003 22:01:40 +0900 + +glibc (2.3.1-16) unstable; urgency=high + + * GOTO Masanori + - debian/patches/glibc23-cert-rpcxdr.dpatch: Fix "CERT Advisory + CA-2003-10 Integer overflow in Sun RPC XDR library routines" + (Closes: #185508). + + - debian/packages.d/glibc-doc.mk: Fix unneeded file '[' and ']' in + /usr/share/man/man3. + - These debian/patches/ are removed from cvs because + they are no longer being used and were superceeded by CVS patches: + - libgcc-compat-mips.dpatch + - libgcc-compat-sparc.dpatch + - debian/libc/DEBIAN/postinst: add spamassassin to restart during + upgrade from 2.2 to 2.3. (Closes: #185275) + - debian/control.in/opt: add one empty line at the end of file. + This fix avoids opt packages to get mixed debian/control + message with libc-udeb package. (Closes: #185688) + + -- GOTO Masanori Tue, 18 Mar 2003 00:04:13 +0900 + +glibc (2.3.1-15) unstable; urgency=low + + * GOTO Masanori + - debian/packages.d/optimized.mk: drop configure --disable-static + option, because it does not work. enable-kernel version bumps + up to 2.4.1. + + - debian/manpages/nscd.8: Apply slightly improvement for the nscd(8), + nscd_nischeck(8), and nscd.conf(5) man pages. Patched by + Sebastian Rittau (Closes: #94058) + - debian/manpages/nscd.conf.5: likewise. + - debian/manpages/nscd_nischeck.8: likewise. + - debian/manpages/zdump.1: add the description that zonename should be + relative path name from /usr/share/zoneinfo. (Closes: #171017) + - debian/manpages/locale.1: add the description for LOCPATH. + (Closes: #176661) + + - debian/locales/DEBIAN/templates: Add a description "what is the + locale?". (Closes: #119197) + - debian/FAQ: Add description how to setup your own locale with + debconf + locales. (Closes: #99763) + + - debian/locales/DEBIAN/templates: Introducing new templates format + with po-debconf. Thanks to Denis Barbier . + - debian/packages.d/locales.mk: likewise. + - debian/po/*: likewise. + - debian/control.in/main: Build-Depends-Indep: po-debconf. + - debian/po/ja.po: Update translation data. + - debian/po/fr.po: Update translation data. Translated by + Denis Barbier . (Closes: #183652, #193083). + + - debian/sysdeps/depflags.pl: Remove conflicts: file-rc (<< 0.7.0) + - debian/libc/DEBIAN/postinst: Use /usr/sbin/update-rc.d in updatercd(), + suggested by Anthony Towns . + - debian/libc/DEBIAN/postinst: Check /usr/{lib,share}/file-rc/ + because file-rc >= 0.7.0 does not use /usr/lib/file-rc. + + - debian/patches/glibc23-hppa-compat.dpatch: add hppa libgcc-compat + symbols patch, patched by Randolph Chung . + - debian/patches/libgcc-compat-all.dpatch: update for mips and add + for alpha, patched by Guido Guenther . + - debian/patches/libgcc-compat-other.dpatch: add for arm, m68k, ia64 + and s390. Patched by GOTO Masanori . + + - debian/locales/usr/sbin/locale-gen: add "set -e" in order to return + value. (Closes: #183449) + + - debian/packages.d/libc-udeb.mk: contain libpthread.so to support + installer using pthread. (Closes: #183155) + + - debian/sysdeps/depflags.pl: remove php4 conflicts from libc6. + (Closes: #183477, #184091) + + - debian/libc/DEBIAN/postinst: add proftpd-{ldap,mysql,pgsql} to + restart during upgrade from 2.2 to 2.3. (Closes: #184129) + - debian/libc/DEBIAN/postinst: add cupsys. (Closes: #184257) + + - debian/patches/glibc23-m68k-madv.dpatch: add to fix build error + for some MADV_* used software on m68k, pulled from the latest cvs. + (Closes: #159723, #181661, #184589) + + - debian/patches/glibc23-00-hppa-pthreads.dpatch: add to improve + linuxthreads on hppa. Pathced by Carlos O'Donell + . His summary: LinuxThreads is now using a + self-aligning lock. + - debian/patches/glibc23-hppa-malloc8.dpatch: add to improve malloc + on hppa. Patched by Carlos O'Donell . + His summary: Malloc alignment has been moved back to 8 for optimal + performance. + + - These debian/patches/ are removed from cvs because + they are no longer being used and were superceeded by CVS patches: + - glibc23-02-hppa-min-kern-unwind-fde.dpatch + - glibc23-03-hppa-mcontext.dpatch + - glibc23-04-hppa-fcntl64.dpatch + - glibc23-05-hppa-buildhack.dpatch + - glibc23-06-hppa-tests.dpatch + - glibc23-08-hppa-configure.dpatch + + - Glibc 2.3 uses another regex engine: "sed: woody version more than + 1000 times slower than potato version" should be fixed. + (Closes: #155751) + - en_CA can generate without warnings. In addition, we use debconf + interface in these days, this kind of "manual edit /etc/locale.gen" + bug should be avoided. (Closes: #151631) + - libc6.postinst restarts samba in these days. (Closes: #168189) + - _FPU_SETCW/_FPU_GETCW macro works fine on powerpc in these days. + "Incorrect macro _FPU_SETCW in " should be fixed. + (Closes: #137020) + - hyper and unsigned hyper are supported in the current glibc. + "rpcgen(1) doesn't handle 64 bit types" should be fixed. + (Closes: #69041) + + -- GOTO Masanori Wed, 26 Feb 2003 18:44:08 +0900 + +glibc (2.3.1-14) unstable; urgency=low + + * GOTO Masanori + - debian/patches/glibc23-cmov.dpatch: Fix hwcap condition code again, + previous version did not work properly under some situation. + - debian/sysdeps/depflags.pl: Fix libnss-db dependency from << 2.2-6 + to <= 2.2-6.1.1, because the first version of libnss-db to work + with libc6 2.3 is 2.2-6.1, and 2.2-6.2 works under all architectures + correctly. Suggested by Ryan Murray . + (Closes: #181834) + - debian/sysdeps/depflags.pl: Fix libc6.postinst breakage with file-rc + (<< 0.7.0), now libc6 conflicts them. (Closes: #181683, #182320) + + -- GOTO Masanori Fri, 21 Feb 2003 09:19:45 +0900 + +glibc (2.3.1-13) unstable; urgency=low + + * GOTO Masanori + - debian/libc/DEBIAN/postinst: Replace from "/usr/lib/file-rc" to + "/usr/share/file-rc" to follow up file-rc 0.7. + (Closes: #181551, #181556, #181606) + - debian/libc/etc/init.d/devpts.sh: Fix devpts.sh failure if + $devfs_mounted is empty. (Closes: #181541, #181591) + + -- GOTO Masanori Wed, 19 Feb 2003 09:26:17 +0900 + +glibc (2.3.1-12) unstable; urgency=low + + * GOTO Masanori + - debian/patches/glibc23-malloc-check.dpatch: Fix hppa MALLOC_CHECK_ + invalid pointer problem. (Closes: #177242) + - debian/patches/libgcc-compat-sparc.dpatch: Fix sparc libgcc compat + symbol problem. Patched by Guido Guenther + (Closes: #178645) + - debian/patches/locales-supported.dpatch: This dpatch addes many + locales especially for UTF-8 and ISO-8859-15, to display debconf + locale menu using SUPPORTED.orig. + (Closes: #135334, #154556, #177472, #99623, #130517) + - debian/packages.d/glibc-doc.mk: add pthread_{getspecific, key_delete, + setspecific} manpage symlinks to pthread_key_create. (Closes: #99530) + - debian/manpages/ldconfig.8: Update from the redhat manpages. + (Closes: #180916) + - debian/patches/libgcc-compat-all.dpatch: Fix i386 libgcc compat + symbol problem, this dpatch merges with + libgcc-compat-{sparc,mips}.dpatch, patched by Guido Guenther + . (Closes: #179781, #180330) + - debian/locales/DEBIAN/{postinst,templates,config}: Fix default + environment variable "Leave alone" does not affect its meaning. + (Closes: #180040) + * Daniel Jacobowitz + - debian/libc/etc/init.d/devpts.sh: Update devpts.sh to work with the + new grep package (Closes: #181409). + + -- GOTO Masanori Sat, 8 Feb 2003 22:08:59 +0900 + +glibc (2.3.1-11) unstable; urgency=low + + * GOTO Masanori + - debian/libc/DEBIAN/preinst: Fix silly bug at parisc64 kernel version + check, replace from $ver to $kernel_ver. (Closes: #178159, #178217) + - debian/patches/glibc23-cmov.dpatch: Fix hwcap inappropriate handling + not to load CMOV libraries (/*/lib/i686/cmov/) on VIA C3 architecture. + - debian/patches/libgcc-compat-mips.dpatch: Fix undefined some symbols + like __umoddi3 to export libgcc compat symbol. Patched by + Guido Guenther . + - debian/patches/0list: Disabled ldso-disable-hwcap.dpatch because + (1) -opt is not provided currently, (2) disabling hwcap is not good + way whether -opt package is installed or not. + + -- GOTO Masanori Wed, 22 Jan 2003 22:17:45 +0900 + +glibc (2.3.1-10) unstable; urgency=low + + * The "trudging the sludge" release. + + * GOTO Masanori + - debian/packages.d/glibc-doc.mk: install linuxthreads/man/*.man + manpages into glibc-doc package. (Closes: #155794) + - debian/libc/DEBIAN/preinst: add kernel version check compared with + 2.4.19-pa17 on parisc64. Suggested by Randolph Chung. + - debian/libc/DEBIAN/preinst: add kernel version requirement for + 2.5.53-pa3 in 2.5 series kernel on parisc64. + - debian/locales/DEBIAN/config, debian/locales/DEBIAN/templates: + add translated selection "Leave alone" and "None" because such strings + were hardcoded and could not be localized in the templates file. + Patched by Denis Barbier . (Closes: #171502) + - debian/packages.d/glibc-doc.mk: Fix glibc-doc dangling symbolic link for + /usr/share/doc/glibc-doc/html/index.html. (Closes: #169878, #176701) + - debian/libc/DEBIAN/postinst: Fix to work $DEBIAN_FRONTEND value + regardless its case insensitivity. See #176483. + - debian/sysdeps/depflags.pl: Fix again to conflict against wine + (<< 0.0.20021007-1) and php4 (<< 4:4.2.3-5). (Closes: #170385) + - debian/control: Fix unneeded Conflicts: wine and php4, as denoted above. + - debian/control.in/libc: likewise. + - debian/patches/glibc23-cmov.dpatch: Add CMOV to hwcap, for VIA C3 which + is i686 class processor, but does not have 686 optional instruction CMOV. + - debian/patches/glibc23-regcomp.dpatch: Fix regex crash, if clearing + buffer, clear allocated too. This patch is pulled from the current + upstream glibc cvs. (Closes: #175529) + + * Daniel Jacobowitz + - debian/patches/alpha-pic.dpatch: Fix errno reporting from syscalls + on Alpha (Closes: #175511). + + -- GOTO Masanori Sun, 5 Jan 2003 09:13:22 +0900 + +glibc (2.3.1-9) unstable; urgency=low + + * Daniel Jacobowitz + - debian/packages.d/s390x.mk: Don't try to install CVS directories + (Closes: #174267). + - debian/packages.d/optimized.mk, debian/packages.d/sparc64.mk: + Likewise. + - debian/patches/glibc23-errno.dpatch: Updated for "h_errno" and "_res" + also. + - Upload properly this time, with a .diff.gz (Closes: #174436). + + * GOTO Masanori + - debian/patches/glibc23-hppa-shmlba.dpatch: Applied hppa SHMLBA + definition. (Closes: #170507) + - debian/libc/DEBIAN/postinst: add mysql-server in restarting service + list. (Closes: #172123) + - debian/patches/document-fix.dpatch: Applied patches sent by + H. S. Teoh and GOTO Masanori. (Closes: #117680) + - debian/patches/glibc23-asserth-decls.dpatch: Applied patches send by + Jeroen T. Vermeulen . (Closes: #106253, #164571) + - debian/libc/DEBIAN/postinst: Removed 'logind' from checking list + because it does not exist. + - debian/libc/DEBIAN/postinst: Replaced dpkg -s from apache2 to + apache2-common correctly. + - debian/libc/DEBIAN/postinst: Redirect dpkg stderr message to /dev/null, + which is showed if there are not installed packages. (Closes: #168481) + - debian/libc/DEBIAN/postinst: Message typo fixed as "successfully." + (Closes: #168483) + - debian/manpages/ldd.1: Updated newer version which is pulled from + RedHat manpages. + - debian/locales/usr/sbin/locale-gen: add '-A /etc/locale.alias' into + localedef option to consult locale alias name when making archives. + + -- Daniel Jacobowitz Thu, 2 Jan 2003 12:02:13 -0500 + +glibc (2.3.1-8) unstable; urgency=high + + * Daniel Jacobowitz + - debian/patches/glibc23-errno.dpatch: Temporarily re-enable linking + to "errno" to fix compatibility with broken binaries + (Closes: #174040, #174004). + - debian/patches/glibc23-getaddrinfo.dpatch: Add getaddrinfo patch + from CVS (Closes: #174027). + - debian/control.in/main: Add myself to Uploaders. + + -- Daniel Jacobowitz Tue, 24 Dec 2002 12:35:39 -0500 + +glibc (2.3.1-7) unstable; urgency=high + + * The "Climb Ev'ry Mountain" release. + + * GOTO Masanori + - debian/packages.d/s390x.mk: typo fixed, s390x-linux should be + ok to rebuild. (Closes: #173874) + - debian/patches/glibc23-getdents64-fix.dpatch: Fix getdents64 + failure on linux kernel 2.2. (Closes: #173913) + + * Jeff Bailey + - sysdeps/linux.mk: Finish disabling sparc64. + + -- GOTO Masanori Sun, 22 Dec 2002 01:35:43 +0900 + +glibc (2.3.1-6) unstable; urgency=low + + * The "I will not be thwarted" release. + + * Daniel Jacobowitz + - Update glibc23-ctype-compat.patch to fix segfaults in old static + binaries (Closes: #171451). + - Allow building from the CVS checkout without getting CVS dirs in the + resulting packages. Whew. + + * Jeff Bailey + - debian/patches/cvs.dpatch: Update. + (Closes: #171550, #170507) + - debian/patches/0list: Update + - debian/control.in/libc: Conflict against wine (<< 0.0.20021007-1) + (Closes: #170385) + Also conflict against php4 (<< 4:4.2.3-5) + Thanks to Steve Langasek for hunting this down! + - debian/rules: Disable sparc64 build targets for now. + - debian/packages.d/s390x.mx: Setup the 64 bit build as a cross-compile, + because 's390' cannot run binaries intended for 's390x' + + * GOTO Masanori + - cvs.dpatch update resolve some bugs (Closes: #169919, #165603) + - debian/patches/glibc23-hppa-Rminkernel.dpatch: Added hppa kernel + version checking due to prevent people from installing unmatched version. + Patched by Carlos O'Donell (Closes: #171804) + - debian/libc/DEBIAN/preinst: likewise. + - glibc23-function-compat.dpatch: Added for some bad application to + keep running and not to resolve some symbols like __libc_wait, + __libc_waitpid, so on. This patch will be removed when sarge will be + relased apparently. (Closes: #165358, #173201) + + - debian/locales/DEBIAN/config: db_set is set if and only if locale.gen + is existed. Patched by Masato Taruishi + His note: + The previous config script always set locales_to_be_generated + even when /etc/locale.gen doesn't exist. So the question in + dpkg-preconfigure time became empty in dpkg --configure locales time. + This change resolves long outstanding locales bug. + (Closes: #156386, #151784, #154244, #164523) + + -- Daniel Jacobowitz Mon, 2 Dec 2002 17:26:38 -0500 + +glibc (2.3.1-5) unstable; urgency=low + + * This is the "Leonids" release. + + * Jeff Bailey + - debian/packages.d/libc-udeb.mk: Do not rename file to SONAME if it's + a symlink. Needed for hurd-i386. + - debian/patches/signal-texi.dpatch: New file to remove link to + linuxthreads manual. Needed for hurd-i386. + + Welcome back, hppa: + + - debian/patches/glibc23-00-hppa-pthreads.dpatch + - debian/patches/glibc23-01-hppa-dl-machine.dpatch + - debian/patches/glibc23-02-hppa-min-kern-unwind-fde.dpatch + - debian/patches/glibc23-03-hppa-mcontext.dpatch + - debian/patches/glibc23-04-hppa-fcntl64.dpatch + - debian/patches/glibc23-05-hppa-buildhack.dpatch + - debian/patches/glibc23-06-hppa-tests.dpatch + - debian/patches/glibc23-07-hppa-atomicity.dpatch + - debian/patches/glibc23-08-hppa-configure.dpatch + Thanks to Carlos O'Donell for these! + + - debian/control.in/libc-udeb: Remove missing trailing blank line. + Thanks to Tollef Fog Heen. Closes: #169342 + - debian/control.in/s390x: Remove missing trailing blank line. + Thanks to Gerhard Tonn. + + - debian/libc/DEBIAN/postinst: Fix error in apache2 restart logic. + Thanks to Carlos O'Donell. + + - debian/packages.d/libc-dev.mk: Fix missing tabs from s390x section. + - debian/patches/s390-types.dpatch: New file to fix __ssize_t + Thanks to Gerhard Tonn for these. + + - debian/packages.d/libc-udeb.mk: use DEB_HOST_ARCH, not DEB_BUILD_ARCH + for determining package name. Fixes cross-compilation case. + + - debian/patches/0list: Update for above + + -- Jeff Bailey Mon, 18 Nov 2002 23:12:47 -0500 + +glibc (2.3.1-4) unstable; urgency=low + + * Daniel Jacobowitz + - debian/patches/cvs.patch: Fix RCS ID tags. + - debian/rules, debian/sysdeps/sysdeps.mk: Move i386 optimization + hack out of the rules file and put debugging information back in + libc6-dbg for i386 (Closes: #165892). + - debian/patches/crypt.dpatch: Fix initialization in crypt_r + (Closes: #163260). + - debian/patches/rtsig.dpatch: Fix the value of SIGRTMIN in non-threaded + applications (Closes: #165412). + - debian/rules, debian/packages.d/libc-dev.mk, + debian/packages.d/libc-udeb.mk: Don't use '{}' wildcards, to fix + building with /bin/sh -> ash. + + * GOTO Masanori + - debian/libc/DEBIAN/postinst: add more NSS services: + samba, courier-authdaemon + - debian/packages.d/sparc64.mk: fix build error. + - debian/libc/DEBIAN/postinst: modify apache2 service, + apache2 ships its init script in apache2-common, but the script + is in apache2. So replace from apache2-common to apache2 is needed. + Closes: #165959 + - debian/patches/cvs.patch: Hurd trailing slash handling fixed. + Closes: #162414 + - debian/patches/locales-stuff.dpatch: Fixed error generating de_CH, + it's caused by typo. Closes: #140054 + + * Jeff Bailey + - debian/patches/cvs.dpatch: New file. + - debian/patches/0list: Update + - debian/sysdeps/depflags.pl: Conflict against libnss-db <= 2.2-6 + Thanks to Ryan Murray for the patch. Closes: #168890 + + - debian/patches/s390x-lib64.dpatch: New file. + - debian/control.in/s390x: New file. + - debian/libc-s390x/postinst: New file. + - debian/packages.d/libc-dev.mk: Handle asm-s390x + - debian/packages.d/s390x.mk: New file. + - debian/rules: Include s390x files. + - debian/rules.d/control.mk: Add s390x to control_deps, and include + control.in/s390x + - debian/sysdeps/linux.mk: Add s390x support. + + Thanks to Gerhard Tonn. Closes: #169176, #166450. + + - debian/control.in/main: Update Standards-Version to 3.5.7.0 + + - debian/patches/glibc22-hppa-fcntl.dpatch: Remove File + - debian/patches/glibc22-hppa-fcntl-lfs.dpatch: Remove File + - debian/patches/glibc22-hppa-mcontext.dpatch: Remove File + - debian/patches/glibc22-hppa-pthreads.dpatch: Remove File + - debian/patches/glibc22-hppa-rela.dpatch: Remove File + - debian/patches/glibc22-hppa-tests.dpatch: Remove File + - debian/patches/glibc22-hppa-unwind.dpatch: Remove File + + - debian/patches/hurd-fork-fix.dpath: New File. + + Note: CVS patch disabled for this upload + + -- Daniel Jacobowitz Tue, 29 Oct 2002 13:14:51 -0500 + +glibc (2.3.1-3) unstable; urgency=low + + * GOTO Masanori + - debian/patches/librt-mips.dpatch: librt is not worked on + mips/mipsel architecture, we apply it until sarge will be + released. Thanks to Guido Guenther . + - debian/patches/glibc23-ctype-compat.dpatch: added. + glibc 2.3.x changes some symbols (__ctype_b, __ctype_toupper, + __ctype_tolower) as hidden attribute. These symbols that are + crashing the old 2.2.x dynamic linking code in static binaries + are now exported. + This patch is originally pulled from RedHat patch, I modified + it for current debian glibc. Closes: #165554 + + -- GOTO Masanori Sun, 20 Oct 2002 15:04:48 +0900 + +glibc (2.3.1-2) unstable; urgency=low + + * This is the "Why did everything stop working, mommy?" release + + * Jeff Bailey + - debian/libc/DEBIAN/postinst: Warn about NSS changes if upgrading + from older than 2.2.94-1. Add ssh-krb5 and apache2 to list of + services that definetly need restarting. + + Add libc-udeb (closes: #158589) Thanks to Tollef Fog Heen. + - debian/control.in/libc-udeb: New file + - debian/packages.d/libc-udeb.mk: New file + - debian/rules: Call udeb machinery. + - debian/rules.d/control.mk: Call udeb machinery. + + - debian/sysdeps/build-options.mk: Strip libc on alpha + + - debian/control.in/main: 2.13.90.0.10-1 is broken on s390 + require 2.13.90.0.4-1 for them. + + * GOTO Masanori + - debian/patches/0list: disable ip6-fix.dpatch. Closes: #165287 + - debian/packages.d/libc-udeb.mk: Clean up and fix indent crap. + - debian/rules.d/shlibs.mk: bump up to 2.3.1-1. Closes: #165456 + + -- Jeff Bailey Fri, 18 Oct 2002 11:27:07 -0400 + +glibc (2.3.1-1) unstable; urgency=low + + * This is the "twilight" release... + + * Jeff Bailey + - Upgrade tarballs to 2.3.1 + - version: Update to 2.3.1 + + - debian/sysdeps/linux.mk: Do not build optimized libraries + - debian/rules.d/control.mk: Likewise + + - debian/control.in/main: Require binutils 2.13.90.0.10-1 for ppc + + - debian/patches/elf-machine-rela-mips.dpatch: New file + - debian/patches/0list: Update accordingly. + + - debian/rules: Use -O on i386. This should go somewhere else, + but I want to get this release out. + + * XXX Below here was during the 2.3 development, and never released. + + * Jeff Bailey + - Upgrade tarballs to 2.3 + - version: Update to 2.3 + + - debian/patches/hppa-data-start.dpatch: Remove, incorporated upstream + - debian/patches/various-lsb-fixes.dpatch: Remove, incorporated upstream + + - debian/patches/0list: adjust accordingly + Also, prune ia64-reloc-none from the list. + I can't tell from the code snippet if this + has been incorporated or not. + + - .cvsignore: Add the stamp directories + + - debian/rules: Don't put CFLAGS in configparms, resolves ldconfig + miscompile on i386 + + - debian/rules: Add freebsd-i386 support + - debian/rules.d/control.mk: Add freebsd-i386 support + - debian/sysdeps/freebsd.mk: New file to add freebsd-i386 support + - debian/sysdeps/paths.mk: Add freebsd-i386 support + - debian/sysdeps/soname.mk: Add freebsd-i386 support + + * XXX Below here was during the 2.2.94 development, and never released. + + * Jeff Bailey + - Upgrade tarballs to 2.2.94 + - version: Update to 2.2.94 + + - debian/patches/cvs: Remove + - debian/patches/manual-texinfo4: Remove, incorporated upstream. + - debian/patches/i386-mathinline.dpatch: Remove, glibc headers require + ANSI compilers. + - debian/patches/db1-addon-enabler.dpatch: Remove + - debian/patches/0list: adjust accordingly + + - debian/patches/0list: Comment out string2-pointer-arith. + This was originally created to fix #44697, but without this + patch, 44697 is no longer reproducable. + + - debian/patches/fhs-linux-paths.dpatch: Update to new template format + + - .cvsignore: New file + + * XXX Below here was during the 2.2.93 development, and never released. + + * Jeff Bailey + - Upgrade tarballs to 2.2.93 + - version: Update to 2.2.93 + + The following important patches are still disabled: + + glibc22-hppa-pthreads, glibc22-hppa-rela, ia64-perf + + - debian/patches/0list: prune commented out patches that won't + be needed anymore + + - debian/patches/ia64-reloc-none.dpatch: Updated, thank to + Randolph Chung + + - debian/make-cvs-patch.sh: New file. + + - debian/patches/template.dpatch: Update headers to new format. + + - debian/patches/hurd-ioperms.dpatch - Deleted + - debian/patches/hurd-lfs64.dpatch - Deleted + - debian/patches/hurd-update.dpatch - Deleted + - debian/patches/syserrlist.dpatch - Deleted + + - debian/README - More updates + + - debian/rules.d/control.mk: debian/control should Depend on + debian/sysdeps/depflags.pl + + - debian/sysdeps/depflags.pl: Actually add the dependancy on + libdb1-compat. This is an update to GOTO Masanori's change, + Thanks to Ryan Murray for catching this. + + - debian/patches/mathpatch.dpatch: Prune + + - debian/rules.d/patch.mk: Add `setup' as an alias for `patch' + to provide dbs compatability. + + - debian/patches/cvs.dpatch: Sync with CVS from September 14th. + - debian/patches/0list: Updated + + * GOTO Masanori + - debian/packages.d/glibc-doc.mk: change texi2html processed file from + chapters.texi to libc.texinfo. Closes: #159417 + - debian/packages.d/libc-{dbg,pic,prof}.mk: fix /usr/doc removal + compilation failure. + - debian/libc/DEBIAN/postinst: Fix 'grep -v' failure if the size of + /etc/ld.so.nohwcap is 0. + - debian/rules.d/control.mk: Generate libc-opt control information. + + - Updating 2.2.9x fixes LSB 1.2 compliance. Closes: #156821 + - debian/control: add Depends: libdb1-compat. + Until woody, libdb1 is included in libc6 package. However after sarge, + libdb1 support is removed. libdb1-compat contains libdb1 which is + formerly provided by libc6. Now libc6 depends on libdb1-compat, + so upgrading from woody to sarge does not break any libdb1 issues. + Closes: #155904 + + - debian/patches/glibc22-hppa-fcntl.dpatch: added, patched by + Carlos O'Donell . + - debian/patches/glibc22-hppa-fcntl-lfs.dpatch: added, patched by + Randolph Chung . Closes: #160846 + + * Ben Collins + - Make sparc64 build use gcc-3.2. + - Update all config options to not use --disable-sanity-checks, since we + are actually using gcc-3.2 for everything. + - Patch cleanups. + - Re-enable optimized libs. Includes a simple mechanism which should fix + the conflicting symbols during libc/libc-opt upgrade scenarios. This + means that libc6-v9, libc6-i586 and libc6-i686 are back in full swing. + - Remove all references to /usr/doc symlink crap, which is deprecated. + + * XXX Below here was during the 2.2.92 development, and never released. + + * Jeff Bailey + - Upgrade tarballs to 2.2.92 + - version: Update to 2.2.92 + - debian/control.in/main: Require gcc-3.2 for all archs + - debian/patches/0list: prune glibc-cvs, glibc22-s390-resource, + gmon-start, locales-de_CH, sh-sysdep, alpha-build-failure + + These are already included in the 2.3 series. + + - debian/patches/glibc22-misc.dpatch: Split into ... + debian/patches/makeconfig.dpatch: ... this + debian/patches/locale-es_AR.dpatch: ... and this + debian/patches/i386-mathinline.dpatch: ... and this + debian/patches/ldconfig.dpatch: ... and this. + + - debian/patches/makeconfig.dpatch: Update for 2.3 series + + - debian/patches/0list: Temporarily disable some other patches: + + glibc22-hppa-pthreads, glibc22-hppa-rela, ia64-perf + + - debian/rules: memset.S works on ppc now, so stop deleting it. Thanks + to Jack Howarth for letting us know. + + - debian/sysdeps/gnu.mk: Remove --enable-libio, now set by default. Add + NO_TEST = yes, make check does not run on i386-gnu. + + - debian/sysdeps/tools.mk: Hardcode gcc-3.2 for $(CC) and $(BUILD_CC) + until gcc-defaults switches. + + - debian/rules: use CC=$(CC) when calling configure to get any changed + definitions. + + - debian/control.in/main: Require binutils (>= 2.13.90.0.4-1) + + - debian/rules: Add time/date stamps to beginning and end of log files + + - db1-addon-2.1.3.tar.bz2: Delete + + - debian/ppc-memset.S: Delete + + - debian/README: Update + + * GOTO Masanori + - debian/packages.d/libc-dbg.mk: update libpthread-0.9 -> 0.10. + - packages.d/libc.mk: likewise. + - packages.d/optimized.mk: likewise. + - packages.d/sparc64.mk: likewise. + + - debian/patches/glibc22-hppa-mcontext.dpatch: Fix unmatched userland + mcontext_t definition differed from kernel. Patched by + Carlos O'Donell . Closes: #157374 + + * XXX Below here was during the 2.2.5 development, and never released. + + * GOTO Masanori + - debian/patches/glibc-cvs.dpatch: Update from Glibc CVS. + - debian/patches: Dropped applying below patches due to updating + glibc-cvs.dpatch. + hurd-update, hurd-ioperms, ia64-strncpy, sparc-misc, resolv-nss_dns, + glibc-openoffice-fixes, xdr-array-security, hurd-lfs64, + syserrlist, mathpatch + - Fix gcc 3.1/3.2 compatibility building for glibc on ppc, with upstream + patched by Jack Howarth and + Franz Sirl . + Closes: #155606 + + -- Jeff Bailey Thu, 17 Oct 2002 08:37:52 -0400 + +glibc (2.2.5-15) unstable; urgency=low + + * debian/patches/dl-procinfo-fix.dpatch: Fix libssl optimization + problem occured by glibc dl-procinfo. + Closes: #161700, #161717, #161720, #161740, #161773, #161774 + Closes: #161786, #161788, #161813 + + -- GOTO Masanori Thu, 3 Oct 2002 09:56:46 +0900 + +glibc (2.2.5-14.3) unstable; urgency=low + + * NMU + * debian/patches/glibc22-mips-mcontext.dpatch: delete. + + -- Ryan Murray Sun, 15 Sep 2002 14:21:21 -0700 + +glibc (2.2.5-14.2) unstable; urgency=medium + + * NMU + * debian/patches/alpha-stxncpy.dpatch: keep testsuite patch (accepted + upstream), but disable all use of stxncpy until a correct patch can + be made. + + -- Ryan Murray Thu, 12 Sep 2002 13:04:47 -0700 + +glibc (2.2.5-14.1) unstable; urgency=low + + * NMU + * sysdeps/depflags.pl: Make libc{6,6.1} depend on libdb1-compat + (closes: #155904) + * debian/patches/alpha-stxncpy.dpatch: Add patch from Daniel Jacobowitz + for alpha stxncpy (closes: #159633) + * debian/patches/glibc22-mips-msq.dpatch: Add + sysdeps/unix/sysv/linux/mips/bits/msq.h for mips (closes: #159923) + * debian/patches/glibc22-hppa-fcntl.dpatch: Add DN_* and F_NOTIFY definitions + for hppa (closes: #159636) + * debian/patches/glibc22-hppa-mcontext.dpatch: correct definition of mcontext + to match kernel (closes: #157374) + * debian/patches/glibc22-mips-mcontext.dpatch: correct definition of mcontext + to match kernel (closes: #160462) + * add build-depends on dpkg 1.10.8 to ensure we use the install-info that + has the perl 5.8 workaround. + + -- Ryan Murray Tue, 10 Sep 2002 22:35:48 -0700 + +glibc (2.2.5-14) unstable; urgency=low + + * GOTO Masanori + - debian/patches/sh-sysdep.dpatch: Added the patch to compile for sh[34] + sh[34]eb. Closes: #156273 + - debian/patches/glibc22-m68k-compat.dpatch: Newer m68k debian specific + compatibility patch. Patched by Michael Fedrowitz . + - debian/patches/malloc-security.dpatch: Applied malloc security patch + Patched by Wolfram Gloger . + - debian/patches/alpha-build-failure.dpatch: Fix alpha build failure. + + -- GOTO Masanori Wed, 7 Aug 2002 20:56:54 +0900 + +glibc (2.2.5-13) unstable; urgency=low + + * Ben Collins + - Last maintainer upload for me. + - Fix double getent listing for build of libc package. + Closes: #154133, #152866 + - Set maintainer to the debian-glibc mailing list. Set uploaders to myself + and others. + - Placed into CVS (this log entry is the first test commit). + - ia64 build failure was fixed in last NMU. Closes: #151956 + - This sshd/libc bug is long since gone. Closes: #72596, #82468 + - ldconfig search order has also since been fixed. Closes: #105249 + - Add patches that OpenOffice needs in order to build. Closes: #153107 + - Bump min kernel supported to 2.2.0. Closes: #149529 + - Remove db1 compat library. The only user I know of this is coda. Coda + can include it's own version of the library now. I've emailed the coda + maintainer. + - Bump the shlibs ver because of the min-kernel change, and db1 removal. + - Add xdr-array.c security patch, Closes: #154992 + + * GOTO Masanori + - applied patches/locale-de_CH. + - debian/control: fix my uploader address due to my obsolete gpg key. + - debian/copyright: update copyright year. + + * Jeff Bailey + - Add hurd-i386 patch for support LFS from CVS + - Add patch to only declare sys_errlist and sys_nerr on Linux. This + allows gcc to build cleanly on hurd-i386. + - Require mig >= 1.3-2 (hurd-i386 only), and hurd-dev >= 20020608-1 + (hurd-i386 only) + - Prune hurd-ldflags from Hurd patch list. Noone is quite sure what + it's for. With this change, all hurd-i386 patches are now upstream + in CVS. + - Add 'mathpatch' to fix a math testsuite failure. + + -- Ben Collins Thu, 25 Jul 2002 11:13:22 -0400 + +glibc (2.2.5-12) unstable; urgency=low + + * Non-maintainer upload to fix build problems on ia64 + * replaces ia64-asm-fixes.dpatch with ia64-perf.dpatch, ia64-strncpy.dpatch + + -- Bdale Garbee Tue, 16 Jul 2002 17:09:24 -0600 + +glibc (2.2.5-11) unstable; urgency=low + + * Yet another NMU + * Build with a -11 version to work around fragile logic that breaks + locale dependencies when using NMU versioning. Closes: Bug#152968 + + -- Wichert Akkerman Sun, 14 Jul 2002 23:59:04 +0200 + +glibc (2.2.5-10.0) unstable; urgency=low + + * Non-maintainer upload by the security team + * Rebuild, uploads to both testing and unstable are not allowed + + -- Wichert Akkerman Sun, 14 Jul 2002 04:48:50 +0200 + +glibc (2.2.5-9) testing-security unstable; urgency=low + + * Something fucked up. Not sure why the .diff.gz size didn't match the + .changes/.dsc. Not sure why katie didn't reject the upload when it found + that out aswell. + + -- Ben Collins Sat, 13 Jul 2002 10:08:51 -0400 + +glibc (2.2.5-8) testing-security unstable; urgency=low + + * Resolver security bug fix. + + -- Ben Collins Fri, 12 Jul 2002 18:24:28 -0400 + +glibc (2.2.5-7) unstable; urgency=low + + * Misc ia64 asm updates, and strncpy fix + * Misc sparc patches from DaveM + * Revert sparc64 back to lib64 from my rebelious lib/64 effort. Use gcc-3.1 + now. + + -- Ben Collins Mon, 17 Jun 2002 22:33:39 -0400 + +glibc (2.2.5-6) unstable; urgency=low + + * Fix locales/config to be 755. + * Add big fat note to default nscd.conf about how host cache is insecure, + and disable it by default. This lowers the severity of #139879 for the + time being. I'll close it when a proper fix is in. + * Hurd patches from Jeff Bailey. Hurd goes to libc0.3! + + -- Ben Collins Sun, 28 Apr 2002 11:21:48 -0400 + +glibc (2.2.5-5) unstable; urgency=low + + * Fix missing LOCALES var in locale-gen. + * Fix space before "]" in locales/postinst. Closes: #139902, #139977, + #140048, #140464, #141408, #141515, #141558, #141617, #141786 + * Generate list of locales directly in locales/DEBIAN/config, so that we + have a working list during pre-inst. Closes: #76954, #141384 + * Backout nice changes for now. + + -- Ben Collins Mon, 25 Mar 2002 21:05:44 -0500 + +glibc (2.2.5-4) unstable; urgency=low + + * Include s/ip6.arpa/ip6.int/ patch from Fabbione. Closes: #119773, + #132310 + * Fix perms on locales/DEBIAN/config. Closes: #134094, #139682 + * Update from Glibc CVS: Lots of euro conversions and locales updates. + Closes: #128181, #130259 + Lots of other various fixes (please read the ChangeLog). Closes: #138094 + * Upstream fixed ia64 ldd rewrite problem. Closes: #128451 + * Upstream fixed nice return. Closes: #136815 + * pt_BR translation is ok now, Closes: #128530 + * Applied patch from Ganesan R to better handle some locale names. + Closes: #128969 + * Add ARM patch to disable hardware caps. + * Fix typos in catalan template. Closes: #133247 + * Add a "Leave alone" option for locales setting of /etc/environment. + Make it the default. Closes: #133315, #133315 + * HPPA patch from Randolph Chung. Closes: #133666 + * Fix zh_HK date output, from Anthony Fok. + * s/Noninteractive/noninteractive/ (hopefully for the last time). + Closes: #134381, #137348 + * Fix locales/config for when locale.gen doesn't exist. + Closes: #135343, #134613, #139284 + * Patch from Gary Hade (via Randolph Chung) to fix gmon-start. + Closes: #135748, #129903 + * Fix locale.1 - s/LC_PAPR/LC_PAPER/ Closes: #114174 + * Add glibc22-hppa-tests patch from Randolph Chung. Closes: #137513 + * Alistair McKinstry: + - Added locale.alias(5) and locale.gen(5) man pages. Closes: #106117 + - Patch for glibcbug to correctly handle bad EDITOR setting. + Closes: #128699 + - Include glibcbug.1 manpage. Closes: #128701 + - Add patch to fix segv in localedef. + - Patch for locale.1 and localedef.1 to add missing LC_* vars. + Closes: #114174 + - Fix for the d_fmt field in de_CH. Closes: #27397 + - Fix locale.alias so Russion charset is KOI8-R instead of ISO-8859-5. + Closes: #62586 + - s/Jun/Juni/ s/Jul/Juli/ for sr_YU. Closes: #131846 + - Typo in categories.def. Closes: #133379 + - Update iso-4217.def Closes: #133380 + - Re-enable el.po since we are using newer gettext. Closes: #133383 + * nscd.conf.5: Clarification. server-user option cannot be used with + -S/--secure. It will fail to start. Also note that using server-user other + than root may break some lookup services. Closes: #139433 + * Completely remove the pthread man pages. They are _way_ out of date (last + updated in 1998 according to the ChangeLog). Use the info or html docs + instead. Feel free to send me mucho patches for them, if you want them + back. Closes: #139052, #139042 + * Various LSB conformance patches from Joey Hess. Closes: #136815 + * ia64 patch for R_IA64_NONE relocs. Closes: #135314 + + -- Ben Collins Sun, 24 Mar 2002 09:49:37 -0500 + +glibc (2.2.5-3) unstable; urgency=low + + * Fix logic in locales postinst which would fail on empty or missing + /etc/environment. Closes: #132025, #131999, #132244 + * Remove build-dep on gcc-3.0-sparc64 + * Fix case where no locales are selected, so the only choices for LANG are C + and None. This left a hangin comma which debconf doesn't seem to like. + Closes: #132245 + + -- Ben Collins Sun, 3 Feb 2002 23:13:29 -0500 + +glibc (2.2.5-2) unstable; urgency=low + + * Remove glibc22-m68k-resource.dpatch. Patch is already included upstream. + Closes: #130922 + * Fix thinko in locales postinst. Also add a "None" option for LANG, and + check for it in postinst. + * HPPA correct unwind setting, from Matthew Wilcox. Also update patch + splitting the linuxthreads and rel/rela changes. Closes: #131216 + * Fix copyright shown for the GNU Libc Manual. Closes: #130866 + * Fix problem where a binary-NMU rebuild of libc would provide a version + that was incompatible with the current locales dep. + * Fix atomic_lock_t decleration for hppa. Closes: #131367 + * Fix logic in locales where LANG wasn't being set in /etc/environment. + Closes: #131040 + * Moved SUPPORTED list to /usr/share/i18n/, since policy says it can't be in + /usr/share/doc/locales/. Fixup debconf scripts to notice this. + * A few patches from CVS: + - Fixes bad optimization in dynamic linker + - Updates m68k and arm for unwind + - tzdata2002b updates + - Some irrelevant (for us) x86_64 updates + * Patch from Gerhard Tonn for s390-32 for bits/resource.h. + * libc6-sparc64-dev: Change dep to gcc-3.0 instead of gcc-3.0-sparc64. The + packages are now merged. + + -- Ben Collins Fri, 1 Feb 2002 11:52:54 -0500 + +glibc (2.2.5-1) unstable; urgency=low + + * New upstream. Closes: #122980, #126441 + * locales.postinst: Add a signature line to /etc/locale.gen so people can + take over the file manually instead of through debconf. + * Added -de template for locales. Closes: #114078 + * Removed need for generate-config.mk. SUPPORTED list for debconf is now + generated dynamically using SUPPORTED.gz. + * Added debconf option in locales to choose LANG= default in + /etc/environment based on contents of /etc/locale.gen. Closes: #117216, + #120410 + * Patched nscd init script. Patch supplied by Grant Bowman. Closes: #121942 + * Do not install tzconfig(8), Closes: #123679 + * Removed obsolete BSD license clause in debian/copyright. Closes: #123821 + * Applied spelling patch for locales description. Closes: #125092 + * Updated glibc-doc description to note that it includes html docs too. I am + not, however, splitting info and html docs into seperate packages. Closes: + #125825 + * Check for the existence of libdb.so.3 before cat'ing it. Closes: #126459 + * Added powerpc sysconf patch from David Schleef. Closes: #127560 + * Added SuperH support. Closes: #127740 + * No longer apply glibc-vs-gcc3 patch. Implementation merged upstream. + * Last minute ARM patch to fix unwind. + + -- Ben Collins Thu, 24 Jan 2002 00:31:40 -0500 + +glibc (2.2.4-7) unstable; urgency=low + + * glibc22-hppa: Fix mips/pt-machine.h, so that it patches both the ISA-1 and + ISA-2 cases of testandset(). Also add IPC updates from Willy. Closes: #120383 + * glibc22-hppa: Updated, from Mathew Wilcox. + + -- Ben Collins Mon, 3 Dec 2001 12:09:26 -0500 + +glibc (2.2.4-6) unstable; urgency=low + + * glibc22-hppa.dpatch: Fix lock_held macro on non-hppa. This patch is now + enabled by default for all archs. + * Update patches for HPPA dynamic loader from. + * m68k resource.h patch from Roman Zippel, Closes: #118909 + + -- Ben Collins Fri, 9 Nov 2001 21:20:59 -0500 + +glibc (2.2.4-5) unstable; urgency=low + + * Added patch from Ulrich to really fix the [x-] fnmatch() case. + Closes: #96013 + * Updated gcc3 compat patch. + * Several changes to ldconfig: + - Parse the config file before checking system directories. This is needed + to make sure it is possible to override system directories. + - Cleanup the config file parsing routine a bit. Make sure we open the + config file with correct perms in case it gets created by this call. + * Pulled from CVS as of Oct 27, 2001: + - Includes fnmatch fix upstream. + - strxfrm fix. + - dlfcn fix for C++ program usage. + - ENABLE_NLS fixes for various functions (doesn't affect us, since it is + mainly meant for non-nls builds). + - IPv6 reverse lookup fixes. + - Lots of libm fixes. + - Several language translation updates. + - Several m68k setjmp fixes. + - Some mips fixes merged. + - Timezone updates. + - S390 ucontext fixes. + - Several hurd fixes. + - ELFOSABI_* Updates. + * Update the kernel headers on all the systems I build for (arm, ppc, i386, + mips, sparc, sparc64, hppa). + * Added "es" template for locales, from Carlos Valdivia. Closes: #117413 + * Fixup ttyname patch for devfs, which broke some things. Closes: #117551 + * Remove the errno.texi explanation for _GNU_SOURCE for two defines. The + thing is, according to the libc manual conventions, this is not the + correct way to handle it. In fact, it is already done according to the + convention of the rest of the manual. The two items are tagged with the + "GNU" comment, meaning they are GNU extensions. The libc manual explains + in its introductory chapters that this means it needs the _GNU_SOURCE + define. + + -- Ben Collins Mon, 29 Oct 2001 20:25:40 -0500 + +glibc (2.2.4-4) unstable; urgency=low + + * Hopefully fix the damn .html docs. Looks good to me. Closes: #84237, + #89382 + * Fix inttypes.h typo. Closes: #114483 + * Disable sanity checks for gcc-3.0 archs, Closes: #114724 + * Fix entry for locales depending on debconf. Closes: #115155 + * Fix echo commands when generating locales.config. The -e option is not + portable. + * New hppa patch from several people. This, along with the .10 binutils, + should fix all of hppa's problems. + * Apply devfs compatibility patch for ttyname. Closes: #74911 + * Add (modified) patch for ldconfig to create ld.so.conf if it doesn't + exist. Original patch from David Whedon, Closes: #98763 + * Clarify some errno.texi functions wrt _GNU_SOURCE. Patch from Jeremiah + Savage. Closes: #99683 + * Add conflicts/replaces for all the potato locales that cannot be installed + with this glibc (and are actually supported now). Closes: #108015 + * Fix comma in confnames.h to make all the -pedantic folks happy :). + Closes: #113498, #113816, #114672 + * Include a mips termios.h cleanup patch, sent by Ryan Murray, patch by Ralf + Baechle. + * Add Russion template for locales package, by Ilgiz Kalmetev. Closes: + #114303 + * Fix sed in ia64/ldd-rewrite.sh: Closes: #115784 + * Add Brazilian Portuguese locales template from Andre Luis Lopes, closes: + #116435 + + -- Ben Collins Wed, 24 Oct 2001 12:28:49 -0400 + +glibc (2.2.4-3) unstable; urgency=low + + * Apply patch to fix es_AR number formatting. Closes: #108373 + * Fix SA_* defines on some archs. Patch sent upstream, and accepted. + Closes: #113273 + * Brought in dynamic module patch from CVS that fixes + mozilla/galeon/konquerer. Closes: #113457, #113481, #113708 + * Fixed libc postinst for the readlink call. Based on patch supplied by + Branden Robinson. Closes: #113459 + * Increase shlib dep to 2.2.4-2. Closes: #113731 + + -- Ben Collins Sat, 29 Sep 2001 23:38:11 -0400 + +glibc (2.2.4-2) unstable; urgency=low + + * Updates from CVS Head, includes some s390 fixes, closes: #109072 + * Reincluded some missed patches (notable the fakeroot fix), closes: + #109162 + * Include the iconvconfig program in the libc6 package, closes: #109600 + * Fixup locales/libc dep back to the old way, closes: #109850 + * Apply patch for locale-gen.8, closes: #110554 + * Apply patch to make /etc/locale.gen generated by debconf interface. + Thanks to Ho-seok Lee, closes: #110980, #110661 + * glibc22-fts.dpatch: Remove, fixes upstream now. + * libc/DEBIAN/postinst: Before calling init u, make sure /proc/1/exe + resolves to /sbin/init. This should help ensure we don't muck up + debootstrap. closes: #110615 + + -- Ben Collins Fri, 7 Sep 2001 14:52:02 -0400 + +glibc (2.2.4-1) unstable; urgency=low + + * Final release of 2.2.4. Not much changed from 2.2.3-11. + * Remove cruft from debian/patches/ + + -- Ben Collins Thu, 16 Aug 2001 09:29:14 -0400 + +glibc (2.2.3-11) unstable; urgency=low + + * Updated to HEAD of CVS as of Aug 11, 2001 + - Misc fixes found in 2.2.4pre2 + - This is basically 2.2.4pre3 + * New glibc-vs-gcc3 patch, closes: #108408, #108364, #108415, #108364, + #108454, #108476 + + -- Ben Collins Sun, 12 Aug 2001 10:02:12 -0400 + +glibc (2.2.3-10) unstable; urgency=low + + * Updated to HEAD of CVS, as of Aug 4, 2001 + - Mostly arch specific bug fixes. + - This is actually the same as 2.2.4-pre2 (releasing in a day or so) + * Ok, I give up. I don't want any more bug reports, so I've added the + nfs getdents fix. If it breaks anything, I will hunt down all of those + who submitted the patch/bug. closes: #86877 + * Added two more Q/A's to the Debian FAQ (AKA "The Overfiend Clause" :) + This documents Debian's glibc following stable CVS, and also + kernel-headers desync. + * Added latex2html to build-dep-indep, closes: #101662 + * Fix tzconfig so it handles ambiguous names correctly, closes: #105580 + Patch by Martin Pool + * Add copyright and license to tzconfig, closes: #105581 + * Updated libc0.2 hurd dep to (>= 20010718-1), closes: #106291 + * Include locale-gen.8 manpage from Eduard Bloch + * Duh. We don't need to cat in the saved libdb.so.3 to the new location. + Ldconfig does the work for us by creating a symlink to it. + * Remove sysdeps/powerpc/memset.S so ppc gets the generic C version for + now (which is actually faster on most machines anyway), until they get + their memset.S fixed (especially for Power3). + * Added updates for hppa patch from Matthew Wilcox. + * debian/rules.d/control.mk: Added hppa to list of archs for libc6 + + -- Ben Collins Tue, 7 Aug 2001 10:11:22 -0400 + +glibc (2.2.3-9) unstable; urgency=low + + * Really fix the timezone problem this time. I moved the UTC check + before the TZ check, and then reuse that to get the TZ date, instead + of the other way around. That solves the problem. Using this method, I + can get the UTC date first setting LC_ALL=C, and then allow the + override for the real UTC0 and $TZ date, so we get lang support + without breakage now. + + -- Ben Collins Tue, 24 Jul 2001 12:19:48 -0400 + +glibc (2.2.3-8) unstable; urgency=low + + * Use glibc- instead of glibc_ for the provides between libc and + locales. Underscores are actually not allowed in package names. + * CVS as of July 22, 2001 + * Use LC_ALL instead of LANG in libc postinst, closes: #106043, #106078, + #106081, #106187, #106215 + * Use Noninteractive, not noninteractive in postinst's, closes: #105902 + * SUPPORTED file ends in .gz...guess some people can't bother to add + that themselves. Also, add notes about locale-gen closes: #105915 + * Fix cp -L calls, use cat instead to make sure we avoid any command + line problems, closes: #106120, #106096 + * MIPS WARNING: The MAP_BASE_ADDR patch does not apply anymore, since it + seems that whole bit of code was removed. MAKE SURE THIS DOESN'T BREAK + ANYTHING! :) + + -- Ben Collins Sun, 22 Jul 2001 23:04:15 -0400 + +glibc (2.2.3-7) unstable; urgency=low + + * CVS as of 7-9-2001, closes: 101308, 103251, 100398, 100398 + * New hppa patch, still not enabled by default since I got deadlocks in + the linuxthreads tests (ex2 and ex10) on sparc. + * Increased shlibdep to 2.2.3-7 + * SUPPORTED locales list is now in doc dir, and locale.gen is a + non-changing file (still a conffile, but it doesn't change when glibc + changes). + * Fix fts patch so it doesn't break Hurd, closes: 102826 + * Make libc provide glibc_$DEBVERSION, and locales depend on it. This + way we make sure everything matches up. closes: 100605, 100605, + 101034, 100605, 99344 + * Added some more UTF-8 locales, closes: 103742, 86372 + * Fixed hurd's ldconfig, closes: #101691 + * Already fixed ld_envlib_path, closes: 101622 + * In libc preinst, detect if we are upgrading from a version where we + used to provide our own libdb.so.3, and keep a copy. We reuse it + during postinst. This way, we have no time where libdb.so.3 doesn't + exist. closes: 101795, 103586 + * Removed depends on libdb2 from libc6, since our hack above makes it + pointless. Now, libc6 should get installed before libdb2 (since it + depends on libc6), which will leave a working libdb.so.3. After libdb2 + is upgraded, the new libdb.so.3 will be installed, which will work + since the new libc6 that it depends on is also working. + * Fixed calls for zoneinfo as per JoeyH's suggestion. closes: 100461 + * Updated copyright notice since LGPL 2.1 is now used. + + -- Ben Collins Tue, 10 Jul 2001 14:00:59 -0400 + +glibc (2.2.3-6) unstable; urgency=low + + * CVS As of 6-9-2001, closes: #100055 + * debian/sysdeps/depflags.pl: Fix typo where netbase/netkit-rpc wasn't + being added to libc-dev control flags, closes: #98735, #99460, #99990, + #100382 + * Moved rpcinfo from /usr/sbin to /usr/bin... closes: #100279 + * Added fts() security patch + * Updated patch for HPPA, now also enabled per default + + -- Ben Collins Sat, 9 Jun 2001 16:35:29 -0400 + +glibc (2.2.3-5) unstable; urgency=low + + * CVS as of 5-28-2001 + * Added fake ldconfig script for hurd, provided by Robert Bihlmeye, + closes: #95189 + * Add replaces for netbase (<< 4.0), closes: #98708, #98735 + * Install rpcgen/rpcinfo manpages, closes: #98710 + + -- Ben Collins Mon, 28 May 2001 14:36:32 -0400 + +glibc (2.2.3-4) unstable; urgency=low + + * CVS as of 5-24-2001 + * Add forgotten mips ld.so patch + * Added s390 to arch lists, closes: #97718 + * Add m68k fPIC patch for libc_nonshared, closes: #97663 + * Add LD_LIBRARY_PATH to --library-path, closes: #98638 + + -- Ben Collins Thu, 24 May 2001 16:10:09 -0400 + +glibc (2.2.3-3) unstable; urgency=low + + * Upgraded to CVS as of 5-20-2001 + * New HPPA patch (applies cleanly) + * Fix prep.sh, closes: #97600 + * Add rpcinfo to libc, and rpcgen to libc-dev. Add Conflicts/Replaces + for both packages with netkit-rpc, closes: #93280 + + -- Ben Collins Mon, 21 May 2001 09:56:47 -0400 + +glibc (2.2.3-2) unstable; urgency=low + + * Enable threads for hppa + * Updated to CVS as of May 10, 2001, closes: #96968, #94501 + * Run locale-gen on upgrades from before 2.2.3-1, closes: #96767, #96913 + * Should be fixed, old regex problems, closes: #86728, #88677 + * This should be fixed now too, closes: #88662 + * There were some regcomp related fixes that appear to have fixed this, + closes: #93167 + * Build-Depends-Indep: s/perl5/perl/, closes: #95782 + * Updated eo_EO from Edmund GRIMLEY, closes: #78085 + + -- Ben Collins Thu, 10 May 2001 13:54:42 -0400 + +glibc (2.2.3-1) unstable; urgency=low + + * Were up to 2.2.3 now. + * libc-dev: Conflict with older gcc's that do not have the weak-sym or + pic-kludge patches. + * ldd.dpatch: New and improved fix for the "no execute permissions" + buglet. Now, ldd will not call the "file" command for every file. This + should speed up dpkg-shlibdeps a lot. + * Removed some obsolete db2 patches + * Removed some other obsolete patches + * Conflict with libnss-db that used db2 + * Depends on current libdb2 which contains libdb.so.3...hopefully this + wont make apt choke because of a dep loop + * Use the new gcc-3.0 to build sparc64 64bit libc/libc-dev packages. + * Build-Depend += gcc-3.0-sparc64 [sparc] + + -- Ben Collins Thu, 12 Apr 2001 21:08:33 -0400 + +glibc (2.2.2-4) unstable; urgency=low + + * Yeah! We can disable our libdb.so.3 (db2) interface in favor of the + one in libdb2. That package now has a symboled version so we can start + to migrate away from this cruft. However, we do still have the db1 + support. + + -- Ben Collins Fri, 23 Mar 2001 19:17:39 -0500 + +glibc (2.2.2-3) unstable; urgency=low + + * Disable building of optimized libs for now. I did not forsee the + problems involved with symbol skew between ld-linux.so.2 and the + optmized libc.so.6. As of now, I can see no way around this. + * Make libc6 conflict with the optimized libs for now, so we can get rid + of them, closes: #90753, #90758, #90763, #90770, #90778, #90779 + * RPC patch from Jakub Jelenik, probably closes: #90830 + * Add build-dep for file, m4 not needed now that opt libs are gone. + closes: #90773 + + -- Ben Collins Fri, 23 Mar 2001 10:31:24 -0500 + +glibc (2.2.2-2) unstable; urgency=low + + * Fix ld.so shlib output, closes: #87655 + * Update to latest CVS, as of 2001-03-21 + * manual/arith.texi: Fix documentation of fast and least integer + typedef's. Patch sent upstream, closes: #84711 + * glibc22-getaddrinfo.dpatch: Add fix from Hiroyuki YAMAMORI + , closes: #85304 + * i386/mathinlines.h: Fix non-ANSI ?: construct, closes: #85322 + * sysdeps/unix/sysv/linux/mips/bits/mman.h: Add and fix some madvise + declerations, closes: #86676 + * Explicitly list inetd to be restarted, closes: #86715 + * Updated Hurd SIOCS patch from Marcus Brinkman + , closes: #87903 + * Added eo_EO locale by Robert Thomson + * Check to make sure any services actually need to be restarted, closes: + #88440 + * Conflict with old strace, which appears to break under new libc6, + closes: #88775 + * Make sure we remove any CVS cruft, closes: #90173 + * Removed -O2 override for hppa, at Matt Taggart's request. + * Build-Depend on latest gcc so we get the weak sym stuff right. + * Made opt libs compiled specifically for 2.4.0+ kernels. This should + make them even faster and smaller since it reduces the compatibility + code. + * libc-opt/DEBIAN/preinst: Check to make sure we are running under a + 2.4.0 kernel, and under the correct cpu + * libc/DEBIAN/{prerm,postinst}: Changed check for package name to use + basename of $0 as opposed to uname. + + -- Ben Collins Fri, 23 Mar 2001 10:30:47 -0500 + +glibc (2.2.2-1) unstable; urgency=low + + * New upstream version + * Updated to CVS as of 2001-02-16, should make alpha build now. + + -- Ben Collins Thu, 15 Feb 2001 23:55:24 -0500 + +glibc (2.2.1-4) unstable; urgency=low + + * Fixup section "disparities" between control and overrides on + ftp-master + + -- Ben Collins Tue, 13 Feb 2001 11:47:22 -0500 + +glibc (2.2.1-3) unstable; urgency=low + + * Update CVS, should fix regex memleak, closes: #85788 + + -- Ben Collins Mon, 12 Feb 2001 22:57:56 -0500 + +glibc (2.2.1-2) unstable; urgency=low + + * Synced with CVS as of 2001-02-09, 2.2.2-pre1 + * shlibs: s/libdb1/libdb/ + * debian/rules (clean): remove shlibs file, since it is generated + * move getaddrinfo patch to it's own .dpatch + * Added some ia64 setups, closes: #82384 + * clean target, remove debian/control.in/libc?*, since they are + generated + * debian/control.d/main (locales): Fix description to reflect recent + merging of the i18ndata package, closes: #82347 + * Added hppa patch from Matt Taggart + * db/ndbm.h: s,db.h,db1/db.h, closes: #83171, #83443 + * Added extra disclaimer to the locale postinst warning. closes: #83394 + * libc/DEBIAN/postinst: change logic in check for init. closes: #84287 + + -- Ben Collins Mon, 29 Jan 2001 10:54:53 -0500 + +glibc (2.2.1-1) unstable; urgency=low + + * Upstream version 2.2.1 release, not many changes for us really, since + we've been using CVS all along. + * Included Hurd-SIOCS patch from Marcus Brinkman. + * segfault.c: s/__access/access/. Patch sent upstream. closes: #82026 + * Increase shlibdep version to 2.2.1 + * Merged i18ndata package into locales package. closes: #81990 + * Added snmpd to the restart list, closes: #81736 + * Resynced bug list. Count is 57 now... + + -- Ben Collins Wed, 10 Jan 2001 08:55:08 -0500 + +glibc (2.2-11) unstable; urgency=high + + * Synced to CVS as of 2001-01-09 - 52 unique bugs and decrementing... + This fixes the RESOLV_HOST_CONF security problem. + * Included nscd(8), nscd_nischeck(8) and nscd.conf(5) man pages by + Sebastian Rittau . closes: 66365 + * /etc/init.d/nscd: Actually uncomment and use the nscd_nischeck to see + if we want to start in secure mode. + * debian/manpages/getconf.1: New manpage for getconf utility. closes: + #63897 + * debian/manpages/catchsegv.1: New manpage for catchsegv utility. + closes: #70740 + * debian/glibc-doc/usr/share/doc-base/glibc-manual: Fix for new html + setup. + * sysdeps/posix/getaddrinfo.c (gaih_inet): Try absolute lookups first. + closes: #64192 + * manual/conf.texi (File Minimums): make _POSIX_PATH_MAX match the + posix1_lim.h value, patch sent upstream aswell. closes: #81628 + + -- Ben Collins Sun, 7 Jan 2001 16:15:34 -0500 + +glibc (2.2-10) unstable; urgency=low + + * Synced to CVS as of 2001-01-05 - 64 unique bugs and decrementing... + * manual/stdio.texi: getline(): Clarify the return value if EOF is + reached before a newline. Patch sent upstream aswell. closes: #14590 + * manual/string.h: basename()/dirname(): Added documentation for these. + Basename() required two definitions, one for the GNU version, the + other for the XPG version. Included examples. Patch sent upstream. + closes: #27586 + * DISCLAIMER: All three of the above changelog entries did in fact change + the state of the files in this source. It is the opinion of the + maintainer (hereto after refered to as GOD), that the changes made do + in fact make the package(s) better. GOD does not warantee that these + changes will make your life (be it sex life, or no life) better. GOD + does guarantee that you (hereto after refered to as NON-DIETY) will + gain great wisdom simply by using this(these) package(s). The + NON-DIETY shall not, in any event, hold GOD responsible for misreadings + of these statements. + + -- Ben Collins Fri, 5 Jan 2001 10:46:42 -0500 + +glibc (2.2-9) unstable; urgency=low + + * CVS synced as of 2001-01-03. Happy freaking new year. + * Remove FAKEROOT check, since we don't build locales now, we don't have + to worry about it. + * dlfcn/dlerror.c: dlerror(): Check for result->errstring being NULL, + closes: #80991 + * No offense, but I cannot be expected to debug fortran programs + compiled with a commercial(?), non-GNU compiler. Talk to them about + getting it to work. As for the "works on RH, but not Debian", most + likely that didn't do anything to make it very portable. closes: #68510 + * Tested with current NIS, and the test cases passes with no open fd's. + closes: #52222 + * Make note of AMD in libc6-i[56]86 descriptions. closes: #77791 + * Make note about some commercial programs not liking our optimized + libraries (IBM JDK for one). closes: #78656 + NOTE: To the submitter of this bugreport, I'm pretty sure the JDK + relies on frame-pointer to handle some special ass-backwards stuff, + which wont work with these libraries since they are compiled without + frame-pointer (making it hard to strace, and debug using these libs). + * Yes, semget(2) refers to SEMMSL, but nothing I can find says it should + be defined in userspace. closes: #11560 + * This patch only applies to kernel-headers, and since they don't need + to be used in userspace, it's ok to have some oddities, closes: #55578 + * I was able to write an 90 byte "Hello World" .c, and compile it into + an 800 byte static binary using -nostdlib and -Wl,-lc. closes: #21676 + * Making an ar archive from one .o is just silly, closes: #58606 + * Patch sent upstream. Might change a bit, but the result should be the + same, closes: #73003 + * I believe the reason the .pwd.lock file remains is to avoid a race + condition, where something might be waiting for the lock, and + unlinking it would cause something else to be able to obtain the lock, + even though it isn't available. closes: #14093 + * I tried to reproduce this, but glob kept working right for me. I think + the user is misusing the function. Most likely they are passing the + glob on the command line, which is in turn doing some escape + processing, and not working right with glob() itself. closes: #67921 + * In Debian, locales are not required to be installed. closes: #35875 + * Could not reproduce in the latest glibc. Upstream seems to have fixed + this. closes: #75163 + * Bug report log says this is fixed in glibc 2.1.1, closes: #36775 + * I think this was an issue with the gcc-2.95 compiler defaulting to + 486 instruction sets. This was fixed by gcc some time ago. closes: + #38998 + * The "order" directive in host.conf is supposed to be a space seperated + list of sources, not comma. This is a bug in host.conf(5), which has + already been reported. I'm closing this one to avoid duplication. + closes: #35731 + * Appears to be related to #36775, but I checked the test case anyway, + and it worked as expected. closes: #35035 + * I tried the test program, and it worked fine. So either guile or glibc + fixed the bug already. closes: #36030 + * The locales package is not referenced by any other package ATM. + closes: #38742 + * Symlink /usr/share/zoneinfo/localtime to /etc/localtime for libc5 + compat. closes: #48705 + * SUSv2 defines putenv as "int putenv(char *)", closes: #60960 + * From my understanding of of the SUSv2 definition, the pointer + reference of inbuf may be incremented to the current position of + translation. So in actuality, the object is not const. GLibc + interprets this using the __restrict compiler option (defined in gcc's + later than 2.92, e.g. egcs 1.1.2, and gcc 2.95). closes: #77312 + * Fixed ambiguity problem in tzconfig, closes: #69045 + * This was a netscape/libc5/plugin issue, closes: #50672 + * User error. He is setting all of the fd's in the pollfd struct to -1, + which returns POLLNVAL, which is the expected response. closes: #51877 + * objstack_* does use const definitions now, closes: #68918 + * This was the old xmms-segv's-on-exit bug, fixed by glibc 2.1.9X (can't + remember which version exactly). closes: #74345 + * leading zero makes sscanf determine the number as an octal, closes: + #69278 + * zic.8: zdump is section 1, not 8. closes: #72095 + * Old libdb2 upgrade issue, fixed in during the 2.1.9x uploads. closes: + #72663 + * Update this changelog to include the revisions from the stable (potato) + updates. + * Patch sent upstream. Fixes timezone showing up as "/etc/localtime". + closes: #71060 + + -- Ben Collins Tue, 2 Jan 2001 20:22:11 -0500 + +glibc (2.2-8) unstable; urgency=low + + * The one-liner fix for devpts.sh + * Patch sent and accepted upstream, closes: #80485 + * CVS synced as of 2000-12-30 + + -- Ben Collins Thu, 28 Dec 2000 09:49:30 -0500 + +glibc (2.2-7) unstable; urgency=low + + * Synced to CVS as of 2000-12-25 + * Patches sent upstream, closes: #75334, #34550, #71928, #11839, #75349 + closes: #38392, #68923, #77416, #39440 + * TCPOPT_EOL, TCPOPT_NOP, TCPOPT_MAXSEG: not declared in glibc (was a + libc5 thing), so they don't need to be documented, closes: #9888 + * Use texi2html for .html output, which actually does split the file, + closes: #61257, #76678 + * Hmm, not sure I can fix hamm->slink upgrades for libc6-doc->glibc-doc, + closes: #32792, #32801 + * Fixed by upstream, closes: #62173, #10686, #37014, #54051, #57297 + closes: #53786, #74611, #37162, #41388, #60255, #63569, #67204 + closes: #67205, #60034, #42850, #60320, #39594, #59800, #48371 + closes: #66803 + * Could not reproduce. My test program showed that it resolved the + libpthread properly. I am going to assume user error, or some + funkiness on the user's system. closes: #78585 + * This is reported as a kernel issue, and the submitter was asked to try + a newer kernel, but never replied. I'm closing on the grounds that I + believe it was a kernel issue, closes: #45693 + * The iconv test program seems to work as expected in glibc 2.2, + closes: #39762 + * lt_LT uses ISO-8859-13 now, closes: #10358 + * Things relying on sort to work correctly, should set LANG=C to get + expected behavior, closes: #56195, #61746, #69544 + * Fixed long long ago, closes: #58226, #58586, #35948, #76246, #53530 + closes: #39584, #13800, #34452, #53894, #54096, #42490, #30683, #32468 + closes: #29619, #34816, #35113, #39071, #35334, #35497, #42867, #36212 + closes: #59316, #62826, #35131, #36952, #43659, #24090, #36076, #45041 + closes: #54156, #37307, #27146, #34729, #47457, #34699, #35250, #34538 + closes: #30054, #35389, #36655, #36762, #36932, #36933, #61163, #58954 + * We no longer build locales at build time, but at install time, closes: #69172 + * I don't see the problem in this testcase, works for me, closes: #73018 + * debian/control.in/main: Show in description that nscd also handles + host lookups, closes: #48716 + * Unreproducable, probably fixed in 2.2, closes: #57026, #42726, #40768 + closes: #45848, #58367, #62990, #40870, #67296, #38897, #60099, #66769 + * nscd now has a --invalidate option, closes: #42727, #43729 + * adduser now calls nscd -i, so works correctly, closes: #36080 + * Hey, it's one of my bugs, and it isn't any good! closes: #34940 + * Yeah, I agree with the bug report. If you don't want nscd to run on a + particular system, just uh, don't install it, closes: #36621 + * Setting Fixed to, closes: #47289 + * Do not use UNIX_PATH_MAX, use SUN_LEN(ptr) (defined in sys/un.h), + closes: #61963 + * _PATH_DEFPATH is the bare minimum for linux. If you want more, use the + PATH env, closes: #31983 + * The man page is wrong. dlerror.c, and dlfnc.h both show that the + return string is allocated, so it is not const. closes: #35694 + * All together now, "Using kernel headers in userspace is BAD", + closes: #12207, #19646, #43105 + * Ran the test case with -O0, -O2, -O3, -O6 on sparc and i386, and did + not see the problem reported, closes: #37154, #27516 + * Seems perl has worked around this (or libc has), since perl modules + are building fine, AFAICT, closes: #34110 + * Linus does not suggest doing /usr/include/{linux,asm} symlinks + anymore. closes: #24949 + * This isn't a glibc bug, it was a gdb bug that is now fixed. closes: #27544 + * lrint is defined with -D_ISOC99_SOURCE, closes: #43530 + * No reference to which docs, nor is there a test case, so: closes: #63511 + * Doh, this was already fixed by me in 2.2-6! closes: #79666 + * User malfunction, not a bug. closes: #39648, #50261, #36075 + * Including stdio.h only ensures that getline will work, it does not + guarantee you that it's return type is defined, which you must do + yourself. closes: #62511 + * O_LARGEFILE is only usable when compiling with -D_LARGEFILE64_SOURCE, + closes: #68873, #52455 + * Ok, strcoll doesn't seem as slow now as shown in the bug report when + LANG is set. The thing is, this function will always be slower when it + has to take localization into account. closes: #62803 + * Re bug #44093 + a) I'm pretty sure there is no problem with libc translating errno + from the kernel, else we'de have some serious problems. + b) The ioctl() manpage cannot document all returns (and in fact it + says that it does not document all ioctl types). + c) I'm pretty sure the EIO return on this particular case is generated + by the kernel. + closes: #44093 + * Tested this, and I was able to get 1022 temp files from mkstemp on a + single run, using the same template, closes: #31415 + * Ulrich Drepper, Re: sortlist in libresolv: + >It never was and in general is not wanted. Beside, it is another poor + >DNS feature which doesn't work with IPv6. Finally, the NSS gethost*() + >functions don't have the supporting code. + closes: #64327 + * lpd should not be using internal glibc functions. closes: #33686 + * makedb -V has no translation now, closes: #34702 + * Checking printf returns is left to the programmer, closes: #28250 + * Ok, the 51 pages of flaming in tis bug report leads me to believe that + this will never be resolved in glibc. IMO, it is up to the programmer + to be smart enough to check these things (where it matters). I am + closing this bug report on the precedence that it is not really a bug + because current functionality meets specs (and this bug report would + break that compatibility). This entire bug report should be archived + all on it's own. Hell, it should have it's own BTS just to track the + conversation. closes: #28251 + * mkstemp complies with SUSv2 and BSD 4.3. Changing it's bahvior would + cause portability problems. closes: #34793 + * Downgrading is not supported, closes: #36578 + * The test case did not use pthread_detach(), which resolved the issue. + closes: #25879 + * Fix devpts regex for when to mount devfs. closes: #79830 + * I believe Wichert found out that base-passwd did have a bug that was + causing this, and fixed it. closes: #55367, #79043 + * First of all, I do think tzconfig manpage needs to be in section 8. + However, changing the execute permissions does very little. In fact it + does nothing. Since normal users don't have perms to change the system + tz, it doesn't matter if they can execute tzconfig. closes: #62397 + * Added autofs to the services that need to be restarted. + closes: #80453, #79926 + * Use neat dpkg/awk one-liner from Adam Heath to get list of installed + services for the daemon check. closes: #80454 + * tzconfig allows you to choose UTC now. Just go to "12" (none of the + above), and then choose UTC. closes: #38556, #35094 + * Ok, my opinion on this is that you should check dlopen's return every + time. The example program shows that they did not do this. closes: #37604 + * Looks like a bug in haskell to me. closes: #37902 + * IIRC, all the BSD code is gone. closes: #58270 + * Bug report claims it is not a bug. closes: #42155 + * We have optimized libs now, so that should solve this. closes: #44619 + * I'm pretty sure this "large" wtmp file with only 3 entries is a sparse + file (check with du). closes: #43950 + * I seriously doubt that ld.so's LD_LIBRARY_PATH stopped working. + closes: #59110 + * I don't think this is a glibc bug. Sounds more like a cross-compiler + bug. closes: #68424 + * In Debian, 2.1.2 and 2.1.3 are binary compatible. closes: #60113 + * To get i18n/charmaps, you need to install i18ndata. closes: #65132 + * We don't need to mount shmfs anymore, closes: #65510 + * Fixed by dpkg, closes: #66913, #64906 + + -- Ben Collins Mon, 25 Dec 2000 08:42:49 -0500 + +glibc (2.2-6) unstable; urgency=low + + * Added m68k lchown fixes, plus removed conflict for libstdc++2.10-dev + on m68k. Bug/patch provided by Michael Fedrowitz + , closes: #78937 + * libc-opt: added memprof to the death list of packages that don't work + with our optimized libraries, closes: #79224 + * Added Provides: glibc2.2 to libc6/libc6.1/libc0.2 so I can make + locales dep on it, closes: #78495 + * CVS sync as of 2000-12-15 + * Fixed previously: closes: #75865, #77170, #75473 + * Added a "." counter while checking services for install, closes: #78881 + * %hhn works as expected in i386 in this version of glibc, closes: #79221 + * Looks like this is resolved, closes: #59429 + * The libc info page says not to use fgets on streams that may have NULL + char's, which sockets might, closes: #57729 + * This is probably fixed, if not reopen it please, closes: #24414 + * Well this bug report has no report in the BTS, I am going to assume + from the age and type of the title, that it is fixed, closes: #21272 + * Old ld.so issue, most likely resolved in hamm, closes: #46173 + * This bug is a simple programming mistake. For one the child never + * fills the buffer in certain cases, so it's contents are never flushed. + If the program called fflush after every output, then it works fine, + closes: #26226 + * The new upgrade code in libc postint should resolve this, closes: #64074 + * This is a compilation error. libc.so.6 does not contains fxstat + (libc-nonshared.a does), so if you don't link properly (like with + gcc), you will miss some symbols, closes: #36139 + * Similar to the above, also resolved, closes: #30427 + * Old ld.so bug, fixed, closes: #70658 + * Current localedef doesn't seem to segv on improper input, closes: #65634, #64878 + * YAOLDSOB (Yet Another LDSO Bug), closes: #42944 + * Lack of useful info in the BTS ("I suspect glibc" doesn't cut it), + closes: #36498 + * Someone needs to read release notes, closes: #41455 + * Uh, tzconfig works. Tzselect is not for changing timezones, but for + querying what the available ones are. From tzselect(1): + + Note that tzselect will not actually change the timezone + for you. Use the tzconfig(8) utility to achieve this. + + So you see, this is how it's meant to be, closes: #37409 + * Fixed in glibc 2.2, closes: #42512 + * a) all init scripts need to support restart + b) postinst uses stop/start now anyway + c) postinst fails much better now when things go wrong + + closes: #52914 + * getaddrinfo does DNS lookups regardless because of the nature of the + function. Also it handles ipv4/ipv6 better now, closes: #60743 + * I don't see why libc6 needs to create /etc/rcS.d/ when dpkg does it so + closes: #66138 + * strstr seems pretty fast now, closes: #10689 + * Latest emacs/libc6 is working fine, closes: #48476 + * YAOLDSOB, closes: #42135 + * libstdc++-v3/glibc2.2 compiles fine together, closes: #66757 + * strerror() with maxerror+1 works as expected now, closes: #40184 + * No other info, and no similar reports. Assuming user error, closes: #31465 + * Old ssh-nonfree getting a sigsegv is not a bug in libc6, but sshd, + closes: #41800 + * Restarting woffle already, closes: #74164 + * I believe this was due to some old nss1 issues, which are now resolved + during upgrades, closes: #35089 + * This is something libc6 itself cannot fix. Either way, rsh/rlogin is + broken by nature, closes: #19168 + * Well, I can't retroactively go back to hamm and add a stub for + setresuid(), closes: #29675 + * Fixed upstream a long time ago, closes: #39693 + * From unix/getlogin.c: + + /* Get name of tty connected to fd 0. Return NULL if not a tty or + if fd 0 isn't open. Note that a lot of documentation says that + getlogin() is based on the controlling terminal---what they + really mean is "the terminal connected to standard input". The + getlogin() implementation of DEC Unix, SunOS, Solaris, HP-UX all + return NULL if fd 0 has been closed, so this is the compatible + thing to do. Note that ttyname(open("/dev/tty")) on those + systems returns /dev/tty, so that is not a possible solution for + getlogin(). */ + + So basically, closes: #17528 + * Current nis/nss-compat code looks like it handles this right, + closes: #33197 + * libc6 cannot compensate for broken coding, closes: #42912 + * nprocs is fixed in 2.2, closes: #57101 + * libdb.so.2 does have shlibs now, closes: #39578 + * getcwd now returns NULL in the case shown in this bug report, so there + is no suprise if the program checks the return correctly, closes: + #27227 + * Adduser now restarts nscd as needed, closes: #37296 + * getaddrinfo fixes for ipv4/ipv6 fixes this, closes: #58713 + * Programs using libc5/libc6 at the same time via dynamically loading + libc5 apps from a libc6 apps) simply does not work, closes: #42088 + * getaddrinfo fix, closes: #70012 + * libc-64 was never meant to work right, closes: #53748 + * libNoVersion.so.1 is gone, closes: #37681 + * libc/postinst is file-rc friendly now, closes: #40053 + * libdb2 is no longer a reference for libdb stuff, closes: #61154 + * ld.so/ldconfig now have man pages, closes: #41917 + * Bah, libtricks is old and gone, closes: #39080 + * /var/state/glibc is gone, closes: #39562, #39705 + * glibc no longer includes db/db2, so look for docs in those seperate + packages, closes: #23547 + * scsi/scsi.h is there, closes: #31502 + * linux/joystick.h is there, closes: #38028 + * db.h is no longer in libc6-dev, closes: #39077, #74945 + * nprocs works on sparc now, closes: #52420 + * ldd now supports libc5 better, closes: #35644 + * Unreproducable, closes: #39582, #25773, #35624, #35123 + * /var/lib/misc/Makefile does not refer to /var/db, closes: #41947 + * llseek is obsolete, use lseek64 now, closes: #20988 + * Actually this looks like an error in the program, closes: #41952 + * Hmm, I would guess that libc6/libc5.4.38 is correct, and libc5.4.17 is + wrong, close: #21839 + * Fixed in the Before Time, during the Great Long-Long Ago, + closes: #39585, #34442, #59622, #24652 + * That's all for now... + + -- Ben Collins Fri, 15 Dec 2000 15:30:16 -0500 + +glibc (2.2-5) unstable; urgency=low + + * Update to CVS as of 2000-11-27 + - Includes hppa config stuff + * Ok, libsafe seems to be broken with our optimized packages. I + reassigned the bug report to that package. Most likely this wont be + fixed in libsafe for a bit, so for now I am making the optimized + packages conflict with it. The likely cause is the inline string + functions (-D__USE_STRING_INLINES). + * libc/postinst: added lprng and lpr to the list of daemons to restart, + closes: #78132 + + -- Ben Collins Mon, 27 Nov 2000 11:33:25 -0500 + +glibc (2.2-4) unstable; urgency=low + + * Dear god! Who changed things to a symlink in the kernel-headers and + didn't tell me of all people!? This must be a conspiracy! Some one is + out to get me! Everyone, I am going to go underground until the + security of my system is safe once again! (btw, I fixed the asm + include problem before I took a vacation from my sanity...) + + -- Ben Collins Thu, 23 Nov 2000 18:19:24 -0500 + +glibc (2.2-3) unstable; urgency=low + + * Damn, really remove libc6 dep from locales this time + * Include shlibs file with optimized libs, so dpkg-shlibdeps will be + happy with people using them. + * Added updates eo_EO locale + + -- Ben Collins Wed, 22 Nov 2000 15:40:12 -0500 + +glibc (2.2-2) unstable; urgency=low + + * Update to CVS to 2000-11-19 + - Includes the ldconfig patch, so removed from local set + - WOOHOO! Includes a patch to getaddrinfo, so that it only returns + failure if both ipv4 AND ipv6 lookups fail for PF_UNSPEC. + closes: #72764, #72905, #74692, #74692, #74367, #75388, #74692 + - Now includes the USAGI ipv6 patch + * control/locales: remove $(libc) dep...bad for a arch-all package, + closes: #76830 + * Move locales to binary-indep targets, closes: #76830 + * Add another hppa patch for _setjmp. Also, make hppa build with -O for + now. + * libc-dbg: make debug/ld*.so executable + * $(libc): suggests libnss-db + * locale-gen: set umask to 022, closes: #77191 + * etc/locale.gen: uncomment en_US as a default + * debian/sysdeps/optimized.mk: New make snippet, which allows building + optimized sets of runtime libraries. Right now, only sparc and i386 + seem to support hwcap, so we only build i586, i686 and v9 optimized + libraries. When other archs start supporting hwcap, then they too can + join the club. + * prep.sh: use ./version, so ash will work too + * Fixed prior to this release: closes: #71938, #75295, #75488, #76168 + + -- Ben Collins Sun, 19 Nov 2000 16:32:27 -0500 + +glibc (2.2-1) unstable; urgency=low + + * ALL HAIL GLIBC 2.2 RELEASE! Please put seats in full upright position, + remain seated until installed, and do not panic. The ride is almost + over. Once you have installed Glibc 2.2, please procede to our new + Debian-Rough-Ride, Xfree86-4.0.1, which is currently in progress. + * glibc22-ipv6-USAGI.dpatch: New patch, brings some stability and + compatibility to ipv6. This will most likely fix ipv6 issues with + things like ssh (let me know). + * Totally whack job on the locales package! We now do not provide *any* + precompiled locales. Instead we allow the admin to selectively decide + which ones to compile. + * Start of support for future upgrades. A new patch that should make + upgrades easier, post woody. This deals soley with the NSS module + problem and daemons running during upgrade. + * glibc22-hppa-config-fix: Fix config.{sub,guess} so hppa builds (From + the nice Debian folks at HP). BTW, where's my HP/PA BOX!? :) + * glibc22-ldconfig-fix: Fix bad allocation in ldconfig + * Bugs closed by this release: closes: #74057, #74362, #74692, #75249, + #75956, #76390, #76451 + + -- Ben Collins Fri, 10 Nov 2000 12:47:02 -0500 + +glibc (2.1.97-1) unstable; urgency=low + + * New upstream, + recent CVS + - includes lockf fix now + - fixes fmemopen issues + - adds ja_JP.ujis alias, closes: #72686 + - fixes for sparc mathinline.h + - lots of locale related updates + - mips patches are now included upstream + * depflags.pl: added replaces ldso for libc6 too (ldd), closes: #76126 + * Set --enable-kernel for Linux builds, so we can control how much + backward compatibility we have. + * Fix build-depends for gcc to include epoch + * Up'd the shlibs deps to 2.1.97 + * Removed static nss + + -- Ben Collins Tue, 7 Nov 2000 14:04:36 -0500 + +glibc (2.1.96-1) unstable; urgency=low + + * New upstream release (close to a final 2.2), closes: #73058 + - fixes ld.so reference counting (fixes some obscure bugs with + loadable modules, like NSS). + - fixes for ppc + - netinet/tcp.h fixes for uint8, closes: #74061 + - fixes limits.h/LONG_MAX declerations, closes: #75720 + * When running "$(MAKE) test" use -k so we complete as much as possible + * db/Makefile: remove patch that inhibited the db1 headers. Now, db1 + applications can be built again. This is temporary, to give poeple + time to migrate (db2 maintainer can use this for db_dump185), + closes: #72723 + * shlibs.mk: Use $(objdir)/soversions.i for generating the shlibs file, + which is more correct. Thanks to Marcus Brinkman for pointing this + out, closes: #75685 + * debian/glibc-doc/usr/share/doc-base/linuxthreads-faq: removed, no + longer in upstream source, closes: #74046 + * libc/postinst: added wu-ftpd, wu-ftpd-academ, slapd, openldapd and + logind to list of daemons to to restart, closes: #74158 + * libc/postinst: added support for filerc, thanks to Roland Rosenfeld + , closes: #74290 + * libc/postinst: check for existence of /sbin/init before restarting it, + closes: #75310 + * sysdeps/depflags.pl: Change g++ conflict to libstdc++-dev so we + precludes the right package (i.e., we need a newer libstdc++-dev, not a + new g++), closes: #75019 + * sysdeps/depflags.pl: make libc6 depend on libdb2 from woody so we + don't make apt act all weird with a three layer dependency of sorts + (ask Jason, I'm not sure of all the issues, but it seems it is needed + for now), closes: #75601, #75689 + * sysdeps/generic/lockf.c: explicitly set l_type to F_RDLCK (help from + Anton on this one) + * dl-machine.h.mips-2: new patch from Florian Lohoff to + fix ld.so segv on mips (I expect to see some .deb's in the official + archive soon, my Indy is getting jealous :) + + -- Ben Collins Sun, 29 Oct 2000 16:39:12 -0500 + +glibc (2.1.95-1) unstable; urgency=low + + * New upstream release + * debian/sysdeps/depflags.pl: Don't conflict/replace old libdb2, just + conflict. + * debian/libc/DEBIAN/postinst: Don't just check the service name with + "dpkg -s" since we miss things like inetd, which isn't in a package + named "inetd". Check for "installed" and "", then -x of the init.d + file + * debian/patches/ldd.dpatch: fixup so we don't get double output of + libraries, closes: #72710 + * debian/sysdeps/depflags.pl: Hmm...where did the libnss-db dep go + anyway? There now. + * debian/manpages/: Added man pages for ldd, ldconfig and ld.so + to replace the ones removed from ld.so, closes: #72648, #72727 + * locales fixed in -2, closes: #72752 + + -- Ben Collins Mon, 2 Oct 2000 11:18:48 -0400 + +glibc (2.1.94-3) unstable; urgency=low + + * updated CVS post-2.1.94 to 20000929 + * Put db/db2 libs back in for runtime use only (not linkable and no + headers). Closes a shitload of bugs, and makes everyone happy. Oh, let + the sun shine down. + * alpha-dwarf2-dl-machine: merged upstream + * debian/sysdeps/depflags.pl: removed all the db2 cruft conflicts + * debian/libc/DEBIAN/postinst: Use /etc/rc${rl}.d/ instead of + /etc/init.d/ when restarting services. This way, we don't start any + services that were meant to be off. Also, check for a non-zero exit when + starting and report such failures. This will give people a heads up to + any problems. + + -- Ben Collins Fri, 29 Sep 2000 16:29:59 -0400 + +glibc (2.1.94-2) unstable; urgency=low + + * Removed WANT_LDD, we now install it for every arch. This removes the + need for the ldso package completely, on systems without libc5 (YAH!) + * debian/sysdeps/depflags.mk: removed cruft + * debian/sysdeps/depflags.pl: new script with a simplified control deps + setup to replace depflags.mk. The former was getting too complex + * debian/rules.d/shlibs.mk: fixed logic preventing it from actually + installing the new shlibs file + * debian/sysdeps/depflags.pl: Added lots of conflicts for NMU'd packages + that fell prey to the db2 problems. + * debian/contron.in/main: Fix nscd depend on libc6 + + -- Ben Collins Wed, 27 Sep 2000 10:09:51 -0400 + +glibc (2.1.94-1) unstable; urgency=low + + * New maintainer, "Lector, si monumentum requiris, circumspice" + * New upstream version, pre 2.2 now + - crypt is now in glibc source, so is not a seperate tarball + - removed nss1 compat tarball + - db2 is gone aswell + - without db2, upstream split nss_db from main source (*sigh*) + * Added inetd to list of services to restart + * modfl/fmodl: documented in info pages, closes: #17874 + * Just a quick list of bugs that I can verify do not exist any longer, + closes: #45903, #26514, #46547, #32345, #30987, #48713 + * fcloseall: in the case of stdio/fcloseall.c, yes, it only ever + returns success. However, we use libio/fcloseall.c, who does in fact + have a chance to return EOF, closes: #20973 + * libio/libio.h: shows that the Stream Hooks do in fact take (void *) as + the first argument as shown in the protos, closes: #61497 + * trunc/floor: documented correctly in this release, closes: #65683, #65684 + * Hurd maintainers say this can be closed, closes: #54154 + * I'm pretty sure this isn't an issue anymore, else potato wouldn't be + releasing, closes: #35049 + * Sorry this isn't a glibc bug. The kernel handles error returns on a + failed executable. Most likely this is bin_interp's problem, but I + seriously doubt it will be fixed because of conventions, standards and + the like, closes: #22301 + * keyenvoy: no longer compiled for linux (it seems), closes: #47560 + * infnan: is defined now, closes: #19264 + * libc5 bug, no longer applies, closes: #11300 + * Make sure we copy over asm-sparc for sparc aswell as "generate-asm.sh" + script used to generate /usr/include/asm + * Disable parallel build on sparc (broken for some reason, might not be + sparc specific) + * devpts.sh: used a more devfs friendly version from bug submitter, + closes: #65276 + * libc/postinst: cannot reproduce problem, appears to be user error, + closes: #64865 + * glibc-doc: this bug is no longer valid, closes: #33759 + * We now use ldconfig from libc6 for all archs, ldso will conform. + * Change build deps to just "kernel-headers" for non-Hurd archs. With + mips and other coming down the pipe, this is bound to get ugly if we + specify the particular version for each. + * Add checks to automatically detect proper kernel-headers, error out + otherwise. + * hurd: add Depends: hurd (>= 20000803) for libc0.2 + * libpthread: soname version is now 0.9 + * debian/libc/DEBIAN/shlibs: bump to 2.1.94 + * libc6: add temporary depend on libdb2 + * debian/rules: check for FAKEROOTKEY, and fail if it's there. We cannot + build under fakeroot, we need real rewt. Fear my hacking skillz. + + -- Ben Collins Mon, 25 Sep 2000 11:30:45 -0400 + +glibc (2.1.3-14) stable; urgency=low + + * Stable upload for some serious issues in potato + * Patch to match glibc 2.2 to not set personality, closes: #72165 + * Arm ld.so patch, closes: #75982 + * Add check for FAKEROOTKEY, to $(checkroot) to make sure we build as + real root, and not fakeroot. This is required for locale definitions + to be generated properly. closes: #70806, #70876 + * Backport the fix to lockf(F_TEST), which fixed this on alpha and + sparc. + + -- Ben Collins Tue, 2 Jan 2001 17:15:44 -0500 + +glibc (2.1.3-13) stable; urgency=low + + * Damnit...used the 0824 patch set, now there's an 0827 :/ + + -- Ben Collins Fri, 1 Sep 2000 10:54:11 -0400 + +glibc (2.1.3-12) stable; urgency=low + + * Ugh, add three patches posted by Solar Designer which include the ldso + bug (better patch), locales bug, and md5 fixups. + + -- Ben Collins Thu, 31 Aug 2000 11:10:46 -0400 + +glibc (2.1.3-11) stable; urgency=low + + * Security upload for ldso problem + * Fix sparc headers too + * Might aswell change the maintainer too (So long Joel, you are missed) + + -- Ben Collins Thu, 31 Aug 2000 11:10:36 -0400 + +glibc (2.1.3-10) frozen unstable; urgency=low + + * The "Ask not for whom the feep tolls" release. + * zic -l will use hardlinks if /etc and /usr are on the same + filesystem, so revert to ln -s. + * Update Build-Depends to kernel-headers-2.2.15. + + -- Joel Klecker Fri, 28 Apr 2000 18:45:49 -0700 + +glibc (2.1.3-9) frozen unstable; urgency=low + + * The "Insert clever reference here" release. + * debian/patches: + - i386-sys-io-c++: Change '::' to ': :' to avoid confusing g++ + + closes: Bug#57914 + - zic-l: Fix -l in zic(8) (taken from OpenBSD) + * Teach tzconfig to acquire current timezone from /etc/localtime + symlink if necessary. + * Use zic -l instead of ln to make /etc/localtime symlink. + + -- Joel Klecker Fri, 21 Apr 2000 13:30:47 -0700 + +glibc (2.1.3-8) frozen unstable; urgency=low + + * The "What's my name? Say my name, bitch!" release. + * debian/patches: + - i386-linux-ucontext: Don't use ERR. + + closes: Bug#59962 + - ldd: + + Improve non-executable shared object handling. + + Revert ${RTLD} --list stuff. (closes:Bug#60869) + + alpha will break again, someone needs to fix ld.so. + * debian/control.in/main: locales: Depends: @libc@ (= ${Source-Version}) + This will insulate us from data format changes. + * Fix tzconfig man page (closes:Bug#61610,#61613). + * Revert /etc/localtime to a symlink (closes:Bug#60744). + + -- Joel Klecker Mon, 3 Apr 2000 08:40:07 -0700 + +glibc (2.1.3-7) frozen unstable; urgency=low + + * The "Light my Alpha fire with a SPARC" release. + * debian/patches: + - libc-pr-fixes: Fixes for post-2.1.3 PRs + + closes: Bug#59802,#59257 + - tzdata2000c: Includes AR timezone correction + + closes: Bug#59790,#59806 + - sparc-linux-getsysstats: Update so it actually works. + - alpha-dwarf2-dl-machine: Fix for unaligned traps from C++ EH code + + closes: Bug#59789 + + -- Joel Klecker Tue, 7 Mar 2000 10:31:42 -0800 + +glibc (2.1.3-6) frozen unstable; urgency=low + + * The "Smash Everything with a _Huge Steamroller_!" release. + * debian/sysdeps/gnu.mk: Define WANT_LDD (closes:Bug#59165). + * debian/libc/DEBIAN/preinst: Make this as /bin/bash script (closes:Bug#59613). + * debian/libc/DEBIAN/postinst: + - Only make /var/mail symlink on upgrades. + - Make this a /bin/bash script. + * debian/sysdeps/depflags.mk: (libc_control_flags) + C/R/P gconv-modules where necessary, Replace locales (<< 2.1.3-5). + * debian/control.in/main: Build-Indep-Depends: perl5 (closes:Bug#59350). + * debian/libc/etc/init.d/devpts.sh: Remove version check, checking for + the filesystems alone should be sufficient (closes:Bug#59576). + + -- Joel Klecker Sat, 4 Mar 2000 09:28:08 -0800 + +glibc (2.1.3-5) frozen unstable; urgency=high + + * The "Down, not across" release. + * 2.1.3 final. + * Pre-Depends were a bad idea + - quit using readlink. + - removed pre-depends on debianutils. + * Add devpts.sh again, this time not as a conffile. + * Build-Depends: gcc (>= 2.95.2-6) [alpha], remove sharutils [alpha]. + * Move /usr/lib/gconv to $(libc). + + -- Joel Klecker Sat, 26 Feb 2000 00:14:34 -0800 + +glibc (2.1.3-4) frozen unstable; urgency=low + + * The "Pain as bright as steel squared" release. + * glibc 2.1.3pre4. + * Remove debian/patches/po-it-po.dpatch, + debian/patches/powerpc-linux-sys-procfs.h.dpatch, and + debian/patches/powerpc-linux-syscalls.list-mmap64.dpatch; + Integrated upstream. + * Add back debian/patches/linuxthreads-lock.dpatch now that I know + what it's for (closes:Bug#58385). + * Bugs closed since devpts.sh is gone (closes:Bug#57584,#57698,#57580). + * debian/libc/DEBIAN/preinst: + - Save a copy of /etc/timezone in /etc/timezone.save. + - Convert /etc/localtime from link to file. + * debian/libc/DEBIAN/postinst: + - Use /etc/timezone.save if necessary. (closes:Bug#57885,#57922). + - Remove some unnecessary timezone code that caused some odd behavior + (closes:Bug#57456). + * tzconfig: /etc/localtime is a file, not a link. + * $(libc): Pre-Depend on debianutils (>= 1.13.1) for readlink. + + -- Joel Klecker Fri, 18 Feb 2000 17:35:19 -0800 + +glibc (2.1.3-3) frozen unstable; urgency=low + + * The "Pain as bright as steel" release. + * Move iconv, locale, localedef to $(libc). + * Remove devpts.sh. + * debian/patches/po-it-po.dpatch: + Add "portable object" for Italian (closes:Bug#57031). + * $(libc): Replaces: locales (closes:Bug#57482). + * Add Build-Depend for gettext (closes:Bug#57797). + + -- Joel Klecker Fri, 11 Feb 2000 13:02:13 -0800 + +glibc (2.1.3-2) frozen unstable; urgency=low + + * The "Dark, Naughty Evil" release. + * debian/patches/powerpc-linux-sys-procfs.h.dpatch: + Fix sys/procfs.h for powerpc-linux. + + -- Joel Klecker Mon, 7 Feb 2000 17:38:54 -0800 + +glibc (2.1.3-1) frozen unstable; urgency=low + + * The "From now on all of my world-killing weapons will be kept a TOTAL SECRET!" release. + or the "Brown Paper Bag" release. + * Really fix devpts.sh + (closes:Bug#56659,#56687,#56726,#56770,#56782,#56893,#56941,#56850,#56659,#57049,#57005,#57156,#57183). + * Give up and call it 2.1.3. + * CVS as of 2000-01-31. + * Move some docs from glibc-doc back to $(libc). + * Make /etc/init.d/devpts.sh and /etc/default/devpts conffiles (closes:Bug#57081). + * Re-enable libnss1-compat.. + + -- Joel Klecker Sun, 6 Feb 2000 08:55:41 -0800 + +glibc (2.1.2-13) frozen unstable; urgency=low + + * The "@!%$&! you, I use Debian" release. + * debian/patches/powerpc-linux-syscalls.list-mmap64.dpatch: + Fix mmap and stuff (closes:Bug#56343). + * Add sharutils [alpha] to Build-Depends, drop gcc dep. + * $(libc): conflict with locales (<< 2.1.2-12). + * locales: replaces $(libc)-bin (closes:Bug#56540,#56536,#56534). + * Fix devpts.sh (closes:Bug#56487,#56507,#56559). + * Update to CVS as of 2000-01-29. + * Restore HTML to glibc-doc (closes:Bug#56609). + + -- Joel Klecker Sun, 30 Jan 2000 01:14:05 -0800 + +glibc (2.1.2-12) frozen unstable; urgency=low + + * The "Cardboard Messiah" release. + * debian/rules: Form arch_packages and indep_packages using += instead + of $(filter-out ...). + * debian/package-rules/locales.mk: Remove cross-compiling kluges. + * debian/package-rules/libc-dbg.mk: Fix libthread_db (closes:Bug#55439). + * debian/control.in/main: + - locales: Architecture all -> any. + - Build-Depends: + + add make (>= 3.78) due to use of new warning and error make functions. + + add gcc (>= 2.95.2-5) for alpha. + * Merge gconv-modules back into locales. + * Move locale and localedef programs back into locales. + * Put devpts.sh init script back in $(libc). (closes:Bug#50913,#53842) + * Add Replaces for timezones back into $(libc). + * Kill $(libc)-bin. + * Restore `tzselect' script, which slipped out of $(libc) (closes:Bug#55377) + * Bugs fixed in -11.0.1 (closes:Bug#53705,#53659,#53680,#53754 + * Update to CVS as of 2000-01-26. + * Eliminate obsoleted patches. + + -- Joel Klecker Wed, 26 Jan 2000 16:44:12 -0800 + +glibc (2.1.2-11.0.1) unstable; urgency=low + + * Binary-only upload of locales. + + -- Joel Klecker Wed, 29 Dec 1999 11:45:56 -0800 + +glibc (2.1.2-11) unstable; urgency=low + + * The "If it ain't broke, you're not tryin'" release. + * Split out $(libc)-bin and libnss1-compat. + * Split debian/rules into debian/package-rules/*. + $(libc-bin): + - Install db_* programs as glibcdb_*. + - Move zic, zdump, locale, localedef, getent here. + - Use alternatives for db_*. (closes:Bug#50311,#50341) + * debian/mk/rules-* -> debian/rules.d/*. + * debian/ now resembles $(tmpdir) tree for . + * Improve setperms rule, so debian/perms can specify fewer files. + * New source unpacking system, see prep.sh. + * Remove devpts.sh, the init script is now in sysvinit. + * Improve debian/libc/DEBIAN/shlibs rule (debian/rules.d/shlibs.mk). + * debian/sysdeps/soname.mk: Bump shlib_depend. + * Add sysdeps files for $(DEB_HOST_GNU_CPU). + * Add debian/patches/glibc-mega.dpatch: + Selected patches from CVS (closes:Bug#48120,#52195). + * Add debian/patches/linuxthreads-mega.dpatch: + Selected patches from CVS. + * Add debian/patches/alpha-pt-machine.h.dpatch: + Fix pt-machine.h so that linuxthreads compiles on Alpha. + * Add debian/patches/db2-alpha-powerpc-mutex.dpatch: + Alpha and PowerPC implementations for db2 spinlocks. + (patches by David Huggins-Daines ) + (db2 patch slightly modified) + * Add debian/patches/powerpc-plt.dpatch: + 1999-10-07 Geoffrey Keating + * sysdeps/powerpc/dl-machine.c: Many minor formatting changes. + (OPCODE_LWZU): New macro. + (OPCODE_ADDIS_HI): New macro. + (OPCODE_LIS_HI): New macro. + (__elf_machine_runtime_setup): Change PLT code-generation scheme + for thread safety even with very large PLTs, better efficiency, + and to fix a cache-flushing bug. + (__elf_machine_fixup_plt): Likewise. + (__process_machine_rela): Don't use elf_machine_fixup_plt. + * Add debian/patches/sparc64-linux-lib64.dpatch: + Use /lib/64 and /usr/lib/64 instead of /lib64 and /usr/lib64. + * Add debian/patches/sparc64-linux-execve.dpatch: + Add __syscall_execve to sparc64 syscalls.list. + * Add automatic parallel build support for SMP systems. + * Fix broken parsing of DEB_BUILD_OPTIONS. + * Add framework to build libc6-64 and libc6-64-dev packages for sparc + (not enabled for potato). + * Split locales into `locales' and `i18ndata'. + + -- Joel Klecker Sat, 25 Dec 1999 09:54:29 -0800 + +glibc (2.1.2-10) unstable; urgency=low + + * The "Omigod! I overdosed on heroin!" release. + * debian/devpts.init: Create /dev/ptmx unconditionally. + * Restore correct nscd DEBIAN dir. + * Revamp rules a bit (split more parts into debian/mk/rules-*). + * debian/mk/sysdeps.mk: Split into pieces and include them. + * debian/patches/tzcode1999h.dpatch: + Update timezone data to 1999h release. + * Add stub for support for libc6-64 packages for sparc. + * Add one more last timezone sanity check to libc postinst (closes:Bug#49539). + * Always unpack linuxthreads add on and pass --enable-add-ons=crypt to + configure for hurd (closes:Bug#49459). + + -- Joel Klecker Mon, 8 Nov 1999 09:47:28 -0800 + +glibc (2.1.2-9) unstable; urgency=low + + * The "Service with a capital 'Bugger Off'" release. + * debian/copyright: Update for 2.1.2. + * debian/rules: Make each binary package depend on setperms (closes:Bug#48914). + * Move debian/libc-doc to debian/glibc-doc and eliminate the need for + postinst and prerm to be generated files. (closes:Bug#48786). + + -- Joel Klecker Sun, 31 Oct 1999 09:23:16 -0800 + +glibc (2.1.2-8) unstable; urgency=low + + * The "Can't Start a Fire Without a SPARC" release. + * Build with unstable dpkg. + * debian/patches/sparc-various.dpatch: Various sparc-specific patches + from Jakub Jelinek and David S. Miller . + + -- Joel Klecker Sat, 30 Oct 1999 06:55:33 -0700 + +glibc (2.1.2-7) unstable; urgency=high + + * The "Fuck Me Harder" release. + * sparc-linux: Replaces: ldso (<< 1.9.11-6). + * debian/{libc.postinst.in,libc/prerm}: Add /usr/doc symlink stuff (closes:Bug#48324). + * debian/control.in-main: Adjust locales depends. + Correct Build-Depends: field. + * debian/mk/source-rules.mk: Split unpack-source, source, and orig-source + targets from debian/rules. + * debian/patches/manual-texinfo4.dpatch: Use @ifnottex instead of @ifinfo. + * Use makeinfo --html to generate HTML version of glibc manual. + * Remove texi2html from debian/scripts. + * Fix debian/scripts/Makefile for cross-compiling. + * Correct debian/patches/string2-pointer-arith.dpatch for archs that don't + support unaligned memory accesses. + + -- Joel Klecker Fri, 29 Oct 1999 09:06:27 -0700 + +glibc (2.1.2-6) unstable; urgency=low + + * The "Evil Bitch Monster of Death" release. + * debian/rules: Move debian/control targets to... + debian/mk/debian-control.mk. + * Move debian/*.mk to debian/mk/. + * Use debian//* for control archive items. + Adjust debian/rules for this. + * Add setperms target to set modes of debian//*. + Make unpack-source and clean depend on it. + * Don't compile with -g when DEB_HOST_GNU_CPU is alpha. + * debian/patches/string2-pointer-arith: New file. + Fix "/usr/include/bits/string2.h:419: warning: pointer of type `void *' + used in arithmetic" (closes:Bug#45824,#44491,#44697) + * Change maintainer back to "Joel Klecker ". + * Update to CVS sources as of 1999-10-24. + * debian/patches/{linuxthreads-signals.c-ucontext,cs-po}.dpatch: + Fixes for source tree brokenness. + * Adjust clean target for new generated files. + * Add libresolv to $(libc)-pic. + * Add readlink.c and texi2html to debian/scripts to eliminate tetex-bin dependency. + * nscd: Install nscd_nischeck. + Sync nscd.init with upstream. + * Implement /usr/doc symlinks. + * $(libc): strip libpthread with --strip-debug. + + -- Joel Klecker Sun, 24 Oct 1999 20:50:58 -0700 + +glibc (2.1.2-5) unstable; urgency=low + + * The "One more week to go" release. + * debian/patches/localedata-SUPPORTED: + Oops, this patch wasn't actually being applied. + eo_EO, zh_TW.Big5, and es_AR should be [back] in locales now. + Back out zh_CN, the definition is broken. + * Remove sparc from HAVE_LIBC{4,5}, we want to install our ldd. + * debian/patches/sparc-linux-ldd.dpatch: New file. + Restore missing patch (in ChangeLog, not in source). + * debian/sysdeps.mk: Tighten alpha shlib_depend to libc6.1 (>= 2.1.2-1). + + -- Joel Klecker Tue, 28 Sep 1999 04:55:35 -0700 + +glibc (2.1.2-4) unstable; urgency=low + + * The "Perl Sucks" release. + * debian/libc.postinst: Steal updatercd shell function from sysvinit postinst. + Use it for devpts.sh. (closes:Bug#45867,#45879,#45880,#45885,#45895) + Bitch-slap perl maintainers. :) + * debian/rules: nscd: run nscd.conf through sed 's/adm/log/'. + * debian/patches/sparc-llnux-chown.dpatch: Update from Ben Collins. + * debian/sysdeps.mk: Drop sparc-linux depends back to libc6 (>= 2.0.105). + + -- Joel Klecker Fri, 24 Sep 1999 12:39:26 -0700 + +glibc (2.1.2-3) unstable; urgency=low + + * The "Pot-smoking Pikachu" release. + * debian/rules: Don't install ldd man page on i386/m68k (closes:Bug#45421). + check: Don't depend on build. + Symlink db_dump185 manpage to db_dump manpage (closes:Bug#42322). + $(libc)-pic: Install map file for libm. + Install map files as $(libdir)/libfoo_pic.map. + * debian/patches/zh_TW.Big5-locale.dpatch: + Split into localedata-charmap-BIG5_1984 and localedata-zh_TW.Big5. + * debian/patches/eo_EO-locale.dpatch: Rename to... + localedata-eo_EO. + * debian/patches/localedata-SUPPORTED.dpatch: New file. + Add eo_EO, es_AR (closes:Bug#37162), zh_CN.GB2312 (closes:Bug#38553), + zh_TW.Big5. + * debian/patches/pthread_create-manpage.dpatch: New file. + Correct pthread_create manpage to match texinfo documentation + (closes:Bug#22119). + + -- Joel Klecker Wed, 22 Sep 1999 19:16:01 -0700 + +glibc (2.1.2-2) unstable; urgency=low + + * The "Bite Me" release. + * debian/rules: $(libc): strip pt_chown. + Don't install ldd on i386/m68k. + Query dpkg-architecture variables individually. + Use bunzip2 -c ... | tar xf - instead of tar yxf. + $(libc)-pic: Add libm_pic.a. + check: New target; run test suite. + Call make with SHELL=/bin/bash, as the test suite seems to rely on + bash behavior. + Use --strip-unneeded (closes:Bug#40467). + * debian/sysdeps.mk: reorganize. + * debian/patches/generic-getenv.dpatch: New file. + 1999-09-10 Andreas Schwab + + * sysdeps/generic/getenv.c (getenv): Fix lookup for single + character variable on bigendian platforms without unaligned memory + access. + + -- Joel Klecker Thu, 16 Sep 1999 14:41:28 -0700 + +glibc (2.1.2-1) unstable; urgency=low + + * The "Gone Evil" release. + * glibc 2.1.2 final. + - Properly free mmaps for archs without spinlocks in db2 (closes:Bug#43786). + + * debian/rules: configure: Fix hurd part (missing \). + Add frame.o hack for alpha. + Use CFLAGS instead of default_cflags. + Create srcdir for each arch. + Remove arch/indep patch split. + New directory layout (build/foo- -> build//foo). + Use bz2 tarballs. + + * debian/patches/sparc-linux-types.dpatch: Remove, applied upstream. + + * devpts.sh never used any bashisms (closes:Bug#43296). + + -- Joel Klecker Tue, 7 Sep 1999 05:00:58 -0700 + +glibc (2.1.2-0pre12) unstable; urgency=low + + * The "Espy's Birthday" release. + * debian/rules: (libc-pic) strip debugging symbols from *_pic.a. + interp.o is no longer needed. + + * debian/patches/sparc-linux-types.dpatch: New file. + 1999-07-25 Jakub Jelinek + + * sysdeps/unix/sysv/linux/sparc/bits/types.h: Define always + __qaddr_t. + __ino64_t should be 32bit unsigned type on sparc32. + Define __off64_t to __quad_t instead of __int64_t. + Make __pic_pid_t unsigned on sparc32. + + * Really change maintainer name to Debian GNU C Library Maintainers. + + * debian/control.in-libc: s/m@archs@/many/ (closes:Bug#43657). + + * debian/devpts.init: Check if devpts is already mounted before trying + to mount it. (closes:Bug#43658,#43659). + Remove exit 0 from end (closes:Bug#42541) + + * Fixed upstream: db_dump185 now linked with libdb1 (closes:Bug#42898). + + -- Joel Klecker Sun, 29 Aug 1999 07:51:16 -0700 + +glibc (2.1.2-0pre11) unstable; urgency=high + + * The "Lesbian Seagull" release. + * glibc 2.1.2pre3. + + -- Joel Klecker Wed, 25 Aug 1999 15:33:23 -0700 + +glibc (2.1.2-0pre10) unstable; urgency=low + + * The "Crack-smoking Squirrel" release. + * CVS as of 1999-08-21. + * Change maintainer name to Debian GNU C Library Maintainers. + + -- Joel Klecker Sat, 21 Aug 1999 10:57:42 -0700 + +glibc (2.1.2-0pre9) unstable; urgency=low + + * The "Son of Drunken Iceweasel" release. + * Compile with gcc 2.95.1. + * CVS as of 1999-08-18. + + -- Joel Klecker Wed, 18 Aug 1999 11:11:29 -0700 + +glibc (2.1.2-0pre8) unstable; urgency=low + + * The "Drunken Iceweasel" release. + * Compile with gcc 2.95.1-0pre1. + * Remove explicit -march=i386 on i386, it's no longer needed. + + -- Joel Klecker Sun, 15 Aug 1999 08:34:55 -0700 + +glibc (2.1.2-0pre7) unstable; urgency=low + + * The "Evil Mastermind" release. + * CVS as of 1999-08-09. + * debian/patches/arm-osabi.dpatch: "...and another patch bites the dust" + (functionality integrated upstream). + * Add -march=i386 on i386 to work around gcc lossage. + + -- Joel Klecker Tue, 10 Aug 1999 01:54:57 -0700 + +glibc (2.1.2-0pre6) unstable; urgency=low + + * The "Stoned Monkey" release. + * More adjustments for multi-arch build tree. + * Split patch rules into debian/patch-rules.mk. + * Divide patch system into indep and arch patches. + * Update sources to CVS as of 1999-08-08 (closes:Bug#42579,#42343). + - I think perhaps this will fix the StarOrifice problem too. + + -- Joel Klecker Sun, 8 Aug 1999 21:11:12 -0700 + +glibc (2.1.2-0pre5) unstable; urgency=low + + * The "Chainsaw Psycho" release. + * Install zdump in $(bindir). + * Fix 3l33t control frags system for "weird" architectures. ;) + * Avoid using DEB_*_ARCH variables, for they are evil. :) + + -- Joel Klecker Fri, 6 Aug 1999 05:34:55 -0700 + +glibc (2.1.2-0pre4) unstable; urgency=low + + * 2.1.2pre2. + * Run testsuite in build target. + * $(libc)-pic: Provides: glibc-pic. + * Logging is back. + * Update copyright file. + + -- Joel Klecker Sun, 1 Aug 1999 17:58:49 -0700 + +glibc (2.1.2-0pre3) unstable; urgency=low + + * CVS as of 19990730. + * Implement new debian/control-frags system. + * $(libc)-pic is back. + * {gconv-modules,$(libc)-{pic,dev,dbg,prof}}: + doc dirs are directories again. + + -- Joel Klecker Fri, 30 Jul 1999 10:52:06 -0700 + +glibc (2.1.2-0pre2) unstable; urgency=low + + * debian/rules: Fix typo that prevented all the linux-specific + patches from being applied. + + -- Joel Klecker Mon, 26 Jul 1999 14:44:46 -0700 + +glibc (2.1.2-0pre1) unstable; urgency=low + + * New upstream pre-release 2.1.2pre1. + * debian/depflags.mk. + - (libc_dev_control_flags): + Add conflicts to alpha/i386/m68k for libncurses4-dev (<< 4.2-3.1) and + libreadlineg2-dev (<< 2.1-13.1). + - (libc_control_flags): + Add conflicts to alpha/i386/m68k for libglib1.2 (<< 1.2.1-2). + * devpts.init: + - Cope with EXTRAVERSION in uname -r (closes:Bug#41064,#41389). + - Don't worry about /dev/ptmx anymore, glibc now checks for a mounted + devpts filesystem as well as an existing /dev/ptmx. + * debian/patches/{ieee754_y0,linux-mmap64,libio-oldiopopen}.dpatch: + Removed; applied upstream. + * debian/patches/arm-{dynamiclinker,tftp}.dpatch: + Removed; applied upstream. + * debian/patches/arm-string.dpatch: + Remove string/endian.h part (applied upstream) and rename to arm-ieee754. + * Disable building of $(libc)-pic, the boot-floppies library + reduction hack doesn't work anyway. + * Adjusted rules for dpkg-architecture and reworked source unpacking + to handle snapshot upstream versions better. + * Use suidmanager for pt_chown. + * More fully adopt dpkg-architecture system. + * Correct libc.preinst for sparc. + * Set sparc shlib_depend to $(libc) (>= 2.1) per request. + + -- Joel Klecker Sat, 24 Jul 1999 12:35:05 -0700 + +glibc (2.1.1-13) unstable; urgency=low + + * debian/devpts.init: Revise again. + * debian/rules: debian/shlibs: Add special case for libdb1. + * debian/sysdeps.mk: Add cflags variable and i386 hack + (hopefully this will allow the library to run on 386es again). + * Use 2.2.10 kernel headers by default on *-linux targets. + * Docs in /usr/share/doc. + * debian/control.in: Update Standards-Version to 3.0.0. + * debian/fhs.dpatch: Adjust for FHS 2.1pre2 /var/mail wording. + * debian/libc.postinst: Symlink /var/mail to /var/spool/mail. + * Integrate changes from Jim Pick's NMUs for arm (closes:#40927,#40479,#40691). + * debian/patches/ieee754_y0.dpatch: Upstream fix for yn() issue. + * debian/patches/linux-mmap64.dpatch: Fix for mmap64() on powerpc + (maybe others too). + * debian/patches/libio-oldiopopen.dpatch: Fix for glibc 2.0 compat popen(). + * debian/copyright: + - Update URLs + - Add libio license + - s%/usr/doc/copyright%/usr/share/common-licenses% + + -- Joel Klecker Wed, 7 Jul 1999 17:36:23 -0700 + +glibc (2.1.1-12.3) unstable; urgency=low + + * Non-maintainer upload. + * Oops, messed up tftp patch for ARM. + + -- Jim Pick Wed, 7 Jul 1999 00:15:48 -0700 + +glibc (2.1.1-12.2) unstable; urgency=low + + * Non-maintainer upload. + * Another patch for ARM to fix tftp struct alignment problem. + + -- Jim Pick Thu, 1 Jul 1999 09:38:02 -0700 + +glibc (2.1.1-12.1) unstable; urgency=low + + * Non-maintainer upload. + * Include patch for ARM to fix dynamic linker. + + -- Jim Pick Thu, 17 Jun 1999 21:11:59 -0700 + +glibc (2.1.1-12) unstable; urgency=low + + * debian/rules: Use /var/lib/misc here too. + * debian/tzconfig: Fix #! line. + * debian/libc.postinst: Minor adjustments. + + -- Joel Klecker Tue, 15 Jun 1999 09:24:49 -0700 + +glibc (2.1.1-11) unstable; urgency=low + + * debian/patches/glibcbug.dpatch: New file. + - Fixes glibcbug to use `sensible-editor' + * debian/patches/fhs.dpatch: Deal with _PATH_VARDB. + * debian/patches/m68k-chown.dpatch: Fix paths (closes:Bug#37933). + * $(libc): Add HTML version of glibc FAQ. + * tzselect is crap, restore old version of tzconfig. + * Use 2.2.9 kernel headers by default on *-linux targets. + + -- Joel Klecker Sun, 13 Jun 1999 09:34:41 -0700 + +glibc (2.1.1-10) unstable; urgency=low + + * debian/libc.postinst: Redirect stdout/stderr to /dev/null when + restarting services (closes:Bug#38413). + * debian/patches/fhs.dpatch: Alter slightly for FHS 2.1 draft. + + -- Joel Klecker Mon, 31 May 1999 01:45:27 -0700 + +glibc (2.1.1-9) unstable; urgency=low + + * 2.1.1 final (closes:Bug#38178). + * -7 was accidentally/intentionally compiled with gcc 2.95pre. + * -8 was a local build. + + -- Joel Klecker Mon, 24 May 1999 22:10:01 -0700 + +glibc (2.1.1-8) unstable; urgency=low + + * Rebuild with egcs 1.1.2. + (/me hides) + + -- Joel Klecker Sun, 23 May 1999 21:28:29 -0700 + +glibc (2.1.1-7) unstable; urgency=low + + * Make sure all patches get applied (closes:Bug#37951,Bug#37974). + * Fixes for m68k via Roman Hodek + - (debian/rules): Add new m68k-chown patch (closes:Bug#38048). + - (debian/depflags.mk): Fix m68k case (closes:Bug#37933). + * There were some localedata changes in format between -5 and -6 + (closes:Bug#37850,Bug#37822,Bug#37829). + * Add patch to fix install-locales target when localedata is not installed. + * Build locales in the `locales' target + (no sense building them in the arch-indep install target). + + -- Joel Klecker Thu, 20 May 1999 14:02:15 -0700 + +glibc (2.1.1-6) unstable; urgency=low + + * 2.1.1pre3. + * (debian/rules): Set BASH and KSH to /bin/bash in configparms. + * (debian/libc.preinst): sparc fix (closes:Bug#37415,Bug#37616). + * (debian/nscd.prerm): Stop nscd before removing it (closes:Bug#37416). + + -- Joel Klecker Mon, 17 May 1999 19:29:12 -0700 + +glibc (2.1.1-5) unstable; urgency=low + + * CVS as of 1999-05-08. + + -- Joel Klecker Sat, 8 May 1999 19:31:52 -0700 + +glibc (2.1.1-4) unstable; urgency=low + + * Fix logic errors in tzconfig. + + -- Joel Klecker Sat, 8 May 1999 00:07:44 -0700 + +glibc (2.1.1-3) unstable; urgency=low + + * 2.1.1pre2. + * glibc-compat 2.1.0. + * debian/copyright: Update URLs for upstream source locations. + * debian/devpts.init: Rewrite for more sensible handling of devfs. + * debian/libc.postinst: Be more paranoid about /etc/timezone, and + always remake /etc/localtime symlink. + * debian/sysdeps.mk: Add sparc to HAVE_LIBC4 to deal with lddlibc4. + * debian/rules: Don't apply sparc32-ldd patch. + * debian/patches/sparc32-ldd.dpatch: delete. + + -- Joel Klecker Fri, 7 May 1999 10:40:11 -0700 + +glibc (2.1.1-2) unstable; urgency=low + + * $(libc): replace locales << 2.1.1-1 + * debian/depflags.mk: clean up + * debian/control.in: locales: remove depend on @libc@ (closes:Bug#36654). + * debian/devpts.sh: Remove bashisms (closes:Bug#36552). + * debian/libc.postinst: + - Use ln -sf instead of zic -l (closes:Bug#36305). + - If upgrading from glibc 2.0, restart services potentially affected + by libnss_* upgrade. + * debian/libc.preinst: Add kernel version sanity check for sparc. + * debian/rules: + - Fix reverse-patches target (closes:Bug#36574). + - Fix libexecdir handling (closes:Bug#36673). + - locales is binary-all, so build it in binary-indep, not binary-arch. + * debian/sysdeps.mk: $(shlib_depend): >= 2.0.105 for sparc. + * locales: Add eo_EO (Esperanto) locale definition. + + -- Joel Klecker Sat, 1 May 1999 22:22:22 -0700 + +glibc (2.1.1-1) unstable; urgency=low + + * Using maintainer versions now; 2.1.1 is still in pre-release. + * CVS as of 1999-04-19. + * Upgrade glibc-compat addon. + * Add kernel version sanity check to nscd init script. + * Slight tweaks to devpts.sh init script. + * Remove hurd-fcntl patch, it is applied upstream. + * Fix libc.preinst libnss code. + * Symlink /var/db to /var/state/glibc for backward compatibility. + * Add zh_TW.Big5 locale and BIG5_1984 charmap. + * Revert to ln -sf instead of zic -l in tzconfig (closes:Bug#36305). + * Add latest version of sparc32-chown patch. + * Move architecture-dependant parts of locales to other packages + and make it Architecture: all. + * Move locale and localedef to $(libc); and split gconv-modules into its + own package. + + -- Joel Klecker Tue, 20 Apr 1999 15:09:18 -0700 + +glibc (2.1.1-0.2) unstable; urgency=low + + * Upgrade to latest CVS sources. + - Fixes ttyname problem which affected screen (closes:Bug#35695). + - libio backward compatibility fixes. + - Many other fixes. + * Put manpages in /usr/share/man, info in /usr/share/info. + * Add devpts.sh init script and /etc/default/devpts to configure it. + * Better FHS compliance. + - /var/db -> /var/state/glibc. + - --libexecdir=/usr/lib (my reading of the FHS seems to allow + executables directly in /usr/lib). + + -- Joel Klecker Wed, 7 Apr 1999 14:47:08 -0700 + +glibc (2.1.1-0.1) unstable; urgency=low + + * Now using NMU-style versions for prereleases. + * Don't start utmpd. + * Somehow the old nss modules (libnss_*.so.1) slipped out + of the last release, put them back. + * Let libc keep its x bit. + (executing it presents some interesting output) + + -- Joel Klecker Wed, 17 Mar 1999 00:44:44 -0800 + +glibc (2.1.1-0pre1.3) unstable; urgency=low + + * Fix source package. + * $(libc)-dbg: Install libpthread (closes:Bug#34461). + * $(libc): Add note about devpts and services to postinst. + - Recreate databases in /var/db if upgrading from glibc 2.0.x + (closes:Bug#34442) + - i386, alpha, m68k: Conflict with libtricks, apt (<< 0.1.10.1). + * Change default_cflags to -O2 -g. + * Allow make check to fail. + + -- Joel Klecker Sat, 13 Mar 1999 15:14:50 -0800 + +glibc (2.1.1-0pre1.2) unstable; urgency=low + + * strip shared libs with --strip-debug instead of --strip-unneeded. + * Loosened shlibs depend. + + -- Joel Klecker Fri, 12 Mar 1999 22:33:01 -0800 + +glibc (2.1.1-0pre1.1) unstable; urgency=low + + * Fix $(libc) replaces on i386. + + -- Joel Klecker Fri, 12 Mar 1999 14:47:28 -0800 + +glibc (2.1.1-0pre1) unstable; urgency=low + + * New upstream release. + * Really release this one to unstable. + + -- Joel Klecker Wed, 10 Mar 1999 09:14:29 -0800 + +glibc (2.1-4) unstable; urgency=low + + * First release for unstable. + * Add glibc-compat addon. + * $(libc): Conflict with libwcsmbs + - Start utmpd and touch /var/run/utmpx, /var/log/wtmpx. + * $(libc)-dbg: Install unstripped shared libs in /usr/lib/glibc_dbg. + * $(libc)-prof: Strip libraries. + * glibc-doc: Remove cruft from top-level of info dir. + * Split nscd into separate package. + * Fixed $KERNEL_SOURCE handling. + * Bugs fixed: 19264, 22788, 26148, 26306, 30609, 30773, 31415 + (will elaborate later :) + + -- Joel Klecker Fri, 5 Mar 1999 11:29:44 -0800 + +glibc (2.1-3) unstable; urgency=low + + * (debian/depflags.mk): + - Correct typo + - Add libc_dev_control_flags for Conflicts + + -- Joel Klecker Mon, 8 Feb 1999 03:22:27 -0800 + +glibc (2.1-2) unstable; urgency=low + + * Get shlibs file dependencies correct. + + -- Joel Klecker Sat, 6 Feb 1999 22:56:22 -0800 + +glibc (2.1-1) unstable; urgency=low + + * New upstream release. + * (debian/control.in): Update maintainer address. + * (debian/depflags.mk): + $(libc): conflict and replace timezone, timezones; replace libdb2 + * (debian/rules): + $(libc)-dev: copy subdirectories from $(KERNEL_HEADERS)/linux too. + timezones: remove + $(libc): Put timezone data, and the zic and zdump utils here + * Sync with HURD again. + * Removed hurd-utimes patch, it is integrated upstream. + + -- Joel Klecker Sat, 6 Feb 1999 12:26:10 -0800 + --- eglibc-2.12.1.orig/debian/libc6.symbols.hppa +++ eglibc-2.12.1/debian/libc6.symbols.hppa @@ -0,0 +1,35 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### +### Override headers already defined in libc6.symbols.common +### +# Minimal dependency set to 2.11 due to linuxthreads -> NPTL transition +libBrokenLocale.so.1 #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libSegFault.so #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libcidn.so.1 #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libcrypt.so.1 #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libdl.so.2 #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libm.so.6 #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libmemusage.so #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnsl.so.1 #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_compat.so.2 #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_dns.so.2 #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_files.so.2 #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_hesiod.so.2 #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_nis.so.2 #PACKAGE# (>= 2.11), #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6-mipsn32.symbols.mips +++ eglibc-2.12.1/debian/libc6-mipsn32.symbols.mips @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc0.1.symbols.kfreebsd-amd64 +++ eglibc-2.12.1/debian/libc0.1.symbols.kfreebsd-amd64 @@ -0,0 +1,3 @@ +#include "libc0.1.symbols.common" +ld-kfreebsd-x86-64.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/watch +++ eglibc-2.12.1/debian/watch @@ -0,0 +1,2 @@ +version=3 +ftp://ftp.gnu.org/gnu/glibc/glibc-([\d\.]+)\.tar\.gz debian uupdate --- eglibc-2.12.1.orig/debian/shlibver +++ eglibc-2.12.1/debian/shlibver @@ -0,0 +1 @@ +shlib_dep_ver = 2.12 --- eglibc-2.12.1.orig/debian/libc0.1.symbols.kfreebsd-i386 +++ eglibc-2.12.1/debian/libc0.1.symbols.kfreebsd-i386 @@ -0,0 +1,3 @@ +#include "libc0.1.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/locales-depver +++ eglibc-2.12.1/debian/locales-depver @@ -0,0 +1,24 @@ +# When glibc is uploaded into unstable, the locales package is immediately +# available because it is arch:all. But libc binary parckages are processed +# by autobuilders and become available later. +# +# If compiling locales depend on a given version of localedef (for instance +# when ISO codes are updated), the idea is to first bump LOCALES_COMPAT_VER and +# make an upload without changing locales. When this version is available on +# all architectures in unstable, locales can be modified and LOCALES_DEP_VER +# is bumped too. +# +# LOCALES_COMPAT_VER must always contain two values during the transition phase +# so that dependencies in unstable can always be satisfied, and +# LOCALES_DEP_VER point to the highest value of LOCALES_COMPAT_VER when +# packages are available for all architectures in unstable. + +LOCALES_DEP_VER = 2.11-1 +LOCALES_COMPAT_VER = 2.11-1 + +# Previous versions: +# 2.7-1: glibc 2.7 +# 2.8-1: glibc 2.8 +# 2.9-1: eglibc 2.9 +# 2.10-1: eglibc 2.10 +# 2.11-1: eglibc 2.11 --- eglibc-2.12.1.orig/debian/libc0.1.symbols.common +++ eglibc-2.12.1/debian/libc0.1.symbols.common @@ -0,0 +1,56 @@ +libc.so.0.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libBrokenLocale.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libSegFault.so #PACKAGE# #MINVER# + __invoke_dynamic_linker__@Base 2.3.6 +#include "symbols.wildcards" +libcidn.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libcrypt.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libdl.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libm.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libmemusage.so #PACKAGE# #MINVER# + __invoke_dynamic_linker__@Base 2.3.6 + calloc@Base 2.3.6 + free@Base 2.3.6 + malloc@Base 2.3.6 + mmap64@Base 2.3.6 + mmap@Base 2.3.6 + munmap@Base 2.3.6 + realloc@Base 2.3.6 +#include "symbols.wildcards" +libnsl.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_compat.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_dns.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_files.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_hesiod.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_nis.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libnss_nisplus.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libpcprofile.so #PACKAGE# #MINVER# + __cyg_profile_func_enter@Base 2.3.6 + __cyg_profile_func_exit@Base 2.3.6 + __invoke_dynamic_linker__@Base 2.3.6 +#include "symbols.wildcards" +libresolv.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +librt.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libutil.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libanl.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libpthread.so.0 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libthread_db.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/README.source +++ eglibc-2.12.1/debian/README.source @@ -0,0 +1,57 @@ +This package uses quilt to manage all modifications to the upstream +source. Changes are stored in the source package as diffs in +debian/patches and applied during the build. + +To configure quilt to use debian/patches instead of patches, you want +either to export QUILT_PATCHES=debian/patches in your environment +or use this snippet in your ~/.quiltrc: + + for where in ./ ../ ../../ ../../../ ../../../../ ../../../../../; do + if [ -e ${where}debian/rules -a -d ${where}debian/patches ]; then + export QUILT_PATCHES=debian/patches + fi + done + +To get the fully patched source after unpacking the source package, cd to +the root level of the source package and run: + + quilt push -a + +The last patch listed in debian/patches/series will become the current +patch. + +To add a new set of changes, first run quilt push -a, and then run: + + quilt new + +where is a descriptive name for the patch, used as the filename in +debian/patches. Then, for every file that will be modified by this patch, +run: + + quilt add + +before editing those files. You must tell quilt with quilt add what files +will be part of the patch before making changes or quilt will not work +properly. After editing the files, run: + + quilt refresh + +to save the results as a patch. + +Alternately, if you already have an external patch and you just want to +add it to the build system, run quilt push -a and then: + + quilt import -P /path/to/patch + quilt push -a + +(add -p 0 to quilt import if needed). as above is the filename to +use in debian/patches. The last quilt push -a will apply the patch to +make sure it works properly. + +To remove an existing patch from the list of patches that will be applied, +run: + + quilt delete + +You may need to run quilt pop -a to unapply patches first before running +this command. --- eglibc-2.12.1.orig/debian/libc6.symbols.mipsel +++ eglibc-2.12.1/debian/libc6.symbols.mipsel @@ -0,0 +1,12 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### TLS support enabled in Debian upload 2.4 + __tls_get_addr@GLIBC_2.3 2.4 +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### +### Override headers already defined in libc6.symbols.common +### +libpthread.so.0 #PACKAGE# (>= 2.4), #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/libc6-amd64.symbols.i386 +++ eglibc-2.12.1/debian/libc6-amd64.symbols.i386 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld-linux-x86-64.so.2 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-alphaev67-linux-gnu-alphaev67 +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-alphaev67-linux-gnu-alphaev67 @@ -0,0 +1,29 @@ +# +# Allowed failures for alphaev67-linux-gnu-alphaev67 and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +noinl-tester.out, Error 1 +tst-cleanup2.out, Error 1 +tst-cleanupx2.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-eintr1.out, Error 1 +tst-longjmp_chk.out, Error 1 +tst-mutexpi4.out, Error 1 +tst-mutexpi5a.out, Error 1 +tst-mutexpi5.out, Error 1 +tst-mutexpi6.out, Error 1 +tst-mutexpi9.out, Error 1 +tst-robustpi1.out, Error 1 +tst-robustpi2.out, Error 1 +tst-robustpi3.out, Error 1 +tst-robustpi4.out, Error 1 +tst-robustpi5.out, Error 1 +tst-robustpi6.out, Error 1 +tst-robustpi7.out, Error 1 +tst-robustpi9.out, Error 1 +tst-signal3.out, Error 1 +tst-timer.out, Error 132 +tst-timer.out, Error 139 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-s390-linux-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-s390-linux-gnu-libc @@ -0,0 +1,11 @@ +# +# Allowed failures for s390-linux-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-aio8.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-timer.out, Error 139 +tst-robust8.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-i686-kfreebsd-gnu-i386 +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-i686-kfreebsd-gnu-i386 @@ -0,0 +1,44 @@ +# +# Allowed failures for i686-kfreebsd-gnu-i386 and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +test-ifaddrs.out, Error 1 +test_ifindex.out, Error 1 +tst-aio10.out, Error 1 +tst-aio4.out, Error 1 +tst-aio9.out, Error 1 +tst-cputimer2.out, Error 1 +tst-longjmp_chk.out, Error 1 +tst-mknodat.out, Error 1 +tst-pselect.out, Error 1 +tst-timer4.out, Error 1 +tst-ttyname_r.out, Error 1 +tst-waitid.out, Error 1 +# *at emulation does not work under all condition +tst-chk1.out, Error 1 +tst-chk2.out, Error 1 +tst-chk3.out, Error 1 +tst-chk4.out, Error 1 +tst-chk5.out, Error 1 +tst-chk6.out, Error 1 +tst-faccessat.out, Error 1 +tst-fchmodat.out, Error 1 +tst-fstatat.out, Error 1 +tst-futimesat.out, Error 1 +tst-lfschk1.out, Error 1 +tst-lfschk2.out, Error 1 +tst-lfschk3.out, Error 1 +tst-lfschk4.out, Error 1 +tst-lfschk5.out, Error 1 +tst-lfschk6.out, Error 1 +tst-linkat.out, Error 1 +tst-mkdirat.out, Error 1 +tst-mkfifoat.out, Error 1 +tst-openat.out, Error 1 +tst-readlinkat.out, Error 1 +tst-renameat.out, Error 1 +tst-symlinkat.out, Error 1 +tst-unlinkat.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-alpha-linux-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-alpha-linux-gnu-libc @@ -0,0 +1,29 @@ +# +# Allowed failures for alpha-linux-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +noinl-tester.out, Error 1 +tst-cleanup2.out, Error 1 +tst-cleanupx2.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-eintr1.out, Error 1 +tst-longjmp_chk.out, Error 1 +tst-mutexpi4.out, Error 1 +tst-mutexpi5a.out, Error 1 +tst-mutexpi5.out, Error 1 +tst-mutexpi6.out, Error 1 +tst-mutexpi9.out, Error 1 +tst-robustpi1.out, Error 1 +tst-robustpi2.out, Error 1 +tst-robustpi3.out, Error 1 +tst-robustpi4.out, Error 1 +tst-robustpi5.out, Error 1 +tst-robustpi6.out, Error 1 +tst-robustpi7.out, Error 1 +tst-robustpi9.out, Error 1 +tst-signal3.out, Error 1 +tst-timer.out, Error 132 +tst-timer.out, Error 139 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-mips64el-linux-gnu-mips64 +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-mips64el-linux-gnu-mips64 @@ -0,0 +1,38 @@ +# +# Allowed failures for mips64el-linux-gnu-mips64 and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +bug-nextafter.out, Error 8 +bug-nexttoward.out, Error 8 +check-execstack.out, Error 1 +check-localplt.out, Error 1 +test-misc.out, Error 1 +tst-audit1.out, Error 127 +tst-audit2.out, Error 127 +tst-backtrace2.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-robust1.out, Error 1 +tst-robust2.out, Error 1 +tst-robust3.out, Error 1 +tst-robust4.out, Error 1 +tst-robust5.out, Error 1 +tst-robust6.out, Error 1 +tst-robust7.out, Error 1 +tst-robust8.out, Error 1 +tst-robust9.out, Error 1 +tst-robustpi1.out, Error 1 +tst-robustpi2.out, Error 1 +tst-robustpi3.out, Error 1 +tst-robustpi4.out, Error 1 +tst-robustpi5.out, Error 1 +tst-robustpi6.out, Error 1 +tst-robustpi7.out, Error 1 +tst-robustpi8.out, Error 1 +tst-robustpi9.out, Error 1 +tst-timer.out, Error 139 +tst-tls2.out, Error 1 +tst-tls3.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-sparc64-linux-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-sparc64-linux-gnu-libc @@ -0,0 +1,14 @@ +# +# Allowed failures for sparc64-linux-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-backtrace2.out, Error 1 +tst-cancelx21.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-timer.out, Error 139 +tst-longjmp_chk2.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-sparc-linux-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-sparc-linux-gnu-libc @@ -0,0 +1,12 @@ +# +# Allowed failures for sparc-linux-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-backtrace2.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-eintr1.out, Error 1 +tst-timer.out, Error 139 +tst-longjmp_chk2.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-i686-linux-gnu-i686 +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-i686-linux-gnu-i686 @@ -0,0 +1,14 @@ +# +# Allowed failures for i686-linux-gnu-i686 and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-timer.out, Error 139 + +# FIXME 2.11.1 +tst-mqueue5.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-sparcv9b-linux-gnu-sparcv9b +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-sparcv9b-linux-gnu-sparcv9b @@ -0,0 +1,10 @@ +# +# Allowed failures for sparcv9b-linux-gnu-sparcv9b and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-backtrace2.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-longjmp_chk2.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-powerpc-linux-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-powerpc-linux-gnu-libc @@ -0,0 +1,17 @@ +# +# Allowed failures for powerpc-linux-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-timer.out, Error 139 + +# FIXME Ubuntu (fails on the buildd) +test-fenv.out, Error 1 + +# FIXME 2.11 +tst-cputimer1.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-sparc64-linux-gnu-sparc64 +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-sparc64-linux-gnu-sparc64 @@ -0,0 +1,30 @@ +# +# Allowed failures for sparc64-linux-gnu-sparc64 and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-backtrace2.out, Error 1 +tst-cancelx21.out, Error 1 +tst-chk3.out, Error 1 +tst-chk6.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-lfschk3.out, Error 1 +tst-lfschk6.out, Error 1 +tst-longjmp_chk2.out, Error 1 +tst-timer.out, Error 139 + +# FIXME Ubuntu +tst-cancel20.out, Error 1 +tst-cancelx20.out, Error 1 +tst-eintr1.out, Error 1 + +# FIXME 2.11 +tst-backtrace2.out, Error 1 +tst-longjmp_chk2.out, Error 1 + +# FIXME 2.12 +testgrp.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-arm-linux-gnueabi-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-arm-linux-gnueabi-libc @@ -0,0 +1,13 @@ +# +# Allowed failures for arm-linux-gnueabi-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-cpuclock2.out, Error 1 +test-fenv.out, Error 1 +test-fpucw.out, Error 132 +test-idouble.out, Error 1 +test-ifloat.out, Error 1 +tst-timer.out, Error 139 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-hppa-linux-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-hppa-linux-gnu-libc @@ -0,0 +1,32 @@ +# +# Allowed failures for hppa-linux-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-execstack.out, Error 1 +check-localplt.out, Error 1 +check-textrel.out, Error 1 +tst-addr1.out, Error 1 +tst-audit2.out, Error 139 +tst-backtrace2.out, Error 1 +tst-cancelx20.out, Error 1 +tst-cancelx21.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cleanupx4.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-cputimer1.out, Error 1 +tst-cputimer2.out, Error 1 +tst-cputimer3.out, Error 1 +tst-getcpu.out, Error 1 +tst-longjmp_chk.out, Error 1 +tst-mqueue3.out, Error 1 +tst-timer4.out, Error 1 +tst-timer5.out, Error 1 + +# Should be removed when bug #582787 is fixed +tstdiomisc.out, Error 1 + +# Should be removed when bug #561203 is fixed +tst-fork1.out, Error 139 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-i486-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-i486-gnu-libc @@ -0,0 +1,79 @@ +# +# Allowed failures for i486-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +# Need actual porting +tst-cpucount, Error 1 +tst-cpuset.o, Error 1 +tst-cputimer1.o, Error 1 +tst-cputimer2.o, Error 1 +tst-cputimer3.o, Error 1 +tst-mqueue5.o, Error 1 +tst-pselect.o, Error 1 +tst-timer2.o, Error 1 +tst-timer4.o, Error 1 +tst-timer5.o, Error 1 +# +# Need investigation +annexc.out, Error 1 (ignored) +bug-glob2.out, Error 1 +bug-ulimit1.out, Error 1 +check-execstack.out, Error 1 +check-textrel.out, Error 1 +check-local-headers.out, Error 1 +check-localplt.out, Error 1 +mtrace-tst-loading, Error 1 +opendir-tst1.out, Error 1 +test-assert-perr.out, Error 1 +test-assert.out, Error 1 +test-fenv.out, Error 1 +test-idouble.out, Error 139 +test-ifaddrs.out, Error 1 +test-ifloat.out, Error 139 +test-lfs.out, Error 1 +test-memmem, Error 1 +tst-aio10.out, Error 1 +tst-aio8.out, Error 1 +tst-aio9.out, Error 1 +tst-atime.out, Error 1 +tst-audit1.out, Error 137 +tst-audit2.out, Error 137 +tst-chk1.out, Error 1 +tst-chk2.out, Error 1 +tst-chk3.out, Error 1 +tst-chk4.out, Error 1 +tst-chk5.out, Error 1 +tst-chk6.out, Error 1 +tst-clock_nanosleep.out, Error 1 +tst-dlmopen1.out, Error 1 +tst-error1-mem, Error 1 +tst-ether_line.o, Error 1 +tst-fdopendir2.out, Error 1 +tst-fopenloc.check, Error 1 +tst-futimesat.out, Error 1 +tst-getconf.out, Error 3 +tst-grantpt.out, Error 1 +tst-lfschk1.out, Error 1 +tst-lfschk2.out, Error 1 +tst-lfschk3.out, Error 1 +tst-lfschk4.out, Error 1 +tst-lfschk5.out, Error 1 +tst-lfschk6.out, Error 1 +tst-longjmp_chk2.out, Error 1 +tst-mknodat.out, Error 1 +tst-renameat.out, Error 1 +tst-sprofil.out, Error 136 +tst-stackguard1-static.out, Error 1 +tst-stackguard1.out, Error 1 +tst-sysconf.out, Error 1 +tst-timer.out, Error 1 +tst-tls18.out, Error 1 +tst-tls9-static.out, Error 1 +tst-vfork3-mem, Error 1 +tststatic.out, Error 139 +tststatic2.out, Error 139 +# +# Makefile issue +# +pthread.h, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/compare.sh +++ eglibc-2.12.1/debian/testsuite-checking/compare.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +if [ $# -ne '2' ]; then + echo -e "\nUsage: Compare a test-expected-* file and a test-results-* file." + echo -e "$0 : < Expected testsuite results > < Testsuite results >\n"; + exit 1 +fi; + +expected=$(tempfile) +results=$(tempfile) +grep -Ev '^ *$|^#' $1 | sort > $expected +grep -Ev '^ *$|^#' $2 | sort > $results + +REGRESSIONS=$(diff -wBI '^#.*' $expected $results | sed -e '/^>/!d;s/^> //g') +PROGRESSIONS=$(diff -wBI '^#.*' $expected $results | sed -e '/^, Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock1.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-cputimer1.out, Error 1 +tst-cputimer2.out, Error 1 +tst-timer.out, Error 139 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-mips32el-linux-gnu-mipsn32 +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-mips32el-linux-gnu-mipsn32 @@ -0,0 +1,38 @@ +# +# Allowed failures for mips32el-linux-gnu-mipsn32 and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +bug-nextafter.out, Error 8 +bug-nexttoward.out, Error 8 +check-execstack.out, Error 1 +check-localplt.out, Error 1 +test-misc.out, Error 1 +tst-audit1.out, Error 127 +tst-audit2.out, Error 127 +tst-backtrace2.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-robust1.out, Error 1 +tst-robust2.out, Error 1 +tst-robust3.out, Error 1 +tst-robust4.out, Error 1 +tst-robust5.out, Error 1 +tst-robust6.out, Error 1 +tst-robust7.out, Error 1 +tst-robust8.out, Error 1 +tst-robust9.out, Error 1 +tst-robustpi1.out, Error 1 +tst-robustpi2.out, Error 1 +tst-robustpi3.out, Error 1 +tst-robustpi4.out, Error 1 +tst-robustpi5.out, Error 1 +tst-robustpi6.out, Error 1 +tst-robustpi7.out, Error 1 +tst-robustpi8.out, Error 1 +tst-robustpi9.out, Error 1 +tst-timer.out, Error 139 +tst-tls2.out, Error 1 +tst-tls3.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-i486-kfreebsd-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-i486-kfreebsd-gnu-libc @@ -0,0 +1,42 @@ +# +# Allowed failures for i486-kfreebsd-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-aio10.out, Error 1 +tst-aio4.out, Error 1 +tst-aio9.out, Error 1 +tst-longjmp_chk.out, Error 1 +tst-mknodat.out, Error 1 +tst-cputimer2.out, Error 1 +tst-pselect.out, Error 1 +tst-timer4.out, Error 1 +tst-ttyname_r.out, Error 1 +tst-waitid.out, Error 1 +# *at emulation does not work under all condition +tst-chk1.out, Error 1 +tst-chk2.out, Error 1 +tst-chk3.out, Error 1 +tst-chk4.out, Error 1 +tst-chk5.out, Error 1 +tst-chk6.out, Error 1 +tst-faccessat.out, Error 1 +tst-fchmodat.out, Error 1 +tst-fstatat.out, Error 1 +tst-futimesat.out, Error 1 +tst-lfschk1.out, Error 1 +tst-lfschk2.out, Error 1 +tst-lfschk3.out, Error 1 +tst-lfschk4.out, Error 1 +tst-lfschk5.out, Error 1 +tst-lfschk6.out, Error 1 +tst-linkat.out, Error 1 +tst-mkdirat.out, Error 1 +tst-mkfifoat.out, Error 1 +tst-openat.out, Error 1 +tst-readlinkat.out, Error 1 +tst-renameat.out, Error 1 +tst-symlinkat.out, Error 1 +tst-unlinkat.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-x86_64-linux-gnu-amd64 +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-x86_64-linux-gnu-amd64 @@ -0,0 +1,16 @@ +# +# Allowed failures for x86_64-linux-gnu-amd64 and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-timer.out, Error 139 + +# FIXME Ubuntu +testgrp.out, Error 1 + +# FIXME 2.11.1 (running locally only?) +globtest.out, Error 1 +tst-gettext3.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/README +++ eglibc-2.12.1/debian/testsuite-checking/README @@ -0,0 +1,17 @@ +Testsuite Regression Testing +============================ + +This directory contains a file for each arch/os, listing the allowed failures +during a testsuite run for a given arch/os pair. The files are listed as +"${arch-os}-test-results". Where "${arch-os}" is extracted by rules as +"$(call xx,configure_target)". + +A script, "convertlog.sh", can be used to process the normal log-test-* +file into a test-results-* file. + +Since we cannot run the testsuite without "-k", we run the enitre testsuite +ignoring errors. Then we compare the error set with the expected errors, +differences in signal numbers or errors fails the build. If the architecture +does not have a test-results-* file a warning is given and no comparison is +made. + --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-mipsel-linux-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-mipsel-linux-gnu-libc @@ -0,0 +1,35 @@ +# +# Allowed failures for mipsel-linux-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-execstack.out, Error 1 +check-localplt.out, Error 1 +tst-audit1.out, Error 127 +tst-audit2.out, Error 127 +tst-backtrace2.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-robust1.out, Error 1 +tst-robust2.out, Error 1 +tst-robust3.out, Error 1 +tst-robust4.out, Error 1 +tst-robust5.out, Error 1 +tst-robust6.out, Error 1 +tst-robust7.out, Error 1 +tst-robust8.out, Error 1 +tst-robust9.out, Error 1 +tst-robustpi1.out, Error 1 +tst-robustpi2.out, Error 1 +tst-robustpi3.out, Error 1 +tst-robustpi4.out, Error 1 +tst-robustpi5.out, Error 1 +tst-robustpi6.out, Error 1 +tst-robustpi7.out, Error 1 +tst-robustpi8.out, Error 1 +tst-robustpi9.out, Error 1 +tst-timer.out, Error 139 +tst-tls2.out, Error 1 +tst-tls3.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-s390x-linux-gnu-s390x +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-s390x-linux-gnu-s390x @@ -0,0 +1,9 @@ +# +# Allowed failures for s390x-linux-gnu-s390x and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-timer.out, Error 139 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-powerpc64-linux-gnu-ppc64 +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-powerpc64-linux-gnu-ppc64 @@ -0,0 +1,19 @@ +# +# Allowed failures for powerpc64-linux-gnu-ppc64 and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-execstack.out, Error 1 +check-localplt.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-timer.out, Error 139 + +# FIXME Ubuntu (fails on the buildd) +test-fenv.out, Error 1 + +# FIXME 2.11 +tst-cputimer1.out, Error 1 +check-execstack.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-mips64-linux-gnu-mips64 +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-mips64-linux-gnu-mips64 @@ -0,0 +1,38 @@ +# +# Allowed failures for mips64-linux-gnu-mips64 and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +bug-nextafter.out, Error 8 +bug-nexttoward.out, Error 8 +check-execstack.out, Error 1 +check-localplt.out, Error 1 +test-misc.out, Error 1 +tst-audit1.out, Error 127 +tst-audit2.out, Error 127 +tst-backtrace2.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-robust1.out, Error 1 +tst-robust2.out, Error 1 +tst-robust3.out, Error 1 +tst-robust4.out, Error 1 +tst-robust5.out, Error 1 +tst-robust6.out, Error 1 +tst-robust7.out, Error 1 +tst-robust8.out, Error 1 +tst-robust9.out, Error 1 +tst-robustpi1.out, Error 1 +tst-robustpi2.out, Error 1 +tst-robustpi3.out, Error 1 +tst-robustpi4.out, Error 1 +tst-robustpi5.out, Error 1 +tst-robustpi6.out, Error 1 +tst-robustpi7.out, Error 1 +tst-robustpi8.out, Error 1 +tst-robustpi9.out, Error 1 +tst-timer.out, Error 139 +tst-tls2.out, Error 1 +tst-tls3.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-i486-linux-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-i486-linux-gnu-libc @@ -0,0 +1,12 @@ +# +# Allowed failures for i486-linux-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-timer.out, Error 139 +tst-tls4.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-sparc64b-linux-gnu-sparcv9b +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-sparc64b-linux-gnu-sparcv9b @@ -0,0 +1,17 @@ +# +# Allowed failures for sparc64b-linux-gnu-sparcv9b and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-backtrace2.out, Error 1 +tst-cancelx21.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-chk3.out, Error 1 +tst-chk6.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-lfschk3.out, Error 1 +tst-lfschk6.out, Error 1 +tst-longjmp_chk2.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-mips-linux-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-mips-linux-gnu-libc @@ -0,0 +1,35 @@ +# +# Allowed failures for mips-linux-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-execstack.out, Error 1 +check-localplt.out, Error 1 +tst-audit1.out, Error 127 +tst-audit2.out, Error 127 +tst-backtrace2.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-robust1.out, Error 1 +tst-robust2.out, Error 1 +tst-robust3.out, Error 1 +tst-robust4.out, Error 1 +tst-robust5.out, Error 1 +tst-robust6.out, Error 1 +tst-robust7.out, Error 1 +tst-robust8.out, Error 1 +tst-robust9.out, Error 1 +tst-robustpi1.out, Error 1 +tst-robustpi2.out, Error 1 +tst-robustpi3.out, Error 1 +tst-robustpi4.out, Error 1 +tst-robustpi5.out, Error 1 +tst-robustpi6.out, Error 1 +tst-robustpi7.out, Error 1 +tst-robustpi8.out, Error 1 +tst-robustpi9.out, Error 1 +tst-timer.out, Error 139 +tst-tls2.out, Error 1 +tst-tls3.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-ia64-linux-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-ia64-linux-gnu-libc @@ -0,0 +1,13 @@ +# +# Allowed failures for ia64-linux-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-getcpu.out, Error 1 +tst-longjmp_chk2.out, Error 1 + +# FIXME 2.12 +tst-makecontext3.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-x86_64-kfreebsd-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-x86_64-kfreebsd-gnu-libc @@ -0,0 +1,42 @@ +# +# Allowed failures for x86_64-kfreebsd-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-aio10.out, Error 1 +tst-aio4.out, Error 1 +tst-aio9.out, Error 1 +tst-longjmp_chk.out, Error 1 +tst-mknodat.out, Error 1 +tst-cputimer2.out, Error 1 +tst-pselect.out, Error 1 +tst-timer4.out, Error 1 +tst-ttyname_r.out, Error 1 +tst-waitid.out, Error 1 +# *at emulation does not work under all condition +tst-chk1.out, Error 1 +tst-chk2.out, Error 1 +tst-chk3.out, Error 1 +tst-chk4.out, Error 1 +tst-chk5.out, Error 1 +tst-chk6.out, Error 1 +tst-faccessat.out, Error 1 +tst-fchmodat.out, Error 1 +tst-fstatat.out, Error 1 +tst-futimesat.out, Error 1 +tst-lfschk1.out, Error 1 +tst-lfschk2.out, Error 1 +tst-lfschk3.out, Error 1 +tst-lfschk4.out, Error 1 +tst-lfschk5.out, Error 1 +tst-lfschk6.out, Error 1 +tst-linkat.out, Error 1 +tst-mkdirat.out, Error 1 +tst-mkfifoat.out, Error 1 +tst-openat.out, Error 1 +tst-readlinkat.out, Error 1 +tst-renameat.out, Error 1 +tst-symlinkat.out, Error 1 +tst-unlinkat.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-i686-linux-gnu-xen +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-i686-linux-gnu-xen @@ -0,0 +1,11 @@ +# +# Allowed failures for i686-linux-gnu-xen and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-timer.out, Error 139 --- eglibc-2.12.1.orig/debian/testsuite-checking/convertlog.sh +++ eglibc-2.12.1/debian/testsuite-checking/convertlog.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ $# -ne '1' ]; then + echo -e "\nUsage: Converts a log-test-* file into a test-results-* file." + echo -e "$0 : < Input testsuite log file >\n"; + exit 1 +fi; + +echo '#' +echo '# Testsuite failures, someone should be working towards' +echo '# fixing these! They are listed here for the purpose of' +echo '# regression testing during builds.' +echo '# Format: , Error [(ignored)]' +echo '#' +grep 'make\[.*\]:.* \[/.*' $1 | sed -e's,^.*/,,g' -e 's/\]/,/g' | sort --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-x86_64-linux-gnu-libc +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-x86_64-linux-gnu-libc @@ -0,0 +1,9 @@ +# +# Allowed failures for x86_64-linux-gnu-libc and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-timer.out, Error 139 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-i686-kfreebsd-gnu-i686 +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-i686-kfreebsd-gnu-i686 @@ -0,0 +1,42 @@ +# +# Allowed failures for i686-kfreebsd-gnu-i686 and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +check-localplt.out, Error 1 +tst-aio10.out, Error 1 +tst-aio4.out, Error 1 +tst-aio9.out, Error 1 +tst-longjmp_chk.out, Error 1 +tst-mknodat.out, Error 1 +tst-cputimer2.out, Error 1 +tst-pselect.out, Error 1 +tst-timer4.out, Error 1 +tst-ttyname_r.out, Error 1 +tst-waitid.out, Error 1 +# *at emulation does not work under all condition +tst-chk1.out, Error 1 +tst-chk2.out, Error 1 +tst-chk3.out, Error 1 +tst-chk4.out, Error 1 +tst-chk5.out, Error 1 +tst-chk6.out, Error 1 +tst-faccessat.out, Error 1 +tst-fchmodat.out, Error 1 +tst-fstatat.out, Error 1 +tst-futimesat.out, Error 1 +tst-lfschk1.out, Error 1 +tst-lfschk2.out, Error 1 +tst-lfschk3.out, Error 1 +tst-lfschk4.out, Error 1 +tst-lfschk5.out, Error 1 +tst-lfschk6.out, Error 1 +tst-linkat.out, Error 1 +tst-mkdirat.out, Error 1 +tst-mkfifoat.out, Error 1 +tst-openat.out, Error 1 +tst-readlinkat.out, Error 1 +tst-renameat.out, Error 1 +tst-symlinkat.out, Error 1 +tst-unlinkat.out, Error 1 --- eglibc-2.12.1.orig/debian/testsuite-checking/expected-results-mips32-linux-gnu-mipsn32 +++ eglibc-2.12.1/debian/testsuite-checking/expected-results-mips32-linux-gnu-mipsn32 @@ -0,0 +1,38 @@ +# +# Allowed failures for mips32-linux-gnu-mipsn32 and the returned make +# failure number, indicating the signal the process died with. +# Format: , Error [(ignored)] +# +annexc.out, Error 1 (ignored) +bug-nextafter.out, Error 8 +bug-nexttoward.out, Error 8 +check-execstack.out, Error 1 +check-localplt.out, Error 1 +test-misc.out, Error 1 +tst-audit1.out, Error 127 +tst-audit2.out, Error 127 +tst-backtrace2.out, Error 1 +tst-cancelx4.out, Error 1 +tst-cancelx5.out, Error 1 +tst-cpuclock2.out, Error 1 +tst-robust1.out, Error 1 +tst-robust2.out, Error 1 +tst-robust3.out, Error 1 +tst-robust4.out, Error 1 +tst-robust5.out, Error 1 +tst-robust6.out, Error 1 +tst-robust7.out, Error 1 +tst-robust8.out, Error 1 +tst-robust9.out, Error 1 +tst-robustpi1.out, Error 1 +tst-robustpi2.out, Error 1 +tst-robustpi3.out, Error 1 +tst-robustpi4.out, Error 1 +tst-robustpi5.out, Error 1 +tst-robustpi6.out, Error 1 +tst-robustpi7.out, Error 1 +tst-robustpi8.out, Error 1 +tst-robustpi9.out, Error 1 +tst-timer.out, Error 139 +tst-tls2.out, Error 1 +tst-tls3.out, Error 1 --- eglibc-2.12.1.orig/debian/script.in/nohwcap.sh +++ eglibc-2.12.1/debian/script.in/nohwcap.sh @@ -0,0 +1,42 @@ + # Handle upgrades when libc-opt package has been installed. + # When a /etc/ld.so.nohwcap file exists, ld.so only use libraries + # from /lib, and ignore all optimised libraries. This file is + # inconditionaly created in the preinst script of libc. + + # Get the list of optimized packages for a given architecture + # Before removing a package from this list, make sure it appears + # in the Conflicts: line of libc. + case $(dpkg --print-architecture) in + alpha) + hwcappkgs="libc6-alphaev67" + ;; + i386) + hwcappkgs="libc6-i686 libc6-xen" + ;; + kfreebsd-i386) + hwcappkgs="libc0.1-i686" + ;; + sparc) + hwcappkgs="libc6-sparcv9 libc6-sparcv9b libc6-sparcv9v libc6-sparcv9v2 libc6-sparc64b libc6-sparc64v libc6-sparc64v2" + ;; + esac + + # We check the version between the current installed libc and + # all optimized packages (on architectures where such packages + # exists). + all_upgraded=yes + if [ -n "$hwcappkgs" ]; then + for pkg in $hwcappkgs ; do + ver=$(dpkg-query -l $pkg 2>/dev/null | sed -e '/^[a-z][a-z]\s/!d;/^.[nc]/d;' -e "s/^..\s\+$pkg\s\+//;s/\s.*//g") + if [ -n "$ver" ] && [ "$ver" != "CURRENT_VER" ]; then + all_upgraded=no + fi + done + fi + + # If the versions of all optimized packages are the same as the libc + # one, we could remove /etc/ld.so.nohwcap. Otherwise, it will be removed + # when all optimized packages are upgraded or removed. + if [ "$all_upgraded" = yes ] ; then + rm -f /etc/ld.so.nohwcap + fi --- eglibc-2.12.1.orig/debian/script.in/nsscheck.sh +++ eglibc-2.12.1/debian/script.in/nsscheck.sh @@ -0,0 +1,36 @@ + echo -n "Checking for services that may need to be restarted..." + # Only get the ones that are installed, and configured + check=$(dpkg -s $check 2> /dev/null | egrep '^Package:|^Status:' | awk '{if ($1 ~ /^Package:/) { package=$2 } else if ($0 ~ /^Status: .* installed$/) { print package }}') + # some init scripts don't match the package names + check=$(echo $check | \ + sed -e's/\bapache2-common\b/apache2/g' \ + -e's/\bat\b/atd/g' \ + -e's/\bdovecot-common\b/dovecot/g' \ + -e's/\bexim4-base\b/exim4/g' \ + -e's/\blpr\b/lpd/g' \ + -e's/\blpr-ppd\b/lpd-ppd/g' \ + -e's/\bmysql-server\b/mysql/g' \ + -e's/\bsasl2-bin\b/saslauthd/g' \ + ) + echo + echo "Checking init scripts..." + rl=$(runlevel | sed 's/.*\ //') + for service in $check; do + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + invoke-rc.d ${service} status >/dev/null 2>/dev/null && status=0 || status=$? + if [ "$status" = "0" ] || [ "$status" = "2" ] ; then + services="$service $services" + elif [ "$status" = "100" ] ; then + echo "WARNING: init script for $service not found." + fi + else + if [ -f /usr/share/file-rc/rc ] || [ -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ]; then + idl=$(filerc $rl $service) + else + idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1) + fi + if [ -n "$idl" ] && [ -x $idl ]; then + services="$service $services" + fi + fi + done --- eglibc-2.12.1.orig/debian/source/format +++ eglibc-2.12.1/debian/source/format @@ -0,0 +1 @@ +1.0 --- eglibc-2.12.1.orig/debian/source/lintian-overrides +++ eglibc-2.12.1/debian/source/lintian-overrides @@ -0,0 +1,7 @@ +eglibc source: debhelper-but-no-misc-depends libc0.1 +eglibc source: debhelper-but-no-misc-depends libc6 +eglibc source: debhelper-but-no-misc-depends libc6.1 +eglibc source: debhelper-but-no-misc-depends libc0.3 +eglibc source: outdated-autotools-helper-file scripts/config.sub 2006-02-27 +eglibc source: outdated-autotools-helper-file scripts/config.guess 2006-02-27 + --- eglibc-2.12.1.orig/debian/po/fr.po +++ eglibc-2.12.1/debian/po/fr.po @@ -0,0 +1,220 @@ +# Translation of glibc debconf templates to French +# Copyright (C) 2005-2009 Debian French l10n team +# This file is distributed under the same license as the glibc package. +# +# Translators: +# Christian Perrier , 2007, 2008, 2009. +# Denis Barbier 2001-2006. +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2009-03-14 08:09+0100\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Tous les choix possibles" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Jeux de paramètres régionaux à créer :" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Les jeux de paramètres régionaux (aussi appelés « locales ») permettent de " +"gérer des langues multiples et offrent aux utilisateurs la possibilité de " +"choisir la langue, le pays, le jeu de caractères, l'ordre de tri, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Veuillez choisir les paramètres régionaux à créer. Des paramètres régionaux " +"utilisant l'encodage UTF-8 devraient être le choix par défaut, notamment " +"pour de nouvelles installations. Les autres jeux de caractères peuvent être " +"utiles pour conserver la compatibilité avec d'anciens systèmes ou logiciels." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Aucun" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Jeu de paramètres régionaux actif par défaut :" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"De nombreux paquets utilisent le mécanisme de localisation pour afficher les " +"messages destinés aux utilisateurs dans la langue adéquate. Vous pouvez " +"changer la valeur par défaut de l'ensemble du système pour utiliser un des " +"jeux de paramètres régionaux qui seront créés." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Veuillez noter que cette valeur modifiera la langue utilisée par le système. " +"Si l'environnement est multi-utilisateurs et que certains utilisateurs ne " +"parlent pas votre langue, ils risquent d'avoir des difficultés." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Faut-il mettre à jour le paquet glibc maintenant ?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Les services et programmes qui utilisent NSS (« Name Service Switch ») " +"doivent être redémarrés car leur système d'authentification risque de ne " +"plus fonctionner. Il est possible de redémarrer certains services (comme SSH " +"ou telnetd) pendant l'installation, mais d'autres ne peuvent l'être " +"automatiquement. Il est notamment indispensable d'arrêter et redémarrer " +"manuellement xdm car un redémarrage automatique pourrait interrompre une " +"session X11 active." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Les services identifiés comme devant être redémarrés et qui doivent être " +"arrêtés avant la mise à jour sont les suivants : ${services}." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Si vous préférez interrompre la mise à jour maintenant et la reprendre plus " +"tard, ne choisissez pas cette option." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Services à redémarrer lors de la mise à jour de la bibliothèque C :" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Les services et programmes qui utilisent NSS (« Name Service Switch ») " +"doivent être redémarrés car leur système d'authentification risque de ne " +"plus fonctionner (pour des services comme SSH, cela peut empêcher les " +"connexions). Veuillez contrôler et éventuellement corriger la liste des " +"services qui seront redémarrés maintenant (identifiés par le nom de leur " +"script de démarrage)." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Veuillez noter que le redémarrage de telnetd ou sshd n'affectera pas les " +"connexions existantes." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Échec du redémarrage de certains services" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Les services suivants n'ont pas pu être redémarrés lors de la mise à jour de " +"la bibliothèque C :" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Il est nécessaire de les redémarrer vous-même avec la commande « /etc/init.d/" +" start »." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "Redémarrage nécessaire de xscreensaver et xlockmore avant mise à jour" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" +"Une ou plusieurs instances de xscreensaver et/ou de xlockmore ont été " +"détectées sur le système. À cause de la modification de certaines " +"bibliothèques, la mise à niveau de la bibliothèque C entrainera " +"l'impossibilité de s'authentifier. Avant de poursuivre la mise à niveau, ces " +"programmes doivent être redémarrés ou arrêtés pour éviter que des " +"utilisateurs ne puissent plus accéder à leurs sessions." + --- eglibc-2.12.1.orig/debian/po/pt_BR.po +++ eglibc-2.12.1/debian/po/pt_BR.po @@ -0,0 +1,212 @@ +# Brazilian Portuguese translation (glibc) +# Copyright (C) 2007 THE glibc'S COPYRIGHT HOLDER +# This file is distributed under the same license as the glibc package. +# Felipe Augusto van de Wiel (faw) , 2007-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: libc6\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-06-09 01:17-0300\n" +"Last-Translator: Felipe Augusto van de Wiel (faw) \n" +"Language-Team: Brazilian Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"pt_BR utf-8\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Todos os \"locales\"" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "\"Locales\" a serem gerados:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locales são uma infra-estrutura para alternar entre múltiplos idiomas e " +"permite aos usuários utilizar o seu idioma, país, caracteres, ordem de " +"colação, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Por favor, escolha quais locales serão gerados. Locales UTF-8 deveriam ser " +"escolhidos por padrão, particularmente para novas instalações. Outros " +"conjuntos de caracteres podem ser úteis para compatibilidade com sistemas e " +"softwares antigos." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Nenhum" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Locale padrão para o ambiente do sistema:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Muitos pacotes no Debian usam locales para exibir texto aos usuários no " +"idioma correto. Você pode escolher um locale padrão para o sistema a partir " +"dos locales gerados." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Isto selecionará o idioma padrão para o sistema inteiro. Se este sistema é " +"um sistema multiusuário no qual nem todos os usuários são capazes de falar o " +"idioma padrão, eles vão enfrentar dificuldades." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Você quer atualizar a glibc agora?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Serviços em execução e programas que usam NSS precisam ser reiniciados, caso " +"contrário eles podem não ser capazes de realizar consultas ou autenticação. " +"O processo de instalação é capaz de reiniciar alguns desses serviços (como " +"ssh, isto pode afetar sua habilidade de fazer login). Por favor, reveja a " +"seguinte lista separada por espaços de scripts init.d que serão reiniciados " +"agora, e corrija-a se necessário." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Este script detectou os seguintes serviços instalados que devem ser parados " +"antes da atualização: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Se você quer interromper a atualização agora e continuar posteriormente, por " +"favor, responda Não para a questão abaixo." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" +"Serviços para reiniciar por causa da atualização da biblioteca GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Serviços em execução e programas que usam NSS precisam ser reiniciados, caso " +"contrário eles podem não ser capazes de realizar consultas ou autenticação " +"(para serviços como ssh, isto pode afetar sua habilidade de fazer login). " +"Por favor, reveja a seguinte lista separada por espaços de scripts init.d " +"que serão reiniciados agora, e corrija se necessário." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Nota: reiniciar sshd/telnetd não deveria afetar quaisquer conexões " +"existentes." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"Falha ao reiniciar alguns serviços por causa da atualização da GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Os seguintes serviços não puderam ser reiniciados por causa da atualização " +"da biblioteca GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Você terá que iniciar esses serviços manualmente executando '/etc/init.d/" +" start'." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/es.po +++ eglibc-2.12.1/debian/po/es.po @@ -0,0 +1,253 @@ +# eglibc debconf translation to spanish +# Copyright (C) 2003, 2006, 2007, 2008, 2010 Software in the Public Interest +# This file is distributed under the same license as the eglibc-source package. +# +# Changes: +# - Initial translation +# Carlos Valdivia Yagüe , 2003 +# - Revisions: +# Carlos Valdivia Yagüe , 2006, 2007, 2008 +# Omar Campagne 2010 +# +# Traductores, si no conocen el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traducción al español, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/ +# especialmente las notas y normas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# - La guía de traducción de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.10.2-6\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2010-04-19 11:21+0200\n" +"Last-Translator: Omar Campagne \n" +"Language-Team: Debian L10n Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Todas las configuraciones regionales («locales»)" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Seleccione las configuraciones regionales que desea generar:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Las configuraciones regionales componen un sistema para cambiar entre varios " +"idiomas, y permite a los usuarios utilizar su idioma, país, juego de " +"caracteres, ordenación alfanumérica, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Por favor, elija las configuraciones regionales que desea generar. Se " +"recomiendan las configuraciones regionales UTF-8, especialmente para " +"instalaciones nuevas. Otros juegos de caracteres pueden resultar útiles por " +"compatibilidad con sistemas y software antiguo." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ninguno" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Configuración regional predeterminada para el entorno del sistema:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Muchos paquetes en Debian utilizan las configuraciones regionales para " +"mostrar el texto en el idioma de los usuarios. Puede elegir la opción " +"predeterminada de entre las configuraciones regionales que ha generado." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Esto seleccionará el idioma predeterminado de todo el sistema. Si se trata " +"de un sistema con varios usuarios en el que no todos hablan el idioma " +"elegido, pueden tener problemas." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "¿Desea actualizar glibc ahora?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Los servicios y programas en ejecución que utilicen NSS necesitan " +"reiniciarse, o por el contrario puede que ya no sean capaces de realizar " +"búsquedas o autenticación. El proceso de instalación puede reiniciar algunos " +"servicios (tales como «ssh» o «telnetd»), pero otros programas no pueden " +"reiniciarse automáticamente. Uno de dichos programas que se necesitan " +"parar y reiniciar manualmente tras la actualización de glibc es xdm, " +"puesto que un reinicio automático podría desconectar sus sesiones X11 " +"activas." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Este programa detectó los siguientes servicios instalados que se deben " +"detener antes de la actualización: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Si desea interrumpir la actualización y continuar más tarde, conteste «No» a " +"continuación." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Servicios a reiniciar para la actualización de la biblioteca libc de GNU:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Los servicios y programas en ejecución que utilicen NSS se necesitan " +"reiniciar, o por el contrario puede que ya no sean capaces de realizar " +"búsquedas o autenticación (para servicios como «ssh», esto puede evitar " +"afectar a su capacidad para ingresar en el sistema). Por favor, revise la " +"siguiente lista de scripts de «init.d», separada por espacios, de los " +"servicios a reiniciar ahora, y corríjala si es necesario." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Aviso: reiniciar «sshd»/«telnetd» no debería afectar a las conexiones activas." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Fallo al reiniciar algunos servicios para la actualización de la " +"biblioteca libc de GNU" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Los siguientes servicios no se pudieron reiniciar para la actualización de " +"la biblioteca libc de GNU:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Tendrá que iniciarlos manualmente ejecutando «/etc/init.d/ start»." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "Se deben reiniciar xscreensaver y xlockmore antes de actualizar" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" +"Se han detectado una o más instancias de los programas xscreensaver o " +"xlockmore. La actualización de la biblioteca libc de GNU podría impedir que " +"pueda autenticarse en estos programas debido a cambios incompatibles en las " +"bibliotecas. Debería procurar que estos programas se reinicien o se paren " +"antes de continuar con la actualización. Así evitará que los usuarios queden " +"bloqueados y sin poder reanudar sus sesiones actuales." + --- eglibc-2.12.1.orig/debian/po/hu.po +++ eglibc-2.12.1/debian/po/hu.po @@ -0,0 +1,184 @@ +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2007-04-20 10:55+0100\n" +"Last-Translator: SZERVÁC Attila \n" +"Language-Team: Hungarian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Hungarian\n" +"X-Poedit-Country: HUNGARY\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Minden helyi beállítás" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Létrehozandó helyi beállítások:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"A helyi beállítások (locales) egy nyelveket váltó keretrendszer, mely " +"lehetővé teszi, hogy a felhasználó saját nyelvét, országát, karaktereit " +"használhassa." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Válaszd ki, milyen helyi beállításokat hozzunk létre. UTF-8 helyi " +"beállításokat érdemes alapértelmezetten választani. Más karakter-készletek " +"elavult rendszerekhez és szoftverekhez való kapcsolódáskor lehetnek jók." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Semmi" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "A rendszer alap helyi beállítása:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"A Debian számos csomagja helyi beállításokat használ a szövegek a " +"felhasználó számára megfelelő nyelvű megjelenítésére . Választhatsz egy " +"alapértelmezett." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Ez kiválasztja az egész rendszer alapértelmezett nyelvét. Több nyelvű " +"rendszeren, ahol nem minden felhasználó beszéli az alapértelmezett nyelvet " +"további beállítások kellenek." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/uk.po +++ eglibc-2.12.1/debian/po/uk.po @@ -0,0 +1,200 @@ +# translation of uk.po to Ukrainian +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Eugeniy Meshcheryakov , 2004, 2006. +msgid "" +msgstr "" +"Project-Id-Version: uk\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2006-02-21 10:12+0200\n" +"Last-Translator: Eugeniy Meshcheryakov \n" +"Language-Team: Ukrainian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Всі локалі" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Локалі які потрібно згенерувати:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +#, fuzzy +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Локаль -- це механізм, що дозволяє перемикатися між кількома мовами для " +"користувачів, які можуть використовувати свою мову, країну, символи порядок " +"сортування і т.п." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Не встановлювати" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Локаль за замовчанням в системному оточенні:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"В Debian багато пакунків використовують локалі для відображення тексту на " +"вибраній користувачем мові. Якщо ваша рідна мова не англійська, то ви можете " +"змінити локаль за замовчанням. Список складений із локалей які ви вирішили " +"згенерувати." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Примітка: цей пункт вибирає мову для всієї системи. Якщо в вашій системі " +"працюють декілька користувачів, які не розмовляють мовою, яку ви вибрали, то " +"вони можуть зіткнутися із труднощами, і тому, можливо, вам краще не " +"встановлювати локаль за замовчанням." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" + --- eglibc-2.12.1.orig/debian/po/ko.po +++ eglibc-2.12.1/debian/po/ko.po @@ -0,0 +1,205 @@ +# Korean translations for glibc package +# glibc 패키지에 대한 한국어 번역문. +# Copyright (C) 2007 THE glibc'S COPYRIGHT HOLDER +# This file is distributed under the same license as the glibc package. +# Sunjae Park , 2007 - 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-03-02 20:33-0500\n" +"Last-Translator: Sunjae Park \n" +"Language-Team: Korean \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "모든 로케일" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "생성할 로케일 목록:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"로케일이란 여러 언어 중에서 선택하여 사용자들이 자신의 언어, 국가, 문자, 정렬" +"순서 등을 사용할 수 있도록 해주는 구성틀입니다." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"생성하고자 하는 로케일을 선택하여 주십시오. 기본적으로는 UTF-8 로케일을 선택" +"하시고, 특히 새로 설치하는 시스템에서는 더더욱 이를 선택하십시오. 기존 시스템" +"이나 소프트웨어와의 역호환성을 위해서는 다른 문제셋을 선택하셔도 됩니다." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "없음" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "시스템 환경의 기본 로케일:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"데비안에 있는 많은 꾸러미들은 사용자에게 맞는 언어로 출력하기 위해 로케일을 " +"사용합니다. 생성된 로케일 중에서 시스템의 기본 로케일로 사용할 로케일을 선택" +"하실 수 있습니다." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"이 선택은 시스템 전체의 기본 언어를 결정합니다. 기본 언어를 사용할 수 없는 사" +"용자도 있는 복수 사용자 시스템일 경우에는 그 사용자들이 시스템 사용에 어려움" +"을 겪으실 수 있습니다." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "지금 glibc를 업그레이드 하시겠습니까?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"NSS를 사용중인 서비스와 프로그램들을 다시 시작시키지 않으면 색인 작업이나 인" +"증 작업을 더 이상 사용할 수 없게 됩니다. ssh이나 telnetd 등의 서비스들 일부" +"는 설치 과정이 다시 시작을 시킵니다만, 자동으로 다시 시작시키지 못하는 프로그" +"램도 있습니다. glibc 업그레이드 후 사용자가 직접 다시 정지시킨 후 다시 시작시" +"켜야 하는 대표적인 프로그램으로 xdm이 있습니다. 자동으로 다시 시작을 시키면 " +"사용중인 X11 세션을 중지시킬 수 있기 때문입니다." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"업그레이드 하기 전에 멈춰야 하는 다음 서비스들을 스크립트가 감지했습니다: " +"${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"업그레이드를 일단 중지시키고 나중에 계속하시려면 다음 질문에 No라고 답해주시" +"기 바랍니다." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "GNU libc 라이브러리 업그레이드로 인해 다시 시작시킬 서비스 목록:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"NSS를 사용중인 서비스와 프로그램들을 다시 시작시키지 않으면 색인 작업이나 인" +"증 작업을 더 이상 사용할 수 없게 됩니다(ssh와 같은 서비스의 경우 로그인에 영" +"향을 줄 수 있습니다). 다시 시작시킬 init.d 스크립트 서비스를 빈칸으로 연결시" +"킨 이 목록을 검토하여 필요한 경우 수정해주십시오." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"참고: sshd/telnetd를 다시 시작시키더라도 기존 연결에는 영향이 없을 것입니다." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "GNU libc 업그레이드로 인한 서비스 다시 시작에 실패" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"다음 서비스들은 GNU libc 라이브러리 업그레이드로 인한 다시 시작에 실패하였습" +"니다:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"이 서비스들은 '/etc/init.d/ start'로 직접 다시 시작시키셔야 합니다." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/ca.po +++ eglibc-2.12.1/debian/po/ca.po @@ -0,0 +1,211 @@ +# Catalan translations for glibc package. +# Copyright (C) 2002, 2007, 2008 GNU Libc Maintainers. +# This file is distributed under the same license as the glibc package. +# +# Jordi Mallach , 2002, 2008. +# Jordà Polo , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: 2.7-9\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-02-27 01:25+0100\n" +"Last-Translator: Jordi Mallach \n" +"Language-Team: Català \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Tots els locales" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Locales a generar:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locales és un entorn que permet que els usuaris canviïn l'idioma, el país, " +"els caràcters, la classificació alfabètica, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Si us plau, trieu els locales que vulgueu generar. Els locales UTF-8 haurien " +"de ser l'opció predeterminada, especialment en noves instal·lacions. Altres " +"jocs de caràcters us poden ser útils per motius de compatibilitat amb " +"sistemes i programari antic." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Cap" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Locale predeterminat del sistema:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"A Debian, molts paquets fan servir els locales per mostrar el text en " +"l'idioma dels usuaris. Podeu canviar el locale predeterminat del sistema " +"triant entre els locales generats." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Amb aquesta opció seleccioneu l'idioma predeterminat de tot el sistema. Si " +"aquest és un entorn multiusuari on no tothom parla la mateixa llengua, " +"alguns usuaris poden tindre dificultats." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Voleu actualitzar la glibc ara?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"És necessari tornar a iniciar els serveis i programes que utilitzen NSS, ja " +"que si no es fa això podrien deixar de poder fer cerques o autenticacions. " +"El procés d'instal·lació pot tornar a iniciar alguns serveis (com l'ssh o el " +"telnetd), però altres programes no es poden tornar a iniciar automàticament. " +"Un programa que necessita una parada i inici manual després de " +"l'actualització de la glibc és l'xdm, ja que un reinici automàtic podria " +"desconnectar les vostres sessions X11 actives." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Aquest script ha detectat els següents serveis instal·lats que s'haurien de " +"parar abans de l'actualització: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Si voleu interrompre ara l'actualització i continuar més tard, contesteu " +"negativament la següent pregunta." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Serveis a reiniciar per l'actualització de la biblioteca GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"És necessari tornar a iniciar els serveis i programes que utilitzen NSS, ja " +"que si no es fa això podrien deixar de poder fer cerques o autenticacions " +"(per a serveis com l'ssh, això pot afectar la vostra capacitat per a entrar " +"al sistema). Comproveu la següent llista separada per comes de scripts " +"d'init.d amb serveis que s'han de tornar a iniciar ara, i corregiu-la si és " +"necessari." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Nota: reiniciar l'ssh/telnetd no hauria d'afectar cap connexió existent." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"No s'ha pogut reiniciar alguns serveis per a l'actualització de GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"No s'ha pogut reiniciar els serveis següents per a l'actualització de la " +"biblioteca GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Haureu d'iniciar aquests serveis manualment executant «/etc/init.d/ " +"start»." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/cs.po +++ eglibc-2.12.1/debian/po/cs.po @@ -0,0 +1,217 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2009-06-27 09:58+0200\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Všechny locales" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Locales, které se mají vygenerovat:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locales je systém pro přepínání mezi různými jazyky. Uživatelé si pak mohou " +"zvolit svůj jazyk, zemi, znaky, způsob porovnávání, atd." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Vyberte, které locales se mají vygenerovat. Přednostně byste měli vybírat " +"locales v kódování UTF-8 (obzvláště u nových instalací). Ostatní znakové " +"sady jsou užitečné pro zpětnou kompatibilitu se staršími systémy a programy." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Žádné" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Výchozí locale pro tento systém:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Mnoho balíků v Debianu používá locales k zobrazení textu ve správném jazyce. " +"Z vygenerovaných locales si můžete vybrat to, které bude v systému použito " +"jako výchozí." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Tímto vyberete výchozí jazyk pro celý systém. Pokud se na počítač přihlašují " +"i uživatelé nemluvící vybraným jazykem, zaznamenají jisté problémy." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Chcete nyní aktualizovat glibc?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Běžící služby a programy využívající NSS se musí restartovat, protože jinak " +"se může stát, že nebudou moci vyhledávat v systémových databázích nebo " +"ověřovat uživatele. Instalační proces umí restartovat některé služby (např. " +"ssh nebo telnetd) automaticky, ale jiné musíte restartovat ručně. Jednou " +"takovou službou, kterou je třeba po aktualizaci glibc ručně zastavit a znovu " +"spustit, je xdm. Automatický restart totiž může odpojit aktivní sezení X11." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Instalace rozpoznala následující nainstalované služby, které je třeba před " +"aktualizací zastavit: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Chcete-li nyní aktualizaci přerušit a pokračovat později, odpovězte na " +"otázku záporně." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Služby, které se mají restartovat po aktualizaci knihovny GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Běžící služby a programy využívající NSS se musí restartovat, protože jinak " +"se může stát, že nebudou moci vyhledávat v systémových databázích nebo " +"ověřovat uživatele. (U služeb typu ssh to může ovlivnit možnost přihlášení " +"se.) Zkontrolujte prosím následující mezerami oddělený seznam služeb, které " +"se mají restartovat a v případě potřeby jej opravte. Služby jsou v seznamu " +"zastoupeny svými init.d skripty." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "Poznámka: restart sshd/telnetd by neměl ovlivnit probíhající spojení." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Chyba při restartu některých služeb během aktualizace GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Následující služby nemohly být během aktualizace knihovny GNU libc " +"restartovány:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "Budete je muset spustit ručně příkazem „/etc/init.d/ start“." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" +"Programy xscreensaver a xlockmore musí být před aktualizací restartovány" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" +"Zdá se, že v systému běží jedna nebo více instancí programu xscreensaver " +"resp. xlockmore. Z důvodu nekompatibilních změn v knihovnách se po " +"aktualizaci knihovny GNU libc nebudete moci pomocí těchto programů " +"autentizovat. To jinými slovy znamená, že se uživatelé nedostanou ke svým " +"uzamčeným sezením. Abyste tomu předešli, měli byste před aktualizací zmíněné " +"programy zastavit, nebo je ve vhodný čas restartovat." --- eglibc-2.12.1.orig/debian/po/eu.po +++ eglibc-2.12.1/debian/po/eu.po @@ -0,0 +1,212 @@ +# translation of glibc 2.6.1-3 debconf to basque +# Piarres Beobide , 2006. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +msgid "" +msgstr "" +"Project-Id-Version: eu\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2007-09-11 09:57+0100\n" +"Last-Translator: Piarres Beobide \n" +"Language-Team: librezale \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Lokal guztiak" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Sortu behar diren lokalak:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Lokalak hizkuntza anitz artean aldatzeko ingurugiroa da erabiltzaileek " +"beren hizkuntza, herrialdea, karaktere-jokoa etab. erabiltzeko gaitasuna ematen " +"dute." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Mesedez zein lokala sortuko diren hautatu. Lehenespen bezala UTF-8 locale-ak " +"hautau beharko lirateke, bereiziki instalazio berri batetan. Beste karaktere " +"joko batzuek sortzea erabilgarri izan liteke sistema eta software " +"zaharragoekin bateragarritasuna mantentzeko." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Batez" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Sistema inguruneko lokal lehenetsia:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Debian pakete anitzek locale-ak erabiltzen dituzte erabiltzaileari dagokion " +"hizkuntzan testuak bistaratzeko. Locale lehenetsia sortutako locale-en " +"artean hautatu dezakezu." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Honek zure sistemako hizkuntza aukeratuko du. Hautatutako hizkuntza denek " +"erabiltzen ez duten erabiltzaile anitzeko sistema bat bada, agian " +"erabiltzaile horiek arazoetan aurki daitezke." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Glibc orain bertsio-berritu nahi al duzu?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"NSS erabiltzen duten abiaraziriko programa eta zerbitzuak berrabiarazi egin " +"behar dira, bestela hauek ez dira bilaketak egin edo autentifikatzeko gai " +"izango (ssh bezalako zerbitzuentzat, saio hasteko ahalmenean eragin dezake). " +"Mesedez gainbegiratu berrabiaraziko diren zerbitzuen init.d script-en " +"zuriunez bereiziriko zerrenda eta zuzendu behar izanez gero." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Skript honek bertsio-berritzea egin aurretik gelditu behar diren " +"instalaturiko hurrengo zerbitzu hauek aurkitu ditu: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Bertsio-berritzea etzaeratu eta berandua jarraitu nahi izanez gero, ez " +"erantzun behekaldeko galderari." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "GNU libc liburutegi eguneraketan berrabiarazi behar diren zerbitzuak:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"NSS erabiltzen duten abiaraziriko programa eta zerbitzuak berrabiarazi egin " +"behar dira, besteka hauek ez dira bilaketak egin edo autentifikatzeko gai " +"izango (ssh bezalako zerbitzuentzat, saio hasteko ahalmenean eragin dezake). " +"Mesedez gainbegiratu berrabiaraziko diren zerbitzuen init.d script-en gakoz " +"bereiziriko zerrenda eta zuzendu behar izanen gero." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Oharra: sshd/telnetd berrabiarazteak ez luke sorturik dauden konexioetan " +"eragin beharko." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Huts GNU glibc bertsio berritzerkoan zenbait zerbitzu berrabiaraztean" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Hurrengo zerbitzuak ezin izan dira berrabiarazi GNU glibc liburutegi bertsio " +"berritzerako:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Hauek eskuz abiarazi beharko dituzu '/etc/init.d/ start' eginaz." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "xscreensaver eta xlockmore berrabiarazi egin behar dira bertsio-berritu ondoren" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" +"Xscreensaver edo xlockmore instantzi bat edo gehiago antzeman dira sisteman. " +"LKiburutegi aldaketa bateraezina direla eta GNU libc liburutegiak ez dizu " +"programa hauetan autentifikatzen utziko. Programa hauek berrabiazi edo " +"gelditzeko antolatu beharko zinateke erabiltzaileak beren saioetatik kanpo " +"uztea sahiesteko." --- eglibc-2.12.1.orig/debian/po/el.po +++ eglibc-2.12.1/debian/po/el.po @@ -0,0 +1,203 @@ +# translation of el.po to Greek +# translation of templates.po to Greek +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# Konstantinos Margaritis , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: el\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2004-01-21 22:44EEST\n" +"Last-Translator: Konstantinos Margaritis \n" +"Language-Team: Greek \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.0.2\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +#, fuzzy +msgid "Locales to be generated:" +msgstr "Επιλέξτε τα γλωσσικά περιβάλλοντα που θέλετε να δημιουργηθούν." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +#, fuzzy +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Το γλωσσικό περιβάλλον (locale) είναι ένα πλαίσιο υποστήριξης εναλλαγής " +"πολλαπλών γλωσσών, ώστε οι χρήστες να μπορούν να χρησιμοποιούν τη γλώσσα " +"τους, με όλα τα συνεπακόλουθα, χαρακτήρες, νόμισμα, τοπικές ρυθμίσεις, κλπ." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Κανένα" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "Default locale for the system environment:" +msgstr "Ποιο γλωσσικό περιβάλλον επιθυμείτε ως προκαθορισμένο για το σύστημα;" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Πολλά πακέτα στο Debiaν χρησιμοποιούν τη δυνατότητα των γλωσσικών " +"περιβάλλοντων για να εμφανίζουν κείμενο στην επιλεγμένη γλώσσα του κάθε " +"χρήστη. Μπορείτε να αλλάξετε το προκαθορισμένο γλωσσικό περιβάλλον αν η " +"Αγγλική δεν είναι η μητρική σας γλώσσα. Αυτές οι επιλογές βασίζονται στα " +"γλωσσικά περιβάλλοντα που επιλέξατε να δημιουργηθούν." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Σημείωση: Αυτή η επιλογή θα επιλέξει τη γλώσσα για ολόκληρο το σύστημά σας. " +"Αν έχετε ένα πολυχρηστικό σύστημα, στο οποίο οι χρήστες δε μιλούν όλοι την " +"γλώσσα που εσείς επιλέξατε, τότε πιθανόν να συναντήσουν δυσκολίες και για το " +"λόγο αυτό ίσως να μη πρέπει να ορίσετε ένα προκαθορισμένο γλωσσικό " +"περιβάλλον." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" + --- eglibc-2.12.1.orig/debian/po/ml.po +++ eglibc-2.12.1/debian/po/ml.po @@ -0,0 +1,190 @@ +# Translation of glibc debconf template. +# Copyright (C) 2007 Free Software Foundation, Inc +# This file is distributed under the same license as the glibc package. +# അനൂപ്|Anoop പി|P , ലാലു|Lalu കെആര്‍|KR , സജീവ്|Sajeev പിആര്‍|PR, 2007 +# +msgid "" +msgstr "" +"Project-Id-Version: Glibc 2007_05_26\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2007-05-26 15:09+0530\n" +"Last-Translator: അനൂപ്|Anoop പി|P , ലാലു|Lalu കെആര്‍|KR " +",സജീവ് |Sajeev പിആര്‍|PR \n" +"Language-Team: Swathanthra|സ്വതന്ത്ര Malayalam|മലയാളം Computing|കമ്പ്യൂട്ടിങ്ങ് \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-Language: Malayalam\n" +"X-Poedit-Country: INDIA\n" +"X-Poedit-SearchPath-0: /home/mobin\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "എല്ലാ ലൊക്കേലുകളും" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "സൃഷ്ടിക്കപ്പെടേണ്ട ലൊക്കേലുകള്‍:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"വിവിധ ഭാഷകളില്‍ നിന്ന് സ്വന്തം ഭാഷ, രാജ്യം, അക്ഷരങ്ങള്‍, അക്ഷരക്രമം മുതലായവ ഉപയോഗിക്കാനായി " +"ഉപയോക്താക്കളെ സഹായിക്കുന്ന ചട്ടക്കൂടുകളാണ് ലൊക്കേലുകള്‍." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"ദയവായി സൃഷ്ടിക്കേണ്ട ലൊക്കേലുകള്‍ തിരഞ്ഞെടുക്കുക. പുതിയ ഇന്‍സ്റ്റാലേഷനുകള്‍ക്ക് സ്വതേ തിരഞ്ഞെടുക്കുന്നത് " +"UTF-8 ലൊക്കേലുകള്‍ ആയിരിക്കും. മറ്റ് അക്ഷരക്കൂട്ടങ്ങള്‍ പഴയ സിസ്റ്റങ്ങളും സോഫ്റ്റ്‌വെയറുകളുമായി " +"പിന്നോട്ടുള്ള പൊരുത്തത്തിനായി ഉപയോഗപ്രദമായേയ്ക്കാം. " + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "ഒന്നുമില്ല" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "സിസ്റ്റം പരിസരത്തിനു വേണ്ടിയുളള സഹജമായ ലൊക്കേല്‍:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"ഉപയോക്താവിനുവേണ്ടി ശരിയായ ഭാഷയില്‍ ടെക്സ്റ്റ് പ്രദര്‍ശിപ്പിക്കുന്നതിനായി ഒരുപാട് ഡെബിയന്‍ " +"പാക്കേജുകള്‍ ലൊക്കേല്‍ ഉപയോഗിക്കുന്നു. സൃഷ്ടിക്കപ്പെട്ട ലൊക്കേലുകളില്‍ നിന്ന് സഹജമായ ലൊക്കേല്‍ " +"സിസ്റ്റത്തിനുവേണ്ടി നിങ്ങള്‍ക്ക് തിരഞ്ഞെടുക്കാവുന്നതാണ്." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"സിസ്റ്റത്തില്‍ എല്ലായിടത്തേയും സഹജമായ ഭാഷ ഇത് തിരഞ്ഞെടുക്കും. സഹജമായ ഭാഷ സംസാരിക്കാന്‍ " +"കഴിയാത്ത ഒന്നിലധികം ഉപയോക്താക്കളുള്ള സിസ്റ്റമാണിതെങ്കില്‍ അവര്‍ക്ക് പ്രയാസങ്ങള്‍ അനുഭവപ്പെടും." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/tr.po +++ eglibc-2.12.1/debian/po/tr.po @@ -0,0 +1,187 @@ +# Turkish translation of locales. +# This file is distributed under the same license as the locales package. +# Erçin EKER , 2004,2007. +# +msgid "" +msgstr "" +"Project-Id-Version: locales\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2007-04-09 11:02+0300\n" +"Last-Translator: Erçin EKER \n" +"Language-Team: Türkçe \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Tüm yereller" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Oluşturulacak yereller: " + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Yerel (locale), kullanıcıların kullanmak istediği dil, ülke, karakter, " +"sıralama şekli gibi dile özgü ayarlar arasında kolayca geçiş yapmasını " +"sağlayan bir yapıdır." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Lütfen hangi yerellerin oluşturulacağını seçin. Yeni kurulum için UTF-8 " +"yereller öntanımlı olarak seçilecektir. Diğer karakter setleri daha eski " +"sistemler ve yazılımlar ile uyumluluk için yararlı olabilir." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Hiçbiri" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Sistem için öntanımlı yerel:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Çoğu Debian paketi mesajları göstermekte kullanacağı dili belirlemek için " +"yerelleri kullanır. Oluşturulmak üzere seçtikleriniz arasından sistem için " +"öntanımlı bir yerel seçebilirsiniz." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Bu ayar, sisteminizin bütününde kullanılacak dili belirleyecektir. Eğer " +"farklı dilleri konuşan kullanıcıların da bulunduğu çok kullanıcılı bir " +"sistem çalıştırıyorsanız, bu kullanıcılar bazı zorluklarla karşılaşabilir. " + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" + --- eglibc-2.12.1.orig/debian/po/da.po +++ eglibc-2.12.1/debian/po/da.po @@ -0,0 +1,213 @@ +# Danish translation eglibc. +# Copyright (C) 2010 astk & nedenstående oversættere. +# This file is distributed under the same license as the astk package. +# Morten Brix Pedersen . 2006. +# Joe Hansen , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc-2.3.2.ds1\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2010-06-11 17:30+01:00\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Alle lokalitetsfiler" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Lokalitetsfiler der skal genereres:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Lokalitetsfilerne er en ramme, så du kan skifte imellem forskellige sprog og give " +"brugerne mulighed for at anvende deres eget sprog, land, tegn, sorteringsrækkefølge " +"med mere." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Vælg venligst hvilken lokalitet der skal oprettes. UTF-8-lokaliteter bør " +"vælges som standard, specielt for nyinstallationer. Andre tegnsæt kan være " +"brugbare for kompatibilitet bagud med ældre systemer og programmer." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ingen" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Standardlokalitet til systemmiljøet:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Mange pakker i Debian bruger lokaliteter til at vise tekst i det korrekte " +"sprog til brugerne. Du kan vælge en standardlokalitet til systemet fra de " +"oprettede lokaliteter." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Dette vil sætte sproget for hele systemet. Hvis dette system er et " +"flerbrugersystem, hvor ikke alle brugerne er i stand til at tale standardsproget, " +"vil de løbe ind i problemer." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Ønsker du at opgradere glibc nu?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Kørende tjenester og programmer som bruger NSS skal genstartes, ellers vil " +"de måske ikke mere kunne foretage opslag eller opnå godkendelse. " +"Installationsprocessen er i stand til at genstarte nogle tjenester (såsom " +"ssh eller telnetd), men andre programmer kan ikke genstartes automatisk. " +"Et sådant program som kræver manuel stop og genstart efter glibc-opgraderingen " +"er xdm - da automatisk genstart kan afbryde dine aktive X11-sessioner." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Dette skript registrerede de følgende installerede tjenester, som skal stoppes " +"før opgradering: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Hvis du ønsker at afbryde opgraderingen nu og fortsætte senere, så svar " +"venligst nej til spørgsmålet nedenfor." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Tjenester til genstart for GNU libc-biblioteksopgradering:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Kørende tjenester og programmer som bruger NSS skal genstartes, ellers vil " +"de måske ikke mere kunne foretage opslag eller opnå godkendelse (for " +"tjenester såsom ssh, kan dette påvirke din mulighed for at logge ind). " +"Gennemse venligst den følgende kommaadskilte liste af init.d-skripter til " +"tjenester som genstartes nu, og ret den hvis behovet er der." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Bemærk: Genstart af sshd/telnetd bør ikke påvirke eksisterende forbindelser." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Kunne ikke genstarte udvalgte tjenester for GNU libc-opgraderingen" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"De følgende tjenester kunne ikke genstartes for GNU " +"libc-biblioteksopgraderingen:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Du skal genstarte disse manuelt ved at køre '/etc/init.d/ start'." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "xscreensaver og xlockmore skal genstartes før opgradering" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" +"En eller flere kørende instanser af xscreensaver eller xlockmore er blevet " +"registreret på dette system. På grund af biblioteksændringer der ikke er " +"kompatible, vil opgraderingen af GNU libc-biblioteket gøre, at du ikke kan " +"godkende disse programmer. Du skal sørge for, at disse programmer bliver " +"genstartet eller stoppet, før du fortsætter denne opgradering, så du undgår " +"at lukke dine brugere ud af deres igangværende sessioner." + --- eglibc-2.12.1.orig/debian/po/it.po +++ eglibc-2.12.1/debian/po/it.po @@ -0,0 +1,214 @@ +# Italian (it) translation of debconf templates for eglibc +# Copyright (C) 2006 Free Software Foundation, Inc. +# This file is distributed under the same license as the eglibc package. +# Luca Monducci , 2005-2009. +# +msgid "" +msgstr "" +"Project-Id-Version: eglibc 2.9 debconf templates\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2009-05-31 10:25+0200\n" +"Last-Translator: Luca Monducci \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Tutti i «locale»" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "«Locale» da generare:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"I «locale» sono l'infrastruttura che permette di cambiare la lingua e " +"consente agli utenti di utilizzare la propria lingua, paese, caratteri, " +"criteri di ordinamento, ecc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Scegliere quali «locale» generare. I «locale» UTF-8 dovrebbero essere già " +"prescelti, in particolare sulle nuove installazioni. Gli altri set di " +"caratteri potrebbero essere utili per risolvere problemi di compatibilità " +"all'indietro con sistemi o programmi più vecchi." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Nessuno" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "«Locale» predefinito sul sistema:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Molti pacchetti Debian usano i «locale» per mostrare messaggi nella lingua " +"dell'utente. È possibile scegliere, fra quelli generati, un «locale» come " +"predefinito per il sistema." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Questo imposta la lingua predefinita per l'intero sistema. Se questo è un " +"sistema multi-utente e non tutti gli utenti parlano la lingua predefinita " +"alcuni di essi potrebbero avere delle difficoltà." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Aggiornare glibc adesso?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"I servizi e i programmi in esecuzione che usano NSS devono essere riavviati " +"altrimenti potrebbero non essere più in grado di effettuare ricerche o " +"autenticazioni. Il processo d'installazione è in grado di riavviare alcuni " +"servizi (come ssh o telnetd), ma altri programmi non possono essere " +"riavviati automaticamente. Uno dei programmi che devono essere fermati e " +"riavviati manualmente dopo aver aggiornato glibc è xdm perché il riavvio " +"automatico potrebbe disconnettere le sessioni X11 attive." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Questo script ha rilevato che i seguenti servizi devono essere fermati prima " +"dell'aggiornamento: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Per interrompere adesso l'aggiornamento e riprenderlo in seguito, rispondere " +"«No» alla questa domanda." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Servizi da riavviare per l'aggiornamento della libreria GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"I servizi e i programmi in esecuzione che usano NSS devono essere riavviati " +"altrimenti potrebbero non essere più in grado di effettuare ricerche o " +"autenticazioni (i servizi tipo ssh potrebbero avere problemi d'accesso). " +"Controllare il seguente elenco di nomi di script per init.d separati da uno " +"spazio relativi ai servizi che devono essere riavviati e, se necessario, " +"correggerlo." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Nota: il riavvio di sshd/telnetd non ha alcun effetto sulle connessioni " +"esistenti." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Errore nel riavvio di alcuni servizi per l'aggiornamento di GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Non è stato possibile riavviare i seguenti servizi per l'aggiornamento della " +"libreria GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "È necessario avviarli manualmente con «/etc/init.d/ start»." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "Riavvio di xscreensaver e xlockmore prima dell'aggiornamento" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" +"Su questo sistema sono state rilevate una o più istanze di xscreensaver o " +"xlockmore in esecuzione. A causa di modifiche incompatibili nella libreria, " +"l'aggiornamento della libreria GNU libc impedirà di autenticarsi con questi " +"programmi. È necessario riavviare o fermare questi servizi prima di " +"proseguire con questo aggiornamento per evitare di buttare fuori gli utenti " +"dalle sessioni attualmente aperte." --- eglibc-2.12.1.orig/debian/po/vi.po +++ eglibc-2.12.1/debian/po/vi.po @@ -0,0 +1,209 @@ +# Vietnamese Translation for GlibC. +# Copyright © 2008 Free Software Foundation, Inc. +# Clytie Siddall , 2005-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.7-9\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-02-29 15:01+1030\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.7b3\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Mọi miền địa phương" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Miền địa phương cần tạo ra:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Miền địa phương (locale) là một khuôn khổ để chuyển đổi giữa các ngôn ngữ " +"khác nhau, cũng cho phép người dùng chọn sử dụng ngôn ngữ, quốc gia, ký tự, " +"thứ tự sắp xếp v.v. của quê." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Hãy chọn những miền địa phương cần tạo ra. Có nên chọn miền địa phương kiểu " +"UTF-8 theo mặc định, đặc biệt cho việc cài đặt mới. (Ghi chú : tiếng Việt " +"cần thiết UTF-8.) Bộ ký tự khác có thể hữu ích để tương thích ngược với hệ " +"thống/phần mềm cũ." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Không có" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Miền địa phương mặc định cho môi trường hệ thống:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Nhiều gói của Debian có dùng miền địa phương để hiển thị văn bản bằng ngôn " +"ngữ thích hợp với người dùng. Bạn có dịp chọn miền địa phương mặc định cho " +"hệ thống, trong những miền địa phương được tạo ra." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Ghi chú : việc này sẽ chọn ngôn ngữ mặc định cho toàn hệ thống. Nếu hệ thống " +"này có nhiều người dùng và không phải tất cả có khả năng nói ngôn ngữ mặc " +"định, họ sẽ gặp khó khăn." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Bạn có muốn nâng cấp glibc ngay bây giờ không?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Các dịch vụ và chương trình đều đang chạy dựa vào NSS thì cần phải được khởi " +"chạy lại: không thì chúng không còn có khả năng tra tìm hay xác thực lại. " +"Tiến trình cài đặt có khả năng khởi chạy lại một số dịch vụ riêng (v.d. ssh " +"hoặc têlnetd) nhưng không thể tự động khởi chạy lại các chương trình khác. " +"Một chương trình như vậy mà cần phải bị dừng chạy rồi được khởi chạy lại " +"bằng sau khi nâng cấp glibc là xdm, vì việc tự động cài đặt có thể ngắt kết " +"nối đến phiên chạy X11 đang hoạt động." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Văn lệnh này đã phát hiện những dịch vụ đã cài đặt sau mà phải bị dừng chạy " +"trước khi nâng cấp: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Nếu bạn muốn làm gián đoạn tiến trình nâng cấp ngay bây giờ và tiếp tục sau, " +"hãy trả lời « Không » bên dưới." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Các dịch vụ cần khởi chạy lại để nâng cấp thư viện libc GNU:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Các dịch vụ và chương trình đều đang chạy khi sử dụng NSS thì cần phải được " +"khởi chạy lại: không thì không còn có khả năng tra tìm hay xác thực lại (đối " +"với dịch vụ như SSH, trường hợp này có thể ngăn cản bạn đăng nhập). Hãy xem " +"lại danh sách định giới bằng dấu cách các văn lệnh init.d cho dịch vụ cần " +"khởi chạy lại ngay bây giờ, và sửa nếu thích hợp." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Ghi chú : khởi chạy lại sshd/telnetd không nên có tác động kết nối đang chạy." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Lỗi khởi chạy lại một số dịch vụ để nâng cấp libc GNU." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Những dịch vụ theo đây không thể được khởi chạy lại để nâng cấp thư viện " +"libc GNU:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Bạn sẽ cần phải tự khởi chạy lại các dịch vụ này, bằng cách chạy lệnh « /etc/" +"init.d/ start »." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/fi.po +++ eglibc-2.12.1/debian/po/fi.po @@ -0,0 +1,220 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-04-01 21:12+0200\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Kaikki maa-asetukset" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Muodostettavat maa-asetukset." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Maa-asetusten avulla on mahdollista vaihtaa käytettävää kieltä ja antaa " +"käyttäjien asettaa haluamansa kieli, maa, merkistö, aakkostustapa, jne." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Valitse mitkä maa-asetukset luodaan. Oletuksena tulisi valita UTF-8-tyypin " +"asetuksia, erityisesti uusissa asennuksissa. Muut merkkijoukot voi olla " +"tarpeen vanhempien järjestelmien ja ohjelmien kanssa yhteensopivuussyistä." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ei mikään" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Järjestelmäympäristön oletusmaa-asetus:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Monet Debianin paketit käyttävät maa-asetuksia näyttääkseen tekstit " +"käyttäjälle oikealla kielellä. Järjestelmän oletusmaa-asetus voidaan valita " +"luoduista maa-asetuksista." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Tämä asettaa koko järjestelmän oletuskielen. Jos tällä järjestelmällä on " +"useita käyttäjiä, eivätkä kaikki käyttäjät ymmärrä oletuskieltä, heillä " +"tulee olemaan ongelmia." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Tulisiko glibc päivittää nyt?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Käynnissä olevat palvelut ja ohjelmat, jotka käyttävät NSS:ää, täytyy " +"käynnistää uudelleen. Muuten ne eivät välttämättä enää pysty tekemään " +"etsintöjä tai tunnistautumisia. Asennusprosessi pystyy käynnistämään jotkin " +"palvelut uudelleen (esimerkiksi ssh:n ja telnetdin), mutta muita ohjelmia ei " +"voida käynnistää automaattisesti uudelleen. Yksi tällainen ohjelma, joka " +"täytyy käsin pysäyttää ja käynnistää uudelleen glibcin päivityksen jälkeen, " +"on xdm. Tämä johtuu siitä, että automaattinen uudelleenkäynnistys saattaisi " +"keskeyttää aktiiviset X11-istunnot." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Tämä komentosarja löysi seuraavat asennetut palvelut, jotka tulee pysäyttää " +"ennen päivitystä: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Jos päivitys halutaan keskeyttää nyt ja jatkaa myöhemmin, älä valitse tätä " +"vaihtoehtoa." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" +"Palvelut, jotka tulee käynnistää uudelleen GNU libc -kirjastoa " +"päivitettäessä:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Käynnissä olevat palvelut ja ohjelmat, jotka käyttävät NSS:ää, täytyy " +"käynnistää uudelleen. Muuten ne eivät välttämättä enää pysty tekemään " +"etsintöjä tai tunnistautumisia (esimerkiksi ssh:n kanssa kirjautuminen ei " +"välttämättä onnistu). Tarkista alla oleva välilyönnein eroteltu lista niiden " +"palveluiden init.d-komentosarjoista, jotka käynnistetään nyt uudelleen, ja " +"korjaa sitä tarvittaessa." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Huomautus: sshd:n tai telnetd:n uudelleenkäynnistyksen ei pitäisi vaikuttaa " +"olemassa oleviin yhteyksiin." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"Joidenkin palveluiden käynnistys epäonnistui päivitettäessä GNU libc:tä" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Seuraavia palveluita ei voitu käynnistää uudelleen päivitettäessä GNU libc -" +"kirjastoa:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Nämä palvelut tulee käynnistää käsin ajamalla ”/etc/init.d/ start”." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" + --- eglibc-2.12.1.orig/debian/po/sk.po +++ eglibc-2.12.1/debian/po/sk.po @@ -0,0 +1,203 @@ +# Ivan Masár , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.6.1-1\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-02-26 23:21+0100\n" +"Last-Translator: Ivan Masár \n" +"Language-Team: Slovak \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Všetky locales" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Locales, ktoré sa majú vytvoriť:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locales sú infraštruktúra na prepínanie medzi viacerými jazykmi a umožňujú " +"používateľom používať ich jazyk, krajinu, poradie znakov atď." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Prosím zvoľte, ktoré locales sa majú vytvoriť. Štandardne by mali byť " +"zvolené UTF-8 locales, zvlášť na nových inštaláciách. Iné znakové sady môžu " +"byť užitočné pre spätnú kompatibilitu so staršími systémami a softvérom." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "žiadne" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Štandarné locale systémového prostredia:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Mnohé balíky v Debiane používajú locales pre zobrazovanie textu v správnom " +"jazyku používateľa. Z vytvorených locales môžete zvoliť štandardné locale " +"systému." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Týmto vyberiete štandardný jazyk pre celý systém. Ak je toto " +"viacpoužívateľský systém, kde nie všetci používatelia hovoria štandarným " +"jazykom, môžu mať ťažkosti." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Želáte si teraz aktualizovať glibc?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Bežiace programy a služby, ktoré používajú NSS sa musia reštartovať, inak by " +"viac neboli schopné vykonávať vyhľadávanie a autentifikáciu. Inštalátor je " +"schopný sám reštartovať niektoré služby (ako ssh a telnet), ale iné programy " +"nie je možné reštartovať automaticky. Jeden z takýchto programov, ktoré " +"vyžadujú, aby ste ho manuálne zastavili a reštartovali po aktualizácii " +"glibc, je xdm - pretože automatický reštart by mohol odpojiť vaše aktívne " +"relácie X11." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Tento skript zistil, že nasledovné služby je pred aktualizáciou potrebné " +"zastaviť:${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Ak si teraz želáte prerušiť aktualizáciu a pokračovať neskôr, prosím, " +"odpovedzte na túto otázku „Nie“." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Služby, ktoré sa majú po aktualizácii knižnice GNU libc reštartovať:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Bežiace programy a služby, ktoré používajú NSS a majú sa reštartovať, inak " +"by viac neboli schopné vykonávať vyhľadávanie a autentifikáciu (pri službách " +"ako ssh toto môže mať vplyv na schopnosť prihlásiť sa). Prosím, skontrolujte " +"nasledovný zoznam (položky sú oddelené medzerami) init.d skriptov služieb, " +"ktoré je treba reštartovať a ak je to potrebné, opravte ho." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Pozn.: reštartovanie sshd/telnetd by nemalo mať vplyv na už nadviazané " +"spojenia." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Nepodarilo sa reštartovať niektoré služby pri aktualizácii GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Nasledovné služby sa pri aktualizácii knižnice GNU libc nepodarilo sa " +"reštartovať:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Budete musieť tieto služby spustiť ručne pomocou „/etc/init.d/ " +"start“." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/nl.po +++ eglibc-2.12.1/debian/po/nl.po @@ -0,0 +1,220 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-02-27 08:28+0100\n" +"Last-Translator: Bart Cornelis \n" +"Language-Team: debian-l10n-dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Dutch\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Alle lokalisaties" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Te genereren lokalisaties:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Lokalisatie is het raamwerk om om te schakelen tussen verschillende talen en " +"laat gebruikers toe om hun eigen taal, land, karakterset, enzovoort te " +"gebruiken." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Welke lokalisaties wilt u laten genereren? Standaard kiest u, zeker voor " +"nieuwe installaties, best UTF-8 lokalisaties. Andere karaktersets kunnen " +"nuttig zijn voor compatibiliteit met oudere systemen of software." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Geen" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Standaardlokalisatie voor dit systeem:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Veel Debian-pakketten gebruiken lokalisaties om de tekst in de voor de " +"gebruiker juiste taal weer te geven. U kunt u de standaardlokalisatie voor " +"het systeem kiezen uit de gegeneerde lokalisaties." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Dit bepaalt de standaardtaal voor het volledige systeem. Op systemen met " +"meerdere gebruikers kunt u problemen krijgen als niet alle gebruikers de " +"gekozen taal spreken; in dat geval kunt u misschien beter de " +"standaardlokalisatie niet veranderen." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Wilt u glibc nu opwaarderen?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Draaiende diensten en programma's die NSS gebruiken dienen herstart te " +"worden. Zo niet kunnen ze mogelijk geen opzoekingen en authenticatie meer " +"doen. Het Installatieproces kan sommige diensten (zoals ssh en telnetd) " +"herstarten, maar andere diensten kunnen niet automatisch herstart worden. " +"Een zo'n dienst die handmatig dient gestopt en gestart te worden na de " +"opwaardering van glibc is xdm, dit omdat een automatische herstart uw " +"actieve X11-sessies verbreekt." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Dit script heeft de volgende diensten ontdekt die gestopt moeten worden voor " +"de opwaardering: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Als u de opwaardering nu wilt afbreken en hiermee later wilt verder gaan " +"dient u zo meteen te weigeren." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Tijdens 'GNU libc'-opwaardering te herstarten diensten:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Draaiende diensten en programma's die NSS gebruiken dienen herstart te " +"worden, zo niet kunnen ze mogelijk geen opzoekingen en authenticatie meer " +"doen (voor diensten zoals ssh kan dit gevolgen hebben voor de mogelijkheid " +"om in te loggen). Gelieve de volgende, met spaties gescheiden lijst van init." +"d-scripts voor diensten die herstart dienen te worden te controleren en " +"indien nodig bij te werken." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Opmerking: herstarten van sshd/telnetd heeft normaal geen effect op " +"bestaande verbindingen." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"Herstarten van sommige diensten bij de opwaardering van GNU libc is mislukt." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"De volgende diensten konden niet herstart worden na de opwaardering van GNU " +"libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"U dient deze diensten handmatig te herstarten via het commando '/etc/init.d/" +" start'." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/de.po +++ eglibc-2.12.1/debian/po/de.po @@ -0,0 +1,218 @@ +# Translation of glibc debconf templates to German +# Copyright (C) Helge Kreutzmann , 2006-2009. +# This file is distributed under the same license as the glibc package. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.9-5\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2009-03-16 19:04+0100\n" +"Last-Translator: Helge Kreutzmann \n" +"Language-Team: de \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Alle Standorteinstellungen" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Zu generierende Standorteinstellungen (locales):" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Standorteinstellungen ist ein System, um zwischen verschiedenen Sprachen " +"umzuschalten. Benutzer knnen damit ihre Sprache, ihr Land, ihren " +"Zeichensatz, ihre Sortierreihenfolge und anderes mehr festlegen." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Bitte whlen Sie aus, welche Standorteinstellungen erzeugt werden sollen. " +"UTF-8-Standorteinstellungen sollten standardmig ausgewhlt werden, " +"insbesondere fr neue Installationen. Andere Zeichenstze knnten fr " +"Rckkompatibilitt mit lteren Systemen und Software ntzlich sein." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Keine" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Standard-Standorteinstellung fr die Systemumgebung?" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Viele Debian-Pakete benutzen Standorteinstellungen, um Text in der fr die " +"Benutzer korrekten Sprache anzuzeigen. Sie knnen aus den generierten " +"Standorteinstellungen einen Standard fr Ihr System auswhlen." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Bemerkung: Dies whlt die Standardsprache fr das gesamte System. Falls dies " +"ein Mehrbenutzer-System ist und nicht alle Benutzer die Standardsprache " +"sprechen, dann werden diese Schwierigkeiten haben." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Mchten Sie das Upgrade von Glibc jetzt durchfhren?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Laufende Dienste und Programme, die NSS verwenden, mssen neu gestartet " +"werden, da sie andernfalls keine berprfungen oder Authentisierung mehr " +"durchfhren knnen. Der Installationsprozess kann einige Dienste neu starten " +"(wie Ssh oder Telnetd), aber andere Programme knnen nicht automatisch neu " +"gestartet werden. Eines dieser Programme, die nach dem Upgrade von Glibc ein " +"manuelles Stoppen und Neustarten bentigen ist Xdm, da ein automatischer " +"Neustart Sie von Ihren aktiven X11-Sitzung trennen knnte." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Dieses Skript erkannte die folgenden installierten Dienste, die vor dem " +"Upgrade gestoppt werden mssen: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Falls Sie das Upgrade jetzt unterbrechen und spter Fortfahren mchten, " +"antworten Sie bitte auf die unten folgende Frage mit Nein." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" +"Dienste, die beim GNU Libc-Bibliotheks-Upgrade neu gestartet werden sollen:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Laufende Dienste und Programme, die NSS verwenden, mssen neu gestartet " +"werden, da sie andernfalls keine berprfungen oder Authentisierung mehr " +"durchfhren knnen (fr Dienste wie ssh kann dies die Mglichkeit der " +"Anmeldung betreffen). Bitte prfen Sie, welche der Dienste in der folgenden, " +"durch Leerzeichen getrennte Liste von init.d-Skripten neu gestartet werden " +"sollen, und korrigieren Sie diese falls notwendig." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Hinweis: das Neustarten von sshd/telnetd sollte existierende Verbindungen " +"nicht beeintrchtigen." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Fehler beim Neustarten einiger Dienste fr das GNU Libc-Upgrade" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Die folgenden Dienste konnten fr das GNU Libc-Upgrade nicht neu gestartet " +"werden:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Sie mssen diese manuell starten, indem Sie /etc/init.d/ start " +"ausfhren." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "Xscreensaver und Xlockmore mssen vor dem Upgrade neu gestartet werden" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" +"Eine oder mehrere laufende Instanzen von Xscreensaver oder Xlockmore sind " +"auf diesem System entdeckt worden. Aufgrund inkompatibler nderungen in " +"Bibliotheken wird das GNU Libc-Upgrade Sie auerstande setzen, sich gegenber" +"diesen Programmen zu authentifizieren. Sie sollten dafr sorgen, dass diese" +"Programme neu gestartet oder beendet werden, bevor Sie dieses Upgrade " +"fortsetzen, damit Ihre Benutzer nicht aus ihren laufenden Sitzungen " +"ausgesperrt werden." + --- eglibc-2.12.1.orig/debian/po/pl.po +++ eglibc-2.12.1/debian/po/pl.po @@ -0,0 +1,206 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: debconf-glibc-locales-pl\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-02-28 21:45+0100\n" +"Last-Translator: Emilian Nowak \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Gettext Translator 0.9\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Wszystkie dostępne" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Wybierz ustawienia lokalne, które chcesz wygenerować:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Wybierane tutaj ustawienia lokalne stanowią podstawową strukturę dającą " +"możliwość pracy systemu w specyficznym dla danego kraju środowisku (język, " +"zestaw znaków, kolejność sortowania itp.)" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Wybierz jakie ustawienia lokalne chcesz wygenerować. Najkorzystniej jest " +"wybrać UTF-8, zwłaszcza na nowo instalowanych systemach. Pozostałe kodowania " +"mogą być przydatne, aby utrzymać wsteczną kompatybilność ze starymi " +"systemami lub programami." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Brak" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Wybierz domyślne ustawienia lokalne, dla swojego systemu:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Wiele programów dostarczanych w pakietach Debiana wykorzystuje ustawienia " +"lokalne, aby wyświetlać komunikaty we właściwym dla użytkownika języku. " +"Możesz zmienić domyślne ustawienia lokalne dla całego systemu. Można wybrać " +"tylko te ustawienia lokalne, które wcześniej zostały wygenerowane." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Zwróć uwagę na to, że wybrany tutaj język ma wpływ na na cały system i " +"większość działających w nim programów. Jeżeli z tego systemu korzysta wielu " +"użytkowników posłujących się różnymi językami, to mogą oni mieć problemy ze " +"zrozumieniem komunikatów systemu." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Czy teraz chcesz zaktualizować glibc ?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Serwisy i programy wykorzystujące NSS wymagają ponownego uruchomienia aby " +"operacje związane z autoryzacją działały prawidłowo. Proces instalacji może " +"zrestartować część serwisów (jak np. ssh lub telnetd), jednak niektóre " +"usługi będą wymagały ingerencji użytkownika. Przykładem takiego programu " +"jest xdm, którego restart mógłby spowodować wyłączenie aktywnej sesji X11." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Skrypt wykrył następujące serwisy, które należy ręcznie zrestartować " +"${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Jeżeli chcesz przerwać aktualizację i dokończyć ją później wybierz nie." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Serwisy wymagające restartu po aktualizacji GNU libc." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Uruchomione serwisy i programy wykorzystujące NSS wymagają restartu. W " +"przeciwnym wypadku nie będą operacje związane z autoryzacją nie będą " +"działały prawidłowo. Przy usługach takich jak ssh będzie to oznaczało brak " +"możliwości zalogowania. \n" +"Zalecamy przejrzenie listy skryptów startowych i ewentualne jej poprawnie." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Uwaga: restart sshd/telnetd nie powinien mieć wpływy na nawiązane już " +"połączenia." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"Nastąpił błąd podczas restartowania niektórych usług po aktualizacji GNU " +"libc." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "Następujące usługi nie zostały zrestartowane po aktualizacji GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Aby zrestartować ręcznie te usługi należy wywołać '/etc/init.d/ " +"start'." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" + --- eglibc-2.12.1.orig/debian/po/ru.po +++ eglibc-2.12.1/debian/po/ru.po @@ -0,0 +1,220 @@ +# translation of ru.po to Russian +# Translation of glibc debconf .po to Russian +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Yuri Kozlov , 2006. +# Sergey Alyoshin , 2007, 2008. +# Yuri Kozlov , 2009. +msgid "" +msgstr "" +"Project-Id-Version: eglibc 2.9-18\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2009-06-27 12:46+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Все локали" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Локали, которые будут созданы:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Локаль -- это инфраструктура для поддержки в системе нескольких языков; она " +"позволяет пользователю настроить язык сообщений, страну, алфавит, порядок " +"сортировки и т.п." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Выберите создаваемые локали. Кодировка локали UTF-8 должна быть выбрана по " +"умолчанию, особенно при новой инсталляции. Другие кодировки локали могут " +"быть полезны для обратной совместимости со старыми системами и программами." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Нет" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Локаль по умолчанию в системном окружении:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Многие пакеты в Debian используют локали для отображения сообщений на языке " +"пользователя. Вы можете выбрать из созданных локалей системную локаль по " +"умолчанию." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Эта настройка устанавливает язык по умолчанию для всей системы. Если это " +"многопользовательская система, где не все пользователи говорят на выбранном " +"языке по умолчанию, то у них возникнут трудности." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Хотите выполнить обновление glibc сейчас?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Запущенные сервисы и программы, которые используют NSS, должны быть " +"перезапущены, иначе они не будут способны выполнять поиск или " +"аутентификацию. В процессе установки возможно перезапустить некоторые " +"сервисы (такие, как ssh или telnetd), но другие программы не могут быть " +"автоматически перезапущены. Одна из таких программ, которая требует ручной " +"остановки и перезапуска после обновления glibc, это xdm, так как её " +"автоматический перезапуск может отключить ваши активные сессии X11." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Этот сценарий определил следующие установленные сервисы, которые должны быть " +"остановлены перед обновлением: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Если вы желаете прервать процесс обновления сейчас и продолжить позже, " +"ответьте Нет на следующий вопрос." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Для обновления GNU libc должны быть перезапущены следующие сервисы:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Запущенные сервисы и программы, которые используют NSS, должны быть " +"перезапущены, иначе они не будут способны выполнять поиск или аутентификацию " +"(для таких сервисов, как ssh, это может повлиять на возможность входа в " +"систему). Просмотрите следующий разделённый пробелами список из скриптов " +"init.d для сервисов, которые будут сейчас перезапущены и отредактируйте его " +"при необходимости." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Примечание: перезапуск sshd/telnetd не должен повлиять на какие-либо из " +"существующих соединений." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Произошёл сбой при перезапуске некоторых сервисов для обновления GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Следующие сервисы не могут быть перезапущены для обновления библиотеки GNU " +"libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Вам будет нужно запустить их вручную, для чего следует выполнить '/etc/init." +"d/<сервис> start'." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "Перед обновлением требуется перезапустить xscreensaver и xlockmore" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" +"В системе обнаружен один или несколько экземпляров xscreensaver или xlockmore. " +"Так данное обновление устанавливает несовместимую с прошлой версией библиотеку " +"GNU libc, эти программы не смогут проводить аутентификацию. " +"Перед тем как продолжить данное обновление вам нужно перезапустить или " +"остановить эти программы, чтобы избежать блокировки имеющихся сеансов " +"пользователей." + --- eglibc-2.12.1.orig/debian/po/ja.po +++ eglibc-2.12.1/debian/po/ja.po @@ -0,0 +1,214 @@ +# Kenshi Muto , 2007 +# GOTO Masanori , -2007 +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: locales 2.7-9\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-02-27 09:28+0900\n" +"Last-Translator: Kenshi Muto \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "すべてのロケール" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "生成するロケールの選択:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"ロケールとは、複数の言語を切り替え、ユーザが自身の言語・国・文字・並べ替え順" +"序などを使えるように許可するための仕組みです。" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"生成したいロケールを選択してください。UTF-8 ロケールは、特に新規にインストー" +"ルしたものであれば、デフォルトで選択されているはずです。その他の文字セット" +"は、より古いシステムおよびソフトウェアとの後方互換性のために役立つでしょう。" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "なし" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "システム標準の環境変数として設定するデフォルトロケール:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"ユーザに正しい言語でテキストを表示するため、Debian では多くのパッケージがロ" +"ケールを使用します。生成したロケールの中からシステムでのデフォルトロケールを" +"選択できます。" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"これはシステム全体のデフォルトロケールを選ぶことになります。このシステムがマ" +"ルチユーザシステムで、すべてのユーザがデフォルトの言語を話すことができるとい" +"うわけではない場合は、そういった人々は困難を感じることになってしまいます。" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "glibc を今更新しますか?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"NSS を利用している実行中のサービスおよびプログラムは、再起動する必要がありま" +"す。さもないと、ルックアップおよび認証がもう利用できないことになります。イン" +"ストール手続きではいくつかのサービス (ssh や telnetd など) を再起動することが" +"できますが、その他のプログラムは自動では再起動されません。手動での停止および " +"glibc の更新のあとにあなた自身で再起動する必要のあるそのようなプログラムの 1 " +"つとしては、xdm があります。というのも、自動再起動はあなたのアクティブな X11 " +"のセッションを閉じてしまうことになるからです。" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"スクリプトは、更新前に停止されなければならない以下のインストールされたサービ" +"スを検出しました: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"更新を今中止して後日続行したいのであれば、以下の質問で「いいえ」と答えてくだ" +"さい。" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "GNU libc ライブラリの更新で再起動するサービス:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"NSS を利用している実行中のサービスおよびプログラムは、再起動する必要がありま" +"す。さもないと、ルックアップおよび認証がもう利用できないことになります (ssh " +"のようなサービスでは、これはログインできるかどうかに影響します)。以下のスペー" +"スで区切られた、今再起動するサービスの init.d スクリプトのリストを見て、必要" +"なら修正してください。" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "注意: sshd/telnetd の再起動は既存の接続には影響しないはずです。" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "GNU libc 更新のためのいくつかのサービスの再起動で失敗" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"GNU libc ライブラリ更新のための、以下のサービスの再起動ができませんでした。" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"'/etc/init.d/<サービス> start' を実行することで、これらを手動で起動する必要が" +"あります。" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/templates.pot +++ eglibc-2.12.1/debian/po/templates.pot @@ -0,0 +1,175 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/lt.po +++ eglibc-2.12.1/debian/po/lt.po @@ -0,0 +1,206 @@ +# translation of lt.po to Lithuanian +# Copyright (C) 2006 The Free Software Foundation +# This file is distributed under the same license as the glibc package. +# +# Gintautas Miliauskas , 2006, 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: lt\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-02-26 23:36+0200\n" +"Last-Translator: Gintautas Miliauskas \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%" +"100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Visos lokalės" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Lokalės, kurios bus sugeneruotos:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Lokalės yra karkasas, kuriuo naudotojai gali nustatyti savo kalbą, " +"informaciją apie savo šalį, simbolius, valiutą, rikiavimo tvarką ir t.t." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Pasirinkite, kurias lokales norite generuoti. Turėtų būti pasirinktos UTF-8 " +"lokalės, ypač jei diegiate naują sistemą. Kiti simbolių rinkiniai gali būti " +"naudingi atgaliniam suderinamumui su senesnėmis sistemomis ir programomis." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Jokia" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Sistemos lokalė pagal nutylėjimą" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Daug Debian paketų naudoja lokales tekstui reikiama kalba rodyti. Galite iš " +"sugeneruotų lokalių išsirinkti standartinę sistemos lokalę." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Bus nustatyta kalba visai sistemai. Jei sistemą naudoja keletas naudotojų ir " +"ne visi kalba pasirinkta kalba, gali kilti nepatogumų." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Ar norite dabar atnaujinti glibc?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Veikiančios tarnybos ir programos, naudojančios NSS, turi būti paleistos iš " +"naujo, kitaip jose gali sutrikti paieška ir autentikavimas. Diegimo procesas " +"gali paleisti iš naujo kai kurias tarnybas (pavyzdžiui, ssh ir telnetd), " +"tačiau kitos programos negali būti paleistos iš naujo automatiškai. Viena iš " +"tokių programų, kurią reikia paleisti iš naujo rankiniu būdu po glibc " +"atnaujinimo, yra xdm – automatinis restartavimas gali atjungti aktyvias X11 " +"sesijas." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Rastos šios tarnybas, kurias būtina sustabdyti prieš atnaujinimą: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Jei norite dabar nutraukti atnaujinimą ir jį pratęsti vėliau, atsakykite " +"neigiamai." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" +"Tarnybos, kurias reikia paleisti iš naujo po GNU libc bibliotekos " +"atnaujinimo:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Veikiančios tarnybos ir programos, naudojančios NSS, turi būti paleistos iš " +"naujo, kitaip jose gali sutrikti autentikavimas (tokioms tarnyboms kaip ssh " +"tai gali reikšti, kad negalėsite prisijungti). Peržiūrėkite toliau esantį " +"tarpeliais atskirtų init.d scenarijų, kurie dabar bus paleisti iš naujo, " +"sąrašą, ir, jei reikia, pataisykite." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Pastaba: sshd/telnetd paleidimas iš naujo neturėtų paveikti aktyvių " +"prisijungimų." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Nepavyko paleisti iš naujo kai kurių tarnybų atnaujinus GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "Atnaujinus GNU libc nepavyko iš naujo paleisti šių procesų:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Jas reikės paleisti rankiniu būdu įvykdant „/etc/init.d/tarnyba start“." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/nb.po +++ eglibc-2.12.1/debian/po/nb.po @@ -0,0 +1,188 @@ +# translation of glibc_nb.po to Norwegian Bokmål +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Bjørn Steensrud , 2007. +msgid "" +msgstr "" +"Project-Id-Version: glibc_nb\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2007-02-26 20:05+0100\n" +"Last-Translator: Bjørn Steensrud \n" +"Language-Team: Norwegian Bokmål \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Alle lokaler" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Lokaler (stedstilpasninger) som skal opprettes:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +#, fuzzy +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"«Lokale» er et rammeverk som kan veksle mellom flere språk, slik at brukere " +"kan velge sitt språk, land, tegnsett, sorteringsrekkefølge osv." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ingen" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Standardlokale for systemmiljøet:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Mange pakker i Debian bruker lokaler for å vise tekst i det riktige språket " +"for brukerne. Du kan endre standardlokalet om det ikke er ditt førstespråk. " +"Disse valgene er basert på hvilke lokaler som er valgt ut til å bli " +"opprettet." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Merk: Dette velger språk for hele systemet. Hvis dette er et " +"flerbrukersystem der ikke alle brukerne forstår det valgte språket, så kan " +"de komme opp i vansker, så kanskje det ikke bør velges et standardlokale." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" + --- eglibc-2.12.1.orig/debian/po/sv.po +++ eglibc-2.12.1/debian/po/sv.po @@ -0,0 +1,221 @@ +# translation of glibc_2.7-11_sv.po to swedish +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# Developers do not need to manually edit POT or PO files. +# +# Martin Bagge , 2008. +msgid "" +msgstr "" +"Project-Id-Version: glibc_2.7-11_sv\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2009-04-07 18:46+0100\n" +"Last-Translator: Martin Bagge \n" +"Language-Team: swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Alla lokalanpassningar" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Lokalanpassningar att generera:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Lokalanpassning (locale) r ett ramverk fr att vxla mellan flera sprk fr " +"att lta anvndare anvnda sitt sprk, land, tecken och sorteringsordning, " +"etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Vlj vilka lokalanpassningar som ska genereras. UTF-8-lokaler br vljas som " +"standard, speciellt fr nya installationer. Andra teckenuppsttningar kan " +"vara anvndbara fr baktkompatibilitet med ldre system och programvara." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ingen" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Vlj lokalanpassning som ska vara standard i systemet:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Mnga paket i Debian anvnder lokalanpassningar fr att visa text i det " +"korrekta sprket fr anvndaren. Du kan vlja en standardlokal fr systemet " +"frn de genererade lokalerna." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Detta kommer att vlja standardsprket fr hela systemet. Om du kr ett " +"system med flera anvndare dr inte alla talar det valda sprket, kan de f " +"problem." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Vill du uppgradera glibc nu?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Krande tjnster och program som anvnder NSS behver startas om, annars " +"kanske de inte kan kra uppslag eller autentisering lngre. Installationen " +"kan starta om ngra tjnster (ex. ssh och telnetd), andra program kan inte " +"startas om automatiskt - xdm r ett sdant program som du mste starta om " +"sjlv eftersom det skulle starta om din X-session." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Skriptet hittade fljande installerade tjnster som mste stoppas fre " +"uppgraderingen: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Om du vill avbryta uppgraderingen nu och fortstta senare anger du Nej p " +"frgan nedan." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Tjnster att starta om fr uppgradering av GNU libc-biblioteket:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Krande tjnster och program som anvnder NSS behver startas om, annars " +"kanske de inte kan kra uppslag eller autentisering lngre (fr tjnster " +"ssom ssh kan det pverka din mjlighet att logga in). Granska fljande " +"blankstegsseparerade lista ver init.d-skript fr tjnster som ska startas " +"om nu, och gr ndringar om det behvs." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Observera: omstart av sshd/telnetd ska inte pverka befintliga anslutningar." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"Misslyckades med att starta om vissa tjnster fr uppgraderingen av GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Fljande tjnster kunde inte startas om fr uppgraderingen av GNU libc-" +"biblioteket:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Du behver starta dessa manuellt genom att kra \"/etc/init.d/ start" +"\"." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" +"xscreensaver och xlockmore mste startas om innan uppgraderingen pbrjas" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" +"En eller flera instanser av xscreensaver eller xlockmore har hittats p " +"systemet. P grund av inkompatabilitet i och med frndringar av biblioteket " +"kan uppgraderingen av GNU libc innebra att du inte kan autentisera med " +"dessa program. Se till att alla instanser av programmen startas om eller " +"stoppas innan du fortstter med denna uppgradering fr att undvika att " +"anvndare blir utelsta frn sina sessioner." --- eglibc-2.12.1.orig/debian/po/ar.po +++ eglibc-2.12.1/debian/po/ar.po @@ -0,0 +1,201 @@ +# translation of ar.po to Arabic +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Ossama M. Khayat , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: ar\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-03-18 15:39+0300\n" +"Last-Translator: Ossama M. Khayat \n" +"Language-Team: Arabic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=6; plural=n==1 ? 0 : n==0 ? 1 : n==2 ? 2: n%100>=3 && " +"n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "جميع المحليات" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "المحليات التي سيتم توليدها:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"المحليات هي إطار عمل يمكنك من التبديل بين اللغات المتعددة وتمكن المستخدمين " +"من اختيار لغتهم، وبلدهم، ومجموعة الأحرف الخاصة بهم، إلخ." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"الرجاء اختيار المحليات التي تريد توليدها. يجب اختيار محليات UTF-8 بشكل " +"افتراضي، وبالتحديد لعمليات التثبيت الجديدة. يمكن الاستفادة من مجموعات " +"المحارف الأخرى للتوافق مع الأنظمة والبرامج القديمة." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "لا شيء" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "المحلية الافتراضية لبيئة النظام:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"في نظام ديبيان، تستخدم العديد من الحزم المحليات لعرض النصوص باللغة الصحيحة " +"للمستخدم. يمكنك اختيار المحلية الافتراضية للنظام من هذه المحليات." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"سيحدد هذا الخيار اللغة الافتراضية للنظام بأكمله. إن كان هذا النظام مستخدماً " +"من قبل عدة مستخدمين لا يستخدمون اللغة ذاتها، فسوف يواجهون بعض الصعوبات." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "أتريد ترقية glibc الآن؟" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"هناك بعض الخدمات والبرامج التي تستخدم NSS يجب إعادة تشغيلها، وإلا لن تستطيع " +"تلك الخدمات البحث أو المصادقة بعد الآن. تستطيع عملية التثبيت إعادة تشغيل بعض " +"الخدمات (مثل ssh أو telnetd)، إلا أن بعض الخدمات الأخرى لا يمكن إعادة " +"تشغيلها آلياً. وإحدى تلك الخدمات هي xdm والتي يجب عليك تشغيلها يدوياً بعد " +"عملية ترقية glibc ذلك أن عملية إعادة تشغيلها آلياً قد يوقف عمل جلسات X11 " +"الحالية." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"عثر البرنامج على الخدمات المثبتة التالية والتي يجب إيقافها قبل عملية " +"الترقية: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"إن كنت تريد ايقاف عملة الترقية الآن وإتمامها لاحقاً، الرجاء الإجابة بالنفي " +"للسؤال أدناه." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "الخدمات المطلوب إعادة تشغيلها لتريقة مكتبة GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"هناك بعض الخدمات والبرامج التي تستخدم NSS يجب إعادة تشغيلها، وإلا لن تستطيع " +"تلك الخدمات البحث أو المصادقة بعد الآن. تستطيع عملية التثبيت إعادة تشغيل بعض " +"الخدمات (مثل ssh والتي قد تؤثر على قدرتك الدخول). الرجاء مراجعة قائمة برامج " +"init.d هذه بالخدمات التي يجب إعادة تشغيلها الآن، وصححها إن كنت بحاجة إلى ذلك." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "ملاحظة: إعادة تشغيل sshd/telnetd يجب أن لايؤثر على أية اتصالات جارية." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "فشلت عملية إعادة تشغيل بعض الخدمات لترقية GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "تعذر إعادة تشغيل الخدمات التالية لترقية مكتبة GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"عليك بتشغيل هذه الخدمات يدوياً بتنفيذ الأمر '/etc/init.d/ start'." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/pt.po +++ eglibc-2.12.1/debian/po/pt.po @@ -0,0 +1,207 @@ +# Portuguese translation of glibc's debconf messages. +# Copyright (C) 2007 +# This file is distributed under the same license as the glibc package. +# Ricardo Silva , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-02-26 21:15+0000\n" +"Last-Translator: Ricardo Silva \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Todos os locales" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Locales a serem gerados:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locales é uma framework para alternar entre várias línguas e permitir aos " +"utilizadores usar a sua língua, país, caracteres, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Por favor escolha quais os locales a gerar. Deve escolher os locales UTF-8 " +"por omissão, especialmente em instalações de raiz. Outros conjuntos de " +"caracteres podem ser úteis para compatibilidade com sistemas e software " +"antigo." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Nenhum" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Locale por omissão para o ambiente do sistema:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Muitos pacotes na Debian usam locales para mostrar texto na língua correcta " +"do utilizador. Pode escolher, de entre os locales gerados, o locale por " +"omissão do sistema." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Isto irá escolher a língua por omissão para todo o sistema. Se este é um " +"sistema multi-utilizador em que nem todos os utilizadores são capazes de a " +"falar, estes irão ter dificuldades." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Quer actualizar a glibc agora?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Serviços e programas que estejam a correr que usem NSS têm de ser " +"reiniciados, de outra forma podem deixar de ser capazes de resolver nomes ou " +"de autenticar utilizadores. O processo de instalação é capaz de reiniciar " +"alguns serviços (tais como ssh ou telnetd), mas há outros programas que não " +"podem ser reiniciados automaticamente. Um dos programas que necessita de ser " +"parado e reiniciado manualmente é o xdm - uma reiniciação automática poderia " +"desligar as suas sessões de X11 activas." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Este script detectou os seguintes serviços instalados que têm de ser parados " +"antes da actualização: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Se quer interromper a actualização agora e continuar mais tarde, por favor " +"responda Não à questão abaixo." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Serviços a reiniciar para a actualização da biblioteca libc da GNU:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Serviços e programas que estejam a correr que usem o NSS têm de ser " +"reiniciados, de outra forma podem deixar de ser capazes de resolver nomes ou " +"de autenticar utilizadores (para serviços como o ssh, isto pode afectar a " +"sua capacidade de se ligar ao sistema). Por favor reveja a seguinte lista " +"separada por espaços de scripts init.d para serviços a serem reiniciados " +"agora, e corrija-a se for necessário." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Nota: reiniciar o sshd/telnetd não deve afectar nenhuma conexão existente." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Falha ao reiniciar alguns serviços para a actualização da libc da GNU" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Os seguintes serviços não puderam ser reiniciados para a actualização da " +"biblioteca libc da GNU:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Terá de os inicializar manualmente correndo '/etc/init.d/ start'." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/ta.po +++ eglibc-2.12.1/debian/po/ta.po @@ -0,0 +1,185 @@ +# translation of glibc.po to TAMIL +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Dr.T.Vasudevan , 2007. +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2007-04-24 19:42+0530\n" +"Last-Translator: Dr.T.Vasudevan \n" +"Language-Team: TAMIL \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "எல்லா உள்ளார்ந்த இடங்களும்" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "உருவாக்க வேண்டிய உள்ளார்ந்த இடங்கள்" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"உள்ளார்ந்த இடங்கள் என்பது பல மொழிகளுக்கிடையே மாறவும் பயனர்களை அவரவர் மொழி, நாடு, " +"குறிகள், முறைமைகள் ஆகியவற்றை பயன்படுத்தவும் பயனாகும் சட்ட அமைப்பு" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"எந்த உள்ளார்ந்த இடத்தை உருவாக்க வேண்டும் என தேர்வு செய்க. முன்னிருப்பாக UTF-8 உள்ளார்ந்த " +"இடங்கள் தேர்வு செய்யபட வேண்டும். குறிப்பாக புதிய நிறுவல்களுக்கு. மற்ற குறியாக்க " +"தொகுப்புகள் பழைய கணினிகள் மற்றும் மென்பொருட்களுடன் பின் நோக்கு இசைவுக்கு பயன்படும்." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "ஒன்றுமில்லை" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "கணினி சூழலுக்கு முன்னிருப்பு உள்ளார்ந்த இடம்" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"பயனருக்கு சரியான மொழியில் உரையை காட்ட டெபியனின் பல பொதிகள் உள்ளார்ந்த இடத்தை " +"பயன்படுத்துகின்றன. உருவாக்கப்பட்டவற்றிலிருந்து கணினிக்கு முன்னிருப்பு உள்ளார்ந்த இடத்தை " +"தேர்வு செய்யவும்." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"இது முழு கணினிக்கு முன்னிருப்பு மொழியை தேர்வு செய்யும். இது பலர் பயன் படுத்தும் " +"கணினியானால் எல்லா பயனர்களும் முன்னிருப்பு மொழியை அறிந்திராவிடில் அவர்கள் துன்புறுவர்." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/ro.po +++ eglibc-2.12.1/debian/po/ro.po @@ -0,0 +1,211 @@ +# translation of po-debconf://kdebase.po to romanian +# Romanian translation of glibc. +# Copyright (C) 2006 THE glibc'S COPYRIGHT HOLDER +# This file is distributed under the same license as the glibc package. +# +# Stan Ioan-Eugen , 2006, 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-02-17 12:48+0200\n" +"Last-Translator: stan ioan-eugen \n" +"Language-Team: romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Toate localele" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Localele ce vor fi generate:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locale este un cadru de lucru pentru utilizatori, care le permite acestora " +"să schimbe între mai multe limbi pentru a folosi propria lor limbă, țară, " +"caractere, formatare a datei, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Alegeți ce locale se generează. Localele UTF-8 ar trebui alese implicit, în " +"special pentru instalări noi. Din motive de compatibilitate cu soft sau " +"sisteme mai vechi, puteți alege să se genereze și alte seturi de caractere." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Nici una" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Locale implicite pentru sistem:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Multe pachete din Debian folosesc locale pentru a afișa text în limba " +"corectă pentru utilizatori. Puteți alege o valoarea pentru locale, implicită " +"pentru sistem, din localele generate." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Această opțiune va stabili limba pentru tot sistemul. Dacă aveți un sistem " +"multi-utilizator unde nu toți utilizatorii vorbesc limba aleasă, atunci ei " +"vor întâmpina dificultăți." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +#, fuzzy +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Serviciile și programele care rulează și folosesc NSS trebuiesc repornite, " +"altfel este posibil să nu mai poată efectua autentificarea sau căutarea " +"numelor (în cazul serviciilor gen ssh, acest lucru poate determina " +"imposibilitatea autentificării). Analizati următoarea listă ce conține, " +"separate prin spațiu, scripturi init.d ale serviciilor ce trebuiesc " +"repornite acum și corectați-o dacă este nevoie." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Servicii ce trebuiesc repornite la înnoirea bibliotecii GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Serviciile și programele care rulează și folosesc NSS trebuiesc repornite, " +"altfel este posibil să nu mai poată efectua autentificarea sau căutarea " +"numelor (în cazul serviciilor gen ssh, acest lucru poate determina " +"imposibilitatea autentificării). Analizati următoarea listă ce conține, " +"separate prin spațiu, scripturi init.d ale serviciilor ce trebuiesc " +"repornite acum și corectați-o dacă este nevoie." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Notă: repornirea sshd/telnetd nu ar trebui să afecteze conexiunile existente." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Eșec la pornirea unor servicii pentru înnoirea GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Următoarele servicii nu ar trebui repornite la înnoirea bibliotecii GNU libc." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Va trebui să porniți aceste servicii manual executând comanda '/etc/init.d/" +" start'." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" --- eglibc-2.12.1.orig/debian/po/zh_CN.po +++ eglibc-2.12.1/debian/po/zh_CN.po @@ -0,0 +1,201 @@ +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Hiei Xu , 2004. +# Carlos Z.F. Liu , 2004. +# LI Daobing , 2007, 2008. +# +# +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.7-9\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-02-28 23:44+0800\n" +"Last-Translator: LI Daobing \n" +"Language-Team: Chinese (Simplified) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "全部区域设置" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "请选择需要生成的区域设置(locale)。" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"区域设置(locale)是一种在多种语言之间切换的框架,用户可以通过它来设定自己的语" +"言、国家、字符集、字符串排序方式等。" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"请选择需要生成的区域设置。通常应当选择 UTF-8 字符集的区域设置,特别是对于新安" +"装的系统。其他的字符集一般用于兼容旧系统和旧软件。" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "无" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "哪个将作为系统环境默认的区域设置(locale)?" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Debian 里的很多软件包都使用区域设置(locale)来以正确的语言向用户显示文本。你可" +"以从生成的区域设置中选择一个缺省的区域设置。" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"注意:这将会把整个系统都设置为这种语言。如果您运行的是一个多用户系统,而且并" +"不是系统内的所有用户都使用您选择的语言,那么他们将会遇到一些麻烦。" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "你想现在升级 glibc 么?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"使用 NSS 的服务和程序需要重启,否则可能无法继续查询或验证。安装过程能重启部分" +"服务(如 ssh 和 telnetd),但其他程序无法自动重启。xdm 就是需要在 glibc 升级完" +"成后手动停止和重启的程序 - 因为自动重启可能会中断你的当前 X11 会话。" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "脚本检测到以下的服务需要在升级前停止: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "如果你想打断升级并在稍后继续,请对下面的问题答 No" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "GNU libc 库升级需要重启如下的服务:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"使用 NSS 的服务和程序需要重启,否则可能无法查询或验证(对于 ssh 这类的服务,有" +"可能导致你无法登录)。请检查下面需要重启的 init.d 脚本列表(空格分隔),如有误请" +"改正。" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "提示:重启 sshd/telnetd 不会影响现有的连接。" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "因 GNU libc 升级而重启的部分服务重启失败" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "GNU libc 库升级,但下列服务无法重启:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "你需要通过手动运行 '/etc/init.d/ start' 来启动这些服务。" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" + --- eglibc-2.12.1.orig/debian/po/POTFILES.in +++ eglibc-2.12.1/debian/po/POTFILES.in @@ -0,0 +1,2 @@ +[type: gettext/rfc822deb] debhelper.in/locales.templates +[type: gettext/rfc822deb] debhelper.in/libc.templates --- eglibc-2.12.1.orig/debian/po/gl.po +++ eglibc-2.12.1/debian/po/gl.po @@ -0,0 +1,208 @@ +# Galician translation of glibc's templates +# This file is distributed under the same license as the glibc package. +# Jacobo Tarrio , 2006, 2007, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2009-03-08 15:23+0100\n" +"PO-Revision-Date: 2008-02-26 22:22+0000\n" +"Last-Translator: Jacobo Tarrio \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Todas as configuracións locais" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Configuracións locais a xerar:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"O sistema de configuracións locais permite ter varios idiomas, e que os " +"usuarios poidan empregar o seu idioma, país, alfabeto, orde alfabética, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Escolla as configuracións locais a xerar. Debería escoller configuracións " +"locais UTF-8 por defecto, especialmente en instalacións novas. Os outros " +"xogos de caracteres poden ser útiles para a compatibilidade con sistemas e " +"software antigos." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ningunha" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Configuración local por defecto para o ambiente:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Moitos paquetes de Debian empregan configuracións locais para amosar texto " +"aos usuarios no idioma correcto. Pode escoller unha configuración local por " +"defecto para o sistema entre as configuracións locais xeradas." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Con isto hase escoller o idioma de todo o sistema. Se este sistema ten " +"varios usuarios e non todos coñecen o idioma por defecto, han ter " +"dificultades." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "¿Quere actualizar glibc agora?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"É necesario reiniciar os servizos e programas que están a empregar NSS; se " +"non se fai, é posible que deixen de poder realizar buscas ou autenticacións. " +"O proceso de instalación ode reiniciar algúns servizos (tales coma ssh ou " +"telnetd), pero outros programas non se poden reiniciar automaticamente. Un " +"deses programas que precisa de detención e reinicio manuais trala " +"actualización de glibc é xdm - xa que o reinicio automático podería " +"desconectar as súas sesións de X11 activas." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Este script detectou os seguintes servizos instalados que se deben deter " +"antes da actualización: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Se quere interromper agora a actualización e continuala despois, resposte " +"negativamente á seguinte pregunta." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Servizos a reiniciar para a actualización da biblioteca GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"É necesario reiniciar os servizos e programas que están a empregar NSS; se " +"non se fai, é posible que deixen de poder realizar buscas ou autenticacións " +"(para algúns servizos, coma ssh, isto pode afectar á súa capacidade de se " +"conectar á máquina). Revise a seguinte lista de scripts de init.d de " +"servizos que se van reiniciar agora, e corríxaa se é preciso." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Nota: o reinicio de sshd/telnetd non debería afectar ás conexións existentes." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"Problemas ao reiniciar algúns servizos para a actualización de GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Non se puido reiniciar os seguintes servizos para a actualización da " +"biblioteca GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Ha ter que reinicialos manualmente executando \"/etc/init.d/ start" +"\"." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "xscreensaver and xlockmore must be restarted before upgrading" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:4001 +msgid "" +"One or more running instances of xscreensaver or xlockmore have been " +"detected on this system. Because of incompatible library changes, the " +"upgrade of the GNU libc library will leave you unable to authenticate to " +"these programs. You should arrange for these programs to be restarted or " +"stopped before continuing this upgrade, to avoid locking your users out of " +"their current sessions." +msgstr "" + --- eglibc-2.12.1.orig/debian/bug/locales/presubj +++ eglibc-2.12.1/debian/bug/locales/presubj @@ -0,0 +1,18 @@ +locales dependencies on glibc +============================= + + If at some point (in unstable) you get messages like: + + The following packages have unmet dependencies: + locales: Depends: glibc-2.6-1 which is a virtual package. + + then please check for example on [1] that the glibc of the _same_ version as + the `locales` package you are trying to upgrade is in state _installed_ for + your architecture, and for how long. + + If it's not, it is very likely that the corresponding libc has not been + built _and_ uploaded to the mirrors for your architecture yet, and that the + dependencies will be fixed soon. Please wait for the package to be installed + for more than 24 hours before reporting a bug about `locales` dependencies. + + [1] http://buildd.debian.org/~jeroen/status/package.php?p=glibc --- eglibc-2.12.1.orig/debian/patches/series.hurd-i386 +++ eglibc-2.12.1/debian/patches/series.hurd-i386 @@ -0,0 +1,8 @@ +hurd-i386/submitted-net.diff +hurd-i386/local-gscope.diff +hurd-i386/local-atomic-no-multiple_threads.diff +hurd-i386/local-pthread_stubs.diff +hurd-i386/local-pthread-unsupported-stubs.diff +hurd-i386/local-unlockpt-chroot.diff +hurd-i386/local-msg-nosignal.diff +hurd-i386/local-pthread.diff --- eglibc-2.12.1.orig/debian/patches/svn-updates.diff +++ eglibc-2.12.1/debian/patches/svn-updates.diff @@ -0,0 +1,2 @@ +SVN update of svn://svn.eglibc.org/branches/eglibc-2_12 from revision 10591 + --- eglibc-2.12.1.orig/debian/patches/series.kfreebsd-i386 +++ eglibc-2.12.1/debian/patches/series.kfreebsd-i386 @@ -0,0 +1,11 @@ +kfreebsd/local-config_h_in.patch +kfreebsd/local-ftw.diff +kfreebsd/local-linuxthreads29.diff +kfreebsd/local-nosavesse.diff +kfreebsd/local-memusage_no_mremap.diff +kfreebsd/local-pthread_at_fork.diff +kfreebsd/local-readdir_r.diff +kfreebsd/local-scripts.diff +kfreebsd/local-sys_queue_h.diff +kfreebsd/local-sysdeps.diff +kfreebsd/local-undef-glibc.diff --- eglibc-2.12.1.orig/debian/patches/README +++ eglibc-2.12.1/debian/patches/README @@ -0,0 +1,18 @@ +For the patch directory we follow this naming scheme: + + {ARCH|all|any}/{local|branch|cvs|submitted}-"Description" + +Branch means commited in the upstream branch. +CVS means committed in the upstream trunk. +Submitted means we're hopeful that it will go in. +Local means that it's not going upstream. + +The goal is to get all patches to "Branch". Patches should be split by +arch so that it's easy to send just the relevant bits to various +arch maintainers if needed. + +The difference between 'all' and 'any' is that the latter touches several +architecture dependent files (usually in the sysdeps directory), whereas +the former only modifies architecture independent files. Porters are +supposed to have an eye on their arch patches and on 'any'. + --- eglibc-2.12.1.orig/debian/patches/series.powerpc +++ eglibc-2.12.1/debian/patches/series.powerpc @@ -0,0 +1,2 @@ +# Revert (powerpc buildds still run 2.6.15 kernels): +any/revert-cvs-futimens.diff --- eglibc-2.12.1.orig/debian/patches/series.kfreebsd-amd64 +++ eglibc-2.12.1/debian/patches/series.kfreebsd-amd64 @@ -0,0 +1,11 @@ +kfreebsd/local-config_h_in.patch +kfreebsd/local-ftw.diff +kfreebsd/local-linuxthreads29.diff +kfreebsd/local-nosavesse.diff +kfreebsd/local-memusage_no_mremap.diff +kfreebsd/local-pthread_at_fork.diff +kfreebsd/local-readdir_r.diff +kfreebsd/local-scripts.diff +kfreebsd/local-sys_queue_h.diff +kfreebsd/local-sysdeps.diff +kfreebsd/local-undef-glibc.diff --- eglibc-2.12.1.orig/debian/patches/series +++ eglibc-2.12.1/debian/patches/series @@ -0,0 +1,169 @@ +#svn-updates.diff + +locale/check-unknown-symbols.diff +locale/fix-LC_COLLATE-rules.diff +locale/preprocessor-collate-uli-sucks.diff +locale/preprocessor-collate.diff # should not be needed anymore, but keep it anyways. +locale/locale-print-LANGUAGE.diff +locale/LC_IDENTIFICATION-optional-fields.diff +locale/LC_COLLATE-keywords-ordering.diff +localedata/local-all-no-archive.diff +localedata/sort-UTF8-first.diff +localedata/supported.diff +localedata/locale-eo_EO.diff +localedata/locale-eu_FR.diff +localedata/new-valencian-locale.diff +localedata/locale-ku_TR.diff +localedata/tl_PH-yesexpr.diff +localedata/fo_FO-date_fmt.diff +localedata/locales_CH.diff +localedata/locales-fr.diff +localedata/locales_GB.diff +localedata/locale-en_DK.diff +localedata/locale-csb_PL.diff +localedata/submitted-bz9732-dz_BT-collation.diff +localedata/locale-ia.diff +localedata/locale-zh_TW.diff +localedata/locale-se_NO.diff +localedata/tailor-iso14651_t1.diff +localedata/locale-hsb_DE.diff +localedata/tailor-iso14651_t1-common.diff +localedata/fix-lang.diff +localedata/fr_CA-first_weekday.diff +localedata/fr_CH-first_weekday.diff +localedata/fr_LU-first_weekday.diff +localedata/cy_GB-first_weekday.diff +localedata/locale-de_LI.diff +localedata/submitted-bz9725-locale-sv_SE.diff +localedata/first_weekday.diff +localedata/submitted-bz9912-locale-ru_UA.diff +localedata/submitted-translit-colon.diff + +amd64/local-biarch.diff +amd64/local-clone.diff +amd64/local-linuxthreads-gscope.diff +amd64/submitted-tst-audit6-avx.diff + +arm/local-atomic.diff +arm/local-eabi-wchar.diff +arm/local-ioperm.diff +arm/local-lowlevellock.diff +arm/local-no-hwcap.diff +arm/local-hwcap-updates.diff +arm/local-syscall-mcount.diff + +#hppa/local-inlining.diff +#hppa/local-linuxthreads.diff +#hppa/local-linuxthreads-gscope.diff +#hppa/submitted-fadvise64_64.diff +#hppa/submitted-lt.diff +#hppa/submitted-nptl-carlos.diff +#hppa/cvs-nptl-compat.diff +#hppa/local-stack-grows-up.diff +#hppa/local-dlfptr.diff +#hppa/local-longjmp-chk.diff +#hppa/local-lowlevellock.diff +#hppa/cvs-vfork.diff + +ia64/local-dlfptr.diff +ia64/submitted-sysconf.diff +ia64/submitted-libm.diff + +i386/local-biarch.diff +i386/local-clone.diff +i386/local-cmov.diff +i386/local-cpuid-level2.diff +i386/local-linuxthreads-gscope.diff +#i386/local-pthread_cond_wait.diff # FIXME: Debian #551903 +i386/submitted-i686-timing.diff + +lpia/local-i686-redefine.diff -p0 + +sparc/local-fork.diff +sparc/local-sparcv9-target.diff +sparc/submitted-timing.diff + +all/fedora-nss_dns-gethostbyname4-disable.diff + +all/local-ldd.diff + +any/local-asserth-decls.diff +any/local-bindresvport_blacklist.diff +any/local-allocalim-header.diff +any/local-fhs-linux-paths.diff +any/local-fhs-nscd.diff +any/local-ipv6-lookup.diff -p0 # has issues, see changelog for 2.10.2-2ubuntu2 +any/local-ld-multiarch.diff +any/local-ldso-disable-hwcap.diff +any/local-ldconfig.diff +any/local-ldconfig-fsync.diff +#any/local-libgcc-compat-main.diff # FIXME, ftbfs, disabled +#any/local-libgcc-compat-ports.diff # FIXME, ftbfs, disabled +any/local-linuxthreads-defines.diff +any/local-linuxthreads-fd.diff +any/local-linuxthreads-gscope.diff +#any/local-linuxthreads-kill_other.diff +any/local-linuxthreads-lowlevellock.diff +any/local-linuxthreads-fatalprepare.diff +any/local-linuxthreads-ptw.diff +any/local-linuxthreads-semaphore_h.diff +any/local-linuxthreads-signals.diff +any/local-linuxthreads-stacksize.diff +any/local-linuxthreads-tst-sighandler.diff +any/local-linuxthreads-unwind.diff +any/local-linuxthreads-weak.diff +any/local-localedef-fix-trampoline.diff +any/local-mktemp.diff +any/local-no-pagesize.diff +any/local-nss-upgrade.diff +any/local-o_cloexec.diff +any/local-rtld.diff +any/local-stubs_h.diff +any/local-stdio-lock.diff +any/local-tcsetaddr.diff +any/local-disable-test-tgmath2.diff +any/local-tst-mktime2.diff +any/submitted-nis-netgrp.diff +any/submitted-clock-settime.diff +any/submitted-longdouble.diff +any/submitted-sched_h.diff +any/local-disable-nscd-host-caching.diff +#any/submitted-fileops-and-signals.diff # has issues +any/local-missing-linux_types.h.diff +any/local-nss-overflow.diff +any/submitted-popen.diff +any/local-linuxthreads-thread_self.diff +any/submitted-futex_robust_pi.diff +#any/local-disable-gethostbyname4.diff +any/submitted-getaddrinfo-lo.diff +any/local-getaddrinfo-interface.diff +any/submitted-autotools.diff +any/submitted-accept4-hidden.diff +any/submitted-etc-resolv.conf.diff +any/submitted-localedef-mmap.diff +any/submitted-missing-etc-hosts.diff +any/submitted-bits-fcntl_h-at.diff +#any/submitted-nis-shadow.diff TODO: updated for 2.12 +any/local-no-SOCK_NONBLOCK.diff +any/submitted-stack-guard-quick-randomization.diff +any/submitted-leading-zero-stack-guard.diff +any/submitted-nptl-invalid-td.patch +any/cvs-gai-rfc3484.diff +any/local-dlfptr.diff +any/submitted-string2-strcmp.diff +any/submitted-group_member.diff +any/cvs-__block.diff +any/cvs-revert-flush-cache-textrels.diff +any/cvs-issue11968.diff +any/cvs-issue12092.diff + +# Ubuntu-specific patches. These are things that we don't expect to wind up +# in Debian. +ubuntu/local-altlocaledir.diff -p1 +ubuntu/no-sprintf-pre-truncate.diff +ubuntu/local-fwrite-no-attr-unused.diff +ubuntu/ia64-include.diff +ubuntu/machine-sparcv2.diff +ubuntu/no-asm-mtune-i686.diff +any/dst-expansion-fix.diff +any/disable-ld_audit.diff --- eglibc-2.12.1.orig/debian/patches/m68k/local-mathinline_h.diff +++ eglibc-2.12.1/debian/patches/m68k/local-mathinline_h.diff @@ -0,0 +1,53 @@ +--- + ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +--- a/ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h ++++ b/ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h +@@ -100,7 +100,7 @@ + /* Define a const math function. */ + #define __m81_defun(rettype, func, args) \ + __m81_inline rettype __attribute__((__const__)) \ +- __m81_u(func) args ++ __NTH(__m81_u(func) args) + + /* Define the three variants of a math function that has a direct + implementation in the m68k fpu. FUNC is the name for C (which will be +@@ -313,8 +313,8 @@ + } \ + \ + __m81_inline float_type \ +-__m81_u(__CONCAT(__fma,s))(float_type __x, float_type __y, \ +- float_type __z) \ ++__NTH(__m81_u(__CONCAT(__fma,s))(float_type __x, float_type __y, \ ++ float_type __z)) \ + { \ + return (__x * __y) + __z; \ + } +@@ -330,8 +330,8 @@ + + # define __inline_functions(float_type, s) \ + __m81_inline void \ +-__m81_u(__CONCAT(__sincos,s))(float_type __x, float_type *__sinx, \ +- float_type *__cosx) \ ++__NTH(__m81_u(__CONCAT(__sincos,s))(float_type __x, float_type *__sinx, \ ++ float_type *__cosx)) \ + { \ + __asm ("fsincos%.x %2,%1:%0" \ + : "=f" (*__sinx), "=f" (*__cosx) : "f" (__x)); \ +@@ -352,13 +352,13 @@ + NAME, to make token pasting work correctly with -traditional. */ + # define __inline_forward_c(rettype, name, args1, args2) \ + extern __inline rettype __attribute__((__const__)) \ +- name args1 \ ++ __NTH(name args1) \ + { \ + return __CONCAT(__,name) args2; \ + } + + # define __inline_forward(rettype, name, args1, args2) \ +-extern __inline rettype name args1 \ ++extern __inline rettype __NTH(name args1) \ + { \ + return __CONCAT(__,name) args2; \ + } --- eglibc-2.12.1.orig/debian/patches/m68k/local-reloc.diff +++ eglibc-2.12.1/debian/patches/m68k/local-reloc.diff @@ -0,0 +1,23 @@ +# DP: Description: binutils bug workaround +# DP: Related bugs: #263601: m68k: workaround for binutils problem +# DP: Dpatch author: Roman Zippel +# DP: Patch author: Richard Zidlicky +# DP: Upstream status: Debian-Specific +# DP: Status Details: Actual fix is to modify m68k binutils. +# DP: Date: 2004-08-09 + +--- + ports/sysdeps/m68k/dl-machine.h | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/ports/sysdeps/m68k/dl-machine.h ++++ b/ports/sysdeps/m68k/dl-machine.h +@@ -286,6 +286,8 @@ + Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + if (ELF32_R_TYPE (reloc->r_info) == R_68K_JMP_SLOT) + *reloc_addr += l_addr; ++ else if (ELF32_R_TYPE (reloc->r_info) == R_68K_NONE) ++ return; + else + _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1); + } --- eglibc-2.12.1.orig/debian/patches/m68k/local-fpic.diff +++ eglibc-2.12.1/debian/patches/m68k/local-fpic.diff @@ -0,0 +1,16 @@ +# DP: Make sure libc_nonshared.a is compiled with -fPIC on m68k + +--- + ports/sysdeps/m68k/Makefile | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/ports/sysdeps/m68k/Makefile ++++ b/ports/sysdeps/m68k/Makefile +@@ -33,3 +33,7 @@ + ifeq ($(subdir),elf) + CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused + endif ++ ++# Build objects in libc_nonshared.a with -fPIC (instead of -fpic) to avoid ++# possible linkage problems. ++CFLAGS-.oS += -fPIC --- eglibc-2.12.1.orig/debian/patches/m68k/local-pthread_lock.diff +++ eglibc-2.12.1/debian/patches/m68k/local-pthread_lock.diff @@ -0,0 +1,24 @@ +--- + linuxthreads/sysdeps/m68k/pspinlock.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/linuxthreads/sysdeps/m68k/pspinlock.c ++++ b/linuxthreads/sysdeps/m68k/pspinlock.c +@@ -25,7 +25,7 @@ + int + __pthread_spin_lock (pthread_spinlock_t *lock) + { +- unsigned int val; ++ unsigned char val; + + do + asm volatile ("tas %1; sne %0" +@@ -42,7 +42,7 @@ + int + __pthread_spin_trylock (pthread_spinlock_t *lock) + { +- unsigned int val; ++ unsigned char val; + + asm volatile ("tas %1; sne %0" + : "=dm" (val), "=m" (*lock) --- eglibc-2.12.1.orig/debian/patches/m68k/local-compat.diff +++ eglibc-2.12.1/debian/patches/m68k/local-compat.diff @@ -0,0 +1,27 @@ +# DP: Fixes some old compatibility issues with m68k and lchown/chown + +--- + ports/sysdeps/unix/sysv/linux/m68k/chown.c | 5 +++++ + ports/sysdeps/unix/sysv/linux/m68k/lchown.c | 5 +++++ + 2 files changed, 10 insertions(+) + +--- a/ports/sysdeps/unix/sysv/linux/m68k/chown.c ++++ b/ports/sysdeps/unix/sysv/linux/m68k/chown.c +@@ -67,3 +67,8 @@ + } + libc_hidden_def (__chown) + weak_alias (__chown, chown) ++ ++#include ++#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2) ++compat_symbol (libc, __chown, chown, GLIBC_2_1); ++#endif +--- a/ports/sysdeps/unix/sysv/linux/m68k/lchown.c ++++ b/ports/sysdeps/unix/sysv/linux/m68k/lchown.c +@@ -1 +1,6 @@ + #include ++ ++#include ++#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2) ++compat_symbol (libc, __lchown, lchown, GLIBC_2_1); ++#endif --- eglibc-2.12.1.orig/debian/patches/m68k/submitted-gcc34-seccomment.diff +++ eglibc-2.12.1/debian/patches/m68k/submitted-gcc34-seccomment.diff @@ -0,0 +1,33 @@ +# DP: Description: Make glibc-2.3.5 compile with gcc-3.4/4.0 + binutils 2.16 +# on m68k fixed by adding #APP. +# DP: Related bugs: +# DP: Dpatch author: GOTO Masanori +# DP: Patch author: Andreas Schwab +# DP: Upstream status: Pending +# DP: Status Details: +# DP: Date: 2005-08-03 + +From: Andreas Schwab + +--- + include/libc-symbols.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/include/libc-symbols.h ++++ b/include/libc-symbols.h +@@ -239,12 +239,12 @@ + # define __make_section_unallocated(section_string) + # endif + +-/* Tacking on "\n\t#" to the section name makes gcc put it's bogus ++/* Tacking on "\n#APP\n\t#" to the section name makes gcc put it's bogus + section attributes on what looks like a comment to the assembler. */ + # ifdef HAVE_SECTION_QUOTES +-# define __sec_comment "\"\n\t#\"" ++# define __sec_comment "\"\n#APP\n\t#\"" + # else +-# define __sec_comment "\n\t#" ++# define __sec_comment "\n#APP\n\t#" + # endif + # define link_warning(symbol, msg) \ + __make_section_unallocated (".gnu.warning." #symbol) \ --- eglibc-2.12.1.orig/debian/patches/m68k/local-dwarf2-buildfix.diff +++ eglibc-2.12.1/debian/patches/m68k/local-dwarf2-buildfix.diff @@ -0,0 +1,39 @@ +# DP: Description: Adding empty m68k framestate.c not to build for dwarf2. +# DP: Related bugs: +# DP: Dpatch author: GOTO Masanori +# DP: Patch author: GOTO Masanori +# DP: Upstream status: Debian-Specific +# DP: Status Details: m68k uses sjlj exceptions, not dwarf2 unwind. +# DP: This patch adds empty framestate.c for m68k to avoid +# DP: dwarf2 build failure. +# DP: Date: 2003-07-19 (Update 2005-03-16 gotom) + +2005-03-16 GOTO Masanori + + * sysdeps/m68k/unwind-pe.c: Update to fix compilation failure. + +2003-07-19 GOTO Masanori + + * sysdeps/m68k/framestate.c: Add to fix compilation failure + with sjlj exception, suggested by Philip Blundell. + + +--- + sysdeps/m68k/framestate.c | 2 ++ + sysdeps/m68k/unwind-pe.c | 6 ++++++ + 2 files changed, 8 insertions(+) + +--- /dev/null ++++ b/sysdeps/m68k/unwind-pe.c +@@ -0,0 +1,6 @@ ++#include ++#include ++ ++#define _LIBC_DEFINITIONS ++#define NO_BASE_OF_ENCODED_VALUE ++#include "unwind-pe.h" +--- /dev/null ++++ b/sysdeps/m68k/framestate.c +@@ -0,0 +1,2 @@ ++ ++ --- eglibc-2.12.1.orig/debian/patches/amd64/local-linuxthreads-gscope.diff +++ eglibc-2.12.1/debian/patches/amd64/local-linuxthreads-gscope.diff @@ -0,0 +1,62 @@ +--- + linuxthreads/sysdeps/x86_64/tls.h | 42 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 42 insertions(+) + +--- a/linuxthreads/sysdeps/x86_64/tls.h ++++ b/linuxthreads/sysdeps/x86_64/tls.h +@@ -49,6 +49,11 @@ + uintptr_t sysinfo; + uintptr_t stack_guard; + uintptr_t pointer_guard; ++# ifdef __FreeBSD_kernel__ ++ long gscope_flag; ++# else ++ int gscope_flag; ++# endif + } tcbhead_t; + + #else /* __ASSEMBLER__ */ +@@ -147,6 +152,43 @@ + ((descr)->p_header.data.pointer_guard \ + = THREAD_GETMEM (THREAD_SELF, p_header.data.pointer_guard)) + ++/* Get and set the global scope generation counter in the TCB head. */ ++#define THREAD_GSCOPE_FLAG_UNUSED 0 ++#define THREAD_GSCOPE_FLAG_USED 1 ++#define THREAD_GSCOPE_FLAG_WAIT 2 ++#ifdef __FreeBSD_kernel__ ++# define THREAD_GSCOPE_RESET_FLAG() \ ++ do \ ++ { int __res; \ ++ asm volatile ("xchgl %0, %%fs:%P1" \ ++ : "=r" (__res) \ ++ : "i" (offsetof (struct _pthread_descr_struct, p_gscope_flag)), \ ++ "0" (THREAD_GSCOPE_FLAG_UNUSED)); \ ++ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ ++ lll_futex_wake (&THREAD_SELF->p_gscope_flag, 1); \ ++ } \ ++ while (0) ++#else ++/* As the FreeBSD kernel defines futex as long (compared to int with ++ a Linux kernel), we need to use xchgq instead of xchgl to handle ++ the gscope_flag variable. */ ++# define THREAD_GSCOPE_RESET_FLAG() \ ++ do \ ++ { long __res; \ ++ asm volatile ("xchgq %0, %%fs:%P1" \ ++ : "=r" (__res) \ ++ : "i" (offsetof (struct _pthread_descr_struct, p_gscope_flag)), \ ++ "0" (THREAD_GSCOPE_FLAG_UNUSED)); \ ++ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ ++ lll_futex_wake (&THREAD_SELF->p_gscope_flag, 1); \ ++ } \ ++ while (0) ++#endif /* __FreeBSD_kernel__ */ ++#define THREAD_GSCOPE_SET_FLAG() \ ++ THREAD_SETMEM (THREAD_SELF, p_gscope_flag, THREAD_GSCOPE_FLAG_USED) ++#define THREAD_GSCOPE_WAIT() \ ++ do { /* GL(dl_wait_lookup_done) () */ } while (0) ++ + # endif /* HAVE_TLS_SUPPORT */ + #endif /* __ASSEMBLER__ */ + --- eglibc-2.12.1.orig/debian/patches/amd64/submitted-tst-audit6-avx.diff +++ eglibc-2.12.1/debian/patches/amd64/submitted-tst-audit6-avx.diff @@ -0,0 +1,28 @@ +2010-05-25 Aurelien Jarno + + * elf/tst-audit6.c: always succeed if not AVX support. + +--- + elf/tst-audit6.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/elf/tst-audit6.c ++++ b/elf/tst-audit6.c +@@ -1,5 +1,6 @@ + /* Test case for x86-64 preserved registers in dynamic linker. */ + ++#ifdef __AVX__ + #include + #include + #include +@@ -26,3 +27,10 @@ + } + return 0; + } ++#else ++int ++main (void) ++{ ++ return 0; ++} ++#endif --- eglibc-2.12.1.orig/debian/patches/amd64/local-biarch.diff +++ eglibc-2.12.1/debian/patches/amd64/local-biarch.diff @@ -0,0 +1,34 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Allow ldconfig to work on x86-64/i386 biarch systems + +--- + sysdeps/unix/sysv/linux/x86_64/dl-cache.h | 21 ++++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +--- a/sysdeps/unix/sysv/linux/x86_64/dl-cache.h ++++ b/sysdeps/unix/sysv/linux/x86_64/dl-cache.h +@@ -22,4 +22,23 @@ + #define _dl_cache_check_flags(flags) \ + ((flags) == _DL_CACHE_DEFAULT_ID) + +-#include ++#define add_system_dir(dir) \ ++ do \ ++ { \ ++ size_t len = strlen (dir); \ ++ char path[len + 3]; \ ++ memcpy (path, dir, len + 1); \ ++ if (len >= 6 && ! memcmp (path + len - 6, "/lib32", 6)) \ ++ { \ ++ len -= 2; \ ++ path[len] = '\0'; \ ++ } \ ++ add_dir (path); \ ++ if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \ ++ { \ ++ memcpy (path + len, "32", 3); \ ++ add_dir (path); \ ++ } \ ++ } while (0) ++ ++#include --- eglibc-2.12.1.orig/debian/patches/amd64/local-clone.diff +++ eglibc-2.12.1/debian/patches/amd64/local-clone.diff @@ -0,0 +1,29 @@ +2006-11-30 Jan Kratochvil + + * sysdeps/unix/sysv/linux/x86_64/clone.S: Provide CFI for the outermost + `clone' function to ensure proper unwinding stop of gdb. + +--- + sysdeps/unix/sysv/linux/x86_64/clone.S | 4 ---- + 1 file changed, 4 deletions(-) + +--- a/sysdeps/unix/sysv/linux/x86_64/clone.S ++++ b/sysdeps/unix/sysv/linux/x86_64/clone.S +@@ -89,9 +89,6 @@ + ret + + L(thread_start): +- cfi_startproc; +- /* Clearing frame pointer is insufficient, use CFI. */ +- cfi_undefined (rip); + /* Clear the frame pointer. The ABI suggests this be done, to mark + the outermost frame obviously. */ + xorl %ebp, %ebp +@@ -116,7 +113,6 @@ + /* Call exit with return value from function call. */ + movq %rax, %rdi + call HIDDEN_JUMPTARGET (_exit) +- cfi_endproc; + + cfi_startproc; + PSEUDO_END (BP_SYM (__clone)) --- eglibc-2.12.1.orig/debian/patches/localedata/submitted-bz9912-locale-ru_UA.diff +++ eglibc-2.12.1/debian/patches/localedata/submitted-bz9912-locale-ru_UA.diff @@ -0,0 +1,14 @@ +--- + localedata/locales/ru_UA | 1 + + 1 file changed, 1 insertion(+) + +--- a/localedata/locales/ru_UA ++++ b/localedata/locales/ru_UA +@@ -141,6 +141,7 @@ + date_fmt "/ + / + " ++week 7;19971201;4 + END LC_TIME + + LC_PAPER --- eglibc-2.12.1.orig/debian/patches/localedata/locale-eo_EO.diff +++ eglibc-2.12.1/debian/patches/localedata/locale-eo_EO.diff @@ -0,0 +1,243 @@ +# DP: Description: Add Esperanto locale (eo_EO) +# DP: Related bugs: #78085 #233308 +# DP: Dpatch author: Ben Collins +# DP: Patch author: Robert Thomson and Edmund GRIMLEY +# DP: Upstream status: Not submitted +# DP: Status Details: +# DP: Date: 2001-03-23 + +--- + localedata/SUPPORTED | 2 + localedata/locales/eo | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 218 insertions(+) + +--- /dev/null ++++ b/localedata/locales/eo +@@ -0,0 +1,216 @@ ++comment_char % ++escape_char / ++ ++% Esperanto language locale for ... ++% Edmund GRIMLEY EVANS ++ ++LC_IDENTIFICATION ++title "Esperanto locale" ++source "" ++address "" ++contact "" ++email "debian-esperanto@lists.debian.org" ++tel "" ++fax "" ++language "Esperanto" ++territory "" ++revision "draft" ++date "2002-07-04" ++% ++category "eo:2000";LC_IDENTIFICATION ++category "eo:2000";LC_CTYPE ++category "eo:2000";LC_COLLATE ++category "eo:2000";LC_TIME ++category "eo:2000";LC_NUMERIC ++category "eo:2000";LC_MONETARY ++category "eo:2000";LC_MESSAGES ++category "eo:2000";LC_PAPER ++category "eo:2000";LC_NAME ++category "eo:2000";LC_ADDRESS ++category "eo:2000";LC_TELEPHONE ++ ++END LC_IDENTIFICATION ++ ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ ++LC_COLLATE ++copy "iso14651_t1" ++ ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++reorder-after ++ ++reorder-after ++ ++reorder-after ++ ++reorder-after ++ ++reorder-after ++ ++reorder-after ++ ++ ++reorder-after ++ ;;;IGNORE % Ĉ ++reorder-after ++ ;;;IGNORE % ĉ ++reorder-after ++ ;;;IGNORE % Ĝ ++reorder-after ++ ;;;IGNORE % ĝ ++reorder-after ++ ;;;IGNORE % Ĥ ++reorder-after ++ ;;;IGNORE % ĥ ++reorder-after ++ ;;;IGNORE % Ĵ ++reorder-after ++ ;;;IGNORE % ĵ ++reorder-after ++ ;;;IGNORE % Ŝ ++reorder-after ++ ;;;IGNORE % ŝ ++reorder-after ++ ;;;IGNORE % Ŭ ++reorder-after ++ ;;;IGNORE % ŭ ++ ++reorder-end ++ ++END LC_COLLATE ++ ++LC_MONETARY ++int_curr_symbol "" % "EUR" ++currency_symbol "" % "EUR" ++% "" ne eblas en ISO-8859-3 ++mon_decimal_point "" ++mon_thousands_sep "" ++mon_grouping 3;3 ++positive_sign "" ++negative_sign "" ++int_frac_digits 2 ++frac_digits 2 ++p_cs_precedes 1 ++p_sep_by_space 1 ++n_cs_precedes 1 ++n_sep_by_space 1 ++p_sign_posn 1 ++n_sign_posn 1 ++END LC_MONETARY ++ ++LC_NUMERIC ++decimal_point "" ++thousands_sep "" ++grouping 0;0 ++END LC_NUMERIC ++ ++LC_TIME ++ ++% "dim";"lun";"mar";"mer";"ĵaŭ";"ven";"sab" ++abday "";"";/ ++ "";"";/ ++ "";"";/ ++ "" ++ ++% "dimanĉo";"lundo";"mardo";"merkredo";"ĵaŭdo";"vendredo";"sabato" ++day "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++ ++% "Jan";"Feb";"Mar";"Apr";"Maj";"Jun";"Jul";"Aŭg";"Sep";"Okt";"Nov";"Dec" ++abmon "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" ++ ++% "Januaro";"Februaro";"Marto";"Aprilo";"Majo";"Junio"; ++% "Julio";"Aŭgusto";"Septembro";"Oktobro";"Novembro";"Decembro" ++mon "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++ ++am_pm "";"" ++ ++% "%a %d %b %Y %T %z" ++d_t_fmt "" ++ ++% "%Y-%m-%d" ++d_fmt "" ++ ++% "%T" ++t_fmt "" ++ ++t_fmt_ampm "" ++ ++% date_fmt ? ++ ++END LC_TIME ++ ++LC_MESSAGES ++% "^[JjYy].*" ++yesexpr "" ++% "^[Nn].*" ++noexpr "" ++END LC_MESSAGES ++ ++LC_PAPER ++height 297 ++width 210 ++END LC_PAPER ++ ++LC_TELEPHONE ++% "+%c %a %l" ++tel_int_fmt "/ ++" ++% "00" ++int_select "" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++measurement 1 ++END LC_MEASUREMENT ++ ++LC_NAME ++% "%d%t%g%t%m%t%f" ++name_fmt "/ ++" ++name_mr "" % "s-ro" ++name_mrs "" % "s-ino" ++name_ms "" % "s-ino" ++END LC_NAME ++ ++LC_ADDRESS ++% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N" ++postal_fmt "/ ++/ ++/ ++/ ++" ++% "Esperanto" ++lang_name "" ++lang_ab "" % "eo" ++lang_term "" % "epo" ++END LC_ADDRESS +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -136,6 +136,8 @@ + en_ZA/ISO-8859-1 \ + en_ZW.UTF-8/UTF-8 \ + en_ZW/ISO-8859-1 \ ++eo.UTF-8/UTF-8 \ ++eo/ISO-8859-3 \ + es_AR.UTF-8/UTF-8 \ + es_AR/ISO-8859-1 \ + es_BO.UTF-8/UTF-8 \ --- eglibc-2.12.1.orig/debian/patches/localedata/locales_GB.diff +++ eglibc-2.12.1/debian/patches/localedata/locales_GB.diff @@ -0,0 +1,43 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Add AM/PM strings to cy_GB and en_GB. +# DP: This patch has been rejected upstream but is in fedora-branch. +# DP: Related bugs: #240901 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: taken from Fedora +# DP: Upstream status: not submitted +# DP: Date: 2006-02-16 + +--- + localedata/locales/cy_GB | 7 +++++-- + localedata/locales/en_GB | 4 ++-- + 2 files changed, 7 insertions(+), 4 deletions(-) + +--- a/localedata/locales/cy_GB ++++ b/localedata/locales/cy_GB +@@ -248,8 +248,11 @@ + d_t_fmt "" + d_fmt "" + t_fmt "" +-am_pm "";"" +-t_fmt_ampm "" ++am_pm "";"" ++t_fmt_ampm "" ++date_fmt "/ ++/ ++" + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/en_GB ++++ b/localedata/locales/en_GB +@@ -116,8 +116,8 @@ + d_t_fmt "" + d_fmt "" + t_fmt "" +-am_pm "";"" +-t_fmt_ampm "" ++am_pm "";"" ++t_fmt_ampm "" + date_fmt "/ + / + " --- eglibc-2.12.1.orig/debian/patches/localedata/cy_GB-first_weekday.diff +++ eglibc-2.12.1/debian/patches/localedata/cy_GB-first_weekday.diff @@ -0,0 +1,15 @@ +--- + localedata/locales/cy_GB | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/localedata/locales/cy_GB ++++ b/localedata/locales/cy_GB +@@ -253,6 +253,8 @@ + date_fmt "/ + / + " ++week 7;19971130;4 ++first_weekday 2 + END LC_TIME + + LC_MESSAGES --- eglibc-2.12.1.orig/debian/patches/localedata/fix-lang.diff +++ eglibc-2.12.1/debian/patches/localedata/fix-lang.diff @@ -0,0 +1,40 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Fix lang_* fields in LC_ADDRESS +# DP: Related bugs: +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: Not submitted +# DP: Status Details: +# DP: Date: 2006-01-20 + +--- + localedata/locales/tr_TR | 6 +++--- + localedata/locales/wal_ET | 1 - + 2 files changed, 3 insertions(+), 4 deletions(-) + +--- a/localedata/locales/tr_TR ++++ b/localedata/locales/tr_TR +@@ -1591,10 +1591,10 @@ + country_ab3 "" + % Turkish + lang_name "" +-% tr ++% tur + lang_term "" ++% tur ++lang_lib "" + % tr +-lang_lib "" +-%tr + lang_ab "" + END LC_ADDRESS +--- a/localedata/locales/wal_ET ++++ b/localedata/locales/wal_ET +@@ -110,7 +110,6 @@ + % country_car unknown + % country_isbn unknown, Need ISO 2108 + lang_name "" +-lang_ab "" + lang_term "" + lang_lib "" + --- eglibc-2.12.1.orig/debian/patches/localedata/local-all-no-archive.diff +++ eglibc-2.12.1/debian/patches/localedata/local-all-no-archive.diff @@ -0,0 +1,15 @@ +--- + localedata/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/localedata/Makefile ++++ b/localedata/Makefile +@@ -255,7 +255,7 @@ + echo -n `echo $$locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \ + echo -n '...'; \ + input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ +- $(LOCALEDEF) --alias-file=../intl/locale.alias \ ++ $(LOCALEDEF) --alias-file=../intl/locale.alias --no-archive \ + -i locales/$$input -c -f charmaps/$$charset \ + $(addprefix --prefix=,$(install_root)) $$locale; \ + echo ' done'; \ --- eglibc-2.12.1.orig/debian/patches/localedata/submitted-translit-colon.diff +++ eglibc-2.12.1/debian/patches/localedata/submitted-translit-colon.diff @@ -0,0 +1,35 @@ +2010-06-13 Aurelien Jarno + + * locale/C-translit.h.in: Add entry for U20A1. + +diff --git a/locale/C-translit.h.in b/locale/C-translit.h.in +index ab0b130..5286802 100644 +--- a/locale/C-translit.h.in ++++ b/locale/C-translit.h.in +@@ -103,6 +103,7 @@ + "\x2061" "" /* FUNCTION APPLICATION */ + "\x2062" "" /* INVISIBLE TIMES */ + "\x2063" "" /* INVISIBLE SEPARATOR */ ++"\x20a1" "CRC" /* COLON SIGN */ + "\x20a8" "Rs" /* RUPEE SIGN */ + "\x20ac" "EUR" /* EURO SIGN */ + "\x2100" "a/c" /* ACCOUNT OF */ + + +2010-06-13 Aurelien Jarno + + * locales/translit_neutral: Add entry for U20A1. + +diff --git a/localedata/locales/translit_neutral b/localedata/locales/translit_neutral +index 5883d28..5712361 100644 +--- a/localedata/locales/translit_neutral ++++ b/localedata/locales/translit_neutral +@@ -128,6 +128,8 @@ include "translit_wide";"" + "" + % DONG SIGN + "" ++% COLON SIGN ++ "" + % EURO SIGN + "" + % TRADE MARK SIGN --- eglibc-2.12.1.orig/debian/patches/localedata/locale-se_NO.diff +++ eglibc-2.12.1/debian/patches/localedata/locale-se_NO.diff @@ -0,0 +1,34 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Fix se_NO locale +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: Not submitted yet +# DP: Date: 2006-06-02 + +--- + localedata/locales/se_NO | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/localedata/locales/se_NO ++++ b/localedata/locales/se_NO +@@ -137,7 +137,7 @@ + ;;;IGNORE % ezh caron + + reorder-after +- ;;;IGNORE % EZH ++ ;;;IGNORE % EZH + ;;;IGNORE % EZH caron + + reorder-after +@@ -164,9 +164,10 @@ + reorder-after + ;;;IGNORE % Kcaron + +-reorder-after ++reorder-after + ;"";"";IGNORE % + ;;;IGNORE % 288 ++reorder-after + ;;;IGNORE % 405 + + --- eglibc-2.12.1.orig/debian/patches/localedata/locale-eu_FR.diff +++ eglibc-2.12.1/debian/patches/localedata/locale-eu_FR.diff @@ -0,0 +1,198 @@ +# DP: Description: #257840: locales: Please add the eu_FR locale +# DP: Related bugs: #257840 +# DP: Dpatch author: GOTO Masanori +# DP: Patch author: Christian Perrier +# DP: Upstream status: Not submitted +# DP: Status Details: sending upstream +# DP: Date: 2004-07-31 + +--- + localedata/SUPPORTED | 3 + + localedata/locales/eu_FR | 83 ++++++++++++++++++++++++++++++++++++++++++ + localedata/locales/eu_FR@euro | 83 ++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 169 insertions(+) + +--- /dev/null ++++ b/localedata/locales/eu_FR +@@ -0,0 +1,83 @@ ++comment_char % ++escape_char / ++% ++% Basque Language Locale for France ++% Language: eu ++% Territory: FR ++% Revision: 1.0 ++% Date: 2004-06-24 ++% Users: general ++% Charset: ISO-8859-1 ++% Distribution and use is free, also ++% for commercial purposes. ++ ++LC_IDENTIFICATION ++title "Basque locale for France" ++source "Christian Perrier and the Debian Project" ++address "" ++contact "Christian Perrier" ++email "bubulle@debian.org" ++tel "" ++fax "" ++language "Basque" ++territory "France" ++revision "1.0" ++date "2004-06-24" ++% ++category "eu_FR:2000";LC_IDENTIFICATION ++category "eu_FR:2000";LC_CTYPE ++category "eu_FR:2000";LC_COLLATE ++category "eu_FR:2000";LC_TIME ++category "eu_FR:2000";LC_NUMERIC ++category "eu_FR:2000";LC_MONETARY ++category "eu_FR:2000";LC_MESSAGES ++category "eu_FR:2000";LC_PAPER ++category "eu_FR:2000";LC_NAME ++category "eu_FR:2000";LC_ADDRESS ++category "eu_FR:2000";LC_TELEPHONE ++ ++END LC_IDENTIFICATION ++ ++LC_COLLATE ++copy "iso14651_t1" ++END LC_COLLATE ++ ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ ++LC_MESSAGES ++copy "eu_ES" ++END LC_MESSAGES ++ ++LC_MONETARY ++copy "fr_FR" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "fr_FR" ++END LC_NUMERIC ++ ++LC_TIME ++copy "eu_ES" ++END LC_TIME ++ ++LC_PAPER ++copy "fr_FR" ++END LC_PAPER ++ ++LC_TELEPHONE ++copy "fr_FR" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++copy "fr_FR" ++END LC_MEASUREMENT ++ ++LC_NAME ++copy "eu_ES" ++END LC_NAME ++ ++LC_ADDRESS ++copy "fr_FR" ++END LC_ADDRESS +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -185,6 +185,9 @@ + eu_ES.UTF-8/UTF-8 \ + eu_ES/ISO-8859-1 \ + eu_ES@euro/ISO-8859-15 \ ++eu_FR.UTF-8/UTF-8 \ ++eu_FR/ISO-8859-1 \ ++eu_FR@euro/ISO-8859-15 \ + fa_IR/UTF-8 \ + fi_FI.UTF-8/UTF-8 \ + fi_FI/ISO-8859-1 \ +--- /dev/null ++++ b/localedata/locales/eu_FR@euro +@@ -0,0 +1,83 @@ ++comment_char % ++escape_char / ++% ++% Basque Language Locale for France ++% Language: eu ++% Territory: FR ++% Revision: 1.0 ++% Date: 2004-06-24 ++% Users: general ++% Charset: ISO-8859-15 ++% Distribution and use is free, also ++% for commercial purposes. ++ ++LC_IDENTIFICATION ++title "Basque locale for France" ++source "Christian Perrier and the Debian Project" ++address "" ++contact "Christian Perrier" ++email "bubulle@debian.org" ++tel "" ++fax "" ++language "Basque" ++territory "France" ++revision "1.0" ++date "2004-06-24" ++% ++category "eu_FR:2000";LC_IDENTIFICATION ++category "eu_FR:2000";LC_CTYPE ++category "eu_FR:2000";LC_COLLATE ++category "eu_FR:2000";LC_TIME ++category "eu_FR:2000";LC_NUMERIC ++category "eu_FR:2000";LC_MONETARY ++category "eu_FR:2000";LC_MESSAGES ++category "eu_FR:2000";LC_PAPER ++category "eu_FR:2000";LC_NAME ++category "eu_FR:2000";LC_ADDRESS ++category "eu_FR:2000";LC_TELEPHONE ++ ++END LC_IDENTIFICATION ++ ++LC_COLLATE ++copy "iso14651_t1" ++END LC_COLLATE ++ ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ ++LC_MESSAGES ++copy "eu_ES" ++END LC_MESSAGES ++ ++LC_MONETARY ++copy "fr_FR" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "fr_FR" ++END LC_NUMERIC ++ ++LC_TIME ++copy "eu_ES" ++END LC_TIME ++ ++LC_PAPER ++copy "fr_FR" ++END LC_PAPER ++ ++LC_TELEPHONE ++copy "fr_FR" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++copy "fr_FR" ++END LC_MEASUREMENT ++ ++LC_NAME ++copy "eu_ES" ++END LC_NAME ++ ++LC_ADDRESS ++copy "fr_FR" ++END LC_ADDRESS --- eglibc-2.12.1.orig/debian/patches/localedata/locale-zh_TW.diff +++ eglibc-2.12.1/debian/patches/localedata/locale-zh_TW.diff @@ -0,0 +1,25 @@ +See BTS #352600. +Not submitted yet. + +--- + localedata/locales/zh_TW | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/localedata/locales/zh_TW ++++ b/localedata/locales/zh_TW +@@ -107,13 +107,13 @@ + "";"";"" + + % d_t_fmt: "%Y%m%d (%A) %H
%M%S" +-d_t_fmt "/ ++d_t_fmt "/ + / + / + / + " + +-d_fmt "/ ++d_fmt "/ + " + + t_fmt "" --- eglibc-2.12.1.orig/debian/patches/localedata/fr_CH-first_weekday.diff +++ eglibc-2.12.1/debian/patches/localedata/fr_CH-first_weekday.diff @@ -0,0 +1,15 @@ +--- + localedata/locales/fr_CH | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/localedata/locales/fr_CH ++++ b/localedata/locales/fr_CH +@@ -107,6 +107,8 @@ + / + / + " ++week 7;19971130;4 ++first_weekday 2 + END LC_TIME + + LC_PAPER --- eglibc-2.12.1.orig/debian/patches/localedata/fr_LU-first_weekday.diff +++ eglibc-2.12.1/debian/patches/localedata/fr_LU-first_weekday.diff @@ -0,0 +1,15 @@ +--- + localedata/locales/fr_LU | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/localedata/locales/fr_LU ++++ b/localedata/locales/fr_LU +@@ -122,6 +122,8 @@ + / + / + " ++week 7;19971130;4 ++first_weekday 2 + END LC_TIME + + LC_PAPER --- eglibc-2.12.1.orig/debian/patches/localedata/fo_FO-date_fmt.diff +++ eglibc-2.12.1/debian/patches/localedata/fo_FO-date_fmt.diff @@ -0,0 +1,37 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Fix d_t_fmt and date_fmt in fo_FO +# DP: Related bugs: #307194 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Jacob Sparre Andersen +# DP: Upstream status: not submitted +# DP: Date: 2006-01-10 + +--- + localedata/locales/fo_FO | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +--- a/localedata/locales/fo_FO ++++ b/localedata/locales/fo_FO +@@ -95,14 +95,18 @@ + "";/ + "";/ + "" +-d_t_fmt "" ++d_t_fmt "/ ++/ ++" + d_fmt "" + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++/ ++" + END LC_TIME + + LC_MESSAGES --- eglibc-2.12.1.orig/debian/patches/localedata/locale-ku_TR.diff +++ eglibc-2.12.1/debian/patches/localedata/locale-ku_TR.diff @@ -0,0 +1,189 @@ +# DP: Description: Please add Kurdish locale +# DP: Related bugs: BZ870 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Kader DILSIZ, Pablo Saratxaga +# DP: Upstream status: Version 0.1 submitted in the original bugreport +# DP: has been committed, this new version has been sent just after. +# DP: Date: 2006-01-06 + +--- + localedata/locales/ku_TR | 104 ++++++++++++++++++++++------------------------- + 1 file changed, 49 insertions(+), 55 deletions(-) + +--- a/localedata/locales/ku_TR ++++ b/localedata/locales/ku_TR +@@ -16,6 +16,8 @@ + % Distribution and use is free, also + % for commercial purposes. + % History: ++% 0.2 2005-04-24 Erdal Ronah ++% Fix LC_CTYPE and LC_NAME sections. Remove dotless i from LC_COLLATE + + LC_IDENTIFICATION + title "Kurdish (latin) locale for Turkey" +@@ -27,8 +29,8 @@ + fax "" + language "Kurdish" + territory "Turkey" +-revision "0.1" +-date "2003-07-27" ++revision "0.2" ++date "2005-04-24" + % + category "ku_TR:2000";LC_IDENTIFICATION + category "ku_TR:2000";LC_CTYPE +@@ -46,7 +48,7 @@ + END LC_IDENTIFICATION + + LC_CTYPE +-copy "tr_TR" ++copy "i18n" + END LC_CTYPE + + LC_COLLATE +@@ -56,7 +58,6 @@ + + collating-symbol + collating-symbol > +-collating-symbol + collating-symbol > + collating-symbol + collating-symbol > +@@ -65,9 +66,7 @@ + + reorder-after + > +-reorder-after +- +- ++reorder-after + > + reorder-after + +@@ -84,13 +83,9 @@ + reorder-after + >;;;IGNORE + +-reorder-after +- ;;;IGNORE +- ;;;IGNORE ++reorder-after + >;;;IGNORE +-reorder-after +- ;;;IGNORE +- ;;;IGNORE ++reorder-after + >;;;IGNORE + + reorder-after +@@ -116,35 +111,35 @@ + END LC_NUMERIC + + LC_TIME +-abday "";"";/ +- "";"";/ +- "";"";/ +- "" +-day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++abday "";"";/ ++ "";"";/ ++ "";"";/ ++ "" ++day "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"" +-mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++mon "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + % format: %A %d %B %Y %T %Z + d_t_fmt "" + % format: %d/%m/%Y +@@ -182,15 +177,15 @@ + name_fmt "/ + " + % TODO +-% Sayn +-name_gen "" ++% Birz ++name_gen "" + % "M." +-name_mr "" +-% "Jne" +-name_mrs "" +-name_ms "" +-% "Kc,k" +-name_miss "" ++name_mr "" ++% "Birz" ++name_mrs "" ++name_ms "" ++% "Birz" ++name_miss "" + END LC_NAME + + LC_ADDRESS +@@ -199,17 +194,16 @@ + / + / + " +-% TODO +-country_name "" +-country_post "TR" +-country_ab2 "TR" +-country_ab3 "TUR" ++country_name "" ++country_post "" ++country_ab2 "" ++country_ab3 "" + country_num 792 + country_isbn 975 +-country_car "TR" +-% "kurdi" +-lang_name "" +-lang_ab "ku" +-lang_term "kur" +-lang_lib "kur" ++country_car "" ++% "kurd" ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS --- eglibc-2.12.1.orig/debian/patches/localedata/tailor-iso14651_t1.diff +++ eglibc-2.12.1/debian/patches/localedata/tailor-iso14651_t1.diff @@ -0,0 +1,11079 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Rewrite collation rules to include iso14651_t1 +# DP: es_ES: BZ664, by Pablo Saratxaga +# DP: da_DK fi_FI nb_NO: BZ672, by Denis Barbier +# DP: ar_SA cs_CZ et_EE hr_HR lt_LT pl_PL sl_SI tr_TR: not +# DP: submitted yet. +# DP: Related bugs: BZ664 BZ672 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier, Pablo Saratxaga +# DP: Upstream status: BZ664 BZ672 +# DP: Date: 2006-01-18 + +2008-08-08 Aurelien Jarno + + Loosy update for glibc 2.8. + +2007-05-25 Pierre Habouzit + + Loosy update for glibc 2.6. + +2005-01-16 Denis Barbier + + [BZ #672] + Replace current collation rules by including iso14651_t1 and adding + extra rules if needed. There should be no noticeable changes in + sorted text. only ligatures and ignoreable characters have modified + weights. + * locales/da_DK: Likewise. + * locales/fi_FI: Likewise. + * locales/nb_NO: Likewise. + +--- + localedata/locales/ar_SA | 219 ---- + localedata/locales/da_DK | 27 + localedata/locales/es_ES | 12 + localedata/locales/et_EE | 2099 -------------------------------------------- + localedata/locales/fi_FI | 45 + localedata/locales/hr_HR | 2158 +-------------------------------------------- + localedata/locales/hsb_DE | 2190 ++-------------------------------------------- + localedata/locales/lt_LT | 2064 ------------------------------------------- + localedata/locales/pl_PL | 2139 +------------------------------------------- + localedata/locales/sl_SI | 2086 ------------------------------------------- + localedata/locales/tr_TR | 2120 +------------------------------------------- + 11 files changed, 470 insertions(+), 14689 deletions(-) + +--- a/localedata/locales/da_DK ++++ b/localedata/locales/da_DK +@@ -81,34 +81,37 @@ + % and are treated as in Danish + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE + ;;;IGNORE + + % is a separate letter in Danish + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + % is a separate letter in Danish + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + % is a separate letter in Danish + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE + ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + +@@ -116,6 +119,7 @@ + % removed from latest iso14651 tables. + reorder-after + "";"";"";IGNORE ++reorder-after + "";"";"";IGNORE + + reorder-after +@@ -123,8 +127,9 @@ + + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE + ;;;IGNORE + + reorder-end +--- a/localedata/locales/es_ES ++++ b/localedata/locales/es_ES +@@ -50,6 +50,18 @@ + LC_COLLATE + % Copy the template from ISO/IEC 14651 + copy "iso14651_t1" ++ ++collating-symbol ++ ++reorder-after ++ ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-end + END LC_COLLATE + + LC_CTYPE +--- a/localedata/locales/fi_FI ++++ b/localedata/locales/fi_FI +@@ -63,60 +63,65 @@ + + + +-reorder-after ++reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE + ;;;IGNORE + +-reorder-after ++reorder-after + ;;; +- ;;; + ;;; +- ;;; + ;;; +- ;;; + ;;; +- ;;; + ;;; +- ;;; + ;;; +- ;;; + ;;; +- ;;; + ;;; ++reorder-after ++ ;;; ++ ;;; ++ ;;; ++ ;;; ++ ;;; ++ ;;; ++ ;;; + ;;; + + reorder-after + ;;;IGNORE ++reorder-after + ;;;IGNORE + + % Present in iso14651_t1, but these definitions seem to have been + % removed from latest iso14651 tables. +-reorder-after ++reorder-after + "";"";"";IGNORE ++reorder-after + "";"";"";IGNORE + + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE + ;;;IGNORE + + reorder-end +--- a/localedata/locales/ar_SA ++++ b/localedata/locales/ar_SA +@@ -43,223 +43,8 @@ + % Set up the LC_COLLATE category + + LC_COLLATE +- +- +-order_start forward; forward +- +- +- +- +- +- +- +- +- +- +- +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- IGNORE +- IGNORE +- IGNORE +- IGNORE +- IGNORE +- IGNORE +- IGNORE +- IGNORE +- IGNORE +-order_end +- +- ++% Copy the template from ISO/IEC 14651 ++copy "iso14651_t1" + END LC_COLLATE + + +--- a/localedata/locales/hr_HR ++++ b/localedata/locales/hr_HR +@@ -48,10 +48,25 @@ + END LC_IDENTIFICATION + + LC_COLLATE +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" ++copy "iso14651_t1" ++ ++collating-symbol ++collating-symbol ++ ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++collating-symbol ++collating-symbol ++collating-symbol ++ ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" + collating-element from "" + collating-element from "" + collating-element from "" +@@ -61,2078 +76,71 @@ + collating-element from "" + collating-element from "" + +-% Base collation scheme: 1994-03-22 +- +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE ++reorder-after ++ ++ ++ ++reorder-after ++ ++ ++ ++reorder-after ++ ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE + +-order_end ++reorder-end + + END LC_COLLATE + +--- a/localedata/locales/lt_LT ++++ b/localedata/locales/lt_LT +@@ -58,2067 +58,13 @@ + END LC_IDENTIFICATION + + LC_COLLATE ++define UPPERCASE_FIRST ++copy "iso14651_t1" + +-% Base collation scheme: 1994-03-22 ++reorder-after ++ + +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +-order_end ++reorder-end + + END LC_COLLATE + +--- a/localedata/locales/pl_PL ++++ b/localedata/locales/pl_PL +@@ -48,2067 +48,88 @@ + END LC_IDENTIFICATION + + LC_COLLATE ++copy "iso14651_t1" + +-% Base collation scheme: 1994-03-22 ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++ ++reorder-after ++ ;IGNORE;; ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE + +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- ;IGNORE;; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +-order_end ++reorder-end + + END LC_COLLATE + +--- a/localedata/locales/sl_SI ++++ b/localedata/locales/sl_SI +@@ -48,2067 +48,37 @@ + END LC_IDENTIFICATION + + LC_COLLATE ++copy "iso14651_t1" + +-% Base collation scheme: 1994-03-22 ++collating-symbol ++collating-symbol ++collating-symbol + +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE ++reorder-after ++ + +-order_end ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-end + + END LC_COLLATE + +--- a/localedata/locales/tr_TR ++++ b/localedata/locales/tr_TR +@@ -61,2067 +61,67 @@ + END LC_IDENTIFICATION + + LC_COLLATE ++define UPPERCASE_FIRST ++% Copy the template from ISO/IEC 14651 ++copy "iso14651_t1" ++ ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE + +-% Base collation scheme: 1994-03-22 +- +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +-order_end ++reorder-end + + END LC_COLLATE + --- eglibc-2.12.1.orig/debian/patches/localedata/tl_PH-yesexpr.diff +++ eglibc-2.12.1/debian/patches/localedata/tl_PH-yesexpr.diff @@ -0,0 +1,35 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Fix yesexpr/noexpr/yesstr/nostr +# DP: Related bugs: #295810 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: eric pareja +# DP: Upstream status: not submitted +# DP: Date: 2006-01-10 + +--- + localedata/locales/tl_PH | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +--- a/localedata/locales/tl_PH ++++ b/localedata/locales/tl_PH +@@ -140,7 +140,19 @@ + END LC_TIME + + LC_MESSAGES +-copy "en_US" ++ ++% "^[oOyY].*" for "Yes" ++yesexpr "" ++ ++% "^[hHnN].*" for "No" ++noexpr "" ++ ++% "Oo" for "Yes" ++yesstr "" ++ ++% "Hindi" for "No" ++nostr "" ++ + END LC_MESSAGES + + LC_PAPER --- eglibc-2.12.1.orig/debian/patches/localedata/locale-de_LI.diff +++ eglibc-2.12.1/debian/patches/localedata/locale-de_LI.diff @@ -0,0 +1,112 @@ +--- + localedata/SUPPORTED | 1 + localedata/locales/de_LI | 94 +++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 95 insertions(+) + +--- /dev/null ++++ b/localedata/locales/de_LI +@@ -0,0 +1,94 @@ ++comment_char % ++escape_char / ++% ++% German locale for Liechtenstein ++% Language: de ++% Territory: LI ++% Revision: 1.0 ++% Date: 2007-11-27 ++% Users: general ++% Repertoiremap: mnemonic.ds ++% Charset: ISO-8859-1 ++% Distribution and use is free, also ++% for commercial purposes. ++ ++LC_IDENTIFICATION ++title "German locale for Liechtenstein" ++source "" ++address "" ++contact "" ++email "bug-glibc-locales@gnu.org" ++tel "" ++fax "" ++language "German" ++territory "Liechtenstein" ++revision "1.0" ++date "2007-11-27" ++% ++category "de_LI:2000";LC_IDENTIFICATION ++category "de_LI:2000";LC_CTYPE ++category "de_LI:2000";LC_COLLATE ++category "de_LI:2000";LC_TIME ++category "de_LI:2000";LC_NUMERIC ++category "de_LI:2000";LC_MONETARY ++category "de_LI:2000";LC_MESSAGES ++category "de_LI:2000";LC_PAPER ++category "de_LI:2000";LC_NAME ++category "de_LI:2000";LC_ADDRESS ++category "de_LI:2000";LC_TELEPHONE ++ ++END LC_IDENTIFICATION ++ ++LC_CTYPE ++copy "de_CH" ++END LC_CTYPE ++ ++LC_COLLATE ++copy "de_CH" ++END LC_COLLATE ++ ++LC_MESSAGES ++copy "de_CH" ++END LC_MESSAGES ++ ++LC_MONETARY ++copy "de_CH" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "de_CH" ++END LC_NUMERIC ++ ++LC_TIME ++copy "de_CH" ++END LC_TIME ++ ++LC_PAPER ++copy "de_CH" ++END LC_PAPER ++ ++LC_TELEPHONE ++tel_int_fmt "/ ++" ++int_prefix "" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++copy "de_CH" ++END LC_MEASUREMENT ++ ++LC_NAME ++copy "de_CH" ++END LC_NAME ++ ++LC_ADDRESS ++postal_fmt "/ ++/ ++/ ++/ ++" ++country_ab2 "" ++country_ab3 "" ++country_num 438 ++END LC_ADDRESS ++ +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -97,6 +97,7 @@ + de_DE.UTF-8/UTF-8 \ + de_DE/ISO-8859-1 \ + de_DE@euro/ISO-8859-15 \ ++de_LI.UTF-8/UTF-8 \ + de_LU.UTF-8/UTF-8 \ + de_LU/ISO-8859-1 \ + de_LU@euro/ISO-8859-15 \ --- eglibc-2.12.1.orig/debian/patches/localedata/submitted-bz9725-locale-sv_SE.diff +++ eglibc-2.12.1/debian/patches/localedata/submitted-bz9725-locale-sv_SE.diff @@ -0,0 +1,33 @@ +--- + localedata/locales/sv_SE | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +--- a/localedata/locales/sv_SE ++++ b/localedata/locales/sv_SE +@@ -169,14 +169,23 @@ + "";/ + "";/ + "" ++% ++% Appropriate date and time representation (%c) ++% "%a %e %b %Y %H.%M.%S" + d_t_fmt "" ++% ++% Appropriate date representation (%x) "%Y-%m-%d" + d_fmt "" ++% ++% Appropriate time representation (%X) "%H.%M.%S" + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++% ++% Appropriate date representation (date(1)) "%a %e %b %Y %H.%M.%S %Z" ++date_fmt "/ ++/ ++" + first_weekday 2 + first_workday 2 + END LC_TIME --- eglibc-2.12.1.orig/debian/patches/localedata/locale-csb_PL.diff +++ eglibc-2.12.1/debian/patches/localedata/locale-csb_PL.diff @@ -0,0 +1,59 @@ +Modify collation rules which could cause errors in regular expressions +with character ranges, as was reported in #362514 for another locale. + +--- + localedata/locales/csb_PL | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +--- a/localedata/locales/csb_PL ++++ b/localedata/locales/csb_PL +@@ -93,38 +93,45 @@ + + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE + ;;;IGNORE + + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE + ;;;IGNORE + + reorder-after + ;;;IGNORE ++reorder-after + ;;;IGNORE + + reorder-after + ;;;IGNORE ++reorder-after + ;;;IGNORE + + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE + ;;;IGNORE + + reorder-after + ;;;IGNORE ++reorder-after + ;;;IGNORE + + reorder-after + ;;;IGNORE ++reorder-after + ;;;IGNORE + + reorder-end --- eglibc-2.12.1.orig/debian/patches/localedata/supported.diff +++ eglibc-2.12.1/debian/patches/localedata/supported.diff @@ -0,0 +1,65 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Add several locales to localedata.SUPPORTED +# DP: - ru_RU.CP1251 was requested in #225516 +# DP: - uz_UZ.UTF-8 was clearly missing, uz_UZ had no UTF-8 variant +# DP: - da_DK.ISO-8859-15, en_GB.ISO-8859-15, en_US.ISO-8859-15, no_NO.UTF-8, +# DP: no_NO and sv_SE.ISO-8859-15 are found in fedora-branch CVS branch. +# DP: Related bugs: #225516 (ru_RU.CP1251) +# DP: Dpatch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-10 + +--- + localedata/SUPPORTED | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -115,6 +115,7 @@ + en_DK/ISO-8859-1 \ + en_GB.UTF-8/UTF-8 \ + en_GB/ISO-8859-1 \ ++en_GB.ISO-8859-15/ISO-8859-15 \ + en_HK.UTF-8/UTF-8 \ + en_HK/ISO-8859-1 \ + en_IE.UTF-8/UTF-8 \ +@@ -130,6 +131,7 @@ + en_SG/ISO-8859-1 \ + en_US.UTF-8/UTF-8 \ + en_US/ISO-8859-1 \ ++en_US.ISO-8859-15/ISO-8859-15 \ + en_ZA.UTF-8/UTF-8 \ + en_ZA/ISO-8859-1 \ + en_ZW.UTF-8/UTF-8 \ +@@ -253,6 +255,7 @@ + ka_GE/GEORGIAN-PS \ + kk_KZ.UTF-8/UTF-8 \ + kk_KZ/PT154 \ ++kk_KZ/RK1048 \ + kl_GL.UTF-8/UTF-8 \ + kl_GL/ISO-8859-1 \ + km_KH/UTF-8 \ +@@ -329,6 +332,7 @@ + ru_RU.UTF-8/UTF-8 \ + ru_RU.KOI8-R/KOI8-R \ + ru_RU/ISO-8859-5 \ ++ru_RU.CP1251/CP1251 \ + ru_UA.UTF-8/UTF-8 \ + ru_UA/KOI8-U \ + rw_RW/UTF-8 \ +@@ -364,6 +368,7 @@ + sv_FI@euro/ISO-8859-15 \ + sv_SE.UTF-8/UTF-8 \ + sv_SE/ISO-8859-1 \ ++sv_SE.ISO-8859-15/ISO-8859-15 \ + ta_IN/UTF-8 \ + te_IN/UTF-8 \ + tg_TJ.UTF-8/UTF-8 \ +@@ -388,6 +393,7 @@ + uk_UA.UTF-8/UTF-8 \ + uk_UA/KOI8-U \ + ur_PK/UTF-8 \ ++uz_UZ.UTF-8/UTF-8 \ + uz_UZ/ISO-8859-1 \ + uz_UZ@cyrillic/UTF-8 \ + ve_ZA/UTF-8 \ --- eglibc-2.12.1.orig/debian/patches/localedata/locale-en_DK.diff +++ eglibc-2.12.1/debian/patches/localedata/locale-en_DK.diff @@ -0,0 +1,86 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Improve en_DK and add en_DK.ISO-8859-15 to SUPPORTED +# DP: This locale is only useful to provide ISO8601 date formats. +# DP: Related bugs: #323159 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Jakob Bohm +# DP: Upstream status: not submitted +# DP: Date: 2006-01-16 + +--- + localedata/SUPPORTED | 1 + + localedata/locales/en_DK | 35 +++++------------------------------ + 2 files changed, 6 insertions(+), 30 deletions(-) + +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -114,6 +114,7 @@ + en_CA.UTF-8/UTF-8 \ + en_CA/ISO-8859-1 \ + en_DK.UTF-8/UTF-8 \ ++en_DK.ISO-8859-15/ISO-8859-15 \ + en_DK/ISO-8859-1 \ + en_GB.UTF-8/UTF-8 \ + en_GB/ISO-8859-1 \ +--- a/localedata/locales/en_DK ++++ b/localedata/locales/en_DK +@@ -60,27 +60,11 @@ + END LC_CTYPE + + LC_MONETARY +-int_curr_symbol "" +-currency_symbol "" +-mon_decimal_point "" +-mon_thousands_sep "" +-mon_grouping 3;3 +-positive_sign "" +-negative_sign "" +-int_frac_digits 2 +-frac_digits 2 +-p_cs_precedes 1 +-p_sep_by_space 0 +-n_cs_precedes 1 +-n_sep_by_space 0 +-p_sign_posn 1 +-n_sign_posn 1 ++copy "da_DK" + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 3;3 ++copy "da_DK" + END LC_NUMERIC + + LC_TIME +@@ -128,8 +112,7 @@ + END LC_TIME + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "da_DK" + END LC_MESSAGES + + LC_PAPER +@@ -145,17 +128,9 @@ + END LC_MEASUREMENT + + LC_NAME +-name_fmt "/ +-" ++copy "da_DK" + END LC_NAME + + LC_ADDRESS +-postal_fmt "/ +-/ +-/ +-/ +-" +-country_ab2 "" +-country_ab3 "" +-country_num 208 ++copy "da_DK" + END LC_ADDRESS --- eglibc-2.12.1.orig/debian/patches/localedata/new-valencian-locale.diff +++ eglibc-2.12.1/debian/patches/localedata/new-valencian-locale.diff @@ -0,0 +1,117 @@ +Submitted upstream: BZ2522 + +--- + localedata/SUPPORTED | 2 + localedata/locales/ca_ES@valencia | 96 ++++++++++++++++++++++++++++++++++++++ + 2 files changed, 98 insertions(+) + +--- /dev/null ++++ b/localedata/locales/ca_ES@valencia +@@ -0,0 +1,96 @@ ++comment_char % ++escape_char / ++% ++% Valencian (southern Catalan) locale for Spain with Euro ++% ++% Note that this locale is almost the same as ca_ES@euro. The point of having ++% a separate locale is only for PO translations, which have a lot of social ++% support and are very appreciated by the Valencian-speaking community. ++% ++% Contact: Jordi Mallach ++% Email: jordi@gnu.org ++% Tel: ++% Fax: ++% Language: ca ++% Territory: ES ++% Option: euro ++% Revision: 1.0 ++% Date: 2006-04-06 ++% Application: general ++% Users: general ++% Repertoiremap: mnemonic,ds ++% Charset: ISO-8859-15 ++% Distribution and use is free, also ++% for commercial purposes. ++ ++LC_IDENTIFICATION ++title "Valencian (southern Catalan) locale for Spain with Euro" ++source "" ++address "" ++contact "Jordi Mallach" ++email "jordi@gnu.org" ++tel "" ++fax "" ++language "Catalan" ++territory "Spain" ++revision "1.0" ++date "2006-04-06" ++% ++category "ca_ES@valencia:2006";LC_IDENTIFICATION ++category "ca_ES@valencia:2006";LC_CTYPE ++category "ca_ES@valencia:2006";LC_COLLATE ++category "ca_ES@valencia:2006";LC_MONETARY ++category "ca_ES@valencia:2006";LC_NUMERIC ++category "ca_ES@valencia:2006";LC_TIME ++category "ca_ES@valencia:2006";LC_MESSAGES ++category "ca_ES@valencia:2006";LC_PAPER ++category "ca_ES@valencia:2006";LC_NAME ++category "ca_ES@valencia:2006";LC_ADDRESS ++category "ca_ES@valencia:2006";LC_TELEPHONE ++category "ca_ES@valencia:2006";LC_MEASUREMENT ++ ++END LC_IDENTIFICATION ++ ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ ++LC_COLLATE ++copy "ca_ES" ++END LC_COLLATE ++ ++LC_MONETARY ++copy "ca_ES" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "ca_ES" ++END LC_NUMERIC ++ ++LC_TIME ++copy "ca_ES" ++END LC_TIME ++ ++LC_MESSAGES ++copy "ca_ES" ++END LC_MESSAGES ++ ++LC_PAPER ++copy "ca_ES" ++END LC_PAPER ++ ++LC_NAME ++copy "ca_ES" ++END LC_NAME ++ ++LC_ADDRESS ++copy "ca_ES" ++END LC_ADDRESS ++ ++LC_TELEPHONE ++copy "ca_ES" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++copy "ca_ES" ++END LC_MEASUREMENT +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -72,6 +72,8 @@ + ca_ES.UTF-8/UTF-8 \ + ca_ES/ISO-8859-1 \ + ca_ES@euro/ISO-8859-15 \ ++ca_ES.UTF-8@valencia/UTF-8 \ ++ca_ES@valencia/ISO-8859-15 \ + ca_FR.UTF-8/UTF-8 \ + ca_FR/ISO-8859-15 \ + ca_IT.UTF-8/UTF-8 \ --- eglibc-2.12.1.orig/debian/patches/localedata/sort-UTF8-first.diff +++ eglibc-2.12.1/debian/patches/localedata/sort-UTF8-first.diff @@ -0,0 +1,79 @@ +--- + localedata/SUPPORTED | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -227,8 +227,8 @@ + hne_IN/UTF-8 \ + hr_HR.UTF-8/UTF-8 \ + hr_HR/ISO-8859-2 \ +-hsb_DE/ISO-8859-2 \ + hsb_DE.UTF-8/UTF-8 \ ++hsb_DE/ISO-8859-2 \ + ht_HT/UTF-8 \ + hu_HU.UTF-8/UTF-8 \ + hu_HU/ISO-8859-2 \ +@@ -248,8 +248,8 @@ + iu_CA/UTF-8 \ + iw_IL.UTF-8/UTF-8 \ + iw_IL/ISO-8859-8 \ +-ja_JP.EUC-JP/EUC-JP \ + ja_JP.UTF-8/UTF-8 \ ++ja_JP.EUC-JP/EUC-JP \ + ka_GE.UTF-8/UTF-8 \ + ka_GE/GEORGIAN-PS \ + kk_KZ.UTF-8/UTF-8 \ +@@ -258,8 +258,8 @@ + kl_GL/ISO-8859-1 \ + km_KH/UTF-8 \ + kn_IN/UTF-8 \ +-ko_KR.EUC-KR/EUC-KR \ + ko_KR.UTF-8/UTF-8 \ ++ko_KR.EUC-KR/EUC-KR \ + kok_IN/UTF-8 \ + ks_IN/UTF-8 \ + ks_IN@devanagari/UTF-8 \ +@@ -328,8 +328,8 @@ + pt_PT@euro/ISO-8859-15 \ + ro_RO.UTF-8/UTF-8 \ + ro_RO/ISO-8859-2 \ +-ru_RU.KOI8-R/KOI8-R \ + ru_RU.UTF-8/UTF-8 \ ++ru_RU.KOI8-R/KOI8-R \ + ru_RU/ISO-8859-5 \ + ru_UA.UTF-8/UTF-8 \ + ru_UA/KOI8-U \ +@@ -394,28 +394,28 @@ + uz_UZ/ISO-8859-1 \ + uz_UZ@cyrillic/UTF-8 \ + ve_ZA/UTF-8 \ +-vi_VN.TCVN/TCVN5712-1 \ + vi_VN/UTF-8 \ ++vi_VN.TCVN/TCVN5712-1 \ ++wa_BE.UTF-8/UTF-8 \ + wa_BE/ISO-8859-1 \ + wa_BE@euro/ISO-8859-15 \ +-wa_BE.UTF-8/UTF-8 \ + wo_SN/UTF-8 \ + xh_ZA.UTF-8/UTF-8 \ + xh_ZA/ISO-8859-1 \ + yi_US.UTF-8/UTF-8 \ + yi_US/CP1255 \ + yo_NG/UTF-8 \ ++zh_CN.UTF-8/UTF-8 \ + zh_CN.GB18030/GB18030 \ + zh_CN.GBK/GBK \ +-zh_CN.UTF-8/UTF-8 \ + zh_CN/GB2312 \ + zh_HK.UTF-8/UTF-8 \ + zh_HK/BIG5-HKSCS \ + zh_SG.UTF-8/UTF-8 \ + zh_SG.GBK/GBK \ + zh_SG/GB2312 \ +-zh_TW.EUC-TW/EUC-TW \ + zh_TW.UTF-8/UTF-8 \ ++zh_TW.EUC-TW/EUC-TW \ + zh_TW/BIG5 \ + zu_ZA.UTF-8/UTF-8 \ + zu_ZA/ISO-8859-1 \ --- eglibc-2.12.1.orig/debian/patches/localedata/locale-hsb_DE.diff +++ eglibc-2.12.1/debian/patches/localedata/locale-hsb_DE.diff @@ -0,0 +1,2215 @@ +--- + localedata/locales/hsb_DE | 2190 ++-------------------------------------------- + 1 file changed, 119 insertions(+), 2071 deletions(-) + +--- a/localedata/locales/hsb_DE ++++ b/localedata/locales/hsb_DE +@@ -34,7 +34,14 @@ + + END LC_IDENTIFICATION + ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ + LC_COLLATE ++% Copy the template from ISO/IEC 14651 ++copy "iso14651_t1" ++ + collating-element from "" + collating-element from "" + collating-element from "" +@@ -44,2081 +51,122 @@ + collating-element from "" + collating-element from "" + +-% Base collation scheme: 1994-03-22 ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++collating-symbol ++collating-symbol ++ ++reorder-after ++ ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++% Is oacute really used? ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE + +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +-order_end ++reorder-end + + END LC_COLLATE + +-LC_CTYPE +-copy "i18n" +-END LC_CTYPE +- + LC_MESSAGES + yesexpr "" + noexpr "" --- eglibc-2.12.1.orig/debian/patches/localedata/fr_CA-first_weekday.diff +++ eglibc-2.12.1/debian/patches/localedata/fr_CA-first_weekday.diff @@ -0,0 +1,15 @@ +--- + localedata/locales/fr_CA | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/localedata/locales/fr_CA ++++ b/localedata/locales/fr_CA +@@ -123,6 +123,8 @@ + / + / + " ++week 7;19971130;4 ++first_weekday 2 + END LC_TIME + + LC_PAPER --- eglibc-2.12.1.orig/debian/patches/localedata/locale-ia.diff +++ eglibc-2.12.1/debian/patches/localedata/locale-ia.diff @@ -0,0 +1,163 @@ +Locale definition for the interlingua locale, submitted by +Alberto Mardegan in #224756. +Ulrich Drepper claimed that he will not accept artificial +languages (like interlingua and esperanto), this locale +will thus not be submitted upstream. + +--- + localedata/SUPPORTED | 1 + localedata/locales/ia | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 140 insertions(+) + +--- /dev/null ++++ b/localedata/locales/ia +@@ -0,0 +1,139 @@ ++comment_char % ++escape_char / ++% ++% Interlingua Language Locale ++ ++LC_IDENTIFICATION ++title "Interlingua locale" ++source "" ++address "" ++contact "" ++email "mardy@despammed.com" ++tel "" ++fax "" ++language "Interlingua" ++territory "" ++revision "1.0" ++date "2003-11-25" ++% ++category "ia:2000";LC_IDENTIFICATION ++category "ia:2000";LC_CTYPE ++category "ia:2000";LC_COLLATE ++category "ia:2000";LC_TIME ++category "ia:2000";LC_NUMERIC ++category "ia:2000";LC_MONETARY ++category "ia:2000";LC_MESSAGES ++category "ia:2000";LC_PAPER ++category "ia:2000";LC_NAME ++category "ia:2000";LC_ADDRESS ++category "ia:2000";LC_TELEPHONE ++ ++END LC_IDENTIFICATION ++ ++LC_COLLATE ++copy "iso14651_t1" ++END LC_COLLATE ++ ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ ++LC_MESSAGES ++yesexpr "" ++noexpr "" ++END LC_MESSAGES ++ ++LC_MONETARY ++int_curr_symbol "" ++currency_symbol "" ++mon_decimal_point "" ++mon_thousands_sep "" ++mon_grouping 3;3 ++positive_sign "" ++negative_sign "" ++int_frac_digits 2 ++frac_digits 2 ++p_cs_precedes 1 ++p_sep_by_space 1 ++n_cs_precedes 1 ++n_sep_by_space 1 ++p_sign_posn 1 ++n_sign_posn 1 ++END LC_MONETARY ++ ++LC_NUMERIC ++decimal_point "" ++thousands_sep "" ++grouping 0;0 ++END LC_NUMERIC ++ ++LC_TIME ++abday "";"";/ ++ "";"";/ ++ "";"";/ ++ "" ++day "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++abmon "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" ++mon "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++d_t_fmt "" ++d_fmt "" ++t_fmt "" ++am_pm "";"" ++t_fmt_ampm "" ++date_fmt "/ ++/ ++" ++END LC_TIME ++ ++LC_PAPER ++% FIXME ++height 297 ++% FIXME ++width 210 ++END LC_PAPER ++ ++LC_TELEPHONE ++tel_int_fmt "/ ++" ++int_select "" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++% FIXME ++measurement 1 ++END LC_MEASUREMENT ++ ++LC_NAME ++name_fmt "/ ++" ++END LC_NAME ++ ++LC_ADDRESS ++postal_fmt "/ ++/ ++/ ++/ ++" ++END LC_ADDRESS +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -243,6 +243,7 @@ + hu_HU/ISO-8859-2 \ + hy_AM/UTF-8 \ + hy_AM.ARMSCII-8/ARMSCII-8 \ ++ia/UTF-8 \ + id_ID.UTF-8/UTF-8 \ + id_ID/ISO-8859-1 \ + ig_NG/UTF-8 \ --- eglibc-2.12.1.orig/debian/patches/localedata/tailor-iso14651_t1-common.diff +++ eglibc-2.12.1/debian/patches/localedata/tailor-iso14651_t1-common.diff @@ -0,0 +1,43 @@ +--- + localedata/locales/iso14651_t1_common | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +--- a/localedata/locales/iso14651_t1_common ++++ b/localedata/locales/iso14651_t1_common +@@ -2728,7 +2728,11 @@ + # SYMB. N° + # + ++ifdef UPPERCASE_FIRST ++ ++else + ++endif + # forme de base (bas de casse, arabe intrinsèque, + # hébreu intrinsèque, etc. + # basic form (lower case, intrinsic Arabic +@@ -2747,14 +2751,21 @@ + # medial/mdian + # 6 + # ++ifdef UPPERCASE_FIRST ++ # 7 ++ # 8 ++ # 9 ++ # 10 ++ # 11 ++ # 12 ++else + # 7 + # 8 + # 9 + # 10 + # 11 +- +-#alternate lower case/ +-# 12 ++ # 12 alternate lower case ++endif + # + #minuscules spéciales après majuscules + # / --- eglibc-2.12.1.orig/debian/patches/localedata/tailor-iso14651_t1.diff.TODO +++ eglibc-2.12.1/debian/patches/localedata/tailor-iso14651_t1.diff.TODO @@ -0,0 +1,2110 @@ +--- a/localedata/locales/et_EE ++++ b/localedata/locales/et_EE +@@ -55,2067 +55,48 @@ + END LC_IDENTIFICATION + + LC_COLLATE ++define UPPERCASE_FIRST ++copy "iso14651_t1" + +-% Base collation scheme: 1994-03-22 ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++reorder-after ++ ++ ++ ++reorder-after ++ ++ ++ ++ ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE + +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +-order_end ++reorder-end + + END LC_COLLATE + --- eglibc-2.12.1.orig/debian/patches/localedata/submitted-bz9732-dz_BT-collation.diff +++ eglibc-2.12.1/debian/patches/localedata/submitted-bz9732-dz_BT-collation.diff @@ -0,0 +1,2409 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Enhance collation rules for dz_BT. These rules have +# DP: been written by Pema Geyleg and Denis Barbier, based on +# DP: C. Fynn's chart. +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Pema Geyleg and Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-30 + +--- + localedata/locales/dz_BT | 2330 +++++++++++++++++++++++++---------------------- + 1 file changed, 1285 insertions(+), 1045 deletions(-) + +--- a/localedata/locales/dz_BT ++++ b/localedata/locales/dz_BT +@@ -56,7 +56,30 @@ + LC_COLLATE + copy "iso14651_t1" + +-script ++% Collation rules written by Pema Geyleg, Pablo Saratxaga and Denis ++% Barbier, based on Dzongkha collation chart provided by Christopher J Fynn ++% at http://www.btinternet.com/~c.fynn/misc/DZ_bt/dzongkha-collate.html ++ ++% Third level ++ ++% Nominal, subjoined or variant forms ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++% Tibetan signs ++collating-symbol ++collating-symbol ++collating-symbol ++ ++% Second level ++collating-symbol ++collating-symbol ++collating-symbol ++ ++% Primary level ++collating-symbol + + % 30 base letters + collating-symbol +@@ -96,669 +119,736 @@ + collating-symbol + collating-symbol + +-% pre-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% nominal, subjoined or variant forms +-collating-symbol +-collating-symbol +-collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++% ++collating-symbol ++% ++collating-symbol ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++% ++collating-symbol ++collating-symbol ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol + +-% ka-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% kha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% ga-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the ga-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% nga-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the nga-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% ca-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% cha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% ja-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% nya-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% ta-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% tha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% da-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the da-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% na-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the na-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% pa-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the pa-radical +-% itself, and the following letter. +-collating-symbol % ambiguous in Dzongkha +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% pha-radicals +-collating-symbol +-collating-element from "" +- +-% ba-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the ba-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% ma-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the ma-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% tsa-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% tsha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% dza-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% zha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% za-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% ya-radicals +-collating-symbol +-collating-element from "" +- +-% ra-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the ra-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-element from "" +- +-% sha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% sa-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the sa-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% ha-radicals +-collating-symbol +-collating-element from "" +- +-% generic definitions +-reorder-after ++reorder-after + + ++ ++ ++ ++ ++ ++ + + reorder-after +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++reorder-after ++ + +-% a better place than after cyrillic ya should be defined + reorder-after ++ + +- +- +- +- +- +- +- +- +- +- ++ ++ ++ + +- +- +- +- +- +- +- +- +- ++ + +- +- +- +- +- +- +- ++ + +- +- +- +- ++ + +- +- ++ + +- +- +- +- +- ++ + +- +- +- +- +- +- ++ + +- +- +- +- +- +- +- +- ++ + +- +- ++ + +- +- +- +- +- +- +- +- +- +- ++ + +- +- +- +- +- +- ++ + +- +- +- ++ + +- ++ + +- +- +- +- +- ++ + +- +- +- ++ + +- +- +- +- +- +- ++ + +- +- ++ + +- +- +- +- ++ + ++ + +- +- ++ + +- +- ++ + ++ + +- ++ + +- ++ + ++ + +- +- ++ + +- +- ++ + +- ++ + ++ ++ + + + + + +-%order_start ;forward;forward;forward;forward,position ++ + +-% specific definitions +-reorder-after +-% digits ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++reorder-end ++ ++script ++ ++order_start ;forward;forward;forward;forward,position + <0>;;IGNORE;IGNORE + <0>;;IGNORE;IGNORE + <1>;;IGNORE;IGNORE +@@ -780,430 +870,580 @@ + <9>;;IGNORE;IGNORE + <9>;;IGNORE;IGNORE + +-% letters +- ;;;IGNORE % ka +- ;;;IGNORE +- "";"";"";IGNORE % kssa +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % kha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ga +- ;;;IGNORE +- "";"";"";IGNORE % gha +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % nga +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ca +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % cha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ja +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % nya +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ta +- ;;;IGNORE +- ;;;IGNORE % tta +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % tha +- ;;;IGNORE +- ;;;IGNORE % ttha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % da +- ;;;IGNORE +- ;;;IGNORE % dda +- ;;;IGNORE +- "";"";"";IGNORE % dha +- "";"";"";IGNORE +- "";"";"";IGNORE % ddha +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % na +- ;;;IGNORE +- ;;;IGNORE % nna +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % pa +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % pha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ba +- ;;;IGNORE +- "";"";"";IGNORE % bha +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ma +- ;;;IGNORE +- ;;;IGNORE % +- ;;;IGNORE % +- ;;;IGNORE % +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % tsa +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % tsha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % dza +- ;;;IGNORE +- "";"";"";IGNORE % dzha +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % wa +- ;;;IGNORE +- ;;;IGNORE % fixed wa +- ;;;IGNORE % zha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % za +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % -a +- ;;;IGNORE +- ;;;IGNORE % ya +- ;;;IGNORE +- ;;;IGNORE % fixed ya +- ;;;IGNORE +- ;;;IGNORE % ra +- ;;;IGNORE +- ;;;IGNORE % fixed ra +- ;;;IGNORE +- ;;;IGNORE % vocalic r +-% FIXME; which of the two? +- ;;;IGNORE % vocalic rr +-% "";";";IGNORE % vocalic rr +- "";"";"";IGNORE +- ;;;IGNORE % la +- ;;;IGNORE +- ;;;IGNORE % vocalic l +-% FIXME; which of the two? +- ;;;IGNORE % vocalic ll +-% "";";";IGNORE % vocalic ll +- ;;;IGNORE % sha +- ;;;IGNORE +- ;;;IGNORE % ssa +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % sa +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE % ha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % a +- ;;;IGNORE +- +-% explicit vowels +- IGNORE;;IGNORE;IGNORE % long vowel mark % FIXME +- ;;;IGNORE % i +- ;;;IGNORE % reversed i +- ;;;IGNORE % ii +- ;;;IGNORE % reversed ii +- ;;;IGNORE % u +- ;;;IGNORE % uu +- ;;;IGNORE % e +- ;;;IGNORE % ee +- ;;;IGNORE % o +- ;;;IGNORE % oo +- +-% FIXME: 0F39, 0F7F, 0F84, 0F85, 0F86, 0F87, +- +-% FIXME: 0F88, UF89, UF8A, 0F8B +- IGNORE;;IGNORE;IGNORE +- IGNORE;;IGNORE;IGNORE +- IGNORE;;IGNORE;IGNORE +- IGNORE;;IGNORE;IGNORE ++ ;IGNORE;IGNORE;IGNORE + +-reorder-end ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++order_end + + END LC_COLLATE + --- eglibc-2.12.1.orig/debian/patches/localedata/first_weekday.diff +++ eglibc-2.12.1/debian/patches/localedata/first_weekday.diff @@ -0,0 +1,1650 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Add first_weekday and first_workday, most come +# DP: from OpenOffice through CLDR +# DP: This patch applies the following conventions: +# DP: 1=Sunday...7=Saturday +# DP: The week keyword is removed from all locales. +# DP: Normally GTK apps should work with these settings, as well as +# DP: other apps. +# DP: Related bugs: #343885 347323 #379100 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted + +--- + localedata/locales/aa_DJ | 2 ++ + localedata/locales/aa_ER | 2 ++ + localedata/locales/aa_ER@saaho | 2 ++ + localedata/locales/aa_ET | 2 ++ + localedata/locales/af_ZA | 2 ++ + localedata/locales/am_ET | 2 ++ + localedata/locales/ar_AE | 2 ++ + localedata/locales/ar_BH | 2 ++ + localedata/locales/ar_DZ | 2 ++ + localedata/locales/ar_EG | 2 ++ + localedata/locales/ar_IN | 2 ++ + localedata/locales/ar_IQ | 2 ++ + localedata/locales/ar_JO | 2 ++ + localedata/locales/ar_KW | 2 ++ + localedata/locales/ar_LB | 2 ++ + localedata/locales/ar_LY | 2 ++ + localedata/locales/ar_MA | 2 ++ + localedata/locales/ar_OM | 2 ++ + localedata/locales/ar_QA | 2 ++ + localedata/locales/ar_SA | 2 ++ + localedata/locales/ar_SD | 2 ++ + localedata/locales/ar_SY | 2 ++ + localedata/locales/ar_TN | 2 ++ + localedata/locales/ar_YE | 2 ++ + localedata/locales/az_AZ | 2 ++ + localedata/locales/be_BY | 3 +++ + localedata/locales/be_BY@latin | 3 +++ + localedata/locales/bn_IN | 2 ++ + localedata/locales/br_FR | 2 ++ + localedata/locales/bs_BA | 2 ++ + localedata/locales/byn_ER | 2 ++ + localedata/locales/ca_ES | 2 ++ + localedata/locales/de_BE | 2 ++ + localedata/locales/de_CH | 2 ++ + localedata/locales/de_LU | 2 ++ + localedata/locales/dz_BT | 3 ++- + localedata/locales/el_GR | 2 ++ + localedata/locales/en_AU | 2 ++ + localedata/locales/en_CA | 2 ++ + localedata/locales/en_DK | 3 +++ + localedata/locales/en_HK | 2 ++ + localedata/locales/en_IE | 2 ++ + localedata/locales/en_IN | 2 ++ + localedata/locales/en_NZ | 2 ++ + localedata/locales/en_PH | 2 ++ + localedata/locales/en_SG | 2 ++ + localedata/locales/en_ZA | 2 ++ + localedata/locales/es_AR | 2 ++ + localedata/locales/es_BO | 2 ++ + localedata/locales/es_CL | 2 ++ + localedata/locales/es_DO | 2 ++ + localedata/locales/es_EC | 2 ++ + localedata/locales/es_GT | 2 ++ + localedata/locales/es_HN | 2 ++ + localedata/locales/es_MX | 2 ++ + localedata/locales/es_NI | 2 ++ + localedata/locales/es_PA | 2 ++ + localedata/locales/es_PE | 2 ++ + localedata/locales/es_PR | 2 ++ + localedata/locales/es_PY | 2 ++ + localedata/locales/es_SV | 2 ++ + localedata/locales/es_US | 2 ++ + localedata/locales/es_UY | 2 ++ + localedata/locales/es_VE | 2 ++ + localedata/locales/eu_ES | 1 + + localedata/locales/ga_IE | 2 ++ + localedata/locales/gd_GB | 2 ++ + localedata/locales/gez_ER | 2 ++ + localedata/locales/gez_ET | 2 ++ + localedata/locales/gl_ES | 2 ++ + localedata/locales/gu_IN | 2 ++ + localedata/locales/gv_GB | 2 ++ + localedata/locales/he_IL | 2 ++ + localedata/locales/hi_IN | 2 ++ + localedata/locales/hr_HR | 2 ++ + localedata/locales/hsb_DE | 2 ++ + localedata/locales/hy_AM | 2 ++ + localedata/locales/id_ID | 2 ++ + localedata/locales/is_IS | 2 ++ + localedata/locales/it_CH | 2 ++ + localedata/locales/it_IT | 2 ++ + localedata/locales/ja_JP | 2 ++ + localedata/locales/kk_KZ | 2 ++ + localedata/locales/km_KH | 2 ++ + localedata/locales/kn_IN | 2 ++ + localedata/locales/ko_KR | 2 ++ + localedata/locales/ku_TR | 2 ++ + localedata/locales/kw_GB | 2 ++ + localedata/locales/lo_LA | 2 ++ + localedata/locales/lt_LT | 2 ++ + localedata/locales/lv_LV | 2 ++ + localedata/locales/ml_IN | 2 ++ + localedata/locales/mn_MN | 2 ++ + localedata/locales/mr_IN | 2 ++ + localedata/locales/ms_MY | 2 ++ + localedata/locales/ne_NP | 2 ++ + localedata/locales/nl_BE | 2 ++ + localedata/locales/nl_NL | 2 ++ + localedata/locales/nr_ZA | 2 ++ + localedata/locales/nso_ZA | 2 ++ + localedata/locales/oc_FR | 2 ++ + localedata/locales/om_ET | 2 ++ + localedata/locales/pa_IN | 2 ++ + localedata/locales/pt_BR | 1 + + localedata/locales/pt_PT | 2 ++ + localedata/locales/rw_RW | 2 ++ + localedata/locales/sa_IN | 2 ++ + localedata/locales/se_NO | 3 +++ + localedata/locales/sid_ET | 2 ++ + localedata/locales/sl_SI | 2 ++ + localedata/locales/so_DJ | 2 ++ + localedata/locales/so_ET | 2 ++ + localedata/locales/so_KE | 2 ++ + localedata/locales/so_SO | 2 ++ + localedata/locales/sq_AL | 2 ++ + localedata/locales/ss_ZA | 2 ++ + localedata/locales/st_ZA | 2 ++ + localedata/locales/sv_FI | 2 ++ + localedata/locales/ta_IN | 2 ++ + localedata/locales/te_IN | 2 ++ + localedata/locales/th_TH | 2 ++ + localedata/locales/ti_ER | 2 ++ + localedata/locales/ti_ET | 2 ++ + localedata/locales/tig_ER | 2 ++ + localedata/locales/tn_ZA | 2 ++ + localedata/locales/tr_TR | 2 ++ + localedata/locales/ts_ZA | 2 ++ + localedata/locales/tt_RU | 2 ++ + localedata/locales/uz_UZ | 2 ++ + localedata/locales/uz_UZ@cyrillic | 2 ++ + localedata/locales/ve_ZA | 2 ++ + localedata/locales/vi_VN | 2 ++ + localedata/locales/wa_BE | 3 ++- + localedata/locales/wal_ET | 2 ++ + localedata/locales/xh_ZA | 2 ++ + localedata/locales/yi_US | 2 ++ + localedata/locales/zh_CN | 2 ++ + localedata/locales/zh_HK | 2 ++ + localedata/locales/zh_SG | 2 ++ + localedata/locales/zh_TW | 3 +++ + localedata/locales/zu_ZA | 2 ++ + 138 files changed, 278 insertions(+), 2 deletions(-) + +--- a/localedata/locales/aa_DJ ++++ b/localedata/locales/aa_DJ +@@ -273,5 +273,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/aa_ER ++++ b/localedata/locales/aa_ER +@@ -223,5 +223,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/aa_ER@saaho ++++ b/localedata/locales/aa_ER@saaho +@@ -207,5 +207,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/aa_ET ++++ b/localedata/locales/aa_ET +@@ -226,5 +226,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/af_ZA ++++ b/localedata/locales/af_ZA +@@ -164,6 +164,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/am_ET ++++ b/localedata/locales/am_ET +@@ -1564,5 +1564,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/ar_AE ++++ b/localedata/locales/ar_AE +@@ -141,6 +141,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_BH ++++ b/localedata/locales/ar_BH +@@ -145,6 +145,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_DZ ++++ b/localedata/locales/ar_DZ +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_EG ++++ b/localedata/locales/ar_EG +@@ -148,6 +148,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_IN ++++ b/localedata/locales/ar_IN +@@ -127,6 +127,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: copied from other *_IN locales ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/ar_IQ ++++ b/localedata/locales/ar_IQ +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_JO ++++ b/localedata/locales/ar_JO +@@ -162,6 +162,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_KW ++++ b/localedata/locales/ar_KW +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_LB ++++ b/localedata/locales/ar_LB +@@ -161,6 +161,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_LY ++++ b/localedata/locales/ar_LY +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_MA ++++ b/localedata/locales/ar_MA +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_OM ++++ b/localedata/locales/ar_OM +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_QA ++++ b/localedata/locales/ar_QA +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_SA ++++ b/localedata/locales/ar_SA +@@ -132,6 +132,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_SD ++++ b/localedata/locales/ar_SD +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_SY ++++ b/localedata/locales/ar_SY +@@ -161,6 +161,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 5 + END LC_TIME + + +--- a/localedata/locales/ar_TN ++++ b/localedata/locales/ar_TN +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/ar_YE ++++ b/localedata/locales/ar_YE +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- a/localedata/locales/az_AZ ++++ b/localedata/locales/az_AZ +@@ -274,6 +274,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/be_BY ++++ b/localedata/locales/be_BY +@@ -145,6 +145,9 @@ + date_fmt "/ + / + " ++% Copied from be_BY@alternative ++first_weekday 2 ++first_workday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/be_BY@latin ++++ b/localedata/locales/be_BY@latin +@@ -102,6 +102,9 @@ + date_fmt "/ + / + " ++% Copied from be_BY@alternative ++first_weekday 2 ++first_workday 2 + END LC_TIME + + LC_COLLATE +--- a/localedata/locales/bn_IN ++++ b/localedata/locales/bn_IN +@@ -145,6 +145,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/br_FR ++++ b/localedata/locales/br_FR +@@ -141,6 +141,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/bs_BA ++++ b/localedata/locales/bs_BA +@@ -208,6 +208,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/byn_ER ++++ b/localedata/locales/byn_ER +@@ -218,5 +218,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/ca_ES ++++ b/localedata/locales/ca_ES +@@ -138,6 +138,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/de_BE ++++ b/localedata/locales/de_BE +@@ -119,6 +119,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/de_LU ++++ b/localedata/locales/de_LU +@@ -119,6 +119,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/dz_BT ++++ b/localedata/locales/dz_BT +@@ -1546,7 +1546,8 @@ + / + " + +- ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/el_GR ++++ b/localedata/locales/el_GR +@@ -139,6 +139,8 @@ + % + % Appropriate date representation (date(1)) "%a %d %b %Y %r %Z" + date_fmt "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/en_AU ++++ b/localedata/locales/en_AU +@@ -117,6 +117,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/en_CA ++++ b/localedata/locales/en_CA +@@ -132,6 +132,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/en_HK ++++ b/localedata/locales/en_HK +@@ -133,6 +133,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/en_IE ++++ b/localedata/locales/en_IE +@@ -115,6 +115,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/en_IN ++++ b/localedata/locales/en_IN +@@ -132,6 +132,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/en_NZ ++++ b/localedata/locales/en_NZ +@@ -117,6 +117,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/en_PH ++++ b/localedata/locales/en_PH +@@ -133,6 +133,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/en_SG ++++ b/localedata/locales/en_SG +@@ -131,6 +131,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/en_ZA ++++ b/localedata/locales/en_ZA +@@ -205,6 +205,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/es_AR ++++ b/localedata/locales/es_AR +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_BO ++++ b/localedata/locales/es_BO +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_CL ++++ b/localedata/locales/es_CL +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_DO ++++ b/localedata/locales/es_DO +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_EC ++++ b/localedata/locales/es_EC +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_GT ++++ b/localedata/locales/es_GT +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_HN ++++ b/localedata/locales/es_HN +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_MX ++++ b/localedata/locales/es_MX +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_NI ++++ b/localedata/locales/es_NI +@@ -114,6 +114,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_PA ++++ b/localedata/locales/es_PA +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_PE ++++ b/localedata/locales/es_PE +@@ -123,6 +123,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_PR ++++ b/localedata/locales/es_PR +@@ -113,6 +113,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_PY ++++ b/localedata/locales/es_PY +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_SV ++++ b/localedata/locales/es_SV +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_US ++++ b/localedata/locales/es_US +@@ -174,6 +174,8 @@ + date_fmt "/ + / + " ++% FIXME ++first_weekday 1 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_UY ++++ b/localedata/locales/es_UY +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/es_VE ++++ b/localedata/locales/es_VE +@@ -123,6 +123,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/eu_ES ++++ b/localedata/locales/eu_ES +@@ -131,6 +131,7 @@ + date_fmt "/ + / + " ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/ga_IE ++++ b/localedata/locales/ga_IE +@@ -117,6 +117,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/gd_GB ++++ b/localedata/locales/gd_GB +@@ -122,6 +122,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/gez_ER ++++ b/localedata/locales/gez_ER +@@ -215,5 +215,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/gez_ET ++++ b/localedata/locales/gez_ET +@@ -216,5 +216,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/gl_ES ++++ b/localedata/locales/gl_ES +@@ -121,6 +121,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/gu_IN ++++ b/localedata/locales/gu_IN +@@ -178,6 +178,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/gv_GB ++++ b/localedata/locales/gv_GB +@@ -131,6 +131,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/he_IL ++++ b/localedata/locales/he_IL +@@ -123,6 +123,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/hi_IN ++++ b/localedata/locales/hi_IN +@@ -173,6 +173,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/hr_HR ++++ b/localedata/locales/hr_HR +@@ -220,6 +220,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/hy_AM ++++ b/localedata/locales/hy_AM +@@ -147,6 +147,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/id_ID ++++ b/localedata/locales/id_ID +@@ -120,6 +120,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/is_IS ++++ b/localedata/locales/is_IS +@@ -2223,6 +2223,8 @@ + date_fmt "/ + / + " ++% FIXME: found in Java ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/it_CH ++++ b/localedata/locales/it_CH +@@ -100,6 +96,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/it_IT ++++ b/localedata/locales/it_IT +@@ -124,6 +124,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/ja_JP ++++ b/localedata/locales/ja_JP +@@ -15006,6 +15006,8 @@ + "";"";/ + "";"";/ + "";"" ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/kk_KZ ++++ b/localedata/locales/kk_KZ +@@ -232,6 +232,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/km_KH ++++ b/localedata/locales/km_KH +@@ -1841,6 +1841,8 @@ + % ICT-7ICT-7 + %timezone "" + ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/kn_IN ++++ b/localedata/locales/kn_IN +@@ -182,6 +182,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/ko_KR ++++ b/localedata/locales/ko_KR +@@ -6189,6 +6189,8 @@ + / + / + " ++% FIXME: found in CLDR ++first_weekday 1 + + END LC_TIME + +--- a/localedata/locales/ku_TR ++++ b/localedata/locales/ku_TR +@@ -149,6 +149,8 @@ + t_fmt_ampm "" + % format: %A %d %B %Y + date_fmt "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/kw_GB ++++ b/localedata/locales/kw_GB +@@ -123,6 +123,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/lo_LA ++++ b/localedata/locales/lo_LA +@@ -718,6 +718,8 @@ + " + % ICT-7ICT-7 + timezone "" ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/lt_LT ++++ b/localedata/locales/lt_LT +@@ -137,6 +137,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/lv_LV ++++ b/localedata/locales/lv_LV +@@ -2183,6 +2183,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/ml_IN ++++ b/localedata/locales/ml_IN +@@ -163,6 +163,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME ++first_weekday 1 + END LC_TIME + % + LC_MESSAGES +--- a/localedata/locales/mn_MN ++++ b/localedata/locales/mn_MN +@@ -220,6 +220,8 @@ + % "%Z %Y ony %B %e, %a %H:%M:%S" + date_fmt "/ + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/mr_IN ++++ b/localedata/locales/mr_IN +@@ -170,6 +170,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/ms_MY ++++ b/localedata/locales/ms_MY +@@ -139,6 +139,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + +--- a/localedata/locales/ne_NP ++++ b/localedata/locales/ne_NP +@@ -153,6 +153,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/nl_BE ++++ b/localedata/locales/nl_BE +@@ -104,6 +104,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/nr_ZA ++++ b/localedata/locales/nr_ZA +@@ -162,6 +162,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/nso_ZA ++++ b/localedata/locales/nso_ZA +@@ -157,6 +157,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/oc_FR ++++ b/localedata/locales/oc_FR +@@ -123,6 +123,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_NAME +--- a/localedata/locales/om_ET ++++ b/localedata/locales/om_ET +@@ -233,5 +233,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/pa_IN ++++ b/localedata/locales/pa_IN +@@ -170,6 +170,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/pt_BR ++++ b/localedata/locales/pt_BR +@@ -121,6 +121,7 @@ + date_fmt "/ + / + " ++first_weekday 1 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/pt_PT ++++ b/localedata/locales/pt_PT +@@ -124,6 +124,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/rw_RW ++++ b/localedata/locales/rw_RW +@@ -109,6 +109,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/sa_IN ++++ b/localedata/locales/sa_IN +@@ -182,6 +182,8 @@ + date_fmt "/ + / + " ++% FIXME: copied from other *_IN locales ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/se_NO ++++ b/localedata/locales/se_NO +@@ -277,6 +277,9 @@ + " + + % %a %b-%e %H:%M:%S %Z %Y sn jan-31 21:15:11 CET 2001 ++% FIXME: found in CLDR ++first_weekday 2 ++first_workday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/sid_ET ++++ b/localedata/locales/sid_ET +@@ -222,5 +222,7 @@ + % + date_fmt "/ + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/sl_SI ++++ b/localedata/locales/sl_SI +@@ -157,6 +157,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/so_DJ ++++ b/localedata/locales/so_DJ +@@ -222,5 +222,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/so_ET ++++ b/localedata/locales/so_ET +@@ -219,5 +219,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/so_KE ++++ b/localedata/locales/so_KE +@@ -218,5 +218,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/so_SO ++++ b/localedata/locales/so_SO +@@ -278,5 +278,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/sq_AL ++++ b/localedata/locales/sq_AL +@@ -290,6 +290,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + +--- a/localedata/locales/ss_ZA ++++ b/localedata/locales/ss_ZA +@@ -167,6 +167,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/st_ZA ++++ b/localedata/locales/st_ZA +@@ -164,6 +164,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/sv_FI ++++ b/localedata/locales/sv_FI +@@ -107,6 +107,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/ta_IN ++++ b/localedata/locales/ta_IN +@@ -247,6 +247,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/te_IN ++++ b/localedata/locales/te_IN +@@ -156,6 +156,8 @@ + % %p%I.%M.%S %Z + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/th_TH ++++ b/localedata/locales/th_TH +@@ -913,6 +913,8 @@ + " + % ICT-7ICT-7 + timezone "" ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/ti_ER ++++ b/localedata/locales/ti_ER +@@ -270,5 +270,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/ti_ET ++++ b/localedata/locales/ti_ET +@@ -1072,5 +1072,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/tig_ER ++++ b/localedata/locales/tig_ER +@@ -218,5 +218,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/tn_ZA ++++ b/localedata/locales/tn_ZA +@@ -169,6 +169,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/tr_TR ++++ b/localedata/locales/tr_TR +@@ -1540,6 +1540,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/ts_ZA ++++ b/localedata/locales/ts_ZA +@@ -164,6 +164,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/tt_RU ++++ b/localedata/locales/tt_RU +@@ -297,6 +297,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- a/localedata/locales/uz_UZ ++++ b/localedata/locales/uz_UZ +@@ -260,6 +260,8 @@ + am_pm "";"" + t_fmt_ampm "" + date_fmt "" ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/uz_UZ@cyrillic ++++ b/localedata/locales/uz_UZ@cyrillic +@@ -263,6 +263,8 @@ + am_pm "";"" + t_fmt_ampm "" + date_fmt "" ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/ve_ZA ++++ b/localedata/locales/ve_ZA +@@ -166,6 +166,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/vi_VN ++++ b/localedata/locales/vi_VN +@@ -294,6 +294,8 @@ + am_pm "";"" + t_fmt_ampm "" + date_fmt "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + % yes: Va^ng / Da. +--- a/localedata/locales/wa_BE ++++ b/localedata/locales/wa_BE +@@ -163,7 +163,8 @@ + am_pm "";"" + t_fmt_ampm "" + % prumî djoû del samwinne (1=londi) +-first_weekday 1 ++% FIXME No, 2=lundi ++first_weekday 2 + END LC_TIME + + LC_NAME +--- a/localedata/locales/wal_ET ++++ b/localedata/locales/wal_ET +@@ -232,5 +232,7 @@ + / + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- a/localedata/locales/xh_ZA ++++ b/localedata/locales/xh_ZA +@@ -164,6 +164,8 @@ + % time-zone name, + % year with century as a decimal number,e.g. 2001. + % ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/yi_US ++++ b/localedata/locales/yi_US +@@ -186,6 +186,8 @@ + am_pm "";"" + t_fmt_ampm "" + cal_direction 3 ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/zh_CN ++++ b/localedata/locales/zh_CN +@@ -135,6 +135,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/zh_HK ++++ b/localedata/locales/zh_HK +@@ -141,6 +141,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- a/localedata/locales/zh_SG ++++ b/localedata/locales/zh_SG +@@ -130,6 +130,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + +--- a/localedata/locales/zh_TW ++++ b/localedata/locales/zh_TW +@@ -128,6 +128,9 @@ + / + " + ++% FIXME: found in CLDR ++first_weekday 1 ++ + END LC_TIME + + LC_MESSAGES +--- a/localedata/locales/zu_ZA ++++ b/localedata/locales/zu_ZA +@@ -170,6 +170,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES --- eglibc-2.12.1.orig/debian/patches/localedata/locales-fr.diff +++ eglibc-2.12.1/debian/patches/localedata/locales-fr.diff @@ -0,0 +1,274 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Various fixes for all French locales +# DP: Related bugs: #248377 #351786 #345481 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-10 + +--- + localedata/locales/fr_BE | 20 +++++++++++++++----- + localedata/locales/fr_CA | 15 ++++++++++----- + localedata/locales/fr_CH | 23 +++++++++++++++-------- + localedata/locales/fr_FR | 21 ++++++++++++++++++--- + localedata/locales/fr_LU | 23 ++++++++++++++++------- + 5 files changed, 74 insertions(+), 28 deletions(-) + +--- a/localedata/locales/fr_BE ++++ b/localedata/locales/fr_BE +@@ -42,6 +42,7 @@ + category "fr_BE:2000";LC_NAME + category "fr_BE:2000";LC_ADDRESS + category "fr_BE:2000";LC_TELEPHONE ++category "fr_BE:2000";LC_MEASUREMENT + + END LC_IDENTIFICATION + +@@ -117,9 +118,10 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++" + + week 7;19971130;4 + first_weekday 2 +@@ -146,8 +148,7 @@ + END LC_MEASUREMENT + + LC_NAME +-name_fmt "/ +-" ++copy "fr_FR" + END LC_NAME + + LC_ADDRESS +@@ -159,4 +160,13 @@ + country_ab2 "" + country_ab3 "" + country_num 056 ++country_name "" ++country_car "" ++% FIXME ++country_post "" ++country_isbn 2 ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS +--- a/localedata/locales/fr_CA ++++ b/localedata/locales/fr_CA +@@ -43,6 +43,7 @@ + category "fr_CA:2000";LC_NAME + category "fr_CA:2000";LC_ADDRESS + category "fr_CA:2000";LC_TELEPHONE ++category "fr_CA:2000";LC_MEASUREMENT + + END LC_IDENTIFICATION + +@@ -118,9 +119,10 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++" + END LC_TIME + + LC_PAPER +@@ -136,8 +138,7 @@ + END LC_MEASUREMENT + + LC_NAME +-name_fmt "/ +-" ++copy "fr_FR" + END LC_NAME + + LC_ADDRESS +@@ -149,6 +150,10 @@ + country_ab2 "" + country_ab3 "" + country_num 124 ++country_name "" ++country_car "" ++country_post "" ++country_isbn 2 + lang_name "" + lang_ab "" + lang_term "" +--- a/localedata/locales/fr_CH ++++ b/localedata/locales/fr_CH +@@ -43,6 +43,7 @@ + category "fr_CH:2000";LC_NAME + category "fr_CH:2000";LC_ADDRESS + category "fr_CH:2000";LC_TELEPHONE ++category "fr_CH:2000";LC_MEASUREMENT + + END LC_IDENTIFICATION + +@@ -64,9 +65,7 @@ + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "de_CH" + END LC_NUMERIC + + LC_TIME +@@ -104,9 +103,10 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++" + END LC_TIME + + LC_PAPER +@@ -128,8 +128,7 @@ + END LC_MEASUREMENT + + LC_NAME +-name_fmt "/ +-" ++copy "fr_FR" + END LC_NAME + + LC_ADDRESS +@@ -141,4 +140,12 @@ + country_ab2 "" + country_ab3 "" + country_num 756 ++country_name "" ++country_car "" ++country_post "" ++country_isbn 2 ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS +--- a/localedata/locales/fr_FR ++++ b/localedata/locales/fr_FR +@@ -44,6 +44,7 @@ + category "fr_FR:2000";LC_NAME + category "fr_FR:2000";LC_ADDRESS + category "fr_FR:2000";LC_TELEPHONE ++category "fr_FR:2000";LC_MEASUREMENT + + END LC_IDENTIFICATION + +@@ -137,9 +138,10 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++" + + week 7;19971130;4 + first_weekday 2 +@@ -166,6 +168,11 @@ + LC_NAME + name_fmt "/ + " ++name_gen "" ++name_mr "" ++name_mrs "" ++name_miss "" ++name_ms "" + END LC_NAME + + LC_ADDRESS +@@ -177,4 +184,12 @@ + country_ab2 "" + country_ab3 "" + country_num 250 ++country_name "" ++country_car "" ++country_post "" ++country_isbn 2 ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS +--- a/localedata/locales/fr_LU ++++ b/localedata/locales/fr_LU +@@ -42,6 +42,7 @@ + category "fr_LU:2000";LC_NAME + category "fr_LU:2000";LC_ADDRESS + category "fr_LU:2000";LC_TELEPHONE ++category "fr_LU:2000";LC_MEASUREMENT + + END LC_IDENTIFICATION + +@@ -78,8 +79,8 @@ + + LC_NUMERIC + decimal_point "" +-thousands_sep "" +-grouping 0;0 ++thousands_sep "" ++grouping 3;3 + END LC_NUMERIC + + LC_TIME +@@ -117,9 +118,10 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++" + END LC_TIME + + LC_PAPER +@@ -141,8 +143,7 @@ + END LC_MEASUREMENT + + LC_NAME +-name_fmt "/ +-" ++copy "fr_FR" + END LC_NAME + + LC_ADDRESS +@@ -154,4 +155,12 @@ + country_ab2 "" + country_ab3 "" + country_num 442 ++country_name "" ++country_car "" ++country_post "" ++country_isbn 2 ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS --- eglibc-2.12.1.orig/debian/patches/localedata/locales_CH.diff +++ eglibc-2.12.1/debian/patches/localedata/locales_CH.diff @@ -0,0 +1,24 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: LC_NUMERIC: copy de_CH into it_CH +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-10-02 + +--- + localedata/locales/it_CH | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +--- a/localedata/locales/it_CH ++++ b/localedata/locales/it_CH +@@ -57,9 +57,7 @@ + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 3;3 ++copy "de_CH" + END LC_NUMERIC + + LC_TIME --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-procfs_h.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-procfs_h.diff @@ -0,0 +1,37 @@ +2008-05-11 Aurelien Jarno + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * The OSF/1 version of makes gregset_t 46 entries long. ++ * I have no idea why that is so. For now, we just leave it at 33 ++ * (32 general regs + processor status word). ++ */ ++#define ELF_NGREG 33 ++#define ELF_NFPREG 32 ++ ++typedef unsigned long elf_greg_t; ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef double elf_fpreg_t; ++typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ --- eglibc-2.12.1.orig/debian/patches/alpha/cvs-timer_settime.diff +++ eglibc-2.12.1/debian/patches/alpha/cvs-timer_settime.diff @@ -0,0 +1,14 @@ +2009-12-02 Mike Frysinger + + * sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c: Fix typo in + include timer_gettime.c -> timer_settime.c. + +--- + ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c +@@ -1 +1 @@ +-#include ++#include --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-fdatasync.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-fdatasync.diff @@ -0,0 +1,123 @@ +2009-07-25 Aurelien Jarno + + * sysdeps/unix/sysv/linux/kernel-features.h: define + __ASSUME_FDATASYNC. + * sysdeps/unix/sysv/linux/fdatasync.c: New file. + * sysdeps/unix/sysv/linux/Makefile: compile fdatasync.c with + -fexceptions. + * sysdeps/unix/sysv/linux/syscalls.list: Remove fdatasync. + +--- + sysdeps/unix/sysv/linux/Makefile | 1 + sysdeps/unix/sysv/linux/fdatasync.c | 69 ++++++++++++++++++++++++++++++ + sysdeps/unix/sysv/linux/kernel-features.h | 6 ++ + sysdeps/unix/sysv/linux/syscalls.list | 1 + 4 files changed, 76 insertions(+), 1 deletion(-) + +--- a/sysdeps/unix/sysv/linux/kernel-features.h ++++ b/sysdeps/unix/sysv/linux/kernel-features.h +@@ -474,6 +474,12 @@ + # define __ASSUME_FUTEX_LOCK_PI 1 + #endif + ++/* Support for fsyncdata syscall was added in 2.6.22 on alpha, but it ++ was already present in 2.0 kernels on other architectures. */ ++#if (!defined __alpha || __LINUX_KERNEL_VERSION >= 0x020616) ++# define __ASSUME_FDATASYNC 1 ++#endif ++ + /* Support for utimensat syscall was added in 2.6.22, on alpha and s390 + only after 2.6.22-rc1. */ + #if __LINUX_KERNEL_VERSION >= 0x020616 \ +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/fdatasync.c +@@ -0,0 +1,69 @@ ++/* fdatasync -- synchronize at least the data part of a file with ++ the underlying media. Linux version. ++ ++ Copyright (C) 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++ ++#if defined __NR_fdatasync && !defined __ASSUME_FDATASYNC ++static int __have_no_fdatasync; ++#endif ++ ++static int ++do_fdatasync (int fd) ++{ ++#ifdef __ASSUME_FDATASYNC ++ return INLINE_SYSCALL (fdatasync, 1, fd); ++#elif defined __NR_fdatasync ++ if (!__builtin_expect (__have_no_fdatasync, 0)) ++ { ++ int result = INLINE_SYSCALL (fdatasync, 1, fd); ++ if (__builtin_expect (result, 0) != -1 || errno != ENOSYS) ++ return result; ++ ++ __have_no_fdatasync = 1; ++ } ++#endif ++ return INLINE_SYSCALL (fsync, 1, fd); ++} ++ ++int ++__fdatasync (int fd) ++{ ++ if (SINGLE_THREAD_P) ++ return do_fdatasync (fd); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ++ int result = do_fdatasync (fd); ++ ++ LIBC_CANCEL_RESET (oldtype); ++ ++ return result; ++} ++ ++weak_alias (__fdatasync, fdatasync) ++ +--- a/sysdeps/unix/sysv/linux/syscalls.list ++++ b/sysdeps/unix/sysv/linux/syscalls.list +@@ -11,7 +11,6 @@ + epoll_create1 EXTRA epoll_create1 i:i epoll_create1 + epoll_ctl EXTRA epoll_ctl i:iiip epoll_ctl + epoll_wait EXTRA epoll_wait Ci:ipii epoll_wait +-fdatasync - fdatasync Ci:i fdatasync + flock - flock i:ii __flock flock + fork - fork i: __libc_fork __fork fork + get_kernel_syms EXTRA get_kernel_syms i:p get_kernel_syms +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -21,6 +21,7 @@ + eventfd eventfd_read eventfd_write + + ++CFLAGS-fdatasync.c = -fexceptions + CFLAGS-gethostid.c = -fexceptions + + sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \ --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-lowlevellock.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-lowlevellock.diff @@ -0,0 +1,25 @@ +2009-05-19 Aurelien Jarno + + * sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h: Define + FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_CLOCK_REALTIME and + FUTEX_BITSET_MATCH_ANY. + +--- + ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h ++++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h +@@ -37,7 +37,12 @@ + #define FUTEX_LOCK_PI 6 + #define FUTEX_UNLOCK_PI 7 + #define FUTEX_TRYLOCK_PI 8 ++#define FUTEX_WAIT_BITSET 9 ++#define FUTEX_WAKE_BITSET 10 + #define FUTEX_PRIVATE_FLAG 128 ++#define FUTEX_CLOCK_REALTIME 256 ++ ++#define FUTEX_BITSET_MATCH_ANY 0xffffffff + + /* Values for 'private' parameter of locking macros. Yes, the + definition seems to be backwards. But it is not. The bit will be --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-rtld-fPIC.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-rtld-fPIC.diff @@ -0,0 +1,20 @@ +2009-05-26 Aurelien Jarno + + * sysdeps/alpha/Makefile (CFLAGS-rtld.c): add $(PIC-ccflag). + +--- + ports/sysdeps/alpha/Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/ports/sysdeps/alpha/Makefile ++++ b/ports/sysdeps/alpha/Makefile +@@ -35,7 +35,8 @@ + + ifeq ($(subdir),elf) + # The ld.so startup code cannot use literals until it self-relocates. +-CFLAGS-rtld.c = -mbuild-constants ++# It uses more than 64k for the small data area. ++CFLAGS-rtld.c = -mbuild-constants $(PIC-ccflag) + endif + + # Build everything with full IEEE math support, and with dynamic rounding; --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-creat64.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-creat64.diff @@ -0,0 +1,16 @@ +alpha does not have a __NR_creat + +http://sourceware.org/bugzilla/show_bug.cgi?id=6650 + +--- + sysdeps/unix/sysv/linux/wordsize-64/creat64.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/sysdeps/unix/sysv/linux/wordsize-64/creat64.c ++++ b/sysdeps/unix/sysv/linux/wordsize-64/creat64.c +@@ -1 +1,5 @@ + /* Defined as alias for the syscall. */ ++#include ++#ifndef __NR_creat ++#include "../../../../../io/creat64.c" ++#endif --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-syscall.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-syscall.diff @@ -0,0 +1,32 @@ +2009-05-31 Mike Hommey + + * sysdeps/unix/sysv/linux/alpha/syscall.S: add support for 6th + argument. + +--- a/ports/sysdeps/unix/sysv/linux/alpha/syscall.S ++++ b/ports/sysdeps/unix/sysv/linux/alpha/syscall.S +@@ -31,13 +31,13 @@ + * + * Usage: + * +- * long syscall(syscall_number, arg1, arg2, arg3, arg4, arg5) ++ * long syscall(syscall_number, arg1, arg2, arg3, arg4, arg5, arg6) + * + * syscall_number = the index of the system call we're invoking +- * arg1-arg5 = up to 5 integer arguments to the system call ++ * arg1-arg6 = up to 6 integer arguments to the system call + * + * We need to do some arg shifting: the kernel expects the +- * syscall number in v0 and the first five args in a0-a4. ++ * syscall number in v0 and the first six args in a0-a5. + * + */ + +@@ -60,6 +60,7 @@ + mov a3, a2 + mov a4, a3 + mov a5, a4 ++ ldq a5,0(sp) /* arg6 -> a5 */ + + call_pal PAL_callsys /* Invoke system call */ + bne a3, $error --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-sock_nonblock.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-sock_nonblock.diff @@ -0,0 +1,420 @@ +2010-02-13 Aurelien Jarno + + * sysdeps/unix/sysv/linux/alpha/bits/socket.h: New file based on + the generic version, with SOCK_CLOEXEC and SOCK_NONBLOCK + matching the kernel value. + +--- + ports/sysdeps/unix/sysv/linux/alpha/bits/socket.h | 407 ++++++++++++++++++++++ + 1 file changed, 407 insertions(+) + +--- /dev/null ++++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/socket.h +@@ -0,0 +1,407 @@ ++/* System-specific socket constants and types. Linux version. ++ Copyright (C) 1991, 1992, 1994-2001, 2004, 2006, 2007, 2008, 2009 ++ Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef __BITS_SOCKET_H ++#define __BITS_SOCKET_H ++ ++#ifndef _SYS_SOCKET_H ++# error "Never include directly; use instead." ++#endif ++ ++#define __need_size_t ++#include ++ ++#include ++ ++/* Type for length arguments in socket calls. */ ++#ifndef __socklen_t_defined ++typedef __socklen_t socklen_t; ++# define __socklen_t_defined ++#endif ++ ++/* Types of sockets. */ ++enum __socket_type ++{ ++ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based ++ byte streams. */ ++#define SOCK_STREAM SOCK_STREAM ++ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams ++ of fixed maximum length. */ ++#define SOCK_DGRAM SOCK_DGRAM ++ SOCK_RAW = 3, /* Raw protocol interface. */ ++#define SOCK_RAW SOCK_RAW ++ SOCK_RDM = 4, /* Reliably-delivered messages. */ ++#define SOCK_RDM SOCK_RDM ++ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based, ++ datagrams of fixed maximum length. */ ++#define SOCK_SEQPACKET SOCK_SEQPACKET ++ SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */ ++#define SOCK_DCCP SOCK_DCCP ++ SOCK_PACKET = 10, /* Linux specific way of getting packets ++ at the dev level. For writing rarp and ++ other similar things on the user level. */ ++#define SOCK_PACKET SOCK_PACKET ++ ++ /* Flags to be ORed into the type parameter of socket and socketpair and ++ used for the flags parameter of paccept. */ ++ ++ SOCK_CLOEXEC = 010000000, /* Atomically set close-on-exec flag for the ++ new descriptor(s). */ ++#define SOCK_CLOEXEC SOCK_CLOEXEC ++#undef SOCK_NONBLOCK ++ SOCK_NONBLOCK = 0x40000000 /* Atomically mark descriptor(s) as ++ non-blocking. */ ++#define SOCK_NONBLOCK SOCK_NONBLOCK ++}; ++ ++/* Protocol families. */ ++#define PF_UNSPEC 0 /* Unspecified. */ ++#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */ ++#define PF_UNIX PF_LOCAL /* POSIX name for PF_LOCAL. */ ++#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */ ++#define PF_INET 2 /* IP protocol family. */ ++#define PF_AX25 3 /* Amateur Radio AX.25. */ ++#define PF_IPX 4 /* Novell Internet Protocol. */ ++#define PF_APPLETALK 5 /* Appletalk DDP. */ ++#define PF_NETROM 6 /* Amateur radio NetROM. */ ++#define PF_BRIDGE 7 /* Multiprotocol bridge. */ ++#define PF_ATMPVC 8 /* ATM PVCs. */ ++#define PF_X25 9 /* Reserved for X.25 project. */ ++#define PF_INET6 10 /* IP version 6. */ ++#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */ ++#define PF_DECnet 12 /* Reserved for DECnet project. */ ++#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */ ++#define PF_SECURITY 14 /* Security callback pseudo AF. */ ++#define PF_KEY 15 /* PF_KEY key management API. */ ++#define PF_NETLINK 16 ++#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */ ++#define PF_PACKET 17 /* Packet family. */ ++#define PF_ASH 18 /* Ash. */ ++#define PF_ECONET 19 /* Acorn Econet. */ ++#define PF_ATMSVC 20 /* ATM SVCs. */ ++#define PF_RDS 21 /* RDS sockets. */ ++#define PF_SNA 22 /* Linux SNA Project */ ++#define PF_IRDA 23 /* IRDA sockets. */ ++#define PF_PPPOX 24 /* PPPoX sockets. */ ++#define PF_WANPIPE 25 /* Wanpipe API sockets. */ ++#define PF_LLC 26 /* Linux LLC. */ ++#define PF_CAN 29 /* Controller Area Network. */ ++#define PF_TIPC 30 /* TIPC sockets. */ ++#define PF_BLUETOOTH 31 /* Bluetooth sockets. */ ++#define PF_IUCV 32 /* IUCV sockets. */ ++#define PF_RXRPC 33 /* RxRPC sockets. */ ++#define PF_ISDN 34 /* mISDN sockets. */ ++#define PF_PHONET 35 /* Phonet sockets. */ ++#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */ ++#define PF_MAX 37 /* For now.. */ ++ ++/* Address families. */ ++#define AF_UNSPEC PF_UNSPEC ++#define AF_LOCAL PF_LOCAL ++#define AF_UNIX PF_UNIX ++#define AF_FILE PF_FILE ++#define AF_INET PF_INET ++#define AF_AX25 PF_AX25 ++#define AF_IPX PF_IPX ++#define AF_APPLETALK PF_APPLETALK ++#define AF_NETROM PF_NETROM ++#define AF_BRIDGE PF_BRIDGE ++#define AF_ATMPVC PF_ATMPVC ++#define AF_X25 PF_X25 ++#define AF_INET6 PF_INET6 ++#define AF_ROSE PF_ROSE ++#define AF_DECnet PF_DECnet ++#define AF_NETBEUI PF_NETBEUI ++#define AF_SECURITY PF_SECURITY ++#define AF_KEY PF_KEY ++#define AF_NETLINK PF_NETLINK ++#define AF_ROUTE PF_ROUTE ++#define AF_PACKET PF_PACKET ++#define AF_ASH PF_ASH ++#define AF_ECONET PF_ECONET ++#define AF_ATMSVC PF_ATMSVC ++#define AF_RDS PF_RDS ++#define AF_SNA PF_SNA ++#define AF_IRDA PF_IRDA ++#define AF_PPPOX PF_PPPOX ++#define AF_WANPIPE PF_WANPIPE ++#define AF_LLC PF_LLC ++#define AF_CAN PF_CAN ++#define AF_TIPC PF_TIPC ++#define AF_BLUETOOTH PF_BLUETOOTH ++#define AF_IUCV PF_IUCV ++#define AF_RXRPC PF_RXRPC ++#define AF_ISDN PF_ISDN ++#define AF_PHONET PF_PHONET ++#define AF_IEEE802154 PF_IEEE802154 ++#define AF_MAX PF_MAX ++ ++/* Socket level values. Others are defined in the appropriate headers. ++ ++ XXX These definitions also should go into the appropriate headers as ++ far as they are available. */ ++#define SOL_RAW 255 ++#define SOL_DECNET 261 ++#define SOL_X25 262 ++#define SOL_PACKET 263 ++#define SOL_ATM 264 /* ATM layer (cell level). */ ++#define SOL_AAL 265 /* ATM Adaption Layer (packet level). */ ++#define SOL_IRDA 266 ++ ++/* Maximum queue length specifiable by listen. */ ++#define SOMAXCONN 128 ++ ++/* Get the definition of the macro to define the common sockaddr members. */ ++#include ++ ++/* Structure describing a generic socket address. */ ++struct sockaddr ++ { ++ __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */ ++ char sa_data[14]; /* Address data. */ ++ }; ++ ++ ++/* Structure large enough to hold any socket address (with the historical ++ exception of AF_UNIX). We reserve 128 bytes. */ ++#define __ss_aligntype unsigned long int ++#define _SS_SIZE 128 ++#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype))) ++ ++struct sockaddr_storage ++ { ++ __SOCKADDR_COMMON (ss_); /* Address family, etc. */ ++ __ss_aligntype __ss_align; /* Force desired alignment. */ ++ char __ss_padding[_SS_PADSIZE]; ++ }; ++ ++ ++/* Bits in the FLAGS argument to `send', `recv', et al. */ ++enum ++ { ++ MSG_OOB = 0x01, /* Process out-of-band data. */ ++#define MSG_OOB MSG_OOB ++ MSG_PEEK = 0x02, /* Peek at incoming messages. */ ++#define MSG_PEEK MSG_PEEK ++ MSG_DONTROUTE = 0x04, /* Don't use local routing. */ ++#define MSG_DONTROUTE MSG_DONTROUTE ++#ifdef __USE_GNU ++ /* DECnet uses a different name. */ ++ MSG_TRYHARD = MSG_DONTROUTE, ++# define MSG_TRYHARD MSG_DONTROUTE ++#endif ++ MSG_CTRUNC = 0x08, /* Control data lost before delivery. */ ++#define MSG_CTRUNC MSG_CTRUNC ++ MSG_PROXY = 0x10, /* Supply or ask second address. */ ++#define MSG_PROXY MSG_PROXY ++ MSG_TRUNC = 0x20, ++#define MSG_TRUNC MSG_TRUNC ++ MSG_DONTWAIT = 0x40, /* Nonblocking IO. */ ++#define MSG_DONTWAIT MSG_DONTWAIT ++ MSG_EOR = 0x80, /* End of record. */ ++#define MSG_EOR MSG_EOR ++ MSG_WAITALL = 0x100, /* Wait for a full request. */ ++#define MSG_WAITALL MSG_WAITALL ++ MSG_FIN = 0x200, ++#define MSG_FIN MSG_FIN ++ MSG_SYN = 0x400, ++#define MSG_SYN MSG_SYN ++ MSG_CONFIRM = 0x800, /* Confirm path validity. */ ++#define MSG_CONFIRM MSG_CONFIRM ++ MSG_RST = 0x1000, ++#define MSG_RST MSG_RST ++ MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */ ++#define MSG_ERRQUEUE MSG_ERRQUEUE ++ MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */ ++#define MSG_NOSIGNAL MSG_NOSIGNAL ++ MSG_MORE = 0x8000, /* Sender will send more. */ ++#define MSG_MORE MSG_MORE ++ ++ MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file ++ descriptor received through ++ SCM_RIGHTS. */ ++#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC ++ }; ++ ++ ++/* Structure describing messages sent by ++ `sendmsg' and received by `recvmsg'. */ ++struct msghdr ++ { ++ void *msg_name; /* Address to send to/receive from. */ ++ socklen_t msg_namelen; /* Length of address data. */ ++ ++ struct iovec *msg_iov; /* Vector of data to send/receive into. */ ++ size_t msg_iovlen; /* Number of elements in the vector. */ ++ ++ void *msg_control; /* Ancillary data (eg BSD filedesc passing). */ ++ size_t msg_controllen; /* Ancillary data buffer length. ++ !! The type should be socklen_t but the ++ definition of the kernel is incompatible ++ with this. */ ++ ++ int msg_flags; /* Flags on received message. */ ++ }; ++ ++/* Structure used for storage of ancillary data object information. */ ++struct cmsghdr ++ { ++ size_t cmsg_len; /* Length of data in cmsg_data plus length ++ of cmsghdr structure. ++ !! The type should be socklen_t but the ++ definition of the kernel is incompatible ++ with this. */ ++ int cmsg_level; /* Originating protocol. */ ++ int cmsg_type; /* Protocol specific type. */ ++#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L ++ __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */ ++#endif ++ }; ++ ++/* Ancillary data object manipulation macros. */ ++#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L ++# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data) ++#else ++# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1)) ++#endif ++#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg) ++#define CMSG_FIRSTHDR(mhdr) \ ++ ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ ++ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0) ++#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \ ++ & (size_t) ~(sizeof (size_t) - 1)) ++#define CMSG_SPACE(len) (CMSG_ALIGN (len) \ ++ + CMSG_ALIGN (sizeof (struct cmsghdr))) ++#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len)) ++ ++extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, ++ struct cmsghdr *__cmsg) __THROW; ++#ifdef __USE_EXTERN_INLINES ++# ifndef _EXTERN_INLINE ++# define _EXTERN_INLINE __extern_inline ++# endif ++_EXTERN_INLINE struct cmsghdr * ++__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) ++{ ++ if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) ++ /* The kernel header does this so there may be a reason. */ ++ return 0; ++ ++ __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg ++ + CMSG_ALIGN (__cmsg->cmsg_len)); ++ if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control ++ + __mhdr->msg_controllen) ++ || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len) ++ > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) ++ /* No more entries. */ ++ return 0; ++ return __cmsg; ++} ++#endif /* Use `extern inline'. */ ++ ++/* Socket level message types. This must match the definitions in ++ . */ ++enum ++ { ++ SCM_RIGHTS = 0x01 /* Transfer file descriptors. */ ++#define SCM_RIGHTS SCM_RIGHTS ++#ifdef __USE_GNU ++ , SCM_CREDENTIALS = 0x02 /* Credentials passing. */ ++# define SCM_CREDENTIALS SCM_CREDENTIALS ++#endif ++ }; ++ ++#ifdef __USE_GNU ++/* User visible structure for SCM_CREDENTIALS message */ ++struct ucred ++{ ++ pid_t pid; /* PID of sending process. */ ++ uid_t uid; /* UID of sending process. */ ++ gid_t gid; /* GID of sending process. */ ++}; ++#endif ++ ++/* Ugly workaround for unclean kernel headers. */ ++#if !defined __USE_MISC && !defined __USE_GNU ++# ifndef FIOGETOWN ++# define __SYS_SOCKET_H_undef_FIOGETOWN ++# endif ++# ifndef FIOSETOWN ++# define __SYS_SOCKET_H_undef_FIOSETOWN ++# endif ++# ifndef SIOCATMARK ++# define __SYS_SOCKET_H_undef_SIOCATMARK ++# endif ++# ifndef SIOCGPGRP ++# define __SYS_SOCKET_H_undef_SIOCGPGRP ++# endif ++# ifndef SIOCGSTAMP ++# define __SYS_SOCKET_H_undef_SIOCGSTAMP ++# endif ++# ifndef SIOCGSTAMPNS ++# define __SYS_SOCKET_H_undef_SIOCGSTAMPNS ++# endif ++# ifndef SIOCSPGRP ++# define __SYS_SOCKET_H_undef_SIOCSPGRP ++# endif ++#endif ++ ++/* Get socket manipulation related informations from kernel headers. */ ++#include ++ ++#if !defined __USE_MISC && !defined __USE_GNU ++# ifdef __SYS_SOCKET_H_undef_FIOGETOWN ++# undef __SYS_SOCKET_H_undef_FIOGETOWN ++# undef FIOGETOWN ++# endif ++# ifdef __SYS_SOCKET_H_undef_FIOSETOWN ++# undef __SYS_SOCKET_H_undef_FIOSETOWN ++# undef FIOSETOWN ++# endif ++# ifdef __SYS_SOCKET_H_undef_SIOCATMARK ++# undef __SYS_SOCKET_H_undef_SIOCATMARK ++# undef SIOCATMARK ++# endif ++# ifdef __SYS_SOCKET_H_undef_SIOCGPGRP ++# undef __SYS_SOCKET_H_undef_SIOCGPGRP ++# undef SIOCGPGRP ++# endif ++# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMP ++# undef __SYS_SOCKET_H_undef_SIOCGSTAMP ++# undef SIOCGSTAMP ++# endif ++# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMPNS ++# undef __SYS_SOCKET_H_undef_SIOCGSTAMPNS ++# undef SIOCGSTAMPNS ++# endif ++# ifdef __SYS_SOCKET_H_undef_SIOCSPGRP ++# undef __SYS_SOCKET_H_undef_SIOCSPGRP ++# undef SIOCSPGRP ++# endif ++#endif ++ ++/* Structure used to manipulate the SO_LINGER option. */ ++struct linger ++ { ++ int l_onoff; /* Nonzero to linger on close. */ ++ int l_linger; /* Time to linger. */ ++ }; ++ ++#endif /* bits/socket.h */ --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-dl-procinfo.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-dl-procinfo.diff @@ -0,0 +1,165 @@ +--- + ports/sysdeps/alpha/dl-machine.h | 12 ++++++ + ports/sysdeps/alpha/dl-procinfo.c | 64 +++++++++++++++++++++++++++++++++++ + ports/sysdeps/alpha/dl-procinfo.h | 68 ++++++++++++++++++++++++++++++++++++++ + 3 files changed, 144 insertions(+) + +--- /dev/null ++++ b/ports/sysdeps/alpha/dl-procinfo.h +@@ -0,0 +1,68 @@ ++/* Alpha version of processor capability information handling macros. ++ Copyright (C) 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2007. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _DL_PROCINFO_H ++#define _DL_PROCINFO_H 1 ++ ++#include ++ ++ ++/* Mask to filter out platforms. */ ++#define _DL_HWCAP_PLATFORM (-1ULL) ++ ++#define _DL_PLATFORMS_COUNT 5 ++ ++static inline const char * ++__attribute__ ((unused)) ++_dl_platform_string (int idx) ++{ ++ return GLRO(dl_alpha_platforms)[idx]; ++}; ++ ++static inline int ++__attribute__ ((unused, always_inline)) ++_dl_string_platform (const char *str) ++{ ++ int i; ++ ++ if (str != NULL) ++ for (i = 0; i < _DL_PLATFORMS_COUNT; ++i) ++ { ++ if (strcmp (str, _dl_platform_string (i)) == 0) ++ return i; ++ } ++ return -1; ++}; ++ ++/* We cannot provide a general printing function. */ ++#define _dl_procinfo(word) -1 ++ ++/* There are no hardware capabilities defined. */ ++#define _dl_hwcap_string(idx) "" ++ ++/* By default there is no important hardware capability. */ ++#define HWCAP_IMPORTANT (0) ++ ++/* We don't have any hardware capabilities. */ ++#define _DL_HWCAP_COUNT 0 ++ ++#define _dl_string_hwcap(str) (-1) ++ ++#endif /* dl-procinfo.h */ +--- /dev/null ++++ b/ports/sysdeps/alpha/dl-procinfo.c +@@ -0,0 +1,64 @@ ++/* Data for Alpha version of processor capability information. ++ Copyright (C) 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2007. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* This information must be kept in sync with the _DL_PLATFORM_COUNT ++ definitions in procinfo.h. ++ ++ If anything should be added here check whether the size of each string ++ is still ok with the given array size. ++ ++ All the #ifdefs in the definitions are quite irritating but ++ necessary if we want to avoid duplicating the information. There ++ are three different modes: ++ ++ - PROCINFO_DECL is defined. This means we are only interested in ++ declarations. ++ ++ - PROCINFO_DECL is not defined: ++ ++ + if SHARED is defined the file is included in an array ++ initializer. The .element = { ... } syntax is needed. ++ ++ + if SHARED is not defined a normal array initialization is ++ needed. ++ */ ++ ++#ifndef PROCINFO_CLASS ++#define PROCINFO_CLASS ++#endif ++ ++#if !defined PROCINFO_DECL && defined SHARED ++ ._dl_alpha_platforms ++#else ++PROCINFO_CLASS const char _dl_alpha_platforms[5][5] ++#endif ++#ifndef PROCINFO_DECL ++= { ++ "ev4", "ev5", "ev56", "ev6", "ev67" ++ } ++#endif ++#if !defined SHARED || defined PROCINFO_DECL ++; ++#else ++, ++#endif ++ ++#undef PROCINFO_DECL ++#undef PROCINFO_CLASS +--- a/ports/sysdeps/alpha/dl-machine.h ++++ b/ports/sysdeps/alpha/dl-machine.h +@@ -249,6 +249,18 @@ + /* The alpha never uses Elf64_Rel relocations. */ + #define ELF_MACHINE_NO_REL 1 + ++/* We define an initialization functions. This is called very early in ++ * _dl_sysdep_start. */ ++#define DL_PLATFORM_INIT dl_platform_init () ++ ++static inline void __attribute__ ((unused)) ++dl_platform_init (void) ++{ ++ if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0') ++ /* Avoid an empty string which would disturb us. */ ++ GLRO(dl_platform) = NULL; ++} ++ + /* Fix up the instructions of a PLT entry to invoke the function + rather than the dynamic linker. */ + static inline Elf64_Addr --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-fpu-round.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-fpu-round.diff @@ -0,0 +1,274 @@ +2007-11-16 Aurelien Jarno + + * sysdeps/alpha/fpu/s_ceil.c: Restore old version. + * sysdeps/alpha/fpu/s_ceilf.c: Likewise. + * sysdeps/alpha/fpu/s_floor.c: Likewise. + * sysdeps/alpha/fpu/s_floorf.c: Likewise. + * sysdeps/alpha/fpu/s_rint.c: Likewise. + * sysdeps/alpha/fpu/s_rintf.c: Likewise. + + +--- + ports/sysdeps/alpha/fpu/s_ceil.c | 25 +++++++++++++++---------- + ports/sysdeps/alpha/fpu/s_ceilf.c | 30 ++++++++++++++++++++---------- + ports/sysdeps/alpha/fpu/s_floor.c | 30 ++++++++++++++++++------------ + ports/sysdeps/alpha/fpu/s_floorf.c | 35 +++++++++++++++++++++++------------ + ports/sysdeps/alpha/fpu/s_rint.c | 25 +++++++++++++++++-------- + ports/sysdeps/alpha/fpu/s_rintf.c | 29 ++++++++++++++++++++++------- + 6 files changed, 115 insertions(+), 59 deletions(-) + +--- a/ports/sysdeps/alpha/fpu/s_ceil.c ++++ b/ports/sysdeps/alpha/fpu/s_ceil.c +@@ -27,20 +27,25 @@ + double + __ceil (double x) + { +- double two52 = copysign (0x1.0p52, x); +- double r, tmp; +- +- __asm ( ++ if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */ ++ { ++ double tmp1, new_x; ++ ++ new_x = -x; ++ __asm ( + #ifdef _IEEE_FP_INEXACT +- "addt/suim %2, %3, %1\n\tsubt/suim %1, %3, %0" ++ "cvttq/svim %2,%1\n\t" + #else +- "addt/sum %2, %3, %1\n\tsubt/sum %1, %3, %0" ++ "cvttq/svm %2,%1\n\t" + #endif +- : "=&f"(r), "=&f"(tmp) +- : "f"(-x), "f"(-two52)); ++ "cvtqt/m %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1) ++ : "f"(new_x)); + +- /* Fix up the negation we did above, as well as handling -0 properly. */ +- return copysign (r, x); ++ /* Fix up the negation we did above, as well as handling -0 properly. */ ++ x = copysign(new_x, x); ++ } ++ return x; + } + + weak_alias (__ceil, ceil) +--- a/ports/sysdeps/alpha/fpu/s_ceilf.c ++++ b/ports/sysdeps/alpha/fpu/s_ceilf.c +@@ -26,20 +26,30 @@ + float + __ceilf (float x) + { +- float two23 = copysignf (0x1.0p23, x); +- float r, tmp; +- +- __asm ( ++ if (isless (fabsf (x), 16777216.0f)) /* 1 << FLT_MANT_DIG */ ++ { ++ /* Note that Alpha S_Floating is stored in registers in a ++ restricted T_Floating format, so we don't even need to ++ convert back to S_Floating in the end. The initial ++ conversion to T_Floating is needed to handle denormals. */ ++ ++ float tmp1, tmp2, new_x; ++ ++ new_x = -x; ++ __asm ("cvtst/s %3,%2\n\t" + #ifdef _IEEE_FP_INEXACT +- "adds/suim %2, %3, %1\n\tsubs/suim %1, %3, %0" ++ "cvttq/svim %2,%1\n\t" + #else +- "adds/sum %2, %3, %1\n\tsubs/sum %1, %3, %0" ++ "cvttq/svm %2,%1\n\t" + #endif +- : "=&f"(r), "=&f"(tmp) +- : "f"(-x), "f"(-two23)); ++ "cvtqt/m %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1), "=&f"(tmp2) ++ : "f"(new_x)); + +- /* Fix up the negation we did above, as well as handling -0 properly. */ +- return copysignf (r, x); ++ /* Fix up the negation we did above, as well as handling -0 properly. */ ++ x = copysignf(new_x, x); ++ } ++ return x; + } + + weak_alias (__ceilf, ceilf) +--- a/ports/sysdeps/alpha/fpu/s_floor.c ++++ b/ports/sysdeps/alpha/fpu/s_floor.c +@@ -21,26 +21,32 @@ + #include + + +-/* Use the -inf rounding mode conversion instructions to implement floor. */ ++/* Use the -inf rounding mode conversion instructions to implement ++ floor. We note when the exponent is large enough that the value ++ must be integral, as this avoids unpleasant integer overflows. */ + + double + __floor (double x) + { +- double two52 = copysign (0x1.0p52, x); +- double r, tmp; +- +- __asm ( ++ if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */ ++ { ++ double tmp1, new_x; ++ ++ __asm ( + #ifdef _IEEE_FP_INEXACT +- "addt/suim %2, %3, %1\n\tsubt/suim %1, %3, %0" ++ "cvttq/svim %2,%1\n\t" + #else +- "addt/sum %2, %3, %1\n\tsubt/sum %1, %3, %0" ++ "cvttq/svm %2,%1\n\t" + #endif +- : "=&f"(r), "=&f"(tmp) +- : "f"(x), "f"(two52)); ++ "cvtqt/m %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1) ++ : "f"(x)); + +- /* floor(-0) == -0, and in general we'll always have the same +- sign as our input. */ +- return copysign (r, x); ++ /* floor(-0) == -0, and in general we'll always have the same ++ sign as our input. */ ++ x = copysign(new_x, x); ++ } ++ return x; + } + + weak_alias (__floor, floor) +--- a/ports/sysdeps/alpha/fpu/s_floorf.c ++++ b/ports/sysdeps/alpha/fpu/s_floorf.c +@@ -20,26 +20,37 @@ + #include + + +-/* Use the -inf rounding mode conversion instructions to implement floor. */ ++/* Use the -inf rounding mode conversion instructions to implement ++ floor. We note when the exponent is large enough that the value ++ must be integral, as this avoids unpleasant integer overflows. */ + + float + __floorf (float x) + { +- float two23 = copysignf (0x1.0p23, x); +- float r, tmp; +- +- __asm ( ++ if (isless (fabsf (x), 16777216.0f)) /* 1 << FLT_MANT_DIG */ ++ { ++ /* Note that Alpha S_Floating is stored in registers in a ++ restricted T_Floating format, so we don't even need to ++ convert back to S_Floating in the end. The initial ++ conversion to T_Floating is needed to handle denormals. */ ++ ++ float tmp1, tmp2, new_x; ++ ++ __asm ("cvtst/s %3,%2\n\t" + #ifdef _IEEE_FP_INEXACT +- "adds/suim %2, %3, %1\n\tsubs/suim %1, %3, %0" ++ "cvttq/svim %2,%1\n\t" + #else +- "adds/sum %2, %3, %1\n\tsubs/sum %1, %3, %0" ++ "cvttq/svm %2,%1\n\t" + #endif +- : "=&f"(r), "=&f"(tmp) +- : "f"(x), "f"(two23)); ++ "cvtqt/m %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1), "=&f"(tmp2) ++ : "f"(x)); + +- /* floor(-0) == -0, and in general we'll always have the same +- sign as our input. */ +- return copysignf (r, x); ++ /* floor(-0) == -0, and in general we'll always have the same ++ sign as our input. */ ++ x = copysignf(new_x, x); ++ } ++ return x; + } + + weak_alias (__floorf, floorf) +--- a/ports/sysdeps/alpha/fpu/s_rint.c ++++ b/ports/sysdeps/alpha/fpu/s_rint.c +@@ -24,15 +24,24 @@ + double + __rint (double x) + { +- double two52 = copysign (0x1.0p52, x); +- double r; +- +- r = x + two52; +- r = r - two52; ++ if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */ ++ { ++ double tmp1, new_x; ++ __asm ( ++#ifdef _IEEE_FP_INEXACT ++ "cvttq/svid %2,%1\n\t" ++#else ++ "cvttq/svd %2,%1\n\t" ++#endif ++ "cvtqt/d %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1) ++ : "f"(x)); + +- /* rint(-0.1) == -0, and in general we'll always have the same sign +- as our input. */ +- return copysign (r, x); ++ /* rint(-0.1) == -0, and in general we'll always have the same ++ sign as our input. */ ++ x = copysign(new_x, x); ++ } ++ return x; + } + + weak_alias (__rint, rint) +--- a/ports/sysdeps/alpha/fpu/s_rintf.c ++++ b/ports/sysdeps/alpha/fpu/s_rintf.c +@@ -23,15 +23,30 @@ + float + __rintf (float x) + { +- float two23 = copysignf (0x1.0p23, x); +- float r; ++ if (isless (fabsf (x), 16777216.0f)) /* 1 << FLT_MANT_DIG */ ++ { ++ /* Note that Alpha S_Floating is stored in registers in a ++ restricted T_Floating format, so we don't even need to ++ convert back to S_Floating in the end. The initial ++ conversion to T_Floating is needed to handle denormals. */ + +- r = x + two23; +- r = r - two23; ++ float tmp1, tmp2, new_x; + +- /* rint(-0.1) == -0, and in general we'll always have the same sign +- as our input. */ +- return copysign (r, x); ++ __asm ("cvtst/s %3,%2\n\t" ++#ifdef _IEEE_FP_INEXACT ++ "cvttq/svid %2,%1\n\t" ++#else ++ "cvttq/svd %2,%1\n\t" ++#endif ++ "cvtqt/d %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1), "=&f"(tmp2) ++ : "f"(x)); ++ ++ /* rint(-0.1) == -0, and in general we'll always have the same ++ sign as our input. */ ++ x = copysignf(new_x, x); ++ } ++ return x; + } + + weak_alias (__rintf, rintf) --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-PTR_MANGLE.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-PTR_MANGLE.diff @@ -0,0 +1,99 @@ +--- + ports/sysdeps/unix/alpha/sysdep.h | 38 ------------------------ + ports/sysdeps/unix/sysv/linux/alpha/sysdep.h | 42 +++++++++++++++++++++++++++ + 2 files changed, 42 insertions(+), 38 deletions(-) + +--- a/ports/sysdeps/unix/alpha/sysdep.h ++++ b/ports/sysdeps/unix/alpha/sysdep.h +@@ -397,42 +397,4 @@ + _sc_ret = _sc_0, _sc_err = _sc_19; \ + } + +-/* Pointer mangling support. Note that tls access is slow enough that +- we don't deoptimize things by placing the pointer check value there. */ +- +-#include +- +-#if defined NOT_IN_libc && defined IS_IN_rtld +-# ifdef __ASSEMBLER__ +-# define PTR_MANGLE(dst, src, tmp) \ +- ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \ +- ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \ +- xor src, tmp, dst +-# define PTR_MANGLE2(dst, src, tmp) \ +- xor src, tmp, dst +-# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) +-# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) +-# else +-extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden; +-# define PTR_MANGLE(var) \ +- (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local) +-# define PTR_DEMANGLE(var) PTR_MANGLE(var) +-# endif +-#elif defined PIC +-# ifdef __ASSEMBLER__ +-# define PTR_MANGLE(dst, src, tmp) \ +- ldq tmp, __pointer_chk_guard; \ +- xor src, tmp, dst +-# define PTR_MANGLE2(dst, src, tmp) \ +- xor src, tmp, dst +-# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) +-# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) +-# else +-extern uintptr_t __pointer_chk_guard attribute_relro; +-# define PTR_MANGLE(var) \ +- (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard) +-# define PTR_DEMANGLE(var) PTR_MANGLE(var) +-# endif +-#endif +- + #endif /* ASSEMBLER */ +--- a/ports/sysdeps/unix/sysv/linux/alpha/sysdep.h ++++ b/ports/sysdeps/unix/sysv/linux/alpha/sysdep.h +@@ -98,4 +98,46 @@ + INTERNAL_SYSCALL1(name, err_out, nr, args); \ + }) + ++/* Pointer mangling support. Note that tls access is slow enough that ++ we don't deoptimize things by placing the pointer check value there. */ ++ ++#if defined NOT_IN_libc && defined IS_IN_rtld ++# ifdef __ASSEMBLER__ ++# define PTR_MANGLE(dst, src, tmp) \ ++ ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \ ++ ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \ ++ xor src, tmp, dst ++# define PTR_MANGLE2(dst, src, tmp) \ ++ xor src, tmp, dst ++# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) ++# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) ++# else ++extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden; ++# define PTR_MANGLE(var) \ ++ (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local) ++# define PTR_DEMANGLE(var) PTR_MANGLE(var) ++# endif ++#elif defined PIC ++# ifdef __ASSEMBLER__ ++# define PTR_MANGLE(dst, src, tmp) \ ++ ldq tmp, __pointer_chk_guard; \ ++ xor src, tmp, dst ++# define PTR_MANGLE2(dst, src, tmp) \ ++ xor src, tmp, dst ++# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) ++# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) ++# else ++extern uintptr_t __pointer_chk_guard attribute_relro; ++# define PTR_MANGLE(var) \ ++ (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard) ++# define PTR_DEMANGLE(var) PTR_MANGLE(var) ++# endif ++#else ++/* Pointer mangling is not yet supported for static libc on alpha. */ ++# ifndef __ASSEMBLER__ ++# define PTR_MANGLE(var) (void) (var) ++# define PTR_DEMANGLE(var) (void) (var) ++# endif ++#endif ++ + #endif /* _LINUX_ALPHA_SYSDEP_H */ --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-includes.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-includes.diff @@ -0,0 +1,78 @@ +2009-05-15 Aurelien Jarno + + * sysdeps/unix/sysv/linux/alpha/getdents64.c: Adjust include path. + * sysdeps/unix/sysv/linux/alpha/nptl/fork.c: Likewise. + * sysdeps/unix/sysv/linux/alpha/nptl/sem_post.c: Likewise. + * sysdeps/unix/sysv/linux/alpha/nptl/timer_create.c: Likewise. + * sysdeps/unix/sysv/linux/alpha/nptl/timer_delete.c: Likewise. + * sysdeps/unix/sysv/linux/alpha/nptl/timer_getoverr.c: Likewise. + * sysdeps/unix/sysv/linux/alpha/nptl/timer_gettime.c: Likewise. + * sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c: Likewise. + * sysdeps/unix/sysv/linux/alpha/sysconf.c: Likewise. + +--- + ports/sysdeps/unix/sysv/linux/alpha/getdents64.c | 2 +- + ports/sysdeps/unix/sysv/linux/alpha/nptl/fork.c | 2 +- + ports/sysdeps/unix/sysv/linux/alpha/nptl/sem_post.c | 2 +- + ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_create.c | 2 +- + ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_delete.c | 2 +- + ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_getoverr.c | 2 +- + ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_gettime.c | 2 +- + ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c | 2 +- + ports/sysdeps/unix/sysv/linux/alpha/sysconf.c | 2 +- + 9 files changed, 9 insertions(+), 9 deletions(-) + +--- a/ports/sysdeps/unix/sysv/linux/alpha/getdents64.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/getdents64.c +@@ -1 +1 @@ +-#include "../getdents64.c" ++#include +--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/fork.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/fork.c +@@ -27,4 +27,4 @@ + CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \ + NULL, NULL, &THREAD_SELF->tid, NULL) + +-#include "../fork.c" ++#include +--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/sem_post.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/sem_post.c +@@ -2,4 +2,4 @@ + the acquire/release semantics of atomic_exchange_and_add. And even if + we don't do this, we should be using atomic_full_barrier or otherwise. */ + #define __lll_rel_instr "mb" +-#include "../sem_post.c" ++#include +--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_create.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_create.c +@@ -1 +1 @@ +-#include "../x86_64/timer_create.c" ++#include +--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_delete.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_delete.c +@@ -1 +1 @@ +-#include "../x86_64/timer_delete.c" ++#include +--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_getoverr.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_getoverr.c +@@ -1 +1 @@ +-#include "../x86_64/timer_getoverr.c" ++#include +--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_gettime.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_gettime.c +@@ -1 +1 @@ +-#include "../x86_64/timer_gettime.c" ++#include +--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c +@@ -1 +1 @@ +-#include "../x86_64/timer_settime.c" ++#include +--- a/ports/sysdeps/unix/sysv/linux/alpha/sysconf.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/sysconf.c +@@ -149,4 +149,4 @@ + /* Now the generic Linux version. */ + #undef __sysconf + #define __sysconf static linux_sysconf +-#include "../sysconf.c" ++#include --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-getsysstats.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-getsysstats.diff @@ -0,0 +1,30 @@ +2009-05-16 Aurelien Jarno + + * sysdeps/unix/sysv/linux/alpha/getsysstats.c (GET_NPROCS_PARSER): + Change parameters and use next_line. + +--- + ports/sysdeps/unix/sysv/linux/alpha/getsysstats.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/ports/sysdeps/unix/sysv/linux/alpha/getsysstats.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/getsysstats.c +@@ -20,15 +20,16 @@ + + + /* We need to define a special parser for /proc/cpuinfo. */ +-#define GET_NPROCS_PARSER(FP, BUFFER, RESULT) \ ++#define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT) \ + do \ + { \ + /* Find the line that contains the information about the number of \ + active cpus. We don't have to fear extremely long lines since \ + the kernel will not generate them. 8192 bytes are really enough. \ + If there is no "CPUs ..." line then we are on a UP system. */ \ ++ char *l; \ + (RESULT) = 1; \ +- while (fgets_unlocked (BUFFER, sizeof (BUFFER), FP) != NULL) \ ++ while ((l = next_line (FD, BUFFER, &CP, &RE, BUFFER_END)) != NULL) \ + if ((sscanf (BUFFER, "cpus active : %d", &(RESULT)) == 1) \ + || (sscanf (BUFFER, "CPUs probed %*d active %d", \ + &(RESULT)) == 1)) \ --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-dl-support.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-dl-support.diff @@ -0,0 +1,16 @@ +older verisons of glibc would build dl-sysdep as shared-only and dl-support as +static-only. alpha hooks in a cache variable via dl-auxv.h. newer versions of +glibc build dl-sysdep as both shared and static which means we now have symbol +duplication for static builds with dl-sysdep and dl-support. since dl-sysdep +is both shared/static, there is no point in hooking dl-support anymore, so we +can punt it. + +--- + ports/sysdeps/unix/sysv/linux/alpha/dl-support.c | 2 -- + 1 file changed, 2 deletions(-) + +--- a/ports/sysdeps/unix/sysv/linux/alpha/dl-support.c ++++ /dev/null +@@ -1,2 +0,0 @@ +-#include "dl-auxv.h" +-#include --- eglibc-2.12.1.orig/debian/patches/alpha/submitted-asm-memchr.diff +++ eglibc-2.12.1/debian/patches/alpha/submitted-asm-memchr.diff @@ -0,0 +1,122 @@ +2009-07-27 Aurelien Jarno + + * sysdeps/alpha/memchr.S: Use prefetch load. + * sysdeps/alpha/alphaev6/memchr.S: Likewise. + +--- + ports/sysdeps/alpha/alphaev6/memchr.S | 26 +++++++++++++------------- + ports/sysdeps/alpha/memchr.S | 22 +++++++++++----------- + 2 files changed, 24 insertions(+), 24 deletions(-) + +--- a/ports/sysdeps/alpha/alphaev6/memchr.S ++++ b/ports/sysdeps/alpha/alphaev6/memchr.S +@@ -127,7 +127,7 @@ + cmpbge $31, $1, $2 # E : + bne $2, $found_it # U : + # At least one byte left to process. +- ldq $1, 8($0) # L : ++ ldq $31, 8($0) # L : + subq $5, 1, $18 # E : U L U L + + addq $0, 8, $0 # E : +@@ -143,38 +143,38 @@ + and $4, 8, $4 # E : odd number of quads? + bne $4, $odd_quad_count # U : + # At least three quads remain to be accessed +- mov $1, $4 # E : L U L U : move prefetched value to correct reg ++ nop # E : L U L U : move prefetched value to correct reg + + .align 4 + $unrolled_loop: +- ldq $1, 8($0) # L : prefetch $1 +- xor $17, $4, $2 # E : +- cmpbge $31, $2, $2 # E : +- bne $2, $found_it # U : U L U L ++ ldq $1, 0($0) # L : load quad ++ xor $17, $1, $2 # E : ++ ldq $31, 8($0) # L : prefetch next quad ++ cmpbge $31, $2, $2 # E : U L U L + ++ bne $2, $found_it # U : + addq $0, 8, $0 # E : + nop # E : + nop # E : +- nop # E : + + $odd_quad_count: ++ ldq $1, 0($0) # L : load quad + xor $17, $1, $2 # E : +- ldq $4, 8($0) # L : prefetch $4 ++ ldq $31, 8($0) # L : prefetch $4 + cmpbge $31, $2, $2 # E : +- addq $0, 8, $6 # E : + ++ addq $0, 8, $6 # E : + bne $2, $found_it # U : + cmpult $6, $18, $6 # E : + addq $0, 8, $0 # E : +- nop # E : + + bne $6, $unrolled_loop # U : +- mov $4, $1 # E : move prefetched value into $1 + nop # E : + nop # E : +- +-$final: subq $5, $0, $18 # E : $18 <- number of bytes left to do + nop # E : ++ ++$final: ldq $1, 0($0) # L : load last quad ++ subq $5, $0, $18 # E : $18 <- number of bytes left to do + nop # E : + bne $18, $last_quad # U : + +--- a/ports/sysdeps/alpha/memchr.S ++++ b/ports/sysdeps/alpha/memchr.S +@@ -119,7 +119,7 @@ + + # At least one byte left to process. + +- ldq t0, 8(v0) # e0 : ++ ldq zero, 8(v0) # e0 : prefetch next quad + subq t4, 1, a2 # .. e1 : + addq v0, 8, v0 #-e0 : + +@@ -138,19 +138,19 @@ + + # At least three quads remain to be accessed + +- mov t0, t3 # e0 : move prefetched value to correct reg +- + .align 4 + $unrolled_loop: +- ldq t0, 8(v0) #-e0 : prefetch t0 +- xor a1, t3, t1 # .. e1 : +- cmpbge zero, t1, t1 # e0 : +- bne t1, $found_it # .. e1 : ++ ldq t0, 0(v0) # e0 : load quad ++ xor a1, t0, t1 # .. e1 : ++ ldq zero, 8(v0) # e0 : prefetch next quad ++ cmpbge zero, t1, t1 # .. e1: ++ bne t1, $found_it # e0 : + +- addq v0, 8, v0 #-e0 : ++ addq v0, 8, v0 # e1 : + $odd_quad_count: ++ ldq t0, 0(v0) # e0 : load quad + xor a1, t0, t1 # .. e1 : +- ldq t3, 8(v0) # e0 : prefetch t3 ++ ldq zero, 8(v0) # e0 : prefetch next quad + cmpbge zero, t1, t1 # .. e1 : + addq v0, 8, t5 #-e0 : + bne t1, $found_it # .. e1 : +@@ -159,8 +159,8 @@ + addq v0, 8, v0 # .. e1 : + bne t5, $unrolled_loop #-e1 : + +- mov t3, t0 # e0 : move prefetched value into t0 +-$final: subq t4, v0, a2 # .. e1 : a2 <- number of bytes left to do ++$final: ldq t0, 0(v0) # e0 : load last quad ++ subq t4, v0, a2 # .. e1 : a2 <- number of bytes left to do + bne a2, $last_quad # e1 : + + $not_found: --- eglibc-2.12.1.orig/debian/patches/alpha/local-fcntl_h.diff +++ eglibc-2.12.1/debian/patches/alpha/local-fcntl_h.diff @@ -0,0 +1,28 @@ +--- + ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +--- a/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h ++++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h +@@ -87,6 +87,21 @@ + #ifdef __USE_GNU + # define F_SETSIG 10 /* Set number of signal to be sent. */ + # define F_GETSIG 11 /* Get number of signal to be sent. */ ++ ++# define F_SETOWN_EX 15 ++# define F_GETOWN_EX 16 ++ ++enum __pid_type ++ { ++ F_OWNER_TID = 0, /* Kernel thread. */ ++ F_OWNER_PID, /* Process. */ ++ F_OWNER_GID /* Process group. */ ++ }; ++ ++struct f_owner_ex { ++ int type; ++ pid_t pid; ++}; + #endif + + #ifdef __USE_GNU --- eglibc-2.12.1.orig/debian/patches/alpha/local-gcc4.1.diff +++ eglibc-2.12.1/debian/patches/alpha/local-gcc4.1.diff @@ -0,0 +1,55 @@ +2006-05-30 Falk Hueffner + + * sysdeps/unix/sysv/linux/alpha/ioperm.c: force the architecture + to ev6 in assembly code. + +{standard input}: Assembler messages: +{standard input}:341: Error: macro requires $at register while noat in effect +{standard input}:374: Error: macro requires $at register while noat in effect +{standard input}:438: Error: macro requires $at register while noat in effect +{standard input}:471: Error: macro requires $at register while noat in effect +make[3]: *** [/tmp/buildd/glibc-2.3.6/build-tree/alpha-libc/misc/ioperm.o] Error 1 + +Hrm. gcc puts .arch ev4 into the .s, and this overrides -mev6 for as. +I cannot really think of anything better than + +--- + ports/sysdeps/unix/sysv/linux/alpha/ioperm.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/ports/sysdeps/unix/sysv/linux/alpha/ioperm.c ++++ b/ports/sysdeps/unix/sysv/linux/alpha/ioperm.c +@@ -178,13 +178,13 @@ + static inline void + stb_mb(unsigned char val, unsigned long addr) + { +- __asm__("stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val)); ++ __asm__(".arch ev6; stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val)); + } + + static inline void + stw_mb(unsigned short val, unsigned long addr) + { +- __asm__("stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val)); ++ __asm__(".arch ev6; stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val)); + } + + static inline void +@@ -356,7 +356,7 @@ + unsigned long int addr = dense_port_to_cpu_addr (port); + unsigned char r; + +- __asm__ ("ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr)); ++ __asm__ (".arch ev6; ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr)); + return r; + } + +@@ -366,7 +366,7 @@ + unsigned long int addr = dense_port_to_cpu_addr (port); + unsigned short r; + +- __asm__ ("ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr)); ++ __asm__ (".arch ev6; ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr)); + return r; + } + --- eglibc-2.12.1.orig/debian/patches/alpha/local-lowlevellock.diff +++ eglibc-2.12.1/debian/patches/alpha/local-lowlevellock.diff @@ -0,0 +1,19 @@ +2010-02-09 Aurelien Jarno + + * sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h: remove + useless include. + +--- + ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h | 1 - + 1 file changed, 1 deletion(-) + +--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h ++++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h +@@ -23,7 +23,6 @@ + #include + #include + #include +-#include + #include + + --- eglibc-2.12.1.orig/debian/patches/alpha/cvs-longjmp-chk.diff +++ eglibc-2.12.1/debian/patches/alpha/cvs-longjmp-chk.diff @@ -0,0 +1,149 @@ + 2010-03-26 Richard Henderson + + * sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S: New. + +diff --git a/ports/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S b/ports/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S +new file mode 100644 +index 0000000..5194ed8 +--- /dev/null ++++ b/ports/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S +@@ -0,0 +1,139 @@ ++/* Copyright (C) 1992, 1994, 1997, 2006, 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++ ++ .section .rodata.str1.1,"aMS",@progbits,1 ++ .type longjmp_msg,@object ++longjmp_msg: ++ .string "longjmp causes uninitialized stack frame" ++ .size longjmp_msg, .-longjmp_msg ++ ++ ++/* Jump to the position specified by ENV, causing the ++ setjmp call there to return VAL, or 1 if VAL is 0. ++ void __longjmp (__jmp_buf env, int val). */ ++ .text ++ .align 4 ++ .globl ____longjmp_chk ++ .type ____longjmp_chk, @function ++ .usepv ____longjmp_chk, std ++ ++ cfi_startproc ++____longjmp_chk: ++ ldgp gp, 0(pv) ++#ifdef PROF ++ .set noat ++ lda AT, _mcount ++ jsr AT, (AT), _mcount ++ .set at ++#endif ++ ++ ldq s2, JB_PC*8(a0) ++ mov a0, s0 ++ ldq fp, JB_FP*8(a0) ++ mov a1, s1 ++ ldq s3, JB_SP*8(a0) ++ cmoveq s1, 1, s1 ++ ++#ifdef PTR_DEMANGLE ++ PTR_DEMANGLE(s2, t1) ++ PTR_DEMANGLE2(s3, t1) ++ PTR_DEMANGLE2(fp, t1) ++#endif ++ cmpule t0, sp, t1 ++ bne t1, .Lfail ++ ++ .align 4 ++.Lok: ++ mov s0, a0 ++ mov s1, v0 ++ mov s3, t0 ++ mov s2, ra ++ cfi_remember_state ++ cfi_def_cfa(a0, 0) ++ cfi_register(sp, t0) ++ cfi_offset(s0, JB_S0*8) ++ cfi_offset(s1, JB_S1*8) ++ cfi_offset(s2, JB_S2*8) ++ cfi_offset(s3, JB_S3*8) ++ cfi_offset(s4, JB_S4*8) ++ cfi_offset(s5, JB_S5*8) ++ cfi_offset(s3, JB_S3*8) ++ cfi_offset($f2, JB_F2*8) ++ cfi_offset($f3, JB_F3*8) ++ cfi_offset($f4, JB_F4*8) ++ cfi_offset($f5, JB_F5*8) ++ cfi_offset($f6, JB_F6*8) ++ cfi_offset($f7, JB_F7*8) ++ cfi_offset($f8, JB_F8*8) ++ cfi_offset($f9, JB_F9*8) ++ ldq s0, JB_S0*8(a0) ++ ldq s1, JB_S1*8(a0) ++ ldq s2, JB_S2*8(a0) ++ ldq s3, JB_S3*8(a0) ++ ldq s4, JB_S4*8(a0) ++ ldq s5, JB_S5*8(a0) ++ ldt $f2, JB_F2*8(a0) ++ ldt $f3, JB_F3*8(a0) ++ ldt $f4, JB_F4*8(a0) ++ ldt $f5, JB_F5*8(a0) ++ ldt $f6, JB_F6*8(a0) ++ ldt $f7, JB_F7*8(a0) ++ ldt $f8, JB_F8*8(a0) ++ ldt $f9, JB_F9*8(a0) ++ mov t0, sp ++ ret ++ ++ .align 4 ++.Lfail: ++ cfi_restore_state ++ lda v0, __NR_sigaltstack ++ lda a0, 0 ++ lda a1, -32(sp) ++ lda sp, -32(sp) ++ cfi_adjust_cfa_offset(32) ++ callsys ++ ldq t0, 0(sp) /* ss_sp */ ++ ldl t1, 8(sp) /* ss_flags */ ++ ldq t2, 16(sp) /* ss_size */ ++ lda sp, 32(sp) ++ cfi_adjust_cfa_offset(-32) ++ ++ /* Without working sigaltstack we cannot perform the test. */ ++ bne a3, .Lok ++ ++ addq t0, t2, t0 /* t0 = ss_sp + ss_size */ ++ subq t0, s3, t0 /* t0 = (ss_sp + ss_size) - new_sp */ ++ cmpule t2, t0, t0 /* t0 = (t0 >= ss_size) */ ++ and t0, t1, t0 /* t0 = (t0 >= ss_size) & (ss_flags & SS_ONSTACK) */ ++ bne t0, .Lok ++ ++ ldah a0, longjmp_msg(gp) !gprelhigh ++ lda a0, longjmp_msg(a0) !gprellow ++#ifdef PIC ++ jsr ra, HIDDEN_JUMPTARGET(__fortify_fail) ++#else ++ bsr ra, HIDDEN_JUMPTARGET(__fortify_fail) !samegp ++#endif ++ bugchk ++ ++ cfi_endproc ++ .size ____longjmp_chk, .-____longjmp_chk --- eglibc-2.12.1.orig/debian/patches/sparc/local-sparcv9-target.diff +++ eglibc-2.12.1/debian/patches/sparc/local-sparcv9-target.diff @@ -0,0 +1,39 @@ +# DP: Description: Optimizes the build for sparcv9 +# DP: Author: Ben Collins, Aurelien Jarno +# DP: Upstream status: Debian-Specific +# DP: Status Details: +# DP: Date: July 19, 2007 + +--- + configure | 5 +++++ + configure.in | 5 +++++ + 2 files changed, 10 insertions(+) + +--- a/configure ++++ b/configure +@@ -4056,6 +4056,11 @@ + machine="powerpc" + fi + ++# Force v9 ++if test "$machine" = sparc; then ++ machine="sparcv9" ++fi ++ + # Braindead PowerPC box with absolutely no FPU. + case "$machine-$host_os" in + powerpc*-*soft) +--- a/configure.in ++++ b/configure.in +@@ -378,6 +378,11 @@ + machine="powerpc" + fi + ++# Force v9 ++if test "$machine" = sparc; then ++ machine="sparcv9" ++fi ++ + # Braindead PowerPC box with absolutely no FPU. + case "$machine-$host_os" in + powerpc*-*soft) --- eglibc-2.12.1.orig/debian/patches/sparc/local-fork.diff +++ eglibc-2.12.1/debian/patches/sparc/local-fork.diff @@ -0,0 +1,43 @@ +2006-05-28 Aurelien Jarno + + * sysdeps/unix/sysv/linux/sparc/fork.S: remove, so that fork.c is + used instead. + + +--- + sysdeps/unix/sysv/linux/sparc/fork.S | 30 ------------------------------ + 1 file changed, 30 deletions(-) + +--- a/sysdeps/unix/sysv/linux/sparc/fork.S ++++ /dev/null +@@ -1,30 +0,0 @@ +-/* Copyright (C) 1997, 1999, 2002 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Miguel de Icaza , 1997. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +- +-PSEUDO (__libc_fork, fork, 0) +- sub %o1, 1, %o1 +- retl +- and %o0, %o1, %o0 +-PSEUDO_END (__libc_fork) +- +-weak_alias (__libc_fork, __fork) +-libc_hidden_def (__fork) +-weak_alias (__libc_fork, fork) --- eglibc-2.12.1.orig/debian/patches/sparc/submitted-timing.diff +++ eglibc-2.12.1/debian/patches/sparc/submitted-timing.diff @@ -0,0 +1,52 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: sparc/sparcv9 libraries fix +# DP: Author: Daniel Jacobowitz , Jeff Bailey +# DP: Upstream status: Not Submitted +# DP: Status Details: +# DP: Date: 2003-12-31 + +2003-12-31 Jeff Bailey + + * sysdeps/sparc/hp-timing.h: New file. + +--- + sysdeps/sparc/sparc32/hp-timing.h | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +--- /dev/null ++++ b/sysdeps/sparc/sparc32/hp-timing.h +@@ -0,0 +1,34 @@ ++/* High precision, low overhead timing functions. i386 version. ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SPARC_HP_TIMING_H ++#define _SPARC_HP_TIMING_H 1 ++ ++#define hp_timing_t hp_timing_t__ ++#include ++#undef hp_timing_t ++ ++/* We don't use high-precision timers, but we might load an sparcv9 libpthread ++ which does. */ ++#define HP_TIMING_PAD 1 ++ ++/* sparcv9 uses 64bit values for the times. */ ++typedef unsigned long long int hp_timing_t; ++ ++#endif /* hp-timing.h */ --- eglibc-2.12.1.orig/debian/patches/all/local-pthread-manpages.diff +++ eglibc-2.12.1/debian/patches/all/local-pthread-manpages.diff @@ -0,0 +1,2093 @@ +--- + linuxthreads/man/pthread_atfork.man | 36 ++--- + linuxthreads/man/pthread_attr_init.man | 132 ++++++++++----------- + linuxthreads/man/pthread_cancel.man | 98 +++++++-------- + linuxthreads/man/pthread_cleanup_push.man | 66 +++++----- + linuxthreads/man/pthread_cond_init.man | 114 +++++++++--------- + linuxthreads/man/pthread_condattr_init.man | 14 +- + linuxthreads/man/pthread_create.man | 36 ++--- + linuxthreads/man/pthread_detach.man | 31 ++-- + linuxthreads/man/pthread_equal.man | 6 + linuxthreads/man/pthread_exit.man | 18 +- + linuxthreads/man/pthread_join.man | 64 +++++----- + linuxthreads/man/pthread_key_create.man | 62 ++++----- + linuxthreads/man/pthread_kill_other_threads_np.man | 22 +-- + linuxthreads/man/pthread_mutex_init.man | 94 +++++++------- + linuxthreads/man/pthread_mutexattr_init.man | 62 ++++----- + linuxthreads/man/pthread_mutexattr_setkind_np.man | 20 +-- + linuxthreads/man/pthread_once.man | 18 +- + linuxthreads/man/pthread_self.man | 12 - + linuxthreads/man/pthread_setschedparam.man | 62 ++++----- + linuxthreads/man/pthread_sigmask.man | 86 ++++++------- + linuxthreads/man/sem_init.man | 88 +++++++------- + 21 files changed, 569 insertions(+), 572 deletions(-) + +--- a/linuxthreads/man/pthread_atfork.man ++++ b/linuxthreads/man/pthread_atfork.man +@@ -10,44 +10,44 @@ + + .SH DESCRIPTION + +-!pthread_atfork! registers handler functions to be called just before +-and just after a new process is created with !fork!(2). The |prepare| ++\fBpthread_atfork\fP registers handler functions to be called just before ++and just after a new process is created with \fBfork\fP(2). The \fIprepare\fP + handler will be called from the parent process, just before the new +-process is created. The |parent| handler will be called from the parent +-process, just before !fork!(2) returns. The |child| handler will be +-called from the child process, just before !fork!(2) returns. ++process is created. The \fIparent\fP handler will be called from the parent ++process, just before \fBfork\fP(2) returns. The \fIchild\fP handler will be ++called from the child process, just before \fBfork\fP(2) returns. + +-One or several of the three handlers |prepare|, |parent| and |child| +-can be given as !NULL!, meaning that no handler needs to be called at ++One or several of the three handlers \fIprepare\fP, \fIparent\fP and \fIchild\fP ++can be given as \fBNULL\fP, meaning that no handler needs to be called at + the corresponding point. + +-!pthread_atfork! can be called several times to install several sets +-of handlers. At !fork!(2) time, the |prepare| handlers are called in +-LIFO order (last added with !pthread_atfork!, first called before !fork!), +-while the |parent| and |child| handlers are called in FIFO order ++\fBpthread_atfork\fP can be called several times to install several sets ++of handlers. At \fBfork\fP(2) time, the \fIprepare\fP handlers are called in ++LIFO order (last added with \fBpthread_atfork\fP, first called before \fBfork\fP), ++while the \fIparent\fP and \fIchild\fP handlers are called in FIFO order + (first added, first called). + +-To understand the purpose of !pthread_atfork!, recall that !fork!(2) ++To understand the purpose of \fBpthread_atfork\fP, recall that \fBfork\fP(2) + duplicates the whole memory space, including mutexes in their current + locking state, but only the calling thread: other threads are not + running in the child process. The mutexes are not usable after the +-!fork! and must be initialized with |pthread_mutex_init| in the child ++\fBfork\fP and must be initialized with \fIpthread_mutex_init\fP in the child + process. This is a limitation of the current implementation and might + or might not be present in future versions. + + .SH "RETURN VALUE" + +-!pthread_atfork! returns 0 on success and a non-zero error code on error. ++\fBpthread_atfork\fP returns 0 on success and a non-zero error code on error. + + .SH ERRORS + .TP +-!ENOMEM! ++\fBENOMEM\fP + insufficient memory available to register the handlers. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!fork!(2), +-!pthread_mutex_lock!(3), +-!pthread_mutex_unlock!(3). ++\fBfork\fP(2), ++\fBpthread_mutex_lock\fP(3), ++\fBpthread_mutex_unlock\fP(3). +--- a/linuxthreads/man/pthread_attr_init.man ++++ b/linuxthreads/man/pthread_attr_init.man +@@ -45,27 +45,27 @@ + .SH DESCRIPTION + + Setting attributes for threads is achieved by filling a +-thread attribute object |attr| of type !pthread_attr_t!, then passing it as +-second argument to !pthread_create!(3). Passing !NULL! is equivalent to ++thread attribute object \fIattr\fP of type \fBpthread_attr_t\fP, then passing it as ++second argument to \fBpthread_create\fP(3). Passing \fBNULL\fP is equivalent to + passing a thread attribute object with all attributes set to their + default values. + +-!pthread_attr_init! initializes the thread attribute object |attr| and ++\fBpthread_attr_init\fP initializes the thread attribute object \fIattr\fP and + fills it with default values for the attributes. (The default values + are listed below for each attribute.) + +-Each attribute |attrname| (see below for a list of all attributes) can +-be individually set using the function !pthread_attr_set!|attrname| +-and retrieved using the function !pthread_attr_get!|attrname|. ++Each attribute \fIattrname\fP (see below for a list of all attributes) can ++be individually set using the function \fBpthread_attr_set\fP\fIattrname\fP ++and retrieved using the function \fBpthread_attr_get\fP\fIattrname\fP. + +-!pthread_attr_destroy! destroys a thread attribute object, which +-must not be reused until it is reinitialized. !pthread_attr_destroy! ++\fBpthread_attr_destroy\fP destroys a thread attribute object, which ++must not be reused until it is reinitialized. \fBpthread_attr_destroy\fP + does nothing in the LinuxThreads implementation. + + Attribute objects are consulted only when creating a new thread. The + same attribute object can be used for creating several + threads. Modifying an attribute object after a call to +-!pthread_create! does not change the attributes of the thread ++\fBpthread_create\fP does not change the attributes of the thread + previously created. + + The following thread attributes are supported: +@@ -73,149 +73,149 @@ + .SS detachstate + + Control whether the thread is created in the joinable state (value +-!PTHREAD_CREATE_JOINABLE!) or in the detached state +-(!PTHREAD_CREATE_DETACHED!). ++\fBPTHREAD_CREATE_JOINABLE\fP) or in the detached state ++(\fBPTHREAD_CREATE_DETACHED\fP). + +-Default value: !PTHREAD_CREATE_JOINABLE!. ++Default value: \fBPTHREAD_CREATE_JOINABLE\fP. + + In the joinable state, another thread can synchronize on the thread +-termination and recover its termination code using !pthread_join!(3), ++termination and recover its termination code using \fBpthread_join\fP(3), + but some of the thread resources are kept allocated after the thread + terminates, and reclaimed only when another thread performs +-!pthread_join!(3) on that thread. ++\fBpthread_join\fP(3) on that thread. + + In the detached state, the thread resources are immediately freed when +-it terminates, but !pthread_join!(3) cannot be used to synchronize on ++it terminates, but \fBpthread_join\fP(3) cannot be used to synchronize on + the thread termination. + + A thread created in the joinable state can later be put in the +-detached thread using !pthread_detach!(3). ++detached state using \fBpthread_detach\fP(3). + + .SS schedpolicy + + Select the scheduling policy for the thread: one of +-!SCHED_OTHER! (regular, non-realtime scheduling), +-!SCHED_RR! (realtime, round-robin) or +-!SCHED_FIFO! (realtime, first-in first-out). See +-!sched_setpolicy!(2) for more information on scheduling policies. ++\fBSCHED_OTHER\fP (regular, non-realtime scheduling), ++\fBSCHED_RR\fP (realtime, round-robin) or ++\fBSCHED_FIFO\fP (realtime, first-in first-out). See ++\fBsched_setpolicy\fP(2) for more information on scheduling policies. + +-Default value: !SCHED_OTHER!. ++Default value: \fBSCHED_OTHER\fP. + +-The realtime scheduling policies !SCHED_RR! and !SCHED_FIFO! are ++The realtime scheduling policies \fBSCHED_RR\fP and \fBSCHED_FIFO\fP are + available only to processes with superuser privileges. + + The scheduling policy of a thread can be changed after creation with +-!pthread_setschedparam!(3). ++\fBpthread_setschedparam\fP(3). + + .SS schedparam + + Contain the scheduling parameters (essentially, the scheduling +-priority) for the thread. See !sched_setparam!(2) for more information ++priority) for the thread. See \fBsched_setparam\fP(2) for more information + on scheduling parameters. + + Default value: priority is 0. + +-This attribute is not significant if the scheduling policy is !SCHED_OTHER!; +-it only matters for the realtime policies !SCHED_RR! and !SCHED_FIFO!. ++This attribute is not significant if the scheduling policy is \fBSCHED_OTHER\fP; ++it only matters for the realtime policies \fBSCHED_RR\fP and \fBSCHED_FIFO\fP. + + The scheduling priority of a thread can be changed after creation with +-!pthread_setschedparam!(3). ++\fBpthread_setschedparam\fP(3). + + .SS inheritsched + + Indicate whether the scheduling policy and scheduling parameters for + the newly created thread are determined by the values of the +-|schedpolicy| and |schedparam| attributes (value +-!PTHREAD_EXPLICIT_SCHED!) or are inherited from the parent thread +-(value !PTHREAD_INHERIT_SCHED!). ++\fIschedpolicy\fP and \fIschedparam\fP attributes (value ++\fBPTHREAD_EXPLICIT_SCHED\fP) or are inherited from the parent thread ++(value \fBPTHREAD_INHERIT_SCHED\fP). + +-Default value: !PTHREAD_EXPLICIT_SCHED!. ++Default value: \fBPTHREAD_EXPLICIT_SCHED\fP. + + .SS scope + + Define the scheduling contention scope for the created thread. The + only value supported in the LinuxThreads implementation is +-!PTHREAD_SCOPE_SYSTEM!, meaning that the threads contend for CPU time ++\fBPTHREAD_SCOPE_SYSTEM\fP, meaning that the threads contend for CPU time + with all processes running on the machine. In particular, thread + priorities are interpreted relative to the priorities of all other + processes on the machine. The other value specified by the standard, +-!PTHREAD_SCOPE_PROCESS!, means that scheduling contention occurs only ++\fBPTHREAD_SCOPE_PROCESS\fP, means that scheduling contention occurs only + between the threads of the running process: thread priorities are + interpreted relative to the priorities of the other threads of the + process, regardless of the priorities of other processes. +-!PTHREAD_SCOPE_PROCESS! is not supported in LinuxThreads. ++\fBPTHREAD_SCOPE_PROCESS\fP is not supported in LinuxThreads. + +-Default value: !PTHREAD_SCOPE_SYSTEM!. ++Default value: \fBPTHREAD_SCOPE_SYSTEM\fP. + + .SH "RETURN VALUE" + + All functions return 0 on success and a non-zero error code on error. +-On success, the !pthread_attr_get!|attrname| functions also store the +-current value of the attribute |attrname| in the location pointed to ++On success, the \fBpthread_attr_get\fP\fIattrname\fP functions also store the ++current value of the attribute \fIattrname\fP in the location pointed to + by their second argument. + + .SH ERRORS + +-The !pthread_attr_setdetachstate! function returns the following error ++The \fBpthread_attr_setdetachstate\fP function returns the following error + codes on error: + .RS + .TP +-!EINVAL! +-the specified |detachstate| is not one of !PTHREAD_CREATE_JOINABLE! or +-!PTHREAD_CREATE_DETACHED!. ++\fBEINVAL\fP ++the specified \fIdetachstate\fP is not one of \fBPTHREAD_CREATE_JOINABLE\fP or ++\fBPTHREAD_CREATE_DETACHED\fP. + .RE + +-The !pthread_attr_setschedparam! function returns the following error ++The \fBpthread_attr_setschedparam\fP function returns the following error + codes on error: + .RS + .TP +-!EINVAL! +-the priority specified in |param| is outside the range of allowed +-priorities for the scheduling policy currently in |attr| +-(1 to 99 for !SCHED_FIFO! and !SCHED_RR!; 0 for !SCHED_OTHER!). ++\fBEINVAL\fP ++the priority specified in \fIparam\fP is outside the range of allowed ++priorities for the scheduling policy currently in \fIattr\fP ++(1 to 99 for \fBSCHED_FIFO\fP and \fBSCHED_RR\fP; 0 for \fBSCHED_OTHER\fP). + .RE + +-The !pthread_attr_setschedpolicy! function returns the following error ++The \fBpthread_attr_setschedpolicy\fP function returns the following error + codes on error: + .RS + .TP +-!EINVAL! +-the specified |policy| is not one of !SCHED_OTHER!, !SCHED_FIFO!, or +-!SCHED_RR!. ++\fBEINVAL\fP ++the specified \fIpolicy\fP is not one of \fBSCHED_OTHER\fP, \fBSCHED_FIFO\fP, or ++\fBSCHED_RR\fP. + + .TP +-!ENOTSUP! +-|policy| is !SCHED_FIFO! or !SCHED_RR!, and the effective user of the ++\fBENOTSUP\fP ++\fIpolicy\fP is \fBSCHED_FIFO\fP or \fBSCHED_RR\fP, and the effective user of the + calling process is not super-user. + .RE + +-The !pthread_attr_setinheritsched! function returns the following error ++The \fBpthread_attr_setinheritsched\fP function returns the following error + codes on error: + .RS + .TP +-!EINVAL! +-the specified |inherit| is not one of !PTHREAD_INHERIT_SCHED! or +-!PTHREAD_EXPLICIT_SCHED!. ++\fBEINVAL\fP ++the specified \fIinherit\fP is not one of \fBPTHREAD_INHERIT_SCHED\fP or ++\fBPTHREAD_EXPLICIT_SCHED\fP. + .RE + +-The !pthread_attr_setscope! function returns the following error ++The \fBpthread_attr_setscope\fP function returns the following error + codes on error: + .RS + .TP +-!EINVAL! +-the specified |scope| is not one of !PTHREAD_SCOPE_SYSTEM! or +-!PTHREAD_SCOPE_PROCESS!. ++\fBEINVAL\fP ++the specified \fIscope\fP is not one of \fBPTHREAD_SCOPE_SYSTEM\fP or ++\fBPTHREAD_SCOPE_PROCESS\fP. + + .TP +-!ENOTSUP! +-the specified |scope| is !PTHREAD_SCOPE_PROCESS! (not supported). ++\fBENOTSUP\fP ++the specified \fIscope\fP is \fBPTHREAD_SCOPE_PROCESS\fP (not supported). + .RE + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_create!(3), +-!pthread_join!(3), +-!pthread_detach!(3), +-!pthread_setschedparam!(3). ++\fBpthread_create\fP(3), ++\fBpthread_join\fP(3), ++\fBpthread_detach\fP(3), ++\fBpthread_setschedparam\fP(3). +--- a/linuxthreads/man/pthread_cancel.man ++++ b/linuxthreads/man/pthread_cancel.man +@@ -27,119 +27,119 @@ + immediately, or defer it till it reaches a cancellation point. + + When a thread eventually honors a cancellation request, it performs as +-if !pthread_exit(PTHREAD_CANCELED)! has been called at that point: ++if \fBpthread_exit(PTHREAD_CANCELED)\fP has been called at that point: + all cleanup handlers are executed in reverse order, finalization + functions for thread-specific data are called, and finally the thread +-stops executing with the return value !PTHREAD_CANCELED!. See +-!pthread_exit!(3) for more information. ++stops executing with the return value \fBPTHREAD_CANCELED\fP. See ++\fBpthread_exit\fP(3) for more information. + +-!pthread_cancel! sends a cancellation request to the thread denoted +-by the |thread| argument. ++\fBpthread_cancel\fP sends a cancellation request to the thread denoted ++by the \fIthread\fP argument. + +-!pthread_setcancelstate! changes the cancellation state for the ++\fBpthread_setcancelstate\fP changes the cancellation state for the + calling thread -- that is, whether cancellation requests are ignored +-or not. The |state| argument is the new cancellation state: either +-!PTHREAD_CANCEL_ENABLE! to enable cancellation, or +-!PTHREAD_CANCEL_DISABLE! to disable cancellation (cancellation +-requests are ignored). If |oldstate| is not !NULL!, the previous +-cancellation state is stored in the location pointed to by |oldstate|, ++or not. The \fIstate\fP argument is the new cancellation state: either ++\fBPTHREAD_CANCEL_ENABLE\fP to enable cancellation, or ++\fBPTHREAD_CANCEL_DISABLE\fP to disable cancellation (cancellation ++requests are ignored). If \fIoldstate\fP is not \fBNULL\fP, the previous ++cancellation state is stored in the location pointed to by \fIoldstate\fP, + and can thus be restored later by another call to +-!pthread_setcancelstate!. ++\fBpthread_setcancelstate\fP. + +-!pthread_setcanceltype! changes the type of responses to cancellation ++\fBpthread_setcanceltype\fP changes the type of responses to cancellation + requests for the calling thread: asynchronous (immediate) or deferred. +-The |type| argument is the new cancellation type: either +-!PTHREAD_CANCEL_ASYNCHRONOUS! to cancel the calling thread as soon as +-the cancellation request is received, or !PTHREAD_CANCEL_DEFERRED! to ++The \fItype\fP argument is the new cancellation type: either ++\fBPTHREAD_CANCEL_ASYNCHRONOUS\fP to cancel the calling thread as soon as ++the cancellation request is received, or \fBPTHREAD_CANCEL_DEFERRED\fP to + keep the cancellation request pending until the next cancellation +-point. If |oldtype| is not !NULL!, the previous +-cancellation state is stored in the location pointed to by |oldtype|, ++point. If \fIoldtype\fP is not \fBNULL\fP, the previous ++cancellation state is stored in the location pointed to by \fIoldtype\fP, + and can thus be restored later by another call to +-!pthread_setcanceltype!. ++\fBpthread_setcanceltype\fP. + +-Threads are always created by !pthread_create!(3) with cancellation ++Threads are always created by \fBpthread_create\fP(3) with cancellation + enabled and deferred. That is, the initial cancellation state is +-!PTHREAD_CANCEL_ENABLE! and the initial type is +-!PTHREAD_CANCEL_DEFERRED!. ++\fBPTHREAD_CANCEL_ENABLE\fP and the initial type is ++\fBPTHREAD_CANCEL_DEFERRED\fP. + + Cancellation points are those points in the program execution where a + test for pending cancellation requests is performed and cancellation + is executed if positive. The following POSIX threads functions + are cancellation points: + +-!pthread_join!(3) ++\fBpthread_join\fP(3) + .br +-!pthread_cond_wait!(3) ++\fBpthread_cond_wait\fP(3) + .br +-!pthread_cond_timedwait!(3) ++\fBpthread_cond_timedwait\fP(3) + .br +-!pthread_testcancel!(3) ++\fBpthread_testcancel\fP(3) + .br +-!sem_wait!(3) ++\fBsem_wait\fP(3) + .br +-!sigwait!(3) ++\fBsigwait\fP(3) + + All other POSIX threads functions are guaranteed not to be + cancellation points. That is, they never perform cancellation in + deferred cancellation mode. + +-!pthread_testcancel! does nothing except testing for pending ++\fBpthread_testcancel\fP does nothing except testing for pending + cancellation and executing it. Its purpose is to introduce explicit + checks for cancellation in long sequences of code that do not call + cancellation point functions otherwise. + + .SH "RETURN VALUE" + +-!pthread_cancel!, !pthread_setcancelstate! and +-!pthread_setcanceltype! return 0 on success and a non-zero error code ++\fBpthread_cancel\fP, \fBpthread_setcancelstate\fP and ++\fBpthread_setcanceltype\fP return 0 on success and a non-zero error code + on error. + + .SH ERRORS +-!pthread_cancel! returns the following error code on error: ++\fBpthread_cancel\fP returns the following error code on error: + .RS + .TP +-!ESRCH! +-no thread could be found corresponding to that specified by the |thread| ID. ++\fBESRCH\fP ++no thread could be found corresponding to that specified by the \fIthread\fP ID. + .RE + +-!pthread_setcancelstate! returns the following error code on error: ++\fBpthread_setcancelstate\fP returns the following error code on error: + .RS + .TP +-!EINVAL! +-the |state| argument is not !PTHREAD_CANCEL_ENABLE! nor +-!PTHREAD_CANCEL_DISABLE! ++\fBEINVAL\fP ++the \fIstate\fP argument is not \fBPTHREAD_CANCEL_ENABLE\fP nor ++\fBPTHREAD_CANCEL_DISABLE\fP + .RE + +-!pthread_setcanceltype! returns the following error code on error: ++\fBpthread_setcanceltype\fP returns the following error code on error: + .RS + .TP +-!EINVAL! +-the |type| argument is not !PTHREAD_CANCEL_DEFERRED! nor +-!PTHREAD_CANCEL_ASYNCHRONOUS! ++\fBEINVAL\fP ++the \fItype\fP argument is not \fBPTHREAD_CANCEL_DEFERRED\fP nor ++\fBPTHREAD_CANCEL_ASYNCHRONOUS\fP + .RE + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_exit!(3), +-!pthread_cleanup_push!(3), +-!pthread_cleanup_pop!(3). ++\fBpthread_exit\fP(3), ++\fBpthread_cleanup_push\fP(3), ++\fBpthread_cleanup_pop\fP(3). + + .SH BUGS + + POSIX specifies that a number of system calls (basically, all +-system calls that may block, such as !read!(2), !write!(2), !wait!(2), ++system calls that may block, such as \fBread\fP(2), \fBwrite\fP(2), \fBwait\fP(2), + etc.) and library functions that may call these system calls (e.g. +-!fprintf!(3)) are cancellation points. LinuxThreads is not yet ++\fBfprintf\fP(3)) are cancellation points. LinuxThreads is not yet + integrated enough with the C library to implement this, and thus none + of the C library functions is a cancellation point. + + For system calls at least, there is a workaround. Cancellation + requests are transmitted to the target thread by sending it a + signal. That signal will interrupt all blocking system calls, causing +-them to return immediately with the !EINTR! error. So, checking for +-cancellation during a !read! system call, for instance, can be ++them to return immediately with the \fBEINTR\fP error. So, checking for ++cancellation during a \fBread\fP system call, for instance, can be + achieved as follows: + + .RS +--- a/linuxthreads/man/pthread_cleanup_push.man ++++ b/linuxthreads/man/pthread_cleanup_push.man +@@ -21,7 +21,7 @@ + .SH DESCRIPTION + + Cleanup handlers are functions that get called when a thread +-terminates, either by calling !pthread_exit!(3) or because of ++terminates, either by calling \fBpthread_exit\fP(3) or because of + cancellation. Cleanup handlers are installed and removed following a + stack-like discipline. + +@@ -32,41 +32,41 @@ + normally. The best way to avoid this is, just before locking the + mutex, to install a cleanup handler whose effect is to unlock the + mutex. Cleanup handlers can be used similarly to free blocks allocated +-with !malloc!(3) or close file descriptors on thread termination. ++with \fBmalloc\fP(3) or close file descriptors on thread termination. + +-!pthread_cleanup_push! installs the |routine| function with argument +-|arg| as a cleanup handler. From this point on to the matching +-!pthread_cleanup_pop!, the function |routine| will be called with +-arguments |arg| when the thread terminates, either through !pthread_exit!(3) ++\fBpthread_cleanup_push\fP installs the \fIroutine\fP function with argument ++\fIarg\fP as a cleanup handler. From this point on to the matching ++\fBpthread_cleanup_pop\fP, the function \fIroutine\fP will be called with ++arguments \fIarg\fP when the thread terminates, either through \fBpthread_exit\fP(3) + or by cancellation. If several cleanup handlers are active at that + point, they are called in LIFO order: the most recently installed + handler is called first. + +-!pthread_cleanup_pop! removes the most recently installed cleanup +-handler. If the |execute| argument is not 0, it also executes the +-handler, by calling the |routine| function with arguments |arg|. If +-the |execute| argument is 0, the handler is only removed but not ++\fBpthread_cleanup_pop\fP removes the most recently installed cleanup ++handler. If the \fIexecute\fP argument is not 0, it also executes the ++handler, by calling the \fIroutine\fP function with arguments \fIarg\fP. If ++the \fIexecute\fP argument is 0, the handler is only removed but not + executed. + +-Matching pairs of !pthread_cleanup_push! and !pthread_cleanup_pop! ++Matching pairs of \fBpthread_cleanup_push\fP and \fBpthread_cleanup_pop\fP + must occur in the same function, at the same level of block nesting. +-Actually, !pthread_cleanup_push! and !pthread_cleanup_pop! are macros, +-and the expansion of !pthread_cleanup_push! introduces an open brace !{! +-with the matching closing brace !}! being introduced by the expansion +-of the matching !pthread_cleanup_pop!. +- +-!pthread_cleanup_push_defer_np! is a non-portable extension that +-combines !pthread_cleanup_push! and !pthread_setcanceltype!(3). +-It pushes a cleanup handler just as !pthread_cleanup_push! does, but ++Actually, \fBpthread_cleanup_push\fP and \fBpthread_cleanup_pop\fP are macros, ++and the expansion of \fBpthread_cleanup_push\fP introduces an open brace \fB{\fP ++with the matching closing brace \fB}\fP being introduced by the expansion ++of the matching \fBpthread_cleanup_pop\fP. ++ ++\fBpthread_cleanup_push_defer_np\fP is a non-portable extension that ++combines \fBpthread_cleanup_push\fP and \fBpthread_setcanceltype\fP(3). ++It pushes a cleanup handler just as \fBpthread_cleanup_push\fP does, but + also saves the current cancellation type and sets it to deferred + cancellation. This ensures that the cleanup mechanism is effective + even if the thread was initially in asynchronous cancellation mode. + +-!pthread_cleanup_pop_restore_np! pops a cleanup handler introduced by +-!pthread_cleanup_push_defer_np!, and restores the cancellation type to +-its value at the time !pthread_cleanup_push_defer_np! was called. ++\fBpthread_cleanup_pop_restore_np\fP pops a cleanup handler introduced by ++\fBpthread_cleanup_push_defer_np\fP, and restores the cancellation type to ++its value at the time \fBpthread_cleanup_push_defer_np\fP was called. + +-!pthread_cleanup_push_defer_np! and !pthread_cleanup_pop_restore_np! ++\fBpthread_cleanup_push_defer_np\fP and \fBpthread_cleanup_pop_restore_np\fP + must occur in matching pairs, at the same level of block nesting. + + The following sequence +@@ -113,14 +113,14 @@ + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_exit!(3), +-!pthread_cancel!(3), +-!pthread_setcanceltype!(3). ++\fBpthread_exit\fP(3), ++\fBpthread_cancel\fP(3), ++\fBpthread_setcanceltype\fP(3). + + .SH EXAMPLE + +-Here is how to lock a mutex |mut| in such a way that it will be +-unlocked if the thread is canceled while |mut| is locked: ++Here is how to lock a mutex \fImut\fP in such a way that it will be ++unlocked if the thread is canceled while \fImut\fP is locked: + + .RS + .ft 3 +@@ -149,10 +149,10 @@ + .fi + + Notice that the code above is safe only in deferred cancellation mode +-(see !pthread_setcanceltype!(3)). In asynchronous cancellation mode, +-a cancellation can occur between !pthread_cleanup_push! and +-!pthread_mutex_lock!, or between !pthread_mutex_unlock! and +-!pthread_cleanup_pop!, resulting in both cases in the thread trying to ++(see \fBpthread_setcanceltype\fP(3)). In asynchronous cancellation mode, ++a cancellation can occur between \fBpthread_cleanup_push\fP and ++\fBpthread_mutex_lock\fP, or between \fBpthread_mutex_unlock\fP and ++\fBpthread_cleanup_pop\fP, resulting in both cases in the thread trying to + unlock a mutex not locked by the current thread. This is the main + reason why asynchronous cancellation is difficult to use. + +@@ -177,7 +177,7 @@ + + The code above can be rewritten in a more compact and more + efficient way, using the non-portable functions +-!pthread_cleanup_push_defer_np! and !pthread_cleanup_pop_restore_np!: ++\fBpthread_cleanup_push_defer_np\fP and \fBpthread_cleanup_pop_restore_np\fP: + + .RS + .ft 3 +--- a/linuxthreads/man/pthread_condattr_init.man ++++ b/linuxthreads/man/pthread_condattr_init.man +@@ -15,25 +15,25 @@ + .SH DESCRIPTION + + Condition attributes can be specified at condition creation time, by passing a +-condition attribute object as second argument to !pthread_cond_init!(3). +-Passing !NULL! is equivalent to passing a condition attribute object with ++condition attribute object as second argument to \fBpthread_cond_init\fP(3). ++Passing \fBNULL\fP is equivalent to passing a condition attribute object with + all attributes set to their default values. + + The LinuxThreads implementation supports no attributes for + conditions. The functions on condition attributes are included only + for compliance with the POSIX standard. + +-!pthread_condattr_init! initializes the condition attribute object +-|attr| and fills it with default values for the attributes. +-!pthread_condattr_destroy! destroys a condition attribute object, ++\fBpthread_condattr_init\fP initializes the condition attribute object ++\fIattr\fP and fills it with default values for the attributes. ++\fBpthread_condattr_destroy\fP destroys a condition attribute object, + which must not be reused until it is reinitialized. Both functions do + nothing in the LinuxThreads implementation. + + .SH "RETURN VALUE" +-!pthread_condattr_init! and !pthread_condattr_destroy! always return 0. ++\fBpthread_condattr_init\fP and \fBpthread_condattr_destroy\fP always return 0. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_cond_init!(3). ++\fBpthread_cond_init\fP(3). +--- a/linuxthreads/man/pthread_cond_init.man ++++ b/linuxthreads/man/pthread_cond_init.man +@@ -40,31 +40,31 @@ + variable and another thread signals the condition just before the + first thread actually waits on it. + +-!pthread_cond_init! initializes the condition variable |cond|, using the +-condition attributes specified in |cond_attr|, or default attributes +-if |cond_attr| is !NULL!. The LinuxThreads implementation supports no +-attributes for conditions, hence the |cond_attr| parameter is actually ++\fBpthread_cond_init\fP initializes the condition variable \fIcond\fP, using the ++condition attributes specified in \fIcond_attr\fP, or default attributes ++if \fIcond_attr\fP is \fBNULL\fP. The LinuxThreads implementation supports no ++attributes for conditions, hence the \fIcond_attr\fP parameter is actually + ignored. + +-Variables of type !pthread_cond_t! can also be initialized +-statically, using the constant !PTHREAD_COND_INITIALIZER!. ++Variables of type \fBpthread_cond_t\fP can also be initialized ++statically, using the constant \fBPTHREAD_COND_INITIALIZER\fP. + +-!pthread_cond_signal! restarts one of the threads that are waiting on +-the condition variable |cond|. If no threads are waiting on |cond|, +-nothing happens. If several threads are waiting on |cond|, exactly one ++\fBpthread_cond_signal\fP restarts one of the threads that are waiting on ++the condition variable \fIcond\fP. If no threads are waiting on \fIcond\fP, ++nothing happens. If several threads are waiting on \fIcond\fP, exactly one + is restarted, but it is not specified which. + +-!pthread_cond_broadcast! restarts all the threads that are waiting on +-the condition variable |cond|. Nothing happens if no threads are +-waiting on |cond|. ++\fBpthread_cond_broadcast\fP restarts all the threads that are waiting on ++the condition variable \fIcond\fP. Nothing happens if no threads are ++waiting on \fIcond\fP. + +-!pthread_cond_wait! atomically unlocks the |mutex| (as per +-!pthread_unlock_mutex!) and waits for the condition variable |cond| to ++\fBpthread_cond_wait\fP atomically unlocks the \fImutex\fP (as per ++\fBpthread_unlock_mutex\fP) and waits for the condition variable \fIcond\fP to + be signaled. The thread execution is suspended and does not consume +-any CPU time until the condition variable is signaled. The |mutex| ++any CPU time until the condition variable is signaled. The \fImutex\fP + must be locked by the calling thread on entrance to +-!pthread_cond_wait!. Before returning to the calling thread, +-!pthread_cond_wait! re-acquires |mutex| (as per !pthread_lock_mutex!). ++\fBpthread_cond_wait\fP. Before returning to the calling thread, ++\fBpthread_cond_wait\fP re-acquires \fImutex\fP (as per \fBpthread_lock_mutex\fP). + + Unlocking the mutex and suspending on the condition variable is done + atomically. Thus, if all threads always acquire the mutex before +@@ -72,37 +72,37 @@ + signaled (and thus ignored) between the time a thread locks the mutex + and the time it waits on the condition variable. + +-!pthread_cond_timedwait! atomically unlocks |mutex| and waits on +-|cond|, as !pthread_cond_wait! does, but it also bounds the duration +-of the wait. If |cond| has not been signaled within the amount of time +-specified by |abstime|, the mutex |mutex| is re-acquired and +-!pthread_cond_timedwait! returns the error !ETIMEDOUT!. +-The |abstime| parameter specifies an absolute time, with the same +-origin as !time!(2) and !gettimeofday!(2): an |abstime| of 0 ++\fBpthread_cond_timedwait\fP atomically unlocks \fImutex\fP and waits on ++\fIcond\fP, as \fBpthread_cond_wait\fP does, but it also bounds the duration ++of the wait. If \fIcond\fP has not been signaled within the amount of time ++specified by \fIabstime\fP, the mutex \fImutex\fP is re-acquired and ++\fBpthread_cond_timedwait\fP returns the error \fBETIMEDOUT\fP. ++The \fIabstime\fP parameter specifies an absolute time, with the same ++origin as \fBtime\fP(2) and \fBgettimeofday\fP(2): an \fIabstime\fP of 0 + corresponds to 00:00:00 GMT, January 1, 1970. + +-!pthread_cond_destroy! destroys a condition variable, freeing the ++\fBpthread_cond_destroy\fP destroys a condition variable, freeing the + resources it might hold. No threads must be waiting on the condition +-variable on entrance to !pthread_cond_destroy!. In the LinuxThreads ++variable on entrance to \fBpthread_cond_destroy\fP. In the LinuxThreads + implementation, no resources are associated with condition variables, +-thus !pthread_cond_destroy! actually does nothing except checking that ++thus \fBpthread_cond_destroy\fP actually does nothing except checking that + the condition has no waiting threads. + + .SH CANCELLATION + +-!pthread_cond_wait! and !pthread_cond_timedwait! are cancellation ++\fBpthread_cond_wait\fP and \fBpthread_cond_timedwait\fP are cancellation + points. If a thread is cancelled while suspended in one of these + functions, the thread immediately resumes execution, then locks again +-the |mutex| argument to !pthread_cond_wait! and +-!pthread_cond_timedwait!, and finally executes the cancellation. +-Consequently, cleanup handlers are assured that |mutex| is locked when ++the \fImutex\fP argument to \fBpthread_cond_wait\fP and ++\fBpthread_cond_timedwait\fP, and finally executes the cancellation. ++Consequently, cleanup handlers are assured that \fImutex\fP is locked when + they are called. + + .SH "ASYNC-SIGNAL SAFETY" + + The condition functions are not async-signal safe, and should not be + called from a signal handler. In particular, calling +-!pthread_cond_signal! or !pthread_cond_broadcast! from a signal ++\fBpthread_cond_signal\fP or \fBpthread_cond_broadcast\fP from a signal + handler may deadlock the calling thread. + + .SH "RETURN VALUE" +@@ -112,45 +112,45 @@ + + .SH ERRORS + +-!pthread_cond_init!, !pthread_cond_signal!, !pthread_cond_broadcast!, +-and !pthread_cond_wait! never return an error code. ++\fBpthread_cond_init\fP, \fBpthread_cond_signal\fP, \fBpthread_cond_broadcast\fP, ++and \fBpthread_cond_wait\fP never return an error code. + +-The !pthread_cond_timedwait! function returns the following error codes ++The \fBpthread_cond_timedwait\fP function returns the following error codes + on error: + .RS + .TP +-!ETIMEDOUT! ++\fBETIMEDOUT\fP + the condition variable was not signaled until the timeout specified by +-|abstime| ++\fIabstime\fP + + .TP +-!EINTR! +-!pthread_cond_timedwait! was interrupted by a signal ++\fBEINTR\fP ++\fBpthread_cond_timedwait\fP was interrupted by a signal + .RE + +-The !pthread_cond_destroy! function returns the following error code ++The \fBpthread_cond_destroy\fP function returns the following error code + on error: + .RS + .TP +-!EBUSY! +-some threads are currently waiting on |cond|. ++\fBEBUSY\fP ++some threads are currently waiting on \fIcond\fP. + .RE + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_condattr_init!(3), +-!pthread_mutex_lock!(3), +-!pthread_mutex_unlock!(3), +-!gettimeofday!(2), +-!nanosleep!(2). ++\fBpthread_condattr_init\fP(3), ++\fBpthread_mutex_lock\fP(3), ++\fBpthread_mutex_unlock\fP(3), ++\fBgettimeofday\fP(2), ++\fBnanosleep\fP(2). + + .SH EXAMPLE + +-Consider two shared variables |x| and |y|, protected by the mutex |mut|, +-and a condition variable |cond| that is to be signaled whenever |x| +-becomes greater than |y|. ++Consider two shared variables \fIx\fP and \fIy\fP, protected by the mutex \fImut\fP, ++and a condition variable \fIcond\fP that is to be signaled whenever \fIx\fP ++becomes greater than \fIy\fP. + + .RS + .ft 3 +@@ -164,7 +164,7 @@ + .RE + .fi + +-Waiting until |x| is greater than |y| is performed as follows: ++Waiting until \fIx\fP is greater than \fIy\fP is performed as follows: + + .RS + .ft 3 +@@ -181,8 +181,8 @@ + .RE + .fi + +-Modifications on |x| and |y| that may cause |x| to become greater than +-|y| should signal the condition if needed: ++Modifications on \fIx\fP and \fIy\fP that may cause \fIx\fP to become greater than ++\fIy\fP should signal the condition if needed: + + .RS + .ft 3 +@@ -199,11 +199,11 @@ + + If it can be proved that at most one waiting thread needs to be waken + up (for instance, if there are only two threads communicating through +-|x| and |y|), !pthread_cond_signal! can be used as a slightly more +-efficient alternative to !pthread_cond_broadcast!. In doubt, use +-!pthread_cond_broadcast!. ++\fIx\fP and \fIy\fP), \fBpthread_cond_signal\fP can be used as a slightly more ++efficient alternative to \fBpthread_cond_broadcast\fP. In doubt, use ++\fBpthread_cond_broadcast\fP. + +-To wait for |x| to becomes greater than |y| with a timeout of 5 ++To wait for \fIx\fP to becomes greater than \fIy\fP with a timeout of 5 + seconds, do: + + .RS +--- a/linuxthreads/man/pthread_create.man ++++ b/linuxthreads/man/pthread_create.man +@@ -9,38 +9,38 @@ + int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg); + + .SH DESCRIPTION +-!pthread_create! creates a new thread of control that executes ++\fBpthread_create\fP creates a new thread of control that executes + concurrently with the calling thread. The new thread applies the +-function |start_routine| passing it |arg| as first argument. The new +-thread terminates either explicitly, by calling !pthread_exit!(3), +-or implicitly, by returning from the |start_routine| function. The +-latter case is equivalent to calling !pthread_exit!(3) with the result +-returned by |start_routine| as exit code. +- +-The |attr| argument specifies thread attributes to be applied to the +-new thread. See !pthread_attr_init!(3) for a complete list of thread +-attributes. The |attr| argument can also be !NULL!, in which case ++function \fIstart_routine\fP passing it \fIarg\fP as first argument. The new ++thread terminates either explicitly, by calling \fBpthread_exit\fP(3), ++or implicitly, by returning from the \fIstart_routine\fP function. The ++latter case is equivalent to calling \fBpthread_exit\fP(3) with the result ++returned by \fIstart_routine\fP as exit code. ++ ++The \fIattr\fP argument specifies thread attributes to be applied to the ++new thread. See \fBpthread_attr_init\fP(3) for a complete list of thread ++attributes. The \fIattr\fP argument can also be \fBNULL\fP, in which case + default attributes are used: the created thread is joinable (not + detached) and has default (non real-time) scheduling policy. + + .SH "RETURN VALUE" + On success, the identifier of the newly created thread is stored in +-the location pointed by the |thread| argument, and a 0 is returned. On ++the location pointed by the \fIthread\fP argument, and a 0 is returned. On + error, a non-zero error code is returned. + + .SH ERRORS + .TP +-!EAGAIN! ++\fBEAGAIN\fP + not enough system resources to create a process for the new thread. + .TP +-!EAGAIN! +-more than !PTHREAD_THREADS_MAX! threads are already active. ++\fBEAGAIN\fP ++more than \fBPTHREAD_THREADS_MAX\fP threads are already active. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_exit!(3), +-!pthread_join!(3), +-!pthread_detach!(3), +-!pthread_attr_init!(3). ++\fBpthread_exit\fP(3), ++\fBpthread_join\fP(3), ++\fBpthread_detach\fP(3), ++\fBpthread_attr_init\fP(3). +--- a/linuxthreads/man/pthread_detach.man ++++ b/linuxthreads/man/pthread_detach.man +@@ -9,36 +9,36 @@ + int pthread_detach(pthread_t th); + + .SH DESCRIPTION +-!pthread_detach! put the thread |th| in the detached state. This +-guarantees that the memory resources consumed by |th| will be freed +-immediately when |th| terminates. However, this prevents other threads +-from synchronizing on the termination of |th| using !pthread_join!. ++\fBpthread_detach\fP put the thread \fIth\fP in the detached state. This ++guarantees that the memory resources consumed by \fIth\fP will be freed ++immediately when \fIth\fP terminates. However, this prevents other threads ++from synchronizing on the termination of \fIth\fP using \fBpthread_join\fP. + + A thread can be created initially in the detached state, using the +-!detachstate! attribute to !pthread_create!(3). In contrast, +-!pthread_detach! applies to threads created in the joinable state, and ++\fBdetachstate\fP attribute to \fBpthread_create\fP(3). In contrast, ++\fBpthread_detach\fP applies to threads created in the joinable state, and + which need to be put in the detached state later. + +-After !pthread_detach! completes, subsequent attempts to perform +-!pthread_join! on |th| will fail. If another thread is already joining +-the thread |th| at the time !pthread_detach! is called, +-!pthread_detach! does nothing and leaves |th| in the joinable state. ++After \fBpthread_detach\fP completes, subsequent attempts to perform ++\fBpthread_join\fP on \fIth\fP will fail. If another thread is already joining ++the thread \fIth\fP at the time \fBpthread_detach\fP is called, ++\fBpthread_detach\fP does nothing and leaves \fIth\fP in the joinable state. + + .SH "RETURN VALUE" + On success, 0 is returned. On error, a non-zero error code is returned. + + .SH ERRORS + .TP +-!ESRCH! +-No thread could be found corresponding to that specified by |th| ++\fBESRCH\fP ++No thread could be found corresponding to that specified by \fIth\fP + .TP +-!EINVAL! +-the thread |th| is already in the detached state ++\fBEINVAL\fP ++the thread \fIth\fP is already in the detached state + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_create!(3), +-!pthread_join!(3), +-!pthread_attr_setdetachstate!(3). +\ No newline at end of file ++\fBpthread_create\fP(3), ++\fBpthread_join\fP(3), ++\fBpthread_attr_setdetachstate\fP(3). +\ No newline at end of file +--- a/linuxthreads/man/pthread_equal.man ++++ b/linuxthreads/man/pthread_equal.man +@@ -9,15 +9,15 @@ + int pthread_equal(pthread_t thread1, pthread_t thread2); + + .SH DESCRIPTION +-!pthread_equal! determines if two thread identifiers refer to the same ++\fBpthread_equal\fP determines if two thread identifiers refer to the same + thread. + + .SH "RETURN VALUE" +-A non-zero value is returned if |thread1| and |thread2| refer to the ++A non-zero value is returned if \fIthread1\fP and \fIthread2\fP refer to the + same thread. Otherwise, 0 is returned. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_self!(3). ++\fBpthread_self\fP(3). +--- a/linuxthreads/man/pthread_exit.man ++++ b/linuxthreads/man/pthread_exit.man +@@ -9,24 +9,24 @@ + void pthread_exit(void *retval); + + .SH DESCRIPTION +-!pthread_exit! terminates the execution of the calling thread. ++\fBpthread_exit\fP terminates the execution of the calling thread. + All cleanup handlers that have been set for the calling thread with +-!pthread_cleanup_push!(3) are executed in reverse order (the most ++\fBpthread_cleanup_push\fP(3) are executed in reverse order (the most + recently pushed handler is executed first). Finalization functions for +-thread-specific data are then called for all keys that have non-!NULL! ++thread-specific data are then called for all keys that have non-\fBNULL\fP + values associated with them in the calling thread (see +-!pthread_key_create!(3)). Finally, execution of the calling thread is ++\fBpthread_key_create\fP(3)). Finally, execution of the calling thread is + stopped. + +-The |retval| argument is the return value of the thread. It can be +-consulted from another thread using !pthread_join!(3). ++The \fIretval\fP argument is the return value of the thread. It can be ++consulted from another thread using \fBpthread_join\fP(3). + + .SH "RETURN VALUE" +-The !pthread_exit! function never returns. ++The \fBpthread_exit\fP function never returns. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_create!(3), +-!pthread_join!(3). ++\fBpthread_create\fP(3), ++\fBpthread_join\fP(3). +--- a/linuxthreads/man/pthread_join.man ++++ b/linuxthreads/man/pthread_join.man +@@ -9,62 +9,62 @@ + int pthread_join(pthread_t th, void **thread_return); + + .SH DESCRIPTION +-!pthread_join! suspends the execution of the calling thread until the +-thread identified by |th| terminates, either by calling !pthread_exit!(3) ++\fBpthread_join\fP suspends the execution of the calling thread until the ++thread identified by \fIth\fP terminates, either by calling \fBpthread_exit\fP(3) + or by being cancelled. + +-If |thread_return| is not !NULL!, the return value of |th| is stored +-in the location pointed to by |thread_return|. The return value of +-|th| is either the argument it gave to !pthread_exit!(3), or +-!PTHREAD_CANCELED! if |th| was cancelled. +- +-The joined thread !th! must be in the joinable state: it must not have +-been detached using !pthread_detach!(3) or the +-!PTHREAD_CREATE_DETACHED! attribute to !pthread_create!(3). ++If \fIthread_return\fP is not \fBNULL\fP, the return value of \fIth\fP is stored ++in the location pointed to by \fIthread_return\fP. The return value of ++\fIth\fP is either the argument it gave to \fBpthread_exit\fP(3), or ++\fBPTHREAD_CANCELED\fP if \fIth\fP was cancelled. ++ ++The joined thread \fBth\fP must be in the joinable state: it must not have ++been detached using \fBpthread_detach\fP(3) or the ++\fBPTHREAD_CREATE_DETACHED\fP attribute to \fBpthread_create\fP(3). + + When a joinable thread terminates, its memory resources (thread + descriptor and stack) are not deallocated until another thread +-performs !pthread_join! on it. Therefore, !pthread_join! must be ++performs \fBpthread_join\fP on it. Therefore, \fBpthread_join\fP must be + called once for each joinable thread created to avoid memory leaks. + + At most one thread can wait for the termination of a given +-thread. Calling !pthread_join! on a thread |th| on which another ++thread. Calling \fBpthread_join\fP on a thread \fIth\fP on which another + thread is already waiting for termination returns an error. + + .SH CANCELLATION + +-!pthread_join! is a cancellation point. If a thread is canceled while +-suspended in !pthread_join!, the thread execution resumes immediately +-and the cancellation is executed without waiting for the |th| thread +-to terminate. If cancellation occurs during !pthread_join!, the |th| ++\fBpthread_join\fP is a cancellation point. If a thread is canceled while ++suspended in \fBpthread_join\fP, the thread execution resumes immediately ++and the cancellation is executed without waiting for the \fIth\fP thread ++to terminate. If cancellation occurs during \fBpthread_join\fP, the \fIth\fP + thread remains not joined. + + .SH "RETURN VALUE" +-On success, the return value of |th| is stored in the location pointed +-to by |thread_return|, and 0 is returned. On error, a non-zero error ++On success, the return value of \fIth\fP is stored in the location pointed ++to by \fIthread_return\fP, and 0 is returned. On error, a non-zero error + code is returned. + + .SH ERRORS + .TP +-!ESRCH! +-No thread could be found corresponding to that specified by |th|. ++\fBESRCH\fP ++No thread could be found corresponding to that specified by \fIth\fP. + .TP +-!EINVAL! +-The |th| thread has been detached. ++\fBEINVAL\fP ++The \fIth\fP thread has been detached. + .TP +-!EINVAL! +-Another thread is already waiting on termination of |th|. ++\fBEINVAL\fP ++Another thread is already waiting on termination of \fIth\fP. + .TP +-!EDEADLK! +-The |th| argument refers to the calling thread. ++\fBEDEADLK\fP ++The \fIth\fP argument refers to the calling thread. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_exit!(3), +-!pthread_detach!(3), +-!pthread_create!(3), +-!pthread_attr_setdetachstate!(3), +-!pthread_cleanup_push!(3), +-!pthread_key_create!(3). ++\fBpthread_exit\fP(3), ++\fBpthread_detach\fP(3), ++\fBpthread_create\fP(3), ++\fBpthread_attr_setdetachstate\fP(3), ++\fBpthread_cleanup_push\fP(3), ++\fBpthread_key_create\fP(3). +--- a/linuxthreads/man/pthread_key_create.man ++++ b/linuxthreads/man/pthread_key_create.man +@@ -23,81 +23,81 @@ + + Each thread possesses a private memory block, the thread-specific data + area, or TSD area for short. This area is indexed by TSD keys. The TSD +-area associates values of type !void *! to TSD keys. TSD keys are ++area associates values of type \fBvoid *\fP to TSD keys. TSD keys are + common to all threads, but the value associated with a given TSD key + can be different in each thread. + +-For concreteness, the TSD areas can be viewed as arrays of !void *! ++For concreteness, the TSD areas can be viewed as arrays of \fBvoid *\fP + pointers, TSD keys as integer indices into these arrays, and the value + of a TSD key as the value of the corresponding array element in the + calling thread. + +-When a thread is created, its TSD area initially associates !NULL! ++When a thread is created, its TSD area initially associates \fBNULL\fP + with all keys. + +-!pthread_key_create! allocates a new TSD key. The key is stored in the +-location pointed to by |key|. There is a limit of !PTHREAD_KEYS_MAX! ++\fBpthread_key_create\fP allocates a new TSD key. The key is stored in the ++location pointed to by \fIkey\fP. There is a limit of \fBPTHREAD_KEYS_MAX\fP + on the number of keys allocated at a given time. The value initially +-associated with the returned key is !NULL! in all currently executing ++associated with the returned key is \fBNULL\fP in all currently executing + threads. + +-The |destr_function| argument, if not !NULL!, specifies a destructor ++The \fIdestr_function\fP argument, if not \fBNULL\fP, specifies a destructor + function associated with the key. When a thread terminates via +-!pthread_exit! or by cancellation, |destr_function| is called with ++\fBpthread_exit\fP or by cancellation, \fIdestr_function\fP is called with + arguments the value associated with the key in that thread. The +-|destr_function| is not called if that value is !NULL!. The order in ++\fIdestr_function\fP is not called if that value is \fBNULL\fP. The order in + which destructor functions are called at thread termination time is + unspecified. + +-Before the destructor function is called, the !NULL! value is ++Before the destructor function is called, the \fBNULL\fP value is + associated with the key in the current thread. A destructor function +-might, however, re-associate non-!NULL! values to that key or some ++might, however, re-associate non-\fBNULL\fP values to that key or some + other key. To deal with this, if after all the destructors have been +-called for all non-!NULL! values, there are still some non-!NULL! ++called for all non-\fBNULL\fP values, there are still some non-\fBNULL\fP + values with associated destructors, then the process is repeated. The + LinuxThreads implementation stops the process after +-!PTHREAD_DESTRUCTOR_ITERATIONS! iterations, even if some non-!NULL! ++\fBPTHREAD_DESTRUCTOR_ITERATIONS\fP iterations, even if some non-\fBNULL\fP + values with associated descriptors remain. Other implementations may + loop indefinitely. + +-!pthread_key_delete! deallocates a TSD key. It does not check whether +-non-!NULL! values are associated with that key in the currently ++\fBpthread_key_delete\fP deallocates a TSD key. It does not check whether ++non-\fBNULL\fP values are associated with that key in the currently + executing threads, nor call the destructor function associated with + the key. + +-!pthread_setspecific! changes the value associated with |key| in the +-calling thread, storing the given |pointer| instead. ++\fBpthread_setspecific\fP changes the value associated with \fIkey\fP in the ++calling thread, storing the given \fIpointer\fP instead. + +-!pthread_getspecific! returns the value currently associated with +-|key| in the calling thread. ++\fBpthread_getspecific\fP returns the value currently associated with ++\fIkey\fP in the calling thread. + + .SH "RETURN VALUE" + +-!pthread_key_create!, !pthread_key_delete!, and !pthread_setspecific! ++\fBpthread_key_create\fP, \fBpthread_key_delete\fP, and \fBpthread_setspecific\fP + return 0 on success and a non-zero error code on failure. If +-successful, !pthread_key_create! stores the newly allocated key in the +-location pointed to by its |key| argument. ++successful, \fBpthread_key_create\fP stores the newly allocated key in the ++location pointed to by its \fIkey\fP argument. + +-!pthread_getspecific! returns the value associated with |key| on +-success, and !NULL! on error. ++\fBpthread_getspecific\fP returns the value associated with \fIkey\fP on ++success, and \fBNULL\fP on error. + + .SH ERRORS +-!pthread_key_create! returns the following error code on error: ++\fBpthread_key_create\fP returns the following error code on error: + .RS + .TP +-!EAGAIN! +-!PTHREAD_KEYS_MAX! keys are already allocated ++\fBEAGAIN\fP ++\fBPTHREAD_KEYS_MAX\fP keys are already allocated + .RE + +-!pthread_key_delete! and !pthread_setspecific! return the following ++\fBpthread_key_delete\fP and \fBpthread_setspecific\fP return the following + error code on error: + .RS + .TP +-!EINVAL! +-|key| is not a valid, allocated TSD key ++\fBEINVAL\fP ++\fIkey\fP is not a valid, allocated TSD key + .RE + +-!pthread_getspecific! returns !NULL! if |key| is not a valid, ++\fBpthread_getspecific\fP returns \fBNULL\fP if \fIkey\fP is not a valid, + allocated TSD key. + + .SH AUTHOR +--- a/linuxthreads/man/pthread_kill_other_threads_np.man ++++ b/linuxthreads/man/pthread_kill_other_threads_np.man +@@ -9,14 +9,14 @@ + void pthread_kill_other_threads_np(void); + + .SH DESCRIPTION +-!pthread_kill_other_threads_np! is a non-portable LinuxThreads extension. ++\fBpthread_kill_other_threads_np\fP is a non-portable LinuxThreads extension. + It causes all threads in the program to terminate immediately, except + the calling thread which proceeds normally. It is intended to be +-called just before a thread calls one of the !exec! functions, +-e.g. !execve!(2). ++called just before a thread calls one of the \fBexec\fP functions, ++e.g. \fBexecve\fP(2). + + Termination of the other threads is not performed through +-!pthread_cancel!(3) and completely bypasses the cancellation ++\fBpthread_cancel\fP(3) and completely bypasses the cancellation + mechanism. Hence, the current settings for cancellation state and + cancellation type are ignored, and the cleanup handlers are not + executed in the terminated threads. +@@ -25,16 +25,16 @@ + Xavier Leroy + + .SH "SEE ALSO" +-!execve!(2), +-!pthread_setcancelstate!(3), +-!pthread_setcanceltype!(3), +-!pthread_cancel!(3). ++\fBexecve\fP(2), ++\fBpthread_setcancelstate\fP(3), ++\fBpthread_setcanceltype\fP(3), ++\fBpthread_cancel\fP(3). + + .SH BUGS + +-According to POSIX 1003.1c, a successful !exec*! in one of the threads ++According to POSIX 1003.1c, a successful \fBexec*\fP in one of the threads + should terminate automatically all other threads in the program. + This behavior is not yet implemented in LinuxThreads. +-Calling !pthread_kill_other_threads_np! before !exec*! achieves much +-of the same behavior, except that if !exec*! ultimately fails, then ++Calling \fBpthread_kill_other_threads_np\fP before \fBexec*\fP achieves much ++of the same behavior, except that if \fBexec*\fP ultimately fails, then + all other threads are already killed. +--- a/linuxthreads/man/pthread_mutexattr_init.man ++++ b/linuxthreads/man/pthread_mutexattr_init.man +@@ -21,64 +21,64 @@ + .SH DESCRIPTION + + Mutex attributes can be specified at mutex creation time, by passing a +-mutex attribute object as second argument to !pthread_mutex_init!(3). +-Passing !NULL! is equivalent to passing a mutex attribute object with ++mutex attribute object as second argument to \fBpthread_mutex_init\fP(3). ++Passing \fBNULL\fP is equivalent to passing a mutex attribute object with + all attributes set to their default values. + +-!pthread_mutexattr_init! initializes the mutex attribute object |attr| ++\fBpthread_mutexattr_init\fP initializes the mutex attribute object \fIattr\fP + and fills it with default values for the attributes. + +-!pthread_mutexattr_destroy! destroys a mutex attribute object, which +-must not be reused until it is reinitialized. !pthread_mutexattr_destroy! ++\fBpthread_mutexattr_destroy\fP destroys a mutex attribute object, which ++must not be reused until it is reinitialized. \fBpthread_mutexattr_destroy\fP + does nothing in the LinuxThreads implementation. + + LinuxThreads supports only one mutex attribute: the mutex kind, which +-is either !PTHREAD_MUTEX_FAST_NP! for ``fast'' mutexes, +-!PTHREAD_MUTEX_RECURSIVE_NP! for ``recursive'' mutexes, +-or !PTHREAD_MUTEX_ERRORCHECK_NP! for ``error checking'' mutexes. +-As the !NP! suffix indicates, this is a non-portable extension to the ++is either \fBPTHREAD_MUTEX_FAST_NP\fP for ``fast'' mutexes, ++\fBPTHREAD_MUTEX_RECURSIVE_NP\fP for ``recursive'' mutexes, ++or \fBPTHREAD_MUTEX_ERRORCHECK_NP\fP for ``error checking'' mutexes. ++As the \fBNP\fP suffix indicates, this is a non-portable extension to the + POSIX standard and should not be employed in portable programs. + + The mutex kind determines what happens if a thread attempts to lock a +-mutex it already owns with !pthread_mutex_lock!(3). If the mutex is of +-the ``fast'' kind, !pthread_mutex_lock!(3) simply suspends the calling ++mutex it already owns with \fBpthread_mutex_lock\fP(3). If the mutex is of ++the ``fast'' kind, \fBpthread_mutex_lock\fP(3) simply suspends the calling + thread forever. If the mutex is of the ``error checking'' kind, +-!pthread_mutex_lock!(3) returns immediately with the error code +-!EDEADLK!. If the mutex is of the ``recursive'' kind, the call to +-!pthread_mutex_lock!(3) returns immediately with a success return ++\fBpthread_mutex_lock\fP(3) returns immediately with the error code ++\fBEDEADLK\fP. If the mutex is of the ``recursive'' kind, the call to ++\fBpthread_mutex_lock\fP(3) returns immediately with a success return + code. The number of times the thread owning the mutex has locked it is + recorded in the mutex. The owning thread must call +-!pthread_mutex_unlock!(3) the same number of times before the mutex ++\fBpthread_mutex_unlock\fP(3) the same number of times before the mutex + returns to the unlocked state. + +-The default mutex kind is ``fast'', that is, !PTHREAD_MUTEX_FAST_NP!. ++The default mutex kind is ``fast'', that is, \fBPTHREAD_MUTEX_FAST_NP\fP. + +-!pthread_mutexattr_settype! sets the mutex kind attribute in |attr| +-to the value specified by |kind|. ++\fBpthread_mutexattr_settype\fP sets the mutex kind attribute in \fIattr\fP ++to the value specified by \fIkind\fP. + +-!pthread_mutexattr_gettype! retrieves the current value of the +-mutex kind attribute in |attr| and stores it in the location pointed +-to by |kind|. ++\fBpthread_mutexattr_gettype\fP retrieves the current value of the ++mutex kind attribute in \fIattr\fP and stores it in the location pointed ++to by \fIkind\fP. + + .SH "RETURN VALUE" +-!pthread_mutexattr_init!, !pthread_mutexattr_destroy! and +-!pthread_mutexattr_gettype! always return 0. ++\fBpthread_mutexattr_init\fP, \fBpthread_mutexattr_destroy\fP and ++\fBpthread_mutexattr_gettype\fP always return 0. + +-!pthread_mutexattr_settype! returns 0 on success and a non-zero ++\fBpthread_mutexattr_settype\fP returns 0 on success and a non-zero + error code on error. + + .SH ERRORS + +-On error, !pthread_mutexattr_settype! returns the following error code: ++On error, \fBpthread_mutexattr_settype\fP returns the following error code: + .TP +-!EINVAL! +-|kind| is neither !PTHREAD_MUTEX_FAST_NP! nor !PTHREAD_MUTEX_RECURSIVE_NP! +-nor !PTHREAD_MUTEX_ERRORCHECK_NP! ++\fBEINVAL\fP ++\fIkind\fP is neither \fBPTHREAD_MUTEX_FAST_NP\fP nor \fBPTHREAD_MUTEX_RECURSIVE_NP\fP ++nor \fBPTHREAD_MUTEX_ERRORCHECK_NP\fP + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_mutex_init!(3), +-!pthread_mutex_lock!(3), +-!pthread_mutex_unlock!(3). ++\fBpthread_mutex_init\fP(3), ++\fBpthread_mutex_lock\fP(3), ++\fBpthread_mutex_unlock\fP(3). +--- a/linuxthreads/man/pthread_mutexattr_setkind_np.man ++++ b/linuxthreads/man/pthread_mutexattr_setkind_np.man +@@ -14,26 +14,26 @@ + + .SH DESCRIPTION + +-These functions are deprecated, use !pthread_mutexattr_settype!(3) +-and !pthread_mutexattr_gettype!(3) instead. ++These functions are deprecated, use \fBpthread_mutexattr_settype\fP(3) ++and \fBpthread_mutexattr_gettype\fP(3) instead. + + .SH "RETURN VALUE" +-!pthread_mutexattr_getkind_np! always returns 0. ++\fBpthread_mutexattr_getkind_np\fP always returns 0. + +-!pthread_mutexattr_setkind_np! returns 0 on success and a non-zero ++\fBpthread_mutexattr_setkind_np\fP returns 0 on success and a non-zero + error code on error. + + .SH ERRORS + +-On error, !pthread_mutexattr_setkind_np! returns the following error code: ++On error, \fBpthread_mutexattr_setkind_np\fP returns the following error code: + .TP +-!EINVAL! +-|kind| is neither !PTHREAD_MUTEX_FAST_NP! nor !PTHREAD_MUTEX_RECURSIVE_NP! +-nor !PTHREAD_MUTEX_ERRORCHECK_NP! ++\fBEINVAL\fP ++\fIkind\fP is neither \fBPTHREAD_MUTEX_FAST_NP\fP nor \fBPTHREAD_MUTEX_RECURSIVE_NP\fP ++nor \fBPTHREAD_MUTEX_ERRORCHECK_NP\fP + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_mutexattr_settype!(3), +-!pthread_mutexattr_gettype!(3). ++\fBpthread_mutexattr_settype\fP(3), ++\fBpthread_mutexattr_gettype\fP(3). +--- a/linuxthreads/man/pthread_mutex_init.man ++++ b/linuxthreads/man/pthread_mutex_init.man +@@ -38,75 +38,75 @@ + that is already locked by another thread is suspended until the owning + thread unlocks the mutex first. + +-!pthread_mutex_init! initializes the mutex object pointed to by +-|mutex| according to the mutex attributes specified in |mutexattr|. +-If |mutexattr| is !NULL!, default attributes are used instead. ++\fBpthread_mutex_init\fP initializes the mutex object pointed to by ++\fImutex\fP according to the mutex attributes specified in \fImutexattr\fP. ++If \fImutexattr\fP is \fBNULL\fP, default attributes are used instead. + + The LinuxThreads implementation supports only one mutex attributes, +-the |mutex kind|, which is either ``fast'', ``recursive'', or ++the \fImutex kind\fP, which is either ``fast'', ``recursive'', or + ``error checking''. The kind of a mutex determines whether + it can be locked again by a thread that already owns it. +-The default kind is ``fast''. See !pthread_mutexattr_init!(3) for more ++The default kind is ``fast''. See \fBpthread_mutexattr_init\fP(3) for more + information on mutex attributes. + +-Variables of type !pthread_mutex_t! can also be initialized +-statically, using the constants !PTHREAD_MUTEX_INITIALIZER! (for fast +-mutexes), !PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP! (for recursive +-mutexes), and !PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP! (for error checking ++Variables of type \fBpthread_mutex_t\fP can also be initialized ++statically, using the constants \fBPTHREAD_MUTEX_INITIALIZER\fP (for fast ++mutexes), \fBPTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP\fP (for recursive ++mutexes), and \fBPTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP\fP (for error checking + mutexes). + +-!pthread_mutex_lock! locks the given mutex. If the mutex is currently ++\fBpthread_mutex_lock\fP locks the given mutex. If the mutex is currently + unlocked, it becomes locked and owned by the calling thread, and +-!pthread_mutex_lock! returns immediately. If the mutex is already +-locked by another thread, !pthread_mutex_lock! suspends the calling ++\fBpthread_mutex_lock\fP returns immediately. If the mutex is already ++locked by another thread, \fBpthread_mutex_lock\fP suspends the calling + thread until the mutex is unlocked. + + If the mutex is already locked by the calling thread, the behavior of +-!pthread_mutex_lock! depends on the kind of the mutex. If the mutex is ++\fBpthread_mutex_lock\fP depends on the kind of the mutex. If the mutex is + of the ``fast'' kind, the calling thread is suspended until the mutex + is unlocked, thus effectively causing the calling thread to + deadlock. If the mutex is of the ``error checking'' kind, +-!pthread_mutex_lock! returns immediately with the error code !EDEADLK!. +-If the mutex is of the ``recursive'' kind, !pthread_mutex_lock! ++\fBpthread_mutex_lock\fP returns immediately with the error code \fBEDEADLK\fP. ++If the mutex is of the ``recursive'' kind, \fBpthread_mutex_lock\fP + succeeds and returns immediately, recording the number of times the + calling thread has locked the mutex. An equal number of +-!pthread_mutex_unlock! operations must be performed before the mutex ++\fBpthread_mutex_unlock\fP operations must be performed before the mutex + returns to the unlocked state. + +-!pthread_mutex_trylock! behaves identically to !pthread_mutex_lock!, ++\fBpthread_mutex_trylock\fP behaves identically to \fBpthread_mutex_lock\fP, + except that it does not block the calling thread if the mutex is + already locked by another thread (or by the calling thread in the case +-of a ``fast'' mutex). Instead, !pthread_mutex_trylock! returns +-immediately with the error code !EBUSY!. ++of a ``fast'' mutex). Instead, \fBpthread_mutex_trylock\fP returns ++immediately with the error code \fBEBUSY\fP. + +-!pthread_mutex_unlock! unlocks the given mutex. The mutex is assumed ++\fBpthread_mutex_unlock\fP unlocks the given mutex. The mutex is assumed + to be locked and owned by the calling thread on entrance to +-!pthread_mutex_unlock!. If the mutex is of the ``fast'' kind, +-!pthread_mutex_unlock! always returns it to the unlocked state. If it ++\fBpthread_mutex_unlock\fP. If the mutex is of the ``fast'' kind, ++\fBpthread_mutex_unlock\fP always returns it to the unlocked state. If it + is of the ``recursive'' kind, it decrements the locking count of the +-mutex (number of !pthread_mutex_lock! operations performed on it by ++mutex (number of \fBpthread_mutex_lock\fP operations performed on it by + the calling thread), and only when this count reaches zero is the + mutex actually unlocked. + + On ``error checking'' and ``recursive'' mutexes, +-!pthread_mutex_unlock! actually checks at run-time that the mutex is ++\fBpthread_mutex_unlock\fP actually checks at run-time that the mutex is + locked on entrance, and that it was locked by the same thread that is +-now calling !pthread_mutex_unlock!. If these conditions are not met, ++now calling \fBpthread_mutex_unlock\fP. If these conditions are not met, + an error code is returned and the mutex remains unchanged. ``Fast'' + mutexes perform no such checks, thus allowing a locked mutex to be + unlocked by a thread other than its owner. This is non-portable behavior + and must not be relied upon. + +-!pthread_mutex_destroy! destroys a mutex object, freeing the resources ++\fBpthread_mutex_destroy\fP destroys a mutex object, freeing the resources + it might hold. The mutex must be unlocked on entrance. In the + LinuxThreads implementation, no resources are associated with mutex +-objects, thus !pthread_mutex_destroy! actually does nothing except ++objects, thus \fBpthread_mutex_destroy\fP actually does nothing except + checking that the mutex is unlocked. + + .SH CANCELLATION + + None of the mutex functions is a cancellation point, not even +-!pthread_mutex_lock!, in spite of the fact that it can suspend a ++\fBpthread_mutex_lock\fP, in spite of the fact that it can suspend a + thread for arbitrary durations. This way, the status of mutexes at + cancellation points is predictable, allowing cancellation handlers to + unlock precisely those mutexes that need to be unlocked before the +@@ -117,58 +117,58 @@ + + The mutex functions are not async-signal safe. What this means is that + they should not be called from a signal handler. In particular, +-calling !pthread_mutex_lock! or !pthread_mutex_unlock! from a signal ++calling \fBpthread_mutex_lock\fP or \fBpthread_mutex_unlock\fP from a signal + handler may deadlock the calling thread. + + .SH "RETURN VALUE" + +-!pthread_mutex_init! always returns 0. The other mutex functions ++\fBpthread_mutex_init\fP always returns 0. The other mutex functions + return 0 on success and a non-zero error code on error. + + .SH ERRORS + +-The !pthread_mutex_lock! function returns the following error code ++The \fBpthread_mutex_lock\fP function returns the following error code + on error: + .RS + .TP +-!EINVAL! ++\fBEINVAL\fP + the mutex has not been properly initialized. + + .TP +-!EDEADLK! ++\fBEDEADLK\fP + the mutex is already locked by the calling thread + (``error checking'' mutexes only). + .RE + +-The !pthread_mutex_trylock! function returns the following error codes ++The \fBpthread_mutex_trylock\fP function returns the following error codes + on error: + .RS + .TP +-!EBUSY! ++\fBEBUSY\fP + the mutex could not be acquired because it was currently locked. + + .TP +-!EINVAL! ++\fBEINVAL\fP + the mutex has not been properly initialized. + .RE + +-The !pthread_mutex_unlock! function returns the following error code ++The \fBpthread_mutex_unlock\fP function returns the following error code + on error: + .RS + .TP +-!EINVAL! ++\fBEINVAL\fP + the mutex has not been properly initialized. + + .TP +-!EPERM! ++\fBEPERM\fP + the calling thread does not own the mutex (``error checking'' mutexes only). + .RE + +-The !pthread_mutex_destroy! function returns the following error code ++The \fBpthread_mutex_destroy\fP function returns the following error code + on error: + .RS + .TP +-!EBUSY! ++\fBEBUSY\fP + the mutex is currently locked. + .RE + +@@ -176,13 +176,13 @@ + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_mutexattr_init!(3), +-!pthread_mutexattr_setkind_np!(3), +-!pthread_cancel!(3). ++\fBpthread_mutexattr_init\fP(3), ++\fBpthread_mutexattr_setkind_np\fP(3), ++\fBpthread_cancel\fP(3). + + .SH EXAMPLE + +-A shared global variable |x| can be protected by a mutex as follows: ++A shared global variable \fIx\fP can be protected by a mutex as follows: + + .RS + .ft 3 +@@ -195,8 +195,8 @@ + .RE + .fi + +-All accesses and modifications to |x| should be bracketed by calls to +-!pthread_mutex_lock! and !pthread_mutex_unlock! as follows: ++All accesses and modifications to \fIx\fP should be bracketed by calls to ++\fBpthread_mutex_lock\fP and \fBpthread_mutex_unlock\fP as follows: + + .RS + .ft 3 +--- a/linuxthreads/man/pthread_once.man ++++ b/linuxthreads/man/pthread_once.man +@@ -12,19 +12,19 @@ + + .SH DESCRIPTION + +-The purpose of !pthread_once! is to ensure that a piece of +-initialization code is executed at most once. The |once_control| ++The purpose of \fBpthread_once\fP is to ensure that a piece of ++initialization code is executed at most once. The \fIonce_control\fP + argument points to a static or extern variable statically initialized +-to !PTHREAD_ONCE_INIT!. ++to \fBPTHREAD_ONCE_INIT\fP. + +-The first time !pthread_once! is called with a given |once_control| +-argument, it calls |init_routine| with no argument and changes the +-value of the |once_control| variable to record that initialization has +-been performed. Subsequent calls to !pthread_once! with the same +-!once_control! argument do nothing. ++The first time \fBpthread_once\fP is called with a given \fIonce_control\fP ++argument, it calls \fIinit_routine\fP with no argument and changes the ++value of the \fIonce_control\fP variable to record that initialization has ++been performed. Subsequent calls to \fBpthread_once\fP with the same ++\fBonce_control\fP argument do nothing. + + .SH "RETURN VALUE" +-!pthread_once! always returns 0. ++\fBpthread_once\fP always returns 0. + + .SH ERRORS + None. +--- a/linuxthreads/man/pthread_self.man ++++ b/linuxthreads/man/pthread_self.man +@@ -9,15 +9,15 @@ + pthread_t pthread_self(void); + + .SH DESCRIPTION +-!pthread_self! return the thread identifier for the calling thread. ++\fBpthread_self\fP return the thread identifier for the calling thread. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_equal!(3), +-!pthread_join!(3), +-!pthread_detach!(3), +-!pthread_setschedparam!(3), +-!pthread_getschedparam!(3). ++\fBpthread_equal\fP(3), ++\fBpthread_join\fP(3), ++\fBpthread_detach\fP(3), ++\fBpthread_setschedparam\fP(3), ++\fBpthread_getschedparam\fP(3). + +--- a/linuxthreads/man/pthread_setschedparam.man ++++ b/linuxthreads/man/pthread_setschedparam.man +@@ -14,66 +14,66 @@ + + .SH DESCRIPTION + +-!pthread_setschedparam! sets the scheduling parameters for the thread +-|target_thread| as indicated by |policy| and |param|. |policy| can be +-either !SCHED_OTHER! (regular, non-realtime scheduling), !SCHED_RR! +-(realtime, round-robin) or !SCHED_FIFO! (realtime, first-in +-first-out). |param| specifies the scheduling priority for the two +-realtime policies. See !sched_setpolicy!(2) for more information on ++\fBpthread_setschedparam\fP sets the scheduling parameters for the thread ++\fItarget_thread\fP as indicated by \fIpolicy\fP and \fIparam\fP. \fIpolicy\fP can be ++either \fBSCHED_OTHER\fP (regular, non-realtime scheduling), \fBSCHED_RR\fP ++(realtime, round-robin) or \fBSCHED_FIFO\fP (realtime, first-in ++first-out). \fIparam\fP specifies the scheduling priority for the two ++realtime policies. See \fBsched_setpolicy\fP(2) for more information on + scheduling policies. + +-The realtime scheduling policies !SCHED_RR! and !SCHED_FIFO! are ++The realtime scheduling policies \fBSCHED_RR\fP and \fBSCHED_FIFO\fP are + available only to processes with superuser privileges. + +-!pthread_getschedparam! retrieves the scheduling policy and scheduling +-parameters for the thread |target_thread| and store them in the +-locations pointed to by |policy| and |param|, respectively. ++\fBpthread_getschedparam\fP retrieves the scheduling policy and scheduling ++parameters for the thread \fItarget_thread\fP and store them in the ++locations pointed to by \fIpolicy\fP and \fIparam\fP, respectively. + + .SH "RETURN VALUE" +-!pthread_setschedparam! and !pthread_getschedparam! return 0 on ++\fBpthread_setschedparam\fP and \fBpthread_getschedparam\fP return 0 on + success and a non-zero error code on error. + + .SH ERRORS +-On error, !pthread_setschedparam! returns the following error codes: ++On error, \fBpthread_setschedparam\fP returns the following error codes: + .RS + .TP +-!EINVAL! +-|policy| is not one of !SCHED_OTHER!, !SCHED_RR!, !SCHED_FIFO! ++\fBEINVAL\fP ++\fIpolicy\fP is not one of \fBSCHED_OTHER\fP, \fBSCHED_RR\fP, \fBSCHED_FIFO\fP + + .TP +-!EINVAL! +-the priority value specified by |param| is not valid for the specified policy ++\fBEINVAL\fP ++the priority value specified by \fIparam\fP is not valid for the specified policy + + .TP +-!EPERM! ++\fBEPERM\fP + the calling process does not have superuser permissions + + .TP +-!ESRCH! +-the |target_thread| is invalid or has already terminated ++\fBESRCH\fP ++the \fItarget_thread\fP is invalid or has already terminated + + .TP +-!EFAULT! +-|param| points outside the process memory space ++\fBEFAULT\fP ++\fIparam\fP points outside the process memory space + .RE + +-On error, !pthread_getschedparam! returns the following error codes: ++On error, \fBpthread_getschedparam\fP returns the following error codes: + .RS + .TP +-!ESRCH! +-the |target_thread| is invalid or has already terminated ++\fBESRCH\fP ++the \fItarget_thread\fP is invalid or has already terminated + + .TP +-!EFAULT! +-|policy| or |param| point outside the process memory space ++\fBEFAULT\fP ++\fIpolicy\fP or \fIparam\fP point outside the process memory space + .RE + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!sched_setscheduler!(2), +-!sched_getscheduler!(2), +-!sched_getparam!(2), +-!pthread_attr_setschedpolicy!(3), +-!pthread_attr_setschedparam!(3). ++\fBsched_setscheduler\fP(2), ++\fBsched_getscheduler\fP(2), ++\fBsched_getparam\fP(2), ++\fBpthread_attr_setschedpolicy\fP(3), ++\fBpthread_attr_setschedparam\fP(3). +--- a/linuxthreads/man/pthread_sigmask.man ++++ b/linuxthreads/man/pthread_sigmask.man +@@ -19,36 +19,36 @@ + + .SH DESCRIPTION + +-!pthread_sigmask! changes the signal mask for the calling thread as +-described by the |how| and |newmask| arguments. If |oldmask| is not +-!NULL!, the previous signal mask is stored in the location pointed to +-by |oldmask|. +- +-The meaning of the |how| and |newmask| arguments is the same as for +-!sigprocmask!(2). If |how| is !SIG_SETMASK!, the signal mask is set to +-|newmask|. If |how| is !SIG_BLOCK!, the signals specified to |newmask| +-are added to the current signal mask. If |how| is !SIG_UNBLOCK!, the +-signals specified to |newmask| are removed from the current signal ++\fBpthread_sigmask\fP changes the signal mask for the calling thread as ++described by the \fIhow\fP and \fInewmask\fP arguments. If \fIoldmask\fP is not ++\fBNULL\fP, the previous signal mask is stored in the location pointed to ++by \fIoldmask\fP. ++ ++The meaning of the \fIhow\fP and \fInewmask\fP arguments is the same as for ++\fBsigprocmask\fP(2). If \fIhow\fP is \fBSIG_SETMASK\fP, the signal mask is set to ++\fInewmask\fP. If \fIhow\fP is \fBSIG_BLOCK\fP, the signals specified to \fInewmask\fP ++are added to the current signal mask. If \fIhow\fP is \fBSIG_UNBLOCK\fP, the ++signals specified to \fInewmask\fP are removed from the current signal + mask. + + Recall that signal masks are set on a per-thread basis, but signal +-actions and signal handlers, as set with !sigaction!(2), are shared ++actions and signal handlers, as set with \fBsigaction\fP(2), are shared + between all threads. + +-!pthread_kill! send signal number |signo| to the thread +-|thread|. The signal is delivered and handled as described in +-!kill!(2). +- +-!sigwait! suspends the calling thread until one of the signals +-in |set| is delivered to the calling thread. It then stores the number +-of the signal received in the location pointed to by |sig| and +-returns. The signals in |set| must be blocked and not ignored on +-entrance to !sigwait!. If the delivered signal has a signal handler +-function attached, that function is |not| called. ++\fBpthread_kill\fP send signal number \fIsigno\fP to the thread ++\fIthread\fP. The signal is delivered and handled as described in ++\fBkill\fP(2). ++ ++\fBsigwait\fP suspends the calling thread until one of the signals ++in \fIset\fP is delivered to the calling thread. It then stores the number ++of the signal received in the location pointed to by \fIsig\fP and ++returns. The signals in \fIset\fP must be blocked and not ignored on ++entrance to \fBsigwait\fP. If the delivered signal has a signal handler ++function attached, that function is \fInot\fP called. + + .SH CANCELLATION + +-!sigwait! is a cancellation point. ++\fBsigwait\fP is a cancellation point. + + .SH "RETURN VALUE" + +@@ -56,50 +56,50 @@ + + .SH ERRORS + +-The !pthread_sigmask! function returns the following error codes ++The \fBpthread_sigmask\fP function returns the following error codes + on error: + .RS + .TP +-!EINVAL! +-|how| is not one of !SIG_SETMASK!, !SIG_BLOCK!, or !SIG_UNBLOCK! ++\fBEINVAL\fP ++\fIhow\fP is not one of \fBSIG_SETMASK\fP, \fBSIG_BLOCK\fP, or \fBSIG_UNBLOCK\fP + + .TP +-!EFAULT! +-|newmask| or |oldmask| point to invalid addresses ++\fBEFAULT\fP ++\fInewmask\fP or \fIoldmask\fP point to invalid addresses + .RE + +-The !pthread_kill! function returns the following error codes ++The \fBpthread_kill\fP function returns the following error codes + on error: + .RS + .TP +-!EINVAL! +-|signo| is not a valid signal number ++\fBEINVAL\fP ++\fIsigno\fP is not a valid signal number + + .TP +-!ESRCH! +-the thread |thread| does not exist (e.g. it has already terminated) ++\fBESRCH\fP ++the thread \fIthread\fP does not exist (e.g. it has already terminated) + .RE + +-The !sigwait! function never returns an error. ++The \fBsigwait\fP function never returns an error. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!sigprocmask!(2), +-!kill!(2), +-!sigaction!(2), +-!sigsuspend!(2). ++\fBsigprocmask\fP(2), ++\fBkill\fP(2), ++\fBsigaction\fP(2), ++\fBsigsuspend\fP(2). + + .SH NOTES + +-For !sigwait! to work reliably, the signals being waited for must be ++For \fBsigwait\fP to work reliably, the signals being waited for must be + blocked in all threads, not only in the calling thread, since + otherwise the POSIX semantics for signal delivery do not guarantee +-that it's the thread doing the !sigwait! that will receive the signal. ++that it's the thread doing the \fBsigwait\fP that will receive the signal. + The best way to achieve this is block those signals before any threads + are created, and never unblock them in the program other than by +-calling !sigwait!. ++calling \fBsigwait\fP. + + .SH BUGS + +@@ -112,11 +112,11 @@ + + In LinuxThreads, each thread is actually a kernel process with its own + PID, so external signals are always directed to one particular thread. +-If, for instance, another thread is blocked in !sigwait! on that ++If, for instance, another thread is blocked in \fBsigwait\fP on that + signal, it will not be restarted. + +-The LinuxThreads implementation of !sigwait! installs dummy signal +-handlers for the signals in |set| for the duration of the wait. Since ++The LinuxThreads implementation of \fBsigwait\fP installs dummy signal ++handlers for the signals in \fIset\fP for the duration of the wait. Since + signal handlers are shared between all threads, other threads must not + attach their own signal handlers to these signals, or alternatively + they should all block these signals (which is recommended anyway -- +--- a/linuxthreads/man/sem_init.man ++++ b/linuxthreads/man/sem_init.man +@@ -26,98 +26,98 @@ + + .SH DESCRIPTION + This manual page documents POSIX 1003.1b semaphores, not to be +-confused with SystemV semaphores as described in !ipc!(5), !semctl!(2) +-and !semop!(2). ++confused with SystemV semaphores as described in \fBipc\fP(5), \fBsemctl\fP(2) ++and \fBsemop\fP(2). + + Semaphores are counters for resources shared between threads. The + basic operations on semaphores are: increment the counter atomically, + and wait until the counter is non-null and decrement it atomically. + +-!sem_init! initializes the semaphore object pointed to by |sem|. The +-count associated with the semaphore is set initially to |value|. The +-|pshared| argument indicates whether the semaphore is local to the +-current process (|pshared| is zero) or is to be shared between several +-processes (|pshared| is not zero). LinuxThreads currently does not +-support process-shared semaphores, thus !sem_init! always returns with +-error !ENOSYS! if |pshared| is not zero. ++\fBsem_init\fP initializes the semaphore object pointed to by \fIsem\fP. The ++count associated with the semaphore is set initially to \fIvalue\fP. The ++\fIpshared\fP argument indicates whether the semaphore is local to the ++current process (\fIpshared\fP is zero) or is to be shared between several ++processes (\fIpshared\fP is not zero). LinuxThreads currently does not ++support process-shared semaphores, thus \fBsem_init\fP always returns with ++error \fBENOSYS\fP if \fIpshared\fP is not zero. + +-!sem_wait! suspends the calling thread until the semaphore pointed to +-by |sem| has non-zero count. It then atomically decreases the ++\fBsem_wait\fP suspends the calling thread until the semaphore pointed to ++by \fIsem\fP has non-zero count. It then atomically decreases the + semaphore count. + +-!sem_trywait! is a non-blocking variant of !sem_wait!. If the +-semaphore pointed to by |sem| has non-zero count, the count is +-atomically decreased and !sem_trywait! immediately returns 0. +-If the semaphore count is zero, !sem_trywait! immediately returns with +-error !EAGAIN!. ++\fBsem_trywait\fP is a non-blocking variant of \fBsem_wait\fP. If the ++semaphore pointed to by \fIsem\fP has non-zero count, the count is ++atomically decreased and \fBsem_trywait\fP immediately returns 0. ++If the semaphore count is zero, \fBsem_trywait\fP immediately returns with ++error \fBEAGAIN\fP. + +-!sem_post! atomically increases the count of the semaphore pointed to +-by |sem|. This function never blocks and can safely be used in ++\fBsem_post\fP atomically increases the count of the semaphore pointed to ++by \fIsem\fP. This function never blocks and can safely be used in + asynchronous signal handlers. + +-!sem_getvalue! stores in the location pointed to by |sval| the current +-count of the semaphore |sem|. ++\fBsem_getvalue\fP stores in the location pointed to by \fIsval\fP the current ++count of the semaphore \fIsem\fP. + +-!sem_destroy! destroys a semaphore object, freeing the resources it ++\fBsem_destroy\fP destroys a semaphore object, freeing the resources it + might hold. No threads should be waiting on the semaphore at the time +-!sem_destroy! is called. In the LinuxThreads implementation, no +-resources are associated with semaphore objects, thus !sem_destroy! ++\fBsem_destroy\fP is called. In the LinuxThreads implementation, no ++resources are associated with semaphore objects, thus \fBsem_destroy\fP + actually does nothing except checking that no thread is waiting on the + semaphore. + + .SH CANCELLATION + +-!sem_wait! is a cancellation point. ++\fBsem_wait\fP is a cancellation point. + + .SH "ASYNC-SIGNAL SAFETY" + + On processors supporting atomic compare-and-swap (Intel 486, Pentium +-and later, Alpha, PowerPC, MIPS II, Motorola 68k), the !sem_post! ++and later, Alpha, PowerPC, MIPS II, Motorola 68k), the \fBsem_post\fP + function is async-signal safe and can therefore be + called from signal handlers. This is the only thread synchronization + function provided by POSIX threads that is async-signal safe. + + On the Intel 386 and the Sparc, the current LinuxThreads +-implementation of !sem_post! is not async-signal safe by lack of the ++implementation of \fBsem_post\fP is not async-signal safe by lack of the + required atomic operations. + + .SH "RETURN VALUE" + +-The !sem_wait! and !sem_getvalue! functions always return 0. ++The \fBsem_wait\fP and \fBsem_getvalue\fP functions always return 0. + All other semaphore functions return 0 on success and -1 on error, in +-addition to writing an error code in !errno!. ++addition to writing an error code in \fBerrno\fP. + + .SH ERRORS + +-The !sem_init! function sets !errno! to the following codes on error: ++The \fBsem_init\fP function sets \fBerrno\fP to the following codes on error: + .RS + .TP +-!EINVAL! +-|value| exceeds the maximal counter value !SEM_VALUE_MAX! ++\fBEINVAL\fP ++\fIvalue\fP exceeds the maximal counter value \fBSEM_VALUE_MAX\fP + .TP +-!ENOSYS! +-|pshared| is not zero ++\fBENOSYS\fP ++\fIpshared\fP is not zero + .RE + +-The !sem_trywait! function sets !errno! to the following error code on error: ++The \fBsem_trywait\fP function sets \fBerrno\fP to the following error code on error: + .RS + .TP +-!EAGAIN! ++\fBEAGAIN\fP + the semaphore count is currently 0 + .RE + +-The !sem_post! function sets !errno! to the following error code on error: ++The \fBsem_post\fP function sets \fBerrno\fP to the following error code on error: + .RS + .TP +-!ERANGE! +-after incrementation, the semaphore value would exceed !SEM_VALUE_MAX! ++\fBERANGE\fP ++after incrementation, the semaphore value would exceed \fBSEM_VALUE_MAX\fP + (the semaphore count is left unchanged in this case) + .RE + +-The !sem_destroy! function sets !errno! to the following error code on error: ++The \fBsem_destroy\fP function sets \fBerrno\fP to the following error code on error: + .RS + .TP +-!EBUSY! ++\fBEBUSY\fP + some threads are currently blocked waiting on the semaphore. + .RE + +@@ -125,8 +125,8 @@ + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_mutex_init!(3), +-!pthread_cond_init!(3), +-!pthread_cancel!(3), +-!ipc!(5). ++\fBpthread_mutex_init\fP(3), ++\fBpthread_cond_init\fP(3), ++\fBpthread_cancel\fP(3), ++\fBipc\fP(5). + --- eglibc-2.12.1.orig/debian/patches/all/fedora-nss_dns-gethostbyname4-disable.diff +++ eglibc-2.12.1/debian/patches/all/fedora-nss_dns-gethostbyname4-disable.diff @@ -0,0 +1,18 @@ +# Description: disable _nss_dns_gethostbyname4_r for the moment, as it +# causes problems for IPv6 users; patch from Fedora by Jakub Jelinek +# Ubuntu: https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/313218 +# Upstream: https://bugzilla.redhat.com/show_bug.cgi?id=459756 + +Index: b/resolv/Versions +=================================================================== +--- a/resolv/Versions ++++ b/resolv/Versions +@@ -102,7 +102,7 @@ + _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r; + _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r; + _nss_dns_gethostbyaddr2_r; +- _nss_dns_gethostbyname4_r; ++# _nss_dns_gethostbyname4_r; + } + } + --- eglibc-2.12.1.orig/debian/patches/all/local-alias-et_EE.diff +++ eglibc-2.12.1/debian/patches/all/local-alias-et_EE.diff @@ -0,0 +1,17 @@ +--- + intl/locale.alias | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/intl/locale.alias ++++ b/intl/locale.alias +@@ -34,8 +34,8 @@ + dansk da_DK.ISO-8859-1 + deutsch de_DE.ISO-8859-1 + dutch nl_NL.ISO-8859-1 +-eesti et_EE.ISO-8859-1 +-estonian et_EE.ISO-8859-1 ++eesti et_EE.ISO-8859-15 ++estonian et_EE.ISO-8859-15 + finnish fi_FI.ISO-8859-1 + français fr_FR.ISO-8859-1 + french fr_FR.ISO-8859-1 --- eglibc-2.12.1.orig/debian/patches/all/local-alias-UTF-8.diff +++ eglibc-2.12.1/debian/patches/all/local-alias-UTF-8.diff @@ -0,0 +1,24 @@ +--- + intl/locale.alias | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/intl/locale.alias ++++ b/intl/locale.alias +@@ -26,7 +26,7 @@ + # Locales should always be specified by their full name. + + bokmal nb_NO.ISO-8859-1 +-bokml nb_NO.ISO-8859-1 ++bokmål nb_NO.ISO-8859-1 + catalan ca_ES.ISO-8859-1 + croatian hr_HR.ISO-8859-2 + czech cs_CZ.ISO-8859-2 +@@ -37,7 +37,7 @@ + eesti et_EE.ISO-8859-1 + estonian et_EE.ISO-8859-1 + finnish fi_FI.ISO-8859-1 +-franais fr_FR.ISO-8859-1 ++français fr_FR.ISO-8859-1 + french fr_FR.ISO-8859-1 + galego gl_ES.ISO-8859-1 + galician gl_ES.ISO-8859-1 --- eglibc-2.12.1.orig/debian/patches/all/local-ldd.diff +++ eglibc-2.12.1/debian/patches/all/local-ldd.diff @@ -0,0 +1,53 @@ +2009-11-08 Aurelien Jarno + + * elf/ldd.bash.in: also handle error code 126 (ld.so non + executable). Always trace dynamic library dependencies through + the dynamic linker. + +--- + elf/ldd.bash.in | 20 +++----------------- + 1 file changed, 3 insertions(+), 17 deletions(-) + +--- a/elf/ldd.bash.in ++++ b/elf/ldd.bash.in +@@ -153,8 +153,6 @@ + echo "ldd: ${file}:" $"not regular file" >&2 + result=1 + elif test -r "$file"; then +- test -x "$file" || echo 'ldd:' $"\ +-warning: you do not have execution permission for" "\`$file'" >&2 + RTLD= + ret=1 + for rtld in ${RTLDLIST}; do +@@ -167,28 +165,16 @@ + fi + done + case $ret in +- 0) +- # If the program exits with exit code 5, it means the process has been +- # invoked with __libc_enable_secure. Fall back to running it through +- # the dynamic linker. +- try_trace "$file" +- rc=$? +- if [ $rc = 5 ]; then +- try_trace "$RTLD" "$file" +- rc=$? +- fi +- [ $rc = 0 ] || result=1 ++ 0|2) ++ try_trace "$RTLD" "$file" || result=1 + ;; +- 1) ++ 1|126) + # This can be a non-ELF binary or no binary at all. + nonelf "$file" || { + echo $" not a dynamic executable" + result=1 + } + ;; +- 2) +- try_trace "$RTLD" "$file" || result=1 +- ;; + *) + echo 'ldd:' ${RTLD} $"exited with unknown exit code" "($ret)" >&2 + exit 1 --- eglibc-2.12.1.orig/debian/patches/all/local-ru_RU.diff +++ eglibc-2.12.1/debian/patches/all/local-ru_RU.diff @@ -0,0 +1,23 @@ +# DP: Description: Change default charset for 'russian' locale alias +# DP: Related bugs: #62586 +# DP: Dpatch author: Ben Collins +# DP: Patch author: Alistair McKinstry +# DP: Upstream status: Submitted +# DP: Status Details: http://sources.redhat.com/bugzilla/show_bug.cgi?id=120 +# DP: Date: 2002-03-10 + +--- + intl/locale.alias | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/intl/locale.alias ++++ b/intl/locale.alias +@@ -64,7 +64,7 @@ + polish pl_PL.ISO-8859-2 + portuguese pt_PT.ISO-8859-1 + romanian ro_RO.ISO-8859-2 +-russian ru_RU.ISO-8859-5 ++russian ru_RU.KOI8-R + slovak sk_SK.ISO-8859-2 + slovene sl_SI.ISO-8859-2 + slovenian sl_SI.ISO-8859-2 --- eglibc-2.12.1.orig/debian/patches/all/local-remove-manual.diff +++ eglibc-2.12.1/debian/patches/all/local-remove-manual.diff @@ -0,0 +1,290 @@ +The GNU Libc Reference manual has to be removed for licensing reasons. +But some files have a dependency on manual/errno.texi; the easiest +solution is to drop those dependencies and make sure that MAKEINFO=: +so that no target depends on manual/*.texi files. + +--- + manual/Makefile | 254 +++++++++++++++++++++++++++++++++++++++++++++ + sysdeps/gnu/Makefile | 2 + sysdeps/mach/hurd/Makefile | 2 + 3 files changed, 256 insertions(+), 2 deletions(-) + +--- /dev/null ++++ b/manual/Makefile +@@ -0,0 +1,254 @@ ++# Copyright (C) 1992-1999,2000,2001,2002,2003,2004,2006 ++# Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, write to the Free ++# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++# 02111-1307 USA. ++ ++# Makefile for the GNU C Library manual. ++ ++subdir := manual ++export subdir := $(subdir) ++ ++# Allow override ++INSTALL_INFO = install-info ++ ++.PHONY: all dvi pdf info html ++all: dvi ++dvi: libc.dvi ++pdf: libc.pdf ++ ++# Get glibc's configuration info. ++ifneq (,$(wildcard ../Makeconfig)) ++include ../Makeconfig ++else ++MAKEINFO = makeinfo ++TEXI2DVI = texi2dvi ++AWK = gawk ++endif ++ ++TEXI2PDF = texi2dvi --pdf ++ ++ifneq ($(strip $(MAKEINFO)),:) ++all: info ++info: libc.info ++endif ++ ++# scripts we use ++ifndef move-if-change ++move-if-change = ./move-if-change ++endif ++mkinstalldirs = $(..)scripts/mkinstalldirs ++ ++chapters = $(addsuffix .texi, \ ++ intro errno memory ctype string charset locale \ ++ message search pattern io stdio llio filesys \ ++ pipe socket terminal syslog math arith time \ ++ resource setjmp signal startup process job nss \ ++ users sysinfo conf crypt debug) ++add-chapters = $(wildcard $(foreach d, $(add-ons), ../$d/$d.texi)) ++appendices = lang.texi header.texi install.texi maint.texi contrib.texi \ ++ freemanuals.texi ++ ++-include texis ++texis: texis.awk $(chapters) $(add-chapters) $(appendices) lesser.texi fdl.texi ++ $(AWK) -f $^ > $@.T ++ mv -f $@.T $@ ++ ++nonexamples = $(filter-out $(add-chapters) %.c.texi, $(texis)) ++examples = $(filter-out $(foreach d, $(add-ons), ../$d/%.c.texi), \ ++ $(filter %.c.texi, $(texis))) ++ ++# Kludge: implicit rule so Make knows the one command does it all. ++chapters.% top-menu.%: libc-texinfo.sh $(texis) Makefile ++ AWK=$(AWK) $(SHELL) $< '$(chapters)' '$(add-chapters)' '$(appendices)' ++ ++libc.dvi libc.pdf libc.info: chapters.texi top-menu.texi dir-add.texi \ ++ libm-err.texi ++libc.dvi libc.pdf: texinfo.tex ++ ++html: libc/index.html ++libc/index.html: chapters.texi top-menu.texi dir-add.texi libm-err.texi ++ $(MAKEINFO) --html libc.texinfo ++ ++# Generate the summary from the Texinfo source files for each chapter. ++summary.texi: stamp-summary ; ++stamp-summary: summary.awk $(filter-out summary.texi, $(texis)) ++ $(AWK) -f $^ | sort -t' ' -df -k 1,1 | tr '\014' '\012' > summary-tmp ++ $(move-if-change) summary-tmp summary.texi ++ touch $@ ++ ++# Generate a file which can be added to the `dir' content to provide direct ++# access to the documentation of the function, variables, and other ++# definitions. ++dir-add.texi: xtract-typefun.awk $(texis) ++ (echo "@dircategory GNU C library functions and macros"; \ ++ echo "@direntry"; \ ++ $(AWK) -f $^ | sort; \ ++ echo "@end direntry") > $@.new ++ mv -f $@.new $@ ++ ++# The table with the math errors is generated. ++libm-err.texi: stamp-libm-err ++stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ ++ $(dir)/libm-test-ulps)) ++ pwd=`pwd`; \ ++ $(PERL) $< $$pwd/.. > libm-err-tmp ++ $(move-if-change) libm-err-tmp libm-err.texi ++ touch $@ ++ ++# Generate Texinfo files from the C source for the example programs. ++%.c.texi: examples/%.c ++ sed -e 's,[{}],@&,g' \ ++ -e 's,/\*\(@.*\)\*/,\1,g' \ ++ -e 's,/\* *,/* @r{,g' -e 's, *\*/,} */,' \ ++ -e 's/\(@[a-z][a-z]*\)@{\([^}]*\)@}/\1{\2}/g'\ ++ $< | expand > $@.new ++ mv -f $@.new $@ ++ ++%.info: %.texinfo ++ LANGUAGE=C LC_ALL=C $(MAKEINFO) $< ++ ++%.dvi: %.texinfo ++ $(TEXI2DVI) $< ++ ++%.pdf: %.texinfo ++ $(TEXI2PDF) $< ++ ++# Distribution. ++minimal-dist = summary.awk texis.awk tsort.awk libc-texinfo.sh libc.texinfo \ ++ libm-err.texi stamp-libm-err \ ++ $(filter-out summary.texi, $(nonexamples)) \ ++ $(patsubst %.c.texi,examples/%.c, $(examples)) ++ ++doc-only-dist = Makefile COPYING.LIB ++distribute = $(minimal-dist) $(examples) stdio-fp.c \ ++ libc.info* libc.?? libc.??s texinfo.tex \ ++ xtract-typefun.awk dir-add.texi dir libm-err-tab.pl ++export distribute := $(distribute) ++ ++tar-it = tar chovf $@ $^ ++ ++manual.tar: $(doc-only-dist) $(minimal-dist) ; $(tar-it) ++mandist.tar: $(doc-only-dist) $(distribute) ; $(tar-it) ++ ++edition := $(shell sed -n 's/^@set EDITION \([0-9][0-9.]*\)[^0-9.]*.*$$/\1/p' \ ++ libc.texinfo) ++ ++glibc-doc-$(edition).tar: $(doc-only-dist) $(distribute) ++ @rm -f glibc-doc-$(edition) ++ ln -s . glibc-doc-$(edition) ++ tar chovf $@ $(addprefix glibc-doc-$(edition)/,$^) ++ rm -f glibc-doc-$(edition) ++ ++%.Z: % ++ compress -c $< > $@.new ++ mv -f $@.new $@ ++%.gz: % ++ gzip -9 -c $< > $@.new ++ mv -f $@.new $@ ++%.uu: % ++ uuencode $< < $< > $@.new ++ mv -f $@.new $@ ++ ++.PHONY: mostlyclean distclean realclean clean ++mostlyclean: ++ -rm -f libc.dvi libc.pdf libc.tmp libc.info* ++ -rm -f $(objpfx)stubs ++ -rm -f $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o) ++clean: mostlyclean ++distclean: clean ++indices = cp fn pg tp vr ky ++realclean: distclean ++ -rm -f texis summary.texi stamp-summary *.c.texi dir-add.texi ++ -rm -f $(foreach index,$(indices),libc.$(index) libc.$(index)s) ++ -rm -f libc.log libc.aux libc.toc dir-add.texinfo ++ -rm -f top-menu.texi chapters.texi ++ ++.PHONY: install subdir_install installdirs install-data ++install-data subdir_install: install ++ifneq ($(strip $(MAKEINFO)),:) ++install: $(inst_infodir)/libc.info ++ @if $(SHELL) -c '$(INSTALL_INFO) --version' >/dev/null 2>&1; then \ ++ test -f $(inst_infodir)/dir || $(INSTALL_DATA) dir $(inst_infodir);\ ++ $(INSTALL_INFO) --info-dir=$(inst_infodir) $(inst_infodir)/libc.info;\ ++ else : ; fi ++endif ++# Catchall implicit rule for other installation targets from the parent. ++install-%: ; ++ ++$(inst_infodir)/libc.info: libc.info installdirs ++ for file in $<*; do \ ++ $(INSTALL_DATA) $$file $(@D)/$$file; \ ++ done ++ ++installdirs: ++ $(mkinstalldirs) $(inst_infodir) ++ ++.PHONY: dist ++dist: # glibc-doc-$(edition).tar.gz ++ ++ifneq (,$(wildcard ../Make-dist)) ++dist: ../Make-dist ++ $(MAKE) -f $< $(Make-dist-args) ++endif ++ ++ifndef ETAGS ++ETAGS = etags -T ++endif ++TAGS: $(minimal-dist) ++ $(ETAGS) -o $@ $^ ++ ++# The parent makefile sometimes invokes us with targets `subdir_REAL-TARGET'. ++subdir_%: % ; ++# For targets we don't define, do nothing. ++subdir_%: ; ++ ++# These are targets that each glibc subdirectory is expected to understand. ++# ../Rules defines them for code subdirectories; for us, they are no-ops. ++# None of these should be `subdir_TARGET'; those targets are transformed ++# by the implicit rule above into `TARGET' deps. ++glibc-targets := lib objects objs others tests xtests lint.out echo-headers ++.PHONY: $(glibc-targets) ++$(glibc-targets): ++ ++# Create stamp files if they don't exist, so the parent makefile's rules for ++# updating the library archives are happy with us, and never think we have ++# changed the library. ++lib: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o) ++ifdef objpfx ++.PHONY: stubs ++stubs: $(objpfx)stubs ++endif ++$(objpfx)stubs ../po/manual.pot $(objpfx)stamp%: ++ $(make-target-directory) ++ touch $@ ++ ++# Make the target directory if it doesn't exist, using the `mkinstalldirs' ++# script that does `mkdir -p' even if `mkdir' doesn't support that flag. ++define make-target-directory ++$(addprefix $(mkinstalldirs) ,\ ++ $(filter-out $(wildcard $(@D:%/=%)),$(@D:%/=%))) ++endef ++ ++# The top-level glibc Makefile expects subdir_install to update the stubs file. ++subdir_install: stubs ++ ++# Get rid of these variables if they came from the parent. ++routines = ++aux = ++sources = ++objects = ++headers = +--- a/sysdeps/gnu/Makefile ++++ b/sysdeps/gnu/Makefile +@@ -20,7 +20,7 @@ + # Generate the list of strings for errno codes from the section of the + # manual which documents the codes. + +-$(..)sysdeps/gnu/errlist.c: $(..)sysdeps/gnu/errlist.awk \ ++$(..)sysdeps/gnu/errlist-disabled.c: $(..)sysdeps/gnu/errlist.awk \ + $(..)manual/errno.texi + $(AWK) -f $^ > $@-tmp + # Make it unwritable so noone will edit it by mistake. +--- a/sysdeps/mach/hurd/Makefile ++++ b/sysdeps/mach/hurd/Makefile +@@ -87,7 +87,7 @@ + -e 's, \.\./, $(..),g' > $@t + mv -f $@t $@ + +-$(hurd)/bits/errno.h: $(common-objpfx)stamp-errnos ; ++$(hurd)/bits/errno-disabled.h: $(common-objpfx)stamp-errnos ; + $(common-objpfx)stamp-errnos: $(hurd)/errnos.awk $(errno.texinfo) \ + $(mach-errnos-deps) $(common-objpfx)errnos.d + $(AWK) -f $^ > $(hurd)/bits/errno.h-tmp --- eglibc-2.12.1.orig/debian/patches/sh4/local-fpscr_values.diff +++ eglibc-2.12.1/debian/patches/sh4/local-fpscr_values.diff @@ -0,0 +1,32 @@ +--- + sysdeps/unix/sysv/linux/sh/Versions | 1 + + sysdeps/unix/sysv/linux/sh/sysdep.S | 11 +++++++++++ + 2 files changed, 12 insertions(+) + +--- a/sysdeps/unix/sysv/linux/sh/Versions ++++ b/sysdeps/unix/sysv/linux/sh/Versions +@@ -2,6 +2,7 @@ + GLIBC_2.2 { + # functions used in other libraries + __xstat64; __fxstat64; __lxstat64; ++ __fpscr_values; + + # a* + alphasort64; +--- a/sysdeps/unix/sysv/linux/sh/sysdep.S ++++ b/sysdeps/unix/sysv/linux/sh/sysdep.S +@@ -32,3 +32,14 @@ + + #define __syscall_error __syscall_error_1 + #include ++ ++ .data ++ .align 3 ++ .globl ___fpscr_values ++ .type ___fpscr_values, @object ++ .size ___fpscr_values, 8 ++___fpscr_values: ++ .long 0 ++ .long 0x80000 ++weak_alias (___fpscr_values, __fpscr_values) ++ --- eglibc-2.12.1.orig/debian/patches/sh4/submitted-set_fpscr.diff +++ eglibc-2.12.1/debian/patches/sh4/submitted-set_fpscr.diff @@ -0,0 +1,21 @@ +--- + sysdeps/sh/sh4/fpu/fpu_control.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/sysdeps/sh/sh4/fpu/fpu_control.h ++++ b/sysdeps/sh/sh4/fpu/fpu_control.h +@@ -45,6 +45,14 @@ + #define _FPU_GETCW(cw) __asm__ ("sts fpscr,%0" : "=r" (cw)) + + #if defined __GNUC__ ++/* Allow the use in C++ code. */ ++#ifdef __cplusplus ++extern "C" { ++#endif ++extern void __set_fpscr(unsigned long); ++#ifdef __cplusplus ++} ++#endif /* C++ */ + #define _FPU_SETCW(cw) __set_fpscr ((cw)) + #else + #define _FPU_SETCW(cw) __asm__ ("lds %0,fpscr" : : "r" (cw)) --- eglibc-2.12.1.orig/debian/patches/arm/local-no-hwcap.diff +++ eglibc-2.12.1/debian/patches/arm/local-no-hwcap.diff @@ -0,0 +1,17 @@ +# DP: Restricted hardware caps for ARM + +--- + ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h ++++ b/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h +@@ -54,7 +54,7 @@ + return GLRO(dl_arm_cap_flags)[idx]; + }; + +-#define HWCAP_IMPORTANT (HWCAP_ARM_HALF | HWCAP_ARM_FAST_MULT) ++#define HWCAP_IMPORTANT (HWCAP_ARM_VFP | HWCAP_ARM_NEON) + + static inline int + __attribute__ ((unused)) --- eglibc-2.12.1.orig/debian/patches/arm/local-hwcap-updates.diff +++ eglibc-2.12.1/debian/patches/arm/local-hwcap-updates.diff @@ -0,0 +1,47 @@ +Add support for some recent ARM hwcaps additions. +--- + ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.c | 4 ++-- + ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h | 2 +- + ports/sysdeps/unix/sysv/linux/arm/sysdep.h | 3 +++ + 3 files changed, 6 insertions(+), 3 deletions(-) + +--- a/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.c ++++ b/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.c +@@ -47,12 +47,12 @@ + #if !defined PROCINFO_DECL && defined SHARED + ._dl_arm_cap_flags + #else +-PROCINFO_CLASS const char _dl_arm_cap_flags[10][10] ++PROCINFO_CLASS const char _dl_arm_cap_flags[13][10] + #endif + #ifndef PROCINFO_DECL + = { + "swp", "half", "thumb", "26bit", "fast-mult", "fpa", "vfp", "edsp", +- "java", "iwmmxt", ++ "java", "iwmmxt", "crunch", "thumbee", "neon", + } + #endif + #if !defined SHARED || defined PROCINFO_DECL +--- a/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h ++++ b/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h +@@ -24,7 +24,7 @@ + #include + #include + +-#define _DL_HWCAP_COUNT 10 ++#define _DL_HWCAP_COUNT 13 + + /* The kernel provides platform data but it is not interesting. */ + #define _DL_HWCAP_PLATFORM 0 +--- a/ports/sysdeps/unix/sysv/linux/arm/sysdep.h ++++ b/ports/sysdeps/unix/sysv/linux/arm/sysdep.h +@@ -48,6 +48,9 @@ + #define HWCAP_ARM_EDSP 128 + #define HWCAP_ARM_JAVA 256 + #define HWCAP_ARM_IWMMXT 512 ++#define HWCAP_ARM_CRUNCH 1024 ++#define HWCAP_ARM_THUMBEE 2048 ++#define HWCAP_ARM_NEON 4096 + + #ifdef __ASSEMBLER__ + --- eglibc-2.12.1.orig/debian/patches/arm/local-atomic.diff +++ eglibc-2.12.1/debian/patches/arm/local-atomic.diff @@ -0,0 +1,19 @@ +2010-02-09 Aurelien Jarno + + * sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h: remove useless + include. + +--- + ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h | 1 - + 1 file changed, 1 deletion(-) + +--- a/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h ++++ b/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h +@@ -17,7 +17,6 @@ + 02111-1307 USA. */ + + #include +-#include + + + typedef int8_t atomic8_t; --- eglibc-2.12.1.orig/debian/patches/arm/local-ioperm.diff +++ eglibc-2.12.1/debian/patches/arm/local-ioperm.diff @@ -0,0 +1,30 @@ +# DP: Description: fix ioperm build error on arm + +--- + ports/sysdeps/unix/sysv/linux/arm/ioperm.c | 10 ++-------- + 1 file changed, 2 insertions(+), 8 deletions(-) + +--- a/ports/sysdeps/unix/sysv/linux/arm/ioperm.c ++++ b/ports/sysdeps/unix/sysv/linux/arm/ioperm.c +@@ -95,19 +95,13 @@ + * values. + */ + +-/* The Linux kernel headers renamed this constant between 2.5.26 and +- 2.5.27. It was backported to 2.4 between 2.4.22 and 2.4.23. */ +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,23) +-# define BUS_ISA CTL_BUS_ISA +-#endif +- + static int + init_iosys (void) + { + char systype[256]; + int i, n; +- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE }; +- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT }; ++ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE }; ++ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT }; + size_t len = sizeof(io.base); + + if (! __sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0) --- eglibc-2.12.1.orig/debian/patches/arm/local-syscall-mcount.diff +++ eglibc-2.12.1/debian/patches/arm/local-syscall-mcount.diff @@ -0,0 +1,25 @@ +Description: unset CALL_MCOUNT for __libc_do_syscall + unset CALL_MCOUNT before __libc_do_syscall, because it only supports Thumb-2 + and ARM mode, not Thumb-1; and because profiling this internal routine + is of dubious value. +Origin: https://bugs.launchpad.net/linaro-toolchain-misc/+bug/605030/+attachment/1484534/+files/libc-do-syscall.S +Author: Peter Pearse +Bug-Linaro: https://bugs.launchpad.net/linaro-toolchain-misc/+bug/605030 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/605030 +Reviewed-by: Steve Langasek + +--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S ++++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S +@@ -29,6 +29,12 @@ + .syntax unified + .hidden __libc_do_syscall + ++/* ++ * PMP Work round for https://bugs.launchpad.net/gcc-linaro/+bug/605030 ++ */ ++#undef CALL_MCOUNT ++#define CALL_MCOUNT ++ + ENTRY (__libc_do_syscall) + .fnstart + push {r7, lr} --- eglibc-2.12.1.orig/debian/patches/arm/local-eabi-wchar.diff +++ eglibc-2.12.1/debian/patches/arm/local-eabi-wchar.diff @@ -0,0 +1,33 @@ +--- + ports/sysdeps/arm/eabi/bits/wchar.h | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +--- /dev/null ++++ b/ports/sysdeps/arm/eabi/bits/wchar.h +@@ -0,0 +1,26 @@ ++/* wchar_t type related definitions. ++ Copyright (C) 2000 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _BITS_WCHAR_H ++#define _BITS_WCHAR_H 1 ++ ++#define __WCHAR_MIN ( 0 ) ++#define __WCHAR_MAX ( (wchar_t) - 1 ) ++ ++#endif /* bits/wchar.h */ --- eglibc-2.12.1.orig/debian/patches/arm/local-lowlevellock.diff +++ eglibc-2.12.1/debian/patches/arm/local-lowlevellock.diff @@ -0,0 +1,19 @@ +2010-02-09 Aurelien Jarno + + * sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h: remove + useless include. + +--- + ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h | 1 - + 1 file changed, 1 deletion(-) + +--- a/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h ++++ b/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h +@@ -23,7 +23,6 @@ + #include + #include + #include +-#include + #include + + #define FUTEX_WAIT 0 --- eglibc-2.12.1.orig/debian/patches/i386/submitted-i686-timing.diff +++ eglibc-2.12.1/debian/patches/i386/submitted-i686-timing.diff @@ -0,0 +1,158 @@ +# DP: Description: i386 ld.so gets sigsegv when i686 optimized library is used, +# because the structure size of rtld_global and rtld_global_ro +# are different due to HP_TIMING_AVAIL availability. +# This patch aligns those sizes for using i686 optimized library. +# DP: Author: Daniel Jacobowitz +# DP: Upstream status: Pending +# DP: Status Details: +# DP: Date: 2003-10-03 (Updated 2003-10-12), (Updated 2005-01-02, 2005-03-03 gotom) + +2005-03-03 GOTO Masanori + + * sysdeps/generic/ldsodefs.h (struct rtld_global, rtld_global_ro): + Include timing members if HP_TIMING_PAD is defined. + +2005-01-02 GOTO Masanori + + * elf/Makefile: Regenerate. + +2003-10-12 Daniel Jacobowitz + + * sysdeps/generic/ldsodefs.h (struct rtld_global): Include timing + members if HP_TIMING_PAD is defined. + * sysdeps/i386/hp-timing.h: New file. + * elf/Makefile: Add dl-altinit to routines, shared-only-routines. + * elf/dl-altinit.c: New file. + +--- + elf/Makefile | 6 +++++- + elf/dl-altinit.c | 43 +++++++++++++++++++++++++++++++++++++++++++ + sysdeps/generic/ldsodefs.h | 4 ++-- + sysdeps/i386/hp-timing.h | 34 ++++++++++++++++++++++++++++++++++ + 4 files changed, 84 insertions(+), 3 deletions(-) + +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -423,7 +423,7 @@ + /* The object to be initialized first. */ + EXTERN struct link_map *_dl_initfirst; + +-#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL ++#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL || HP_TIMING_PAD + /* Start time on CPU clock. */ + EXTERN hp_timing_t _dl_cpuclock_offset; + #endif +@@ -629,7 +629,7 @@ + /* All search directories defined at startup. */ + EXTERN struct r_search_path_elem *_dl_init_all_dirs; + +-#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL ++#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL || HP_TIMING_PAD + /* Overhead of a high-precision timing measurement. */ + EXTERN hp_timing_t _dl_hp_timing_overhead; + #endif +--- /dev/null ++++ b/sysdeps/i386/hp-timing.h +@@ -0,0 +1,34 @@ ++/* High precision, low overhead timing functions. i386 version. ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _i386_HP_TIMING_H ++#define _i386_HP_TIMING_H 1 ++ ++#define hp_timing_t hp_timing_t__ ++#include ++#undef hp_timing_t ++ ++/* We don't use high-precision timers, but we might load an i686 libpthread ++ which does. */ ++#define HP_TIMING_PAD 1 ++ ++/* i686 uses 64bit values for the times. */ ++typedef unsigned long long int hp_timing_t; ++ ++#endif /* hp-timing.h */ +--- /dev/null ++++ b/elf/dl-altinit.c +@@ -0,0 +1,43 @@ ++/* Extra initializers for shared libc. ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* This file is used from the shared libc, to initialize anything which ++ ld.so should have initialized but didn't - for instance, if ld.so ++ is built for a machine without HP_TIMING but libc.so is built for ++ a machine with HP_TIMING, clock_gettime will expect dl_cpuclock_offset ++ to be initialized. */ ++ ++static void ++dlinit_hptiming (void) ++{ ++#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL ++ if (GL(dl_cpuclock_offset) == 0) ++ HP_TIMING_NOW (GL(dl_cpuclock_offset)); ++#endif ++} ++ ++static void dlinit_alt (void) __attribute__((constructor)); ++static void ++dlinit_alt (void) ++{ ++ dlinit_hptiming (); ++} +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -23,7 +23,7 @@ + headers = elf.h bits/elfclass.h link.h bits/link.h + routines = $(dl-routines) dl-support dl-iteratephdr \ + dl-addr enbl-secure dl-profstub \ +- dl-origin dl-libc dl-sym dl-tsd dl-sysdep ++ dl-origin dl-libc dl-sym dl-tsd dl-sysdep dl-altinit + + # The core dynamic linking functions are in libc for the static and + # profiled libraries. +@@ -42,6 +42,10 @@ + rtld-routines := rtld $(dl-routines) dl-sysdep dl-environ dl-minimal + all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines) + ++# We only need to re-run initializers if ld.so and libc.so might be built ++# for different machines, so only shared libraries need dl-altinit. ++shared-only-routines = dl-altinit ++ + distribute := rtld-Rules \ + $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \ + dl-cache.h dl-hash.h soinit.c sofini.c ldd.bash.in \ --- eglibc-2.12.1.orig/debian/patches/i386/local-linuxthreads-gscope.diff +++ eglibc-2.12.1/debian/patches/i386/local-linuxthreads-gscope.diff @@ -0,0 +1,44 @@ +--- + linuxthreads/sysdeps/i386/tls.h | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +--- a/linuxthreads/sysdeps/i386/tls.h ++++ b/linuxthreads/sysdeps/i386/tls.h +@@ -50,6 +50,11 @@ + uintptr_t sysinfo; + uintptr_t stack_guard; + uintptr_t pointer_guard; ++#ifdef __FreeBSD_kernel__ ++ long gscope_flag; ++# else ++ int gscope_flag; ++# endif + } tcbhead_t; + + #else /* __ASSEMBLER__ */ +@@ -240,6 +245,25 @@ + ((descr)->p_header.data.pointer_guard \ + = THREAD_GETMEM (THREAD_SELF, p_header.data.pointer_guard)) + ++/* Get and set the global scope generation counter in the TCB head. */ ++#define THREAD_GSCOPE_FLAG_UNUSED 0 ++#define THREAD_GSCOPE_FLAG_USED 1 ++#define THREAD_GSCOPE_FLAG_WAIT 2 ++#define THREAD_GSCOPE_RESET_FLAG() \ ++ do \ ++ { int __res; \ ++ asm volatile ("xchgl %0, %%gs:%P1" \ ++ : "=r" (__res) \ ++ : "i" (offsetof (struct _pthread_descr_struct, p_gscope_flag)), \ ++ "0" (THREAD_GSCOPE_FLAG_UNUSED)); \ ++ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ ++ lll_futex_wake (&THREAD_SELF->p_gscope_flag, 1); \ ++ } \ ++ while (0) ++#define THREAD_GSCOPE_SET_FLAG() \ ++ THREAD_SETMEM (THREAD_SELF, p_gscope_flag, THREAD_GSCOPE_FLAG_USED) ++#define THREAD_GSCOPE_WAIT() \ ++ do { /* GL(dl_wait_lookup_done) () */ } while (0) + + # endif /* HAVE_TLS_SUPPORT && (FLOATING_STACKS || !IS_IN_libpthread) */ + #endif /* __ASSEMBLER__ */ --- eglibc-2.12.1.orig/debian/patches/i386/local-cpuid-level2.diff +++ eglibc-2.12.1/debian/patches/i386/local-cpuid-level2.diff @@ -0,0 +1,19 @@ +diff --git a/sysdeps/x86_64/cacheinfo.c b/sysdeps/x86_64/cacheinfo.c +index 5422037..1debf12 100644 +--- a/sysdeps/x86_64/cacheinfo.c ++++ b/sysdeps/x86_64/cacheinfo.c +@@ -254,7 +254,13 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, + static long int __attribute__ ((noinline)) + handle_intel (int name, unsigned int maxidx) + { +- assert (maxidx >= 2); ++ if (maxidx <= 2) ++ { ++ /* This should never happen as all Intel i686 CPU support a CPUID ++ level of 2 minimum. However valgrind sometimes load the i686 ++ library with a P55C CPUID. Return 0 in that case. */ ++ return 0; ++ } + + /* OK, we can use the CPUID instruction to get all info about the + caches. */ --- eglibc-2.12.1.orig/debian/patches/i386/local-cmov.diff +++ eglibc-2.12.1/debian/patches/i386/local-cmov.diff @@ -0,0 +1,30 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Add CMOV to hwcap, for VIA C3 which is i686 class processor, +# DP: but does not have 686 optional instruction CMOV. +# DP: Author: GOTO Masanori +# DP: Upstream status: Not submitted +# DP: Status Details: Not submitted +# DP: Date: 2003-02-21 +# DP: Updated 2003-10-12 by dan@debian.org for TLS +# DP: Updated 2004-01-02 to fix building with newer patches by jb. +# DP: Updated 2005-01-02 to fix building with newer patches by gotom. + +2005-01-02 GOTO Masanori + + * sysdeps/i386/dl-procinfo.h: Update to add CMOV for VIA C3 chip. + +--- + sysdeps/i386/dl-procinfo.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sysdeps/i386/dl-procinfo.h ++++ b/sysdeps/i386/dl-procinfo.h +@@ -57,7 +57,7 @@ + HWCAP_I386_AMD3D = 1 << 31, + + /* XXX Which others to add here? */ +- HWCAP_IMPORTANT = (HWCAP_I386_XMM2) ++ HWCAP_IMPORTANT = (HWCAP_I386_CMOV | HWCAP_I386_XMM2) + + }; + --- eglibc-2.12.1.orig/debian/patches/i386/local-biarch.diff +++ eglibc-2.12.1/debian/patches/i386/local-biarch.diff @@ -0,0 +1,16 @@ +# DP: Description: Allow ldconfig to work on i386/x86-64 biarch systems +# DP: Related bugs: +# DP: Dpatch author: Daniel Jacobowitz +# DP: Patch author: Daniel Jacobowitz +# DP: Upstream status: Debian-Specific +# DP: Status Details: based on Ubuntu change by Jeff Bailey +# DP: Date: 2005-10-13 + +--- + sysdeps/unix/sysv/linux/i386/dl-cache.h | 1 + + 1 file changed, 1 insertion(+) + +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/i386/dl-cache.h +@@ -0,0 +1 @@ ++#include --- eglibc-2.12.1.orig/debian/patches/i386/local-pthread_cond_wait.diff +++ eglibc-2.12.1/debian/patches/i386/local-pthread_cond_wait.diff @@ -0,0 +1,693 @@ +--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S ++++ /dev/null +@@ -1,644 +0,0 @@ +-/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Ulrich Drepper , 2002. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +-#include +-#include +-#include +-#include +-#include +- +- +- .text +- +-/* int pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex) */ +- .globl __pthread_cond_wait +- .type __pthread_cond_wait, @function +- .align 16 +-__pthread_cond_wait: +-.LSTARTCODE: +- +- pushl %edi +-.Lpush_edi: +- pushl %esi +-.Lpush_esi: +- pushl %ebx +-.Lpush_ebx: +- +- xorl %esi, %esi +- movl 16(%esp), %ebx +- +- /* Get internal lock. */ +- movl $1, %edx +- xorl %eax, %eax +- LOCK +-#if cond_lock == 0 +- cmpxchgl %edx, (%ebx) +-#else +- cmpxchgl %edx, cond_lock(%ebx) +-#endif +- jnz 1f +- +- /* Store the reference to the mutex. If there is already a +- different value in there this is a bad user bug. */ +-2: cmpl $-1, dep_mutex(%ebx) +- movl 20(%esp), %eax +- je 15f +- movl %eax, dep_mutex(%ebx) +- +- /* Unlock the mutex. */ +-15: xorl %edx, %edx +- call __pthread_mutex_unlock_usercnt +- +- testl %eax, %eax +- jne 12f +- +- addl $1, total_seq(%ebx) +- adcl $0, total_seq+4(%ebx) +- addl $1, cond_futex(%ebx) +- addl $(1 << nwaiters_shift), cond_nwaiters(%ebx) +- +-#define FRAME_SIZE 16 +- subl $FRAME_SIZE, %esp +-.Lsubl: +- +- /* Get and store current wakeup_seq value. */ +- movl wakeup_seq(%ebx), %edi +- movl wakeup_seq+4(%ebx), %edx +- movl broadcast_seq(%ebx), %eax +- movl %edi, 4(%esp) +- movl %edx, 8(%esp) +- movl %eax, 12(%esp) +- +-8: movl cond_futex(%ebx), %edi +- +- /* Unlock. */ +- LOCK +-#if cond_lock == 0 +- subl $1, (%ebx) +-#else +- subl $1, cond_lock(%ebx) +-#endif +- jne 3f +- +-.LcleanupSTART: +-4: call __pthread_enable_asynccancel +- movl %eax, (%esp) +- +-#if FUTEX_PRIVATE_FLAG > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- sete %cl +- subl $1, %ecx +-#ifdef __ASSUME_PRIVATE_FUTEX +- andl $FUTEX_PRIVATE_FLAG, %ecx +-#else +- andl %gs:PRIVATE_FUTEX, %ecx +-#endif +-#if FUTEX_WAIT != 0 +- addl $FUTEX_WAIT, %ecx +-#endif +- movl %edi, %edx +- addl $cond_futex, %ebx +-.Ladd_cond_futex: +- movl $SYS_futex, %eax +- ENTER_KERNEL +- subl $cond_futex, %ebx +-.Lsub_cond_futex: +- +- movl (%esp), %eax +- call __pthread_disable_asynccancel +-.LcleanupEND: +- +- /* Lock. */ +- movl $1, %edx +- xorl %eax, %eax +- LOCK +-#if cond_lock == 0 +- cmpxchgl %edx, (%ebx) +-#else +- cmpxchgl %edx, cond_lock(%ebx) +-#endif +- jnz 5f +- +-6: movl broadcast_seq(%ebx), %eax +- cmpl 12(%esp), %eax +- jne 16f +- +- movl woken_seq(%ebx), %eax +- movl woken_seq+4(%ebx), %ecx +- +- movl wakeup_seq(%ebx), %edi +- movl wakeup_seq+4(%ebx), %edx +- +- cmpl 8(%esp), %edx +- jne 7f +- cmpl 4(%esp), %edi +- je 8b +- +-7: cmpl %ecx, %edx +- jne 9f +- cmp %eax, %edi +- je 8b +- +-9: addl $1, woken_seq(%ebx) +- adcl $0, woken_seq+4(%ebx) +- +- /* Unlock */ +-16: subl $(1 << nwaiters_shift), cond_nwaiters(%ebx) +- +- /* Wake up a thread which wants to destroy the condvar object. */ +- movl total_seq(%ebx), %eax +- andl total_seq+4(%ebx), %eax +- cmpl $0xffffffff, %eax +- jne 17f +- movl cond_nwaiters(%ebx), %eax +- andl $~((1 << nwaiters_shift) - 1), %eax +- jne 17f +- +- addl $cond_nwaiters, %ebx +- movl $SYS_futex, %eax +-#if FUTEX_PRIVATE_FLAG > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex-cond_nwaiters(%ebx) +- sete %cl +- subl $1, %ecx +-#ifdef __ASSUME_PRIVATE_FUTEX +- andl $FUTEX_PRIVATE_FLAG, %ecx +-#else +- andl %gs:PRIVATE_FUTEX, %ecx +-#endif +- addl $FUTEX_WAKE, %ecx +- movl $1, %edx +- ENTER_KERNEL +- subl $cond_nwaiters, %ebx +- +-17: LOCK +-#if cond_lock == 0 +- subl $1, (%ebx) +-#else +- subl $1, cond_lock(%ebx) +-#endif +- jne 10f +- +-11: movl 20+FRAME_SIZE(%esp), %eax +- call __pthread_mutex_cond_lock +- addl $FRAME_SIZE, %esp +-.Laddl: +- +-14: popl %ebx +-.Lpop_ebx: +- popl %esi +-.Lpop_esi: +- popl %edi +-.Lpop_edi: +- +- /* We return the result of the mutex_lock operation. */ +- ret +- +- /* Initial locking failed. */ +-1: +-.LSbl1: +-#if cond_lock == 0 +- movl %ebx, %edx +-#else +- leal cond_lock(%ebx), %edx +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- setne %cl +- subl $1, %ecx +- andl $(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +- addl $LLL_PRIVATE, %ecx +-#endif +- call __lll_lock_wait +- jmp 2b +- +- /* Unlock in loop requires waekup. */ +-3: +-.LSbl2: +-#if cond_lock == 0 +- movl %ebx, %eax +-#else +- leal cond_lock(%ebx), %eax +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- setne %cl +- subl $1, %ecx +- andl $(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +- addl $LLL_PRIVATE, %ecx +-#endif +- call __lll_unlock_wake +- jmp 4b +- +- /* Locking in loop failed. */ +-5: +-#if cond_lock == 0 +- movl %ebx, %edx +-#else +- leal cond_lock(%ebx), %edx +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- setne %cl +- subl $1, %ecx +- andl $(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +- addl $LLL_PRIVATE, %ecx +-#endif +- call __lll_lock_wait +- jmp 6b +- +- /* Unlock after loop requires wakeup. */ +-10: +-#if cond_lock == 0 +- movl %ebx, %eax +-#else +- leal cond_lock(%ebx), %eax +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- setne %cl +- subl $1, %ecx +- andl $(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +- addl $LLL_PRIVATE, %ecx +-#endif +- call __lll_unlock_wake +- jmp 11b +- +- /* The initial unlocking of the mutex failed. */ +-12: +-.LSbl3: +- LOCK +-#if cond_lock == 0 +- subl $1, (%ebx) +-#else +- subl $1, cond_lock(%ebx) +-#endif +- jne 14b +- +- movl %eax, %esi +-#if cond_lock == 0 +- movl %ebx, %eax +-#else +- leal cond_lock(%ebx), %eax +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- setne %cl +- subl $1, %ecx +- andl $(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +- addl $LLL_PRIVATE, %ecx +-#endif +- call __lll_unlock_wake +- +- movl %esi, %eax +- jmp 14b +- .size __pthread_cond_wait, .-__pthread_cond_wait +-versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, +- GLIBC_2_3_2) +- +- +- .type __condvar_w_cleanup2, @function +-__condvar_w_cleanup2: +- subl $cond_futex, %ebx +- .size __condvar_w_cleanup2, .-__condvar_w_cleanup2 +-.LSbl4: +- .type __condvar_w_cleanup, @function +-__condvar_w_cleanup: +- movl %eax, %esi +- +- /* Get internal lock. */ +- movl $1, %edx +- xorl %eax, %eax +- LOCK +-#if cond_lock == 0 +- cmpxchgl %edx, (%ebx) +-#else +- cmpxchgl %edx, cond_lock(%ebx) +-#endif +- jz 1f +- +-#if cond_lock == 0 +- movl %ebx, %edx +-#else +- leal cond_lock(%ebx), %edx +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- setne %cl +- subl $1, %ecx +- andl $(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +- addl $LLL_PRIVATE, %ecx +-#endif +- call __lll_lock_wait +- +-1: movl broadcast_seq(%ebx), %eax +- cmpl 12(%esp), %eax +- jne 3f +- +- /* We increment the wakeup_seq counter only if it is lower than +- total_seq. If this is not the case the thread was woken and +- then canceled. In this case we ignore the signal. */ +- movl total_seq(%ebx), %eax +- movl total_seq+4(%ebx), %edi +- cmpl wakeup_seq+4(%ebx), %edi +- jb 6f +- ja 7f +- cmpl wakeup_seq(%ebx), %eax +- jbe 7f +- +-6: addl $1, wakeup_seq(%ebx) +- adcl $0, wakeup_seq+4(%ebx) +- addl $1, cond_futex(%ebx) +- +-7: addl $1, woken_seq(%ebx) +- adcl $0, woken_seq+4(%ebx) +- +-3: subl $(1 << nwaiters_shift), cond_nwaiters(%ebx) +- +- /* Wake up a thread which wants to destroy the condvar object. */ +- xorl %edi, %edi +- movl total_seq(%ebx), %eax +- andl total_seq+4(%ebx), %eax +- cmpl $0xffffffff, %eax +- jne 4f +- movl cond_nwaiters(%ebx), %eax +- andl $~((1 << nwaiters_shift) - 1), %eax +- jne 4f +- +- addl $cond_nwaiters, %ebx +- movl $SYS_futex, %eax +-#if FUTEX_PRIVATE_FLAG > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex-cond_nwaiters(%ebx) +- sete %cl +- subl $1, %ecx +-#ifdef __ASSUME_PRIVATE_FUTEX +- andl $FUTEX_PRIVATE_FLAG, %ecx +-#else +- andl %gs:PRIVATE_FUTEX, %ecx +-#endif +- addl $FUTEX_WAKE, %ecx +- movl $1, %edx +- ENTER_KERNEL +- subl $cond_nwaiters, %ebx +- movl $1, %edi +- +-4: LOCK +-#if cond_lock == 0 +- subl $1, (%ebx) +-#else +- subl $1, cond_lock(%ebx) +-#endif +- je 2f +- +-#if cond_lock == 0 +- movl %ebx, %eax +-#else +- leal cond_lock(%ebx), %eax +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- setne %cl +- subl $1, %ecx +- andl $(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +- addl $LLL_PRIVATE, %ecx +-#endif +- call __lll_unlock_wake +- +- /* Wake up all waiters to make sure no signal gets lost. */ +-2: testl %edi, %edi +- jnz 5f +- addl $cond_futex, %ebx +-#if FUTEX_PRIVATE_FLAG > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex-cond_futex(%ebx) +- sete %cl +- subl $1, %ecx +-#ifdef __ASSUME_PRIVATE_FUTEX +- andl $FUTEX_PRIVATE_FLAG, %ecx +-#else +- andl %gs:PRIVATE_FUTEX, %ecx +-#endif +- addl $FUTEX_WAKE, %ecx +- movl $SYS_futex, %eax +- movl $0x7fffffff, %edx +- ENTER_KERNEL +- +-5: movl 20+FRAME_SIZE(%esp), %eax +- call __pthread_mutex_cond_lock +- +- movl %esi, (%esp) +-.LcallUR: +- call _Unwind_Resume +- hlt +-.LENDCODE: +- .size __condvar_w_cleanup, .-__condvar_w_cleanup +- +- +- .section .gcc_except_table,"a",@progbits +-.LexceptSTART: +- .byte 0xff # @LPStart format (omit) +- .byte 0xff # @TType format (omit) +- .byte 0x0b # call-site format +- # DW_EH_PE_sdata4 +- .uleb128 .Lcstend-.Lcstbegin +-.Lcstbegin: +- .long .LcleanupSTART-.LSTARTCODE +- .long .Ladd_cond_futex-.LcleanupSTART +- .long __condvar_w_cleanup-.LSTARTCODE +- .uleb128 0 +- .long .Ladd_cond_futex-.LSTARTCODE +- .long .Lsub_cond_futex-.Ladd_cond_futex +- .long __condvar_w_cleanup2-.LSTARTCODE +- .uleb128 0 +- .long .Lsub_cond_futex-.LSTARTCODE +- .long .LcleanupEND-.Lsub_cond_futex +- .long __condvar_w_cleanup-.LSTARTCODE +- .uleb128 0 +- .long .LcallUR-.LSTARTCODE +- .long .LENDCODE-.LcallUR +- .long 0 +- .uleb128 0 +-.Lcstend: +- +- .section .eh_frame,"a",@progbits +-.LSTARTFRAME: +- .long L(ENDCIE)-L(STARTCIE) # Length of the CIE. +-.LSTARTCIE: +- .long 0 # CIE ID. +- .byte 1 # Version number. +-#ifdef SHARED +- .string "zPLR" # NUL-terminated augmentation +- # string. +-#else +- .string "zPL" # NUL-terminated augmentation +- # string. +-#endif +- .uleb128 1 # Code alignment factor. +- .sleb128 -4 # Data alignment factor. +- .byte 8 # Return address register +- # column. +-#ifdef SHARED +- .uleb128 7 # Augmentation value length. +- .byte 0x9b # Personality: DW_EH_PE_pcrel +- # + DW_EH_PE_sdata4 +- # + DW_EH_PE_indirect +- .long DW.ref.__gcc_personality_v0-. +- .byte 0x1b # LSDA Encoding: DW_EH_PE_pcrel +- # + DW_EH_PE_sdata4. +- .byte 0x1b # FDE Encoding: DW_EH_PE_pcrel +- # + DW_EH_PE_sdata4. +-#else +- .uleb128 6 # Augmentation value length. +- .byte 0x0 # Personality: absolute +- .long __gcc_personality_v0 +- .byte 0x0 # LSDA Encoding: absolute +-#endif +- .byte 0x0c # DW_CFA_def_cfa +- .uleb128 4 +- .uleb128 4 +- .byte 0x88 # DW_CFA_offset, column 0x8 +- .uleb128 1 +- .align 4 +-.LENDCIE: +- +- .long .LENDFDE-.LSTARTFDE # Length of the FDE. +-.LSTARTFDE: +- .long .LSTARTFDE-.LSTARTFRAME # CIE pointer. +-#ifdef SHARED +- .long .LSTARTCODE-. # PC-relative start address +- # of the code. +-#else +- .long .LSTARTCODE # Start address of the code. +-#endif +- .long .LENDCODE-.LSTARTCODE # Length of the code. +- .uleb128 4 # Augmentation size +-#ifdef SHARED +- .long .LexceptSTART-. +-#else +- .long .LexceptSTART +-#endif +- .byte 0x40+.Lpush_edi-.LSTARTCODE # DW_CFA_advance_loc+N +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 8 +- .byte 0x87 # DW_CFA_offset %edi +- .uleb128 2 +- .byte 0x40+.Lpush_esi-.Lpush_edi # DW_CFA_advance_loc+N +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 12 +- .byte 0x86 # DW_CFA_offset %esi +- .uleb128 3 +- .byte 0x40+.Lpush_ebx-.Lpush_esi # DW_CFA_advance_loc+N +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 16 +- .byte 0x83 # DW_CFA_offset %ebx +- .uleb128 4 +- .byte 4 # DW_CFA_advance_loc4 +- .4byte .Lsubl-.Lpush_ebx +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 16+FRAME_SIZE +- .byte 4 # DW_CFA_advance_loc4 +- .4byte .Laddl-.Lsubl +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 16 +- .byte 0x40+ .Lpop_ebx-.Laddl # DW_CFA_advance_loc+N +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 12 +- .byte 0xc3 # DW_CFA_restore %ebx +- .byte 0x40+.Lpop_esi-.Lpop_ebx # DW_CFA_advance_loc+N +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 8 +- .byte 0xc6 # DW_CFA_restore %esi +- .byte 0x40+.Lpop_edi-.Lpop_esi # DW_CFA_advance_loc+N +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 4 +- .byte 0xc7 # DW_CFA_restore %edi +- .byte 0x40+.LSbl1-.Lpop_edi # DW_CFA_advance_loc+N +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 16 +- .byte 0x87 # DW_CFA_offset %edi +- .uleb128 2 +- .byte 0x86 # DW_CFA_offset %esi +- .uleb128 3 +- .byte 0x83 # DW_CFA_offset %ebx +- .uleb128 4 +- .byte 4 # DW_CFA_advance_loc4 +- .4byte .LSbl2-.LSbl1 +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 16+FRAME_SIZE +- .byte 4 # DW_CFA_advance_loc4 +- .4byte .LSbl3-.LSbl2 +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 16 +- .byte 4 # DW_CFA_advance_loc4 +- .4byte .LSbl4-.LSbl3 +- .byte 14 # DW_CFA_def_cfa_offset +- .uleb128 16+FRAME_SIZE +- .align 4 +-.LENDFDE: +- +- +-#ifdef PIC +- .section .gnu.linkonce.t.__i686.get_pc_thunk.cx,"ax",@progbits +- .globl __i686.get_pc_thunk.cx +- .hidden __i686.get_pc_thunk.cx +- .type __i686.get_pc_thunk.cx,@function +-__i686.get_pc_thunk.cx: +- movl (%esp), %ecx; +- ret +- .size __i686.get_pc_thunk.cx,.-__i686.get_pc_thunk.cx +-#endif +- +-#ifdef SHARED +- .hidden DW.ref.__gcc_personality_v0 +- .weak DW.ref.__gcc_personality_v0 +- .section .gnu.linkonce.d.DW.ref.__gcc_personality_v0,"aw",@progbits +- .align 4 +- .type DW.ref.__gcc_personality_v0, @object +- .size DW.ref.__gcc_personality_v0, 4 +-DW.ref.__gcc_personality_v0: +- .long __gcc_personality_v0 +-#endif +--- a/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S ++++ /dev/null +@@ -1,20 +0,0 @@ +-/* Copyright (C) 2003 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Ulrich Drepper , 2003. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include "../i486/pthread_cond_wait.S" +--- a/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S ++++ /dev/null +@@ -1,20 +0,0 @@ +-/* Copyright (C) 2003 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Ulrich Drepper , 2003. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include "../i486/pthread_cond_wait.S" --- eglibc-2.12.1.orig/debian/patches/i386/local-clone.diff +++ eglibc-2.12.1/debian/patches/i386/local-clone.diff @@ -0,0 +1,29 @@ +2006-11-30 Jan Kratochvil + + * sysdeps/unix/sysv/linux/i386/clone.S: Provide CFI for the outermost + `clone' function to ensure proper unwinding stop of gdb. + +--- + sysdeps/unix/sysv/linux/i386/clone.S | 4 ---- + 1 file changed, 4 deletions(-) + +--- a/sysdeps/unix/sysv/linux/i386/clone.S ++++ b/sysdeps/unix/sysv/linux/i386/clone.S +@@ -120,9 +120,6 @@ + ret + + L(thread_start): +- cfi_startproc; +- /* Clearing frame pointer is insufficient, use CFI. */ +- cfi_undefined (eip); + /* Note: %esi is zero. */ + movl %esi,%ebp /* terminate the stack frame */ + #ifdef RESET_PID +@@ -155,7 +152,6 @@ + jmp L(haspid) + .previous + #endif +- cfi_endproc; + + cfi_startproc + PSEUDO_END (BP_SYM (__clone)) --- eglibc-2.12.1.orig/debian/patches/ia64/local-dlfptr.diff +++ eglibc-2.12.1/debian/patches/ia64/local-dlfptr.diff @@ -0,0 +1,16 @@ +--- + sysdeps/ia64/dl-machine.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/sysdeps/ia64/dl-machine.h ++++ b/sysdeps/ia64/dl-machine.h +@@ -46,7 +46,8 @@ + } + + #define ELF_MACHINE_BEFORE_RTLD_RELOC(dynamic_info) \ +- __ia64_init_bootstrap_fdesc_table (&bootstrap_map); ++ __ia64_init_bootstrap_fdesc_table (&bootstrap_map); \ ++ _dl_fptr_init(); + + /* Return nonzero iff ELF header is compatible with the running host. */ + static inline int __attribute__ ((unused)) --- eglibc-2.12.1.orig/debian/patches/ia64/submitted-libm.diff +++ eglibc-2.12.1/debian/patches/ia64/submitted-libm.diff @@ -0,0 +1,738 @@ +2009-08-01 Aurelien Jarno + + * sysdeps/ia64/fpu/libm_error_codes.h: Add error codes for + fmodl_infinity, fmod_infinity, fmodf_infinity, cosl_infinity, + cos_infinity, cosf_infinity, sinl_infinity, sin_infinity, + sinf_infinity, tanl_infinity, tan_infinity, and tanf_infinity. + * sysdeps/ia64/fpu/libm_error.c(__libm_error_support): Pole errors + for lgamma and pow should set errno to ERANGE, not EDOM. Add code + to handle fmodl_infinity, fmod_infinity, fmodf_infinity, + cosl_infinity, cos_infinity, cosf_infinity, sinl_infinity, + sin_infinity,sinf_infinity, tanl_infinity, tan_infinity, and + tanf_infinity. + * sysdeps/ia64/fpu/e_fmod.S: check for fmod(inf, y). + * sysdeps/ia64/fpu/e_fmodf.S: check for fmodf(inf, y). + * sysdeps/ia64/fpu/e_fmodl.S: check for fmodl(inf, y). + * sysdeps/ia64/fpu/s_fcos.S: check for fcos(inf) and fsin(inf). + * sysdeps/ia64/fpu/s_fcosf.S: check for fcosf(inf) and fsinf(inf). + * sysdeps/ia64/fpu/s_fcosl.S: check for fcosl(inf) and fsinl(inf). + * sysdeps/ia64/fpu/s_tan.S: check for ftan(inf). + * sysdeps/ia64/fpu/s_tanf.S: check for ftanf(inf). + * sysdeps/ia64/fpu/s_tanl.S: check for ftanl(inf). + +--- + sysdeps/ia64/fpu/e_fmod.S | 8 +-- + sysdeps/ia64/fpu/e_fmodf.S | 8 +-- + sysdeps/ia64/fpu/e_fmodl.S | 12 ++++- + sysdeps/ia64/fpu/libm_error.c | 75 +++++++++++++++++++++++++++++-- + sysdeps/ia64/fpu/libm_error_codes.h | 6 ++ + sysdeps/ia64/fpu/s_cos.S | 82 +++++++++++++++++++++++++++++++++- + sysdeps/ia64/fpu/s_cosf.S | 85 +++++++++++++++++++++++++++++++++--- + sysdeps/ia64/fpu/s_cosl.S | 80 ++++++++++++++++++++++++++++++++- + sysdeps/ia64/fpu/s_tan.S | 15 +++--- + sysdeps/ia64/fpu/s_tanf.S | 6 +- + sysdeps/ia64/fpu/s_tanl.S | 21 ++++++-- + 11 files changed, 355 insertions(+), 43 deletions(-) + +--- a/sysdeps/ia64/fpu/e_fmod.S ++++ b/sysdeps/ia64/fpu/e_fmod.S +@@ -75,8 +75,8 @@ + // + // Special cases + //==================================================================== +-// b=+/-0: return NaN, call libm_error_support +-// a=+/-Inf, a=NaN or b=NaN: return NaN ++// a=+/-Inf or b=+/-0: return NaN, call libm_error_support ++// a=NaN or b=NaN: return NaN + // + // Registers used + //==================================================================== +@@ -407,13 +407,13 @@ + nop.m 999 + // also set Denormal flag if necessary + (p8) fma.s0 f9=f9,f1,f0 +- nop.i 999 ;; ++(p8) mov GR_Parameter_TAG=274 ;; + } + + { .mfb + nop.m 999 + (p8) fma.d.s0 f8=f8,f1,f0 +- nop.b 999 ;; ++(p8) br.spnt __libm_error_region;; + } + + { .mfb +--- a/sysdeps/ia64/fpu/e_fmodf.S ++++ b/sysdeps/ia64/fpu/e_fmodf.S +@@ -75,8 +75,8 @@ + + // Special cases + //==================================================================== +-// b=+/-0: return NaN, call libm_error_support +-// a=+/-Inf, a=NaN or b=NaN: return NaN ++// a=+/-Inf or b=+/-0: return NaN, call libm_error_support ++// a=NaN or b=NaN: return NaN + + // Registers used + //==================================================================== +@@ -413,13 +413,13 @@ + nop.m 999 + // also set Denormal flag if necessary + (p8) fma.s0 f9=f9,f1,f0 +- nop.i 999 ;; ++(p8) mov GR_Parameter_TAG=275 ;; + } + + { .mfb + nop.m 999 + (p8) fma.s.s0 f8=f8,f1,f0 +- nop.b 999 ;; ++(p8) br.spnt __libm_error_region;; + } + + { .mfb +--- a/sysdeps/ia64/fpu/e_fmodl.S ++++ b/sysdeps/ia64/fpu/e_fmodl.S +@@ -484,6 +484,11 @@ + (p8) cmp.ne p7, p0 = GR_SIG_B, r0 + nop.i 0 + } ++{ .mfi ++ nop.m 0 ++ fmerge.s FR_X = f8, f8 ++ nop.i 0 ++} + ;; + + { .mfi +@@ -509,7 +514,12 @@ + { .mfb + nop.m 0 + (p9) frcpa.s0 f8, p7 = f8, f9 +- br.ret.sptk b0 ++ (p9) br.ret.sptk b0 ++} ++{ .mmb ++ alloc GR_ARPFS = ar.pfs, 1, 4, 4, 0 ++ mov GR_Parameter_TAG = 273 ++ br.sptk __libm_error_region + } + ;; + +--- a/sysdeps/ia64/fpu/libm_error.c ++++ b/sysdeps/ia64/fpu/libm_error.c +@@ -708,15 +708,18 @@ + case gammal_negative: + case gamma_negative: + case gammaf_negative: +- case lgammal_negative: +- case lgamma_negative: +- case lgammaf_negative: + case tgammal_negative: + case tgamma_negative: + case tgammaf_negative: + { + ERRNO_DOMAIN; break; + } ++ case lgammal_negative: ++ case lgamma_negative: ++ case lgammaf_negative: ++ { ++ ERRNO_RANGE; break; ++ } + case ldexpl_overflow: + case ldexpl_underflow: + case ldexp_overflow: +@@ -1081,17 +1084,17 @@ + case powl_zero_to_negative: + /* 0**neg */ + { +- ERRNO_DOMAIN; break; ++ ERRNO_RANGE; break; + } + case pow_zero_to_negative: + /* 0**neg */ + { +- ERRNO_DOMAIN; break; ++ ERRNO_RANGE; break; + } + case powf_zero_to_negative: + /* 0**neg */ + { +- ERRNO_DOMAIN; break; ++ ERRNO_RANGE; break; + } + case powl_neg_to_non_integer: + /* neg**non_integral */ +@@ -1307,6 +1310,21 @@ + { + ERRNO_DOMAIN; break; + } ++ case fmodl_infinity: ++ /* fmodl(inf,y) */ ++ { ++ ERRNO_DOMAIN; break; ++ } ++ case fmod_infinity: ++ /* fmod(inf,y) */ ++ { ++ ERRNO_DOMAIN; break; ++ } ++ case fmodf_infinity: ++ /* fmodf(inf,y) */ ++ { ++ ERRNO_DOMAIN; break; ++ } + case coshl_overflow: + /* coshl overflows */ + { +@@ -1373,6 +1391,51 @@ + { + ERRNO_RANGE; break; + } ++ case cosl_infinity: ++ /* cosl(inf) */ ++ { ++ ERRNO_DOMAIN; break; ++ } ++ case cos_infinity: ++ /* cos(inf) */ ++ { ++ ERRNO_DOMAIN; break; ++ } ++ case cosf_infinity: ++ /* cosf(inf) */ ++ { ++ ERRNO_DOMAIN; break; ++ } ++ case sinl_infinity: ++ /* sinl(inf) */ ++ { ++ ERRNO_DOMAIN; break; ++ } ++ case sin_infinity: ++ /* sin(inf) */ ++ { ++ ERRNO_DOMAIN; break; ++ } ++ case sinf_infinity: ++ /* sinf(inf) */ ++ { ++ ERRNO_DOMAIN; break; ++ } ++ case tanl_infinity: ++ /* tanl(inf) */ ++ { ++ ERRNO_DOMAIN; break; ++ } ++ case tan_infinity: ++ /* tan(inf) */ ++ { ++ ERRNO_DOMAIN; break; ++ } ++ case tanf_infinity: ++ /* tanf(inf) */ ++ { ++ ERRNO_DOMAIN; break; ++ } + default: + break; + } +--- a/sysdeps/ia64/fpu/libm_error_codes.h ++++ b/sysdeps/ia64/fpu/libm_error_codes.h +@@ -195,7 +195,11 @@ + nextafterl_underflow, nextafter_underflow, + nextafterf_underflow, /* 267, 268, 269 */ + nexttowardl_underflow, nexttoward_underflow, +- nexttowardf_underflow /* 270, 271, 272 */ ++ nexttowardf_underflow, /* 270, 271, 272 */ ++ fmodl_infinity, fmod_infinity, fmodf_infinity, /* 273, 274, 275 */ ++ cosl_infinity, cos_infinity, cosf_infinity, /* 276, 277, 278 */ ++ sinl_infinity, sin_infinity, sinf_infinity, /* 279, 280, 281 */ ++ tanl_infinity, tan_infinity, tanf_infinity, /* 282, 283, 284 */ + } error_types; + + #define LIBM_ERROR __libm_error_support +--- a/sysdeps/ia64/fpu/s_cos.S ++++ b/sysdeps/ia64/fpu/s_cos.S +@@ -174,7 +174,7 @@ + //============================================================== + // general input registers: + // r14 -> r26 +-// r32 -> r35 ++// r32 -> r36 + + // predicate registers used: + // p6 -> p11 +@@ -260,6 +260,10 @@ + GR_SAVE_GP = r35 + GR_SAVE_r_sincos = r36 + ++GR_Parameter_X = r37 ++GR_Parameter_Y = r38 ++GR_Parameter_RESULT = r39 ++GR_Parameter_TAG = r40 + + RODATA + +@@ -474,7 +478,7 @@ + // 0x1001a is register_bias + 27. + // So if f8 >= 2^27, go to large argument routines + { .mfi +- alloc r32 = ar.pfs, 1, 4, 0, 0 ++ alloc r32 = ar.pfs, 1, 4, 4, 0 + fclass.m p11,p0 = f8, 0x0b // Test for x=unorm + mov sincos_GR_all_ones = -1 // For "inexect" constant create + } +@@ -681,20 +685,39 @@ + ////////// x = 0/Inf/NaN path ////////////////// + _SINCOS_SPECIAL_ARGS: + .pred.rel "mutex",p8,p9 ++ ++{ .mfi ++ nop.m 999 ++ fclass.m.unc p7,p0 = f8, 0x23 // is x +/- inf? ++ nop.i 999;; ++} ++ ++{ .mfi ++ nop.m 999 ++(p7) fmerge.s f9 = f8,f8 ++ nop.i 999 ++} ++ + // sin(+/-0) = +/-0 + // sin(Inf) = NaN + // sin(NaN) = NaN + { .mfi + nop.m 999 + (p8) fma.d.s0 f8 = f8, f0, f0 // sin(+/-0,NaN,Inf) +- nop.i 999 ++(p8) mov GR_Parameter_TAG = 280 + } + // cos(+/-0) = 1.0 + // cos(Inf) = NaN + // cos(NaN) = NaN +-{ .mfb ++{ .mfi + nop.m 999 + (p9) fma.d.s0 f8 = f8, f0, f1 // cos(+/-0,NaN,Inf) ++(p9) mov GR_Parameter_TAG = 277 ++} ++ ++{ .mbb ++ nop.m 999 ++(p7) br.cond.spnt __libm_error_region + br.ret.sptk b0 // Exit for x = 0/Inf/NaN path + };; + +@@ -766,3 +789,54 @@ + .type __libm_cos_large#,@function + .global __libm_cos_large# + ++LOCAL_LIBM_ENTRY(__libm_error_region) ++.prologue ++{ .mfi ++ add GR_Parameter_Y=-32,sp // Parameter 2 value ++ nop.f 0 ++.save ar.pfs,GR_SAVE_PFS ++ mov GR_SAVE_PFS=ar.pfs // Save ar.pfs ++} ++{ .mfi ++.fframe 64 ++ add sp=-64,sp // Create new stack ++ nop.f 0 ++ mov GR_SAVE_GP=gp // Save gp ++};; ++{ .mmi ++ stfd [GR_Parameter_Y] = f1,16 // STORE Parameter 2 on stack ++ add GR_Parameter_X = 16,sp // Parameter 1 address ++.save b0, GR_SAVE_B0 ++ mov GR_SAVE_B0=b0 // Save b0 ++};; ++.body ++{ .mib ++ stfd [GR_Parameter_X] = f9 // STORE Parameter 1 on stack ++ add GR_Parameter_RESULT = 0,GR_Parameter_Y // Parameter 3 address ++ nop.b 0 ++} ++{ .mib ++ stfd [GR_Parameter_Y] = f8 // STORE Parameter 3 on stack ++ add GR_Parameter_Y = -16,GR_Parameter_Y ++ br.call.sptk b0=__libm_error_support# // Call error handling function ++};; ++{ .mmi ++ add GR_Parameter_RESULT = 48,sp ++ nop.m 0 ++ nop.i 0 ++};; ++{ .mmi ++ ldfd f8 = [GR_Parameter_RESULT] // Get return result off stack ++.restore sp ++ add sp = 64,sp // Restore stack pointer ++ mov b0 = GR_SAVE_B0 // Restore return address ++};; ++{ .mib ++ mov gp = GR_SAVE_GP // Restore gp ++ mov ar.pfs = GR_SAVE_PFS // Restore ar.pfs ++ br.ret.sptk b0 // Return ++};; ++ ++LOCAL_LIBM_END(__libm_error_region) ++.type __libm_error_support#,@function ++.global __libm_error_support# +--- a/sysdeps/ia64/fpu/s_cosf.S ++++ b/sysdeps/ia64/fpu/s_cosf.S +@@ -171,7 +171,7 @@ + //============================================================== + // general input registers: + // r14 -> r19 +-// r32 -> r45 ++// r32 -> r43 + + // predicate registers used: + // p6 -> p14 +@@ -260,6 +260,11 @@ + GR_SAVE_B0 = r42 + GR_SAVE_GP = r43 + ++GR_Parameter_X = r44 ++GR_Parameter_Y = r45 ++GR_Parameter_RESULT = r46 ++GR_Parameter_TAG = r47 ++ + RODATA + .align 16 + +@@ -389,7 +394,7 @@ + GLOBAL_IEEE754_ENTRY(sinf) + + { .mlx +- alloc r32 = ar.pfs,1,13,0,0 ++ alloc r32 = ar.pfs,1,11,4,0 + movl sincosf_GR_sig_inv_pi_by_16 = 0xA2F9836E4E44152A //signd of 16/pi + } + { .mlx +@@ -413,7 +418,7 @@ + GLOBAL_IEEE754_ENTRY(cosf) + + { .mlx +- alloc r32 = ar.pfs,1,13,0,0 ++ alloc r32 = ar.pfs,1,11,4,0 + movl sincosf_GR_sig_inv_pi_by_16 = 0xA2F9836E4E44152A //signd of 16/pi + } + { .mlx +@@ -641,20 +646,39 @@ + ////////// x = 0/Inf/NaN path ////////////////// + _SINCOSF_SPECIAL_ARGS: + .pred.rel "mutex",p8,p9 ++ ++{ .mfi ++ nop.m 999 ++ fclass.m.unc p7,p0 = f8, 0x23 // is x +/- inf? ++ nop.i 999;; ++} ++ ++{ .mfi ++ nop.m 999 ++(p7) fmerge.s f9 = f8,f8 ++ nop.i 999 ++} ++ + // sinf(+/-0) = +/-0 + // sinf(Inf) = NaN + // sinf(NaN) = NaN + { .mfi + nop.m 999 + (p8) fma.s.s0 f8 = f8, f0, f0 // sinf(+/-0,NaN,Inf) +- nop.i 999 ++(p8) mov GR_Parameter_TAG = 281 + } + // cosf(+/-0) = 1.0 + // cosf(Inf) = NaN + // cosf(NaN) = NaN +-{ .mfb ++{ .mfi + nop.m 999 + (p9) fma.s.s0 f8 = f8, f0, f1 // cosf(+/-0,NaN,Inf) ++(p9) mov GR_Parameter_TAG = 278 ++};; ++ ++{ .mbb ++ nop.m 999 ++(p7) br.cond.spnt __libm_error_region + br.ret.sptk b0 // Exit for x = 0/Inf/NaN path + };; + +@@ -715,3 +739,54 @@ + .type __libm_cos_large#, @function + .global __libm_cos_large# + ++LOCAL_LIBM_ENTRY(__libm_error_region) ++.prologue ++{ .mfi ++ add GR_Parameter_Y=-32,sp // Parameter 2 value ++ nop.f 0 ++.save ar.pfs,GR_SAVE_PFS ++ mov GR_SAVE_PFS=ar.pfs // Save ar.pfs ++} ++{ .mfi ++.fframe 64 ++ add sp=-64,sp // Create new stack ++ nop.f 0 ++ mov GR_SAVE_GP=gp // Save gp ++};; ++{ .mmi ++ stfd [GR_Parameter_Y] = f1,16 // STORE Parameter 2 on stack ++ add GR_Parameter_X = 16,sp // Parameter 1 address ++.save b0, GR_SAVE_B0 ++ mov GR_SAVE_B0=b0 // Save b0 ++};; ++.body ++{ .mib ++ stfd [GR_Parameter_X] = f9 // STORE Parameter 1 on stack ++ add GR_Parameter_RESULT = 0,GR_Parameter_Y // Parameter 3 address ++ nop.b 0 ++} ++{ .mib ++ stfd [GR_Parameter_Y] = f8 // STORE Parameter 3 on stack ++ add GR_Parameter_Y = -16,GR_Parameter_Y ++ br.call.sptk b0=__libm_error_support# // Call error handling function ++};; ++{ .mmi ++ add GR_Parameter_RESULT = 48,sp ++ nop.m 0 ++ nop.i 0 ++};; ++{ .mmi ++ ldfd f8 = [GR_Parameter_RESULT] // Get return result off stack ++.restore sp ++ add sp = 64,sp // Restore stack pointer ++ mov b0 = GR_SAVE_B0 // Restore return address ++};; ++{ .mib ++ mov gp = GR_SAVE_GP // Restore gp ++ mov ar.pfs = GR_SAVE_PFS // Restore ar.pfs ++ br.ret.sptk b0 // Return ++};; ++ ++LOCAL_LIBM_END(__libm_error_region) ++.type __libm_error_support#,@function ++.global __libm_error_support# +--- a/sysdeps/ia64/fpu/s_cosl.S ++++ b/sysdeps/ia64/fpu/s_cosl.S +@@ -747,12 +747,16 @@ + GR_SAVE_GP = r40 + GR_SAVE_PFS = r41 + ++GR_Parameter_X = r59 ++GR_Parameter_Y = r60 ++GR_Parameter_RESULT = r61 ++GR_Parameter_TAG = r62 + + .section .text + + GLOBAL_IEEE754_ENTRY(sinl) + { .mlx +- alloc r32 = ar.pfs,0,27,2,0 ++ alloc r32 = ar.pfs,1,26,4,0 + movl GR_sig_inv_pi = 0xa2f9836e4e44152a // significand of 1/pi + } + { .mlx +@@ -777,7 +781,7 @@ + + GLOBAL_IEEE754_ENTRY(cosl) + { .mlx +- alloc r32 = ar.pfs,0,27,2,0 ++ alloc r32 = ar.pfs,1,26,4,0 + movl GR_sig_inv_pi = 0xa2f9836e4e44152a // significand of 1/pi + } + { .mlx +@@ -2278,13 +2282,31 @@ + SINCOSL_SPECIAL: + { .mfb + nop.m 999 ++ fclass.m.unc p6,p0 = f8, 0x23 // is x +/- inf? ++ nop.b 999;; ++} ++ ++{ .mfi ++ nop.m 999 ++(p6) fmerge.s f9 = f8,f8 ++(p6) cmp.eq.unc p7, p8 = 0x1, GR_Sin_or_Cos;; ++} ++ ++{ .mmf ++(p7) mov GR_Parameter_TAG = 276 // (cosl) ++(p8) mov GR_Parameter_TAG = 279 // (sinl) + // + // Path for Arg = +/- QNaN, SNaN, Inf + // Invalid can be raised. SNaNs + // become QNaNs + // + fmpy.s0 FR_Result = FR_Input_X, f0 +- br.ret.sptk b0 ;; ++} ++ ++{ .mbb ++ nop.m 999 ++(p6) br.cond.spnt __libm_error_region ++ br.ret.sptk b0 ;; + } + + GLOBAL_IEEE754_END(cosl) +@@ -2363,3 +2385,55 @@ + LOCAL_LIBM_END(__libm_callout) + .type __libm_pi_by_2_reduce#,@function + .global __libm_pi_by_2_reduce# ++ ++LOCAL_LIBM_ENTRY(__libm_error_region) ++.prologue ++{ .mfi ++ add GR_Parameter_Y=-32,sp // Parameter 2 value ++ nop.f 0 ++.save ar.pfs,GR_SAVE_PFS ++ mov GR_SAVE_PFS=ar.pfs // Save ar.pfs ++} ++{ .mfi ++.fframe 64 ++ add sp=-64,sp // Create new stack ++ nop.f 0 ++ mov GR_SAVE_GP=gp // Save gp ++};; ++{ .mmi ++ stfd [GR_Parameter_Y] = f1,16 // STORE Parameter 2 on stack ++ add GR_Parameter_X = 16,sp // Parameter 1 address ++.save b0, GR_SAVE_B0 ++ mov GR_SAVE_B0=b0 // Save b0 ++};; ++.body ++{ .mib ++ stfd [GR_Parameter_X] = f9 // STORE Parameter 1 on stack ++ add GR_Parameter_RESULT = 0,GR_Parameter_Y // Parameter 3 address ++ nop.b 0 ++} ++{ .mib ++ stfd [GR_Parameter_Y] = f8 // STORE Parameter 3 on stack ++ add GR_Parameter_Y = -16,GR_Parameter_Y ++ br.call.sptk b0=__libm_error_support# // Call error handling function ++};; ++{ .mmi ++ add GR_Parameter_RESULT = 48,sp ++ nop.m 0 ++ nop.i 0 ++};; ++{ .mmi ++ ldfd f8 = [GR_Parameter_RESULT] // Get return result off stack ++.restore sp ++ add sp = 64,sp // Restore stack pointer ++ mov b0 = GR_SAVE_B0 // Restore return address ++};; ++{ .mib ++ mov gp = GR_SAVE_GP // Restore gp ++ mov ar.pfs = GR_SAVE_PFS // Restore ar.pfs ++ br.ret.sptk b0 // Return ++};; ++ ++LOCAL_LIBM_END(__libm_error_region) ++.type __libm_error_support#,@function ++.global __libm_error_support# +--- a/sysdeps/ia64/fpu/s_tan.S ++++ b/sysdeps/ia64/fpu/s_tan.S +@@ -348,15 +348,10 @@ + (p6) br.ret.spnt b0 ;; // Exit for x=0 (tan only) + } + +-{ .mfi ++{ .mmi + ldfpd tan_P14,tan_P15 = [tan_AD],16 +-(p7) frcpa.s0 f8,p9=f0,f0 // Set qnan indef if x=inf +- mov tan_GR_10009 = 0x10009 +-} +-{ .mib + ldfpd tan_Q8,tan_Q9 = [tan_ADQ],16 +- nop.i 999 +-(p7) br.ret.spnt b0 ;; // Exit for x=inf ++ mov tan_GR_10009 = 0x10009;; + } + + { .mfi +@@ -384,6 +379,12 @@ + fma.s1 TAN_W_2TO64_RSH = tan_NORM_f8,TAN_INV_PI_BY_2_2TO64,TAN_RSHF_2TO64 + };; + ++{ .mfb ++(p7) mov GR_Parameter_Tag = 283 // (tan) ++(p7) frcpa.s0 f8,p9=f0,f0 // Set qnan indef if x=inf ++(p7) br.cond.spnt __libm_error_region ;; // call error support if tan(+-inf) ++} ++ + { .mmf + ldfpd tan_P10,tan_P11 = [tan_AD],16 + and tan_exp = tan_GR_17_ones, tan_signexp +--- a/sysdeps/ia64/fpu/s_tanf.S ++++ b/sysdeps/ia64/fpu/s_tanf.S +@@ -301,11 +301,11 @@ + { .mfi + cmp.ge p6, p0 = rSignMask, rExpCut // p6 = (E => 0x10009) + (p8) frcpa.s0 f8, p0 = f0, f0 // Set qnan indef if x=inf +- mov GR_Parameter_Tag = 227 // (cotf) ++ mov GR_Parameter_Tag = 284 // (tanf) + } + { .mbb + ldfe fPiby2 = [rCoeffB], 16 +-(p8) br.ret.spnt b0 // Exit for x=inf ++(p8) br.cond.spnt __libm_error_region // call error support if tanf(+-0) + (p6) br.cond.spnt Huge_Argument // Branch if |x|>=2^10 + } + ;; +@@ -313,7 +313,7 @@ + { .mfi + nop.m 0 + (p11) fclass.m.unc p6, p0 = f8, 0x07 // Test for x=0 (for cotf) +- nop.i 0 ++ mov GR_Parameter_Tag = 227 // (cotf) + } + { .mfb + nop.m 0 +--- a/sysdeps/ia64/fpu/s_tanl.S ++++ b/sysdeps/ia64/fpu/s_tanl.S +@@ -3072,21 +3072,32 @@ + + { .mfi + nop.m 999 +-(p6) fclass.m p6, p7 = f8, 0x7 // Test for zero (cotl only) ++(p6) fclass.m.unc p6, p0 = f8, 0x7 // Test for zero (cotl only) ++ nop.i 999 ++} ++;; ++{ .mfi ++ nop.m 999 ++(p7) fclass.m.unc p7, p0 = f8, 0x23 // Test for inf (tanl only) + nop.i 999 + } + ;; + + .pred.rel "mutex", p6, p7 +-{ .mfi ++{ .mfb + (p6) mov GR_Parameter_Tag = 225 // (cotl) + (p6) frcpa.s0 f8, p0 = f1, f8 // cotl(+-0) = +-Inf +- nop.i 999 ++(p6) br.cond.spnt __libm_error_region;; ++} ++{ .mfb ++(p7) mov GR_Parameter_Tag = 282 // (tanl) ++ fmpy.s0 f8 = f8, f0 ++(p7) br.cond.spnt __libm_error_region;; + } + { .mfb + nop.m 999 +-(p7) fmpy.s0 f8 = f8, f0 +-(p7) br.ret.sptk b0 ++ nop.f 999 ++ br.ret.sptk b0 + } + ;; + --- eglibc-2.12.1.orig/debian/patches/ia64/submitted-sysconf.diff +++ eglibc-2.12.1/debian/patches/ia64/submitted-sysconf.diff @@ -0,0 +1,20 @@ +2009-05-16 Aurelien Jarno + + * sysdeps/unix/sysv/linux/ia64/sysconf.c (__sysconf): use + _POSIX_VERSION instead of 200112L. + +--- + sysdeps/unix/sysv/linux/ia64/sysconf.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sysdeps/unix/sysv/linux/ia64/sysconf.c ++++ b/sysdeps/unix/sysv/linux/ia64/sysconf.c +@@ -33,7 +33,7 @@ + __sysconf (int name) + { + if (name == _SC_CPUTIME || name == _SC_THREAD_CPUTIME) +- return has_cpuclock () ? 200112L : -1; ++ return has_cpuclock () ? _POSIX_VERSION : -1; + + /* Everything else is handled by the more general code. */ + return linux_sysconf (name); --- eglibc-2.12.1.orig/debian/patches/locale/fix-LC_COLLATE-rules.diff +++ eglibc-2.12.1/debian/patches/locale/fix-LC_COLLATE-rules.diff @@ -0,0 +1,54 @@ +--- + locale/programs/ld-collate.c | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +--- a/locale/programs/ld-collate.c ++++ b/locale/programs/ld-collate.c +@@ -1555,6 +1555,7 @@ + int i; + int need_undefined = 0; + struct section_list *sect; ++ enum coll_sort_rule *orules; + int ruleidx; + int nr_wide_elems = 0; + +@@ -1566,18 +1567,28 @@ + "LC_COLLATE")); + return; + } ++ if (nrules == 0) ++ { ++ /* An error message has already been printed: ++ empty category description not allowed. */ ++ return; ++ } + + /* If this assertion is hit change the type in `element_t'. */ + assert (nrules <= sizeof (runp->used_in_level) * 8); + + /* Make sure that the `position' rule is used either in all sections + or in none. */ ++ sect = collate->sections; ++ while (sect != NULL && sect->rules == NULL) ++ sect = sect->next; ++ orules = sect->rules; + for (i = 0; i < nrules; ++i) + for (sect = collate->sections; sect != NULL; sect = sect->next) + if (sect != collate->current_section + && sect->rules != NULL + && ((sect->rules[i] & sort_position) +- != (collate->current_section->rules[i] & sort_position))) ++ != (orules[i] & sort_position))) + { + WITH_CUR_LOCALE (error (0, 0, _("\ + %s: `position' must be used for a specific level in all sections or none"), +@@ -3362,6 +3373,9 @@ + no_error = 0; + } + } ++ /* Update current section. */ ++ if (collate->cursor != NULL) ++ collate->current_section = collate->cursor->section; + + lr_ignore_rest (ldfile, no_error); + } --- eglibc-2.12.1.orig/debian/patches/locale/locale-print-LANGUAGE.diff +++ eglibc-2.12.1/debian/patches/locale/locale-print-LANGUAGE.diff @@ -0,0 +1,32 @@ +Comments tell that LANG has to be the first value, and LC_ALL the last +one. Thus LANGUAGE is printed between them. + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-08 + +--- + locale/programs/locale.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/locale/programs/locale.c ++++ b/locale/programs/locale.c +@@ -773,6 +773,7 @@ + { + size_t cat_no; + const char *lcall = getenv ("LC_ALL"); ++ const char *language = getenv ("LANGUAGE"); + const char *lang = getenv ("LANG") ? : ""; + + auto void get_source (const char *name); +@@ -791,6 +792,9 @@ + /* LANG has to be the first value. */ + printf ("LANG=%s\n", lang); + ++ if (language != NULL && getenv ("POSIXLY_CORRECT") == NULL) ++ printf ("LANGUAGE=%s\n", language); ++ + /* Now all categories in an unspecified order. */ + for (cat_no = 0; cat_no < NCATEGORIES; ++cat_no) + if (cat_no != LC_ALL) --- eglibc-2.12.1.orig/debian/patches/locale/LC_COLLATE-keywords-ordering.diff +++ eglibc-2.12.1/debian/patches/locale/LC_COLLATE-keywords-ordering.diff @@ -0,0 +1,108 @@ +Be less strict about keywords ordering in LC_COLLATE section, to +ease definition of new scripts. + +Submitted upstream: BZ690 + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: BZ690 +# DP: Date: 2006-01-08 + +--- + locale/programs/ld-collate.c | 32 ++++++++++++++++++-------------- + 1 file changed, 18 insertions(+), 14 deletions(-) + +--- a/locale/programs/ld-collate.c ++++ b/locale/programs/ld-collate.c +@@ -2752,14 +2752,23 @@ + switch (nowtok) + { + case tok_copy: +- /* Allow copying other locales. */ ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ break; ++ } ++ + now = lr_token (ldfile, charmap, result, NULL, verbose); + if (now->tok != tok_string) + goto err_label; + +- if (! ignore_content) +- load_locale (LC_COLLATE, now->val.str.startmb, repertoire_name, +- charmap, result); ++ if (state == 1 || state == 3 || state == 5) ++ goto err_label; ++ ++ load_locale (LC_COLLATE, now->val.str.startmb, repertoire_name, ++ charmap, result); + + lr_ignore_rest (ldfile, 1); + break; +@@ -2773,9 +2782,6 @@ + break; + } + +- if (state != 0) +- goto err_label; +- + arg = lr_token (ldfile, charmap, result, NULL, verbose); + if (arg->tok != tok_number) + goto err_label; +@@ -2796,7 +2802,7 @@ + break; + } + +- if (state != 0) ++ if (state == 1 || state == 3 || state == 5) + goto err_label; + + arg = lr_token (ldfile, charmap, result, repertoire, verbose); +@@ -2843,7 +2849,7 @@ + break; + } + +- if (state != 0 && state != 2) ++ if (state == 1 || state == 3 || state == 5) + goto err_label; + + arg = lr_token (ldfile, charmap, result, repertoire, verbose); +@@ -2909,7 +2915,7 @@ + break; + } + +- if (state != 0 && state != 2) ++ if (state == 1 || state == 3 || state == 5) + goto err_label; + + arg = lr_token (ldfile, charmap, result, repertoire, verbose); +@@ -3055,7 +3061,7 @@ + break; + } + +- if (state != 0) ++ if (state == 1 || state == 3 || state == 5) + goto err_label; + + arg = lr_token (ldfile, charmap, result, repertoire, verbose); +@@ -3176,7 +3182,7 @@ + break; + } + +- if (state != 0 && state != 1 && state != 2) ++ if (state == 3 || state == 5) + goto err_label; + state = 1; + +@@ -3487,8 +3493,6 @@ + %s: missing `reorder-end' keyword"), "LC_COLLATE")); + state = 4; + } +- else if (state != 2 && state != 4) +- goto err_label; + state = 5; + + /* Get the name of the sections we are adding after. */ --- eglibc-2.12.1.orig/debian/patches/locale/check-unknown-symbols.diff +++ eglibc-2.12.1/debian/patches/locale/check-unknown-symbols.diff @@ -0,0 +1,37 @@ +Check for unknown symbols in collation rules. This is useful to detect +broken locales since unknown symbols are always wrong. + +This request has not been submitted upstream yet. + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-08 + +--- + locale/programs/ld-collate.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +--- a/locale/programs/ld-collate.c ++++ b/locale/programs/ld-collate.c +@@ -3501,8 +3501,20 @@ + } + else if (arg != NULL) + { ++ void *ptr = NULL; + symstr = arg->val.str.startmb; + symlen = arg->val.str.lenmb; ++ if (state != 5 ++ && find_entry (&charmap->char_table, symstr, symlen, &ptr) != 0 ++ && (repertoire == NULL || ++ find_entry (&repertoire->char_table, symstr, symlen, &ptr) != 0) ++ && find_entry (&collate->elem_table, symstr, symlen, &ptr) != 0 ++ && find_entry (&collate->sym_table, symstr, symlen, &ptr) != 0) ++ { ++ if (verbose) ++ lr_error (ldfile, _("%s: symbol `%.*s' not known"), ++ "LC_COLLATE", (int) symlen, symstr); ++ } + } + else + { --- eglibc-2.12.1.orig/debian/patches/locale/preprocessor-collate.diff +++ eglibc-2.12.1/debian/patches/locale/preprocessor-collate.diff @@ -0,0 +1,342 @@ +Allow preprocessor-like directives. These keywords were already +defined in locale/programs/locfile-kw.h, an implementation for +'define', 'undef', 'ifdef', 'else' and 'endif' is now provided in +locale/programs/ld-collate.c. For the moment, 'ifndef' and 'elif' +are not implemented because they do not appear in locfile-kw.h. +This patch is harmless, it only adds new keywords. + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: BZ686 +# DP: Date: 2006-01-08 + +--- + locale/programs/ld-collate.c | 275 +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 275 insertions(+) + +--- a/locale/programs/ld-collate.c ++++ b/locale/programs/ld-collate.c +@@ -164,6 +164,24 @@ + size_t line; + }; + ++/* Data type for toggles. */ ++struct toggle_list_t; ++ ++struct toggle_list_t ++{ ++ const char *name; ++ ++ /* Predecessor in the list. */ ++ struct toggle_list_t *last; ++ ++ /* This flag is set when a keyword is undefined. */ ++ int is_undefined; ++ ++ /* Where does the branch come from. */ ++ const char *file; ++ size_t line; ++}; ++ + /* Sparse table of struct element_t *. */ + #define TABLE wchead_table + #define ELEMENT struct element_t * +@@ -219,6 +237,9 @@ + /* This value is used when handling ellipsis. */ + struct element_t ellipsis_weight; + ++ /* This is a stack of . */ ++ struct toggle_list_t *flow_control; ++ + /* Known collating elements. */ + hash_table elem_table; + +@@ -1467,6 +1488,56 @@ + } + + ++static struct token * ++flow_skip (struct linereader *ldfile, const struct charmap_t *charmap, ++ struct locale_collate_t *collate) ++{ ++ int level = 0; ++ struct token *now; ++ enum token_t nowtok; ++ while (1) ++ { ++ lr_ignore_rest (ldfile, 0); ++ now = lr_token (ldfile, charmap, NULL, NULL, 0); ++ nowtok = now->tok; ++ if (nowtok == tok_eof) ++ break; ++ else if (nowtok == tok_ifdef || nowtok == tok_ifndef) ++ ++level ; ++ else if (nowtok == tok_else) ++ { ++ if (strcmp (collate->flow_control->name, "else") == 0) ++ lr_error (ldfile, ++ _("%s: `else' statement at `%s:%Zu' cannot be followed by another `else' statement"), ++ "LC_COLLATE", collate->flow_control->name, collate->flow_control->line); ++ if (level == 0) ++ { ++ collate->flow_control->name = "else"; ++ collate->flow_control->file = ldfile->fname; ++ collate->flow_control->line = ldfile->lineno; ++ break; ++ } ++ } ++ else if (nowtok == tok_endif) ++ { ++ if (level == 0) ++ { ++ collate->flow_control = collate->flow_control->last; ++ break; ++ } ++ --level ; ++ } ++ } ++ if (nowtok == tok_eof) ++ WITH_CUR_LOCALE (error (0, 0, _("\ ++%s: unterminated `%s' flow control beginning at %s:%Zu"), ++ "LC_COLLATE", collate->flow_control->name, ++ collate->flow_control->file, ++ collate->flow_control->line)); ++ return now; ++} ++ ++ + static void + collate_startup (struct linereader *ldfile, struct localedef_t *locale, + struct localedef_t *copy_locale, int ignore_content) +@@ -2514,6 +2585,8 @@ + */ + int state = 0; + ++ static struct toggle_list_t *defined_keywords = NULL; ++ + /* Get the repertoire we have to use. */ + if (repertoire_name != NULL) + repertoire = repertoire_read (repertoire_name); +@@ -2528,6 +2601,82 @@ + } + while (nowtok == tok_eol); + ++ while (nowtok == tok_define || nowtok == tok_undef) ++ { ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ now = lr_token (ldfile, charmap, result, NULL, verbose); ++ nowtok = now->tok; ++ continue; ++ } ++ ++ arg = lr_token (ldfile, charmap, result, NULL, verbose); ++ if (arg->tok != tok_ident) ++ goto err_label; ++ ++ if (nowtok == tok_define) ++ { ++ struct toggle_list_t *runp = defined_keywords; ++ char *name; ++ ++ while (runp != NULL) ++ if (strncmp (runp->name, arg->val.str.startmb, ++ arg->val.str.lenmb) == 0 ++ && runp->name[arg->val.str.lenmb] == '\0') ++ SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE"); ++ else ++ runp = runp->last; ++ ++ if (runp != NULL && runp->is_undefined == 0) ++ { ++ lr_ignore_rest (ldfile, 0); ++ SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE"); ++ } ++ ++ if (runp == NULL) ++ { ++ runp = (struct toggle_list_t *) xcalloc (1, sizeof (*runp)); ++ runp->last = defined_keywords; ++ defined_keywords = runp; ++ } ++ else ++ { ++ free ((char *) runp->name); ++ runp->is_undefined = 0; ++ } ++ ++ name = (char *) xmalloc (arg->val.str.lenmb + 1); ++ memcpy (name, arg->val.str.startmb, arg->val.str.lenmb); ++ name[arg->val.str.lenmb] = '\0'; ++ runp->name = name; ++ } ++ else ++ { ++ struct toggle_list_t *runp = defined_keywords; ++ while (runp != NULL) ++ if (strncmp (runp->name, arg->val.str.startmb, ++ arg->val.str.lenmb) == 0 ++ && runp->name[arg->val.str.lenmb] == '\0') ++ { ++ runp->is_undefined = 1; ++ SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE"); ++ } ++ else ++ runp = runp->last; ++ } ++ ++ lr_ignore_rest (ldfile, 1); ++ do ++ { ++ now = lr_token (ldfile, charmap, result, NULL, verbose); ++ nowtok = now->tok; ++ } ++ while (nowtok == tok_eol); ++ } ++ + if (nowtok == tok_copy) + { + now = lr_token (ldfile, charmap, result, NULL, verbose); +@@ -3682,6 +3831,125 @@ + repertoire, result, nowtok); + break; + ++ case tok_ifdef: ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ break; ++ } ++ ++ arg = lr_token (ldfile, charmap, result, NULL, verbose); ++ if (arg->tok != tok_ident) ++ goto err_label; ++ else ++ { ++ struct toggle_list_t *runp = defined_keywords; ++ struct toggle_list_t *flow = (struct toggle_list_t *) xcalloc (1, sizeof (*runp)); ++ flow->name = "ifdef"; ++ flow->file = ldfile->fname; ++ flow->line = ldfile->lineno; ++ flow->last = collate->flow_control; ++ collate->flow_control = flow; ++ ++ while (runp != NULL) ++ if (strncmp (runp->name, arg->val.str.startmb, ++ arg->val.str.lenmb) == 0 ++ && runp->name[arg->val.str.lenmb] == '\0') ++ break; ++ else ++ runp = runp->last; ++ ++ if (runp == NULL) ++ { ++ now = flow_skip(ldfile, charmap, collate); ++ if (now->tok == tok_eof) ++ WITH_CUR_LOCALE (error (0, 0, _("\ ++%s: unterminated `%s' flow control"), "LC_COLLATE", collate->flow_control->name)); ++ } ++ } ++ lr_ignore_rest (ldfile, 1); ++ break; ++ ++ case tok_ifndef: ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ break; ++ } ++ ++ arg = lr_token (ldfile, charmap, result, NULL, verbose); ++ if (arg->tok != tok_ident) ++ goto err_label; ++ else ++ { ++ struct toggle_list_t *runp = defined_keywords; ++ struct toggle_list_t *flow = (struct toggle_list_t *) xcalloc (1, sizeof (*runp)); ++ flow->name = "ifndef"; ++ flow->file = ldfile->fname; ++ flow->line = ldfile->lineno; ++ flow->last = collate->flow_control; ++ collate->flow_control = flow; ++ ++ while (runp != NULL) ++ if (strncmp (runp->name, arg->val.str.startmb, ++ arg->val.str.lenmb) == 0 ++ && runp->name[arg->val.str.lenmb] == '\0') ++ break; ++ else ++ runp = runp->last; ++ ++ if (runp != NULL) ++ { ++ now = flow_skip(ldfile, charmap, collate); ++ if (now->tok == tok_eof) ++ WITH_CUR_LOCALE (error (0, 0, _("\ ++%s: unterminated `%s' flow control"), "LC_COLLATE", collate->flow_control->name)); ++ } ++ } ++ lr_ignore_rest (ldfile, 1); ++ break; ++ ++ case tok_else: ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ break; ++ } ++ ++ if (strcmp (collate->flow_control->name, "else") == 0) ++ lr_error (ldfile, ++ _("%s: `else' statement at `%s:%Zu' cannot be followed by another `else' statement"), ++ "LC_COLLATE", collate->flow_control->name, collate->flow_control->line); ++ collate->flow_control->name = "else"; ++ collate->flow_control->file = ldfile->fname; ++ collate->flow_control->line = ldfile->lineno; ++ now = flow_skip(ldfile, charmap, collate); ++ if (now->tok == tok_eof) ++ WITH_CUR_LOCALE (error (0, 0, _("\ ++%s: unterminated `%s' flow control"), "LC_COLLATE", collate->flow_control->name)); ++ break; ++ ++ case tok_endif: ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ break; ++ } ++ ++ if (collate->flow_control == NULL) ++ goto err_label; ++ else ++ collate->flow_control = collate->flow_control->last; ++ break; ++ + case tok_end: + /* Next we assume `LC_COLLATE'. */ + if (!ignore_content) +@@ -3711,6 +3979,13 @@ + else if (state == 5) + WITH_CUR_LOCALE (error (0, 0, _("\ + %s: missing `reorder-sections-end' keyword"), "LC_COLLATE")); ++ if (collate->flow_control != NULL ++ && strcmp(collate->flow_control->file, ldfile->fname) == 0) ++ WITH_CUR_LOCALE (error (0, 0, _("\ ++%s: unterminated `%s' flow control beginning at %s:%Zu"), ++ "LC_COLLATE", collate->flow_control->name, ++ collate->flow_control->file, ++ collate->flow_control->line)); + } + arg = lr_token (ldfile, charmap, result, NULL, verbose); + if (arg->tok == tok_eof) --- eglibc-2.12.1.orig/debian/patches/locale/preprocessor-collate-uli-sucks.diff +++ eglibc-2.12.1/debian/patches/locale/preprocessor-collate-uli-sucks.diff @@ -0,0 +1,334 @@ +--- + locale/programs/ld-collate.c | 265 ------------------------------------------- + 1 file changed, 265 deletions(-) + +--- a/locale/programs/ld-collate.c ++++ b/locale/programs/ld-collate.c +@@ -185,14 +185,6 @@ + #include "3level.h" + + +-/* Simple name list for the preprocessor. */ +-struct name_list +-{ +- struct name_list *next; +- char str[0]; +-}; +- +- + /* The real definition of the struct for the LC_COLLATE locale. */ + struct locale_collate_t + { +@@ -254,15 +246,6 @@ + /* The arrays with the collation sequence order. */ + unsigned char mbseqorder[256]; + struct collseq_table wcseqorder; +- +- /* State of the preprocessor. */ +- enum +- { +- else_none = 0, +- else_ignore, +- else_seen +- } +- else_action; + }; + + +@@ -270,9 +253,6 @@ + LC_COLLATE category descriptions in all files. */ + static uint32_t nrules; + +-/* List of defined preprocessor symbols. */ +-static struct name_list *defined; +- + + /* We need UTF-8 encoding of numbers. */ + static inline int +@@ -2511,46 +2491,6 @@ + } + + +-static enum token_t +-skip_to (struct linereader *ldfile, struct locale_collate_t *collate, +- const struct charmap_t *charmap, int to_endif) +-{ +- while (1) +- { +- struct token *now = lr_token (ldfile, charmap, NULL, NULL, 0); +- enum token_t nowtok = now->tok; +- +- if (nowtok == tok_eof || nowtok == tok_end) +- return nowtok; +- +- if (nowtok == tok_ifdef || nowtok == tok_ifndef) +- { +- lr_error (ldfile, _("%s: nested conditionals not supported"), +- "LC_COLLATE"); +- nowtok = skip_to (ldfile, collate, charmap, tok_endif); +- if (nowtok == tok_eof || nowtok == tok_end) +- return nowtok; +- } +- else if (nowtok == tok_endif || (!to_endif && nowtok == tok_else)) +- { +- lr_ignore_rest (ldfile, 1); +- return nowtok; +- } +- else if (!to_endif && (nowtok == tok_elifdef || nowtok == tok_elifndef)) +- { +- /* Do not read the rest of the line. */ +- return nowtok; +- } +- else if (nowtok == tok_else) +- { +- lr_error (ldfile, _("%s: more then one 'else'"), "LC_COLLATE"); +- } +- +- lr_ignore_rest (ldfile, 0); +- } +-} +- +- + void + collate_read (struct linereader *ldfile, struct localedef_t *result, + const struct charmap_t *charmap, const char *repertoire_name, +@@ -2581,8 +2521,6 @@ + /* The rest of the line containing `LC_COLLATE' must be free. */ + lr_ignore_rest (ldfile, 1); + +- while (1) +- { + do + { + now = lr_token (ldfile, charmap, result, NULL, verbose); +@@ -2590,31 +2528,6 @@ + } + while (nowtok == tok_eol); + +- if (nowtok != tok_define) +- break; +- +- if (ignore_content) +- lr_ignore_rest (ldfile, 0); +- else +- { +- arg = lr_token (ldfile, charmap, result, NULL, verbose); +- if (arg->tok != tok_ident) +- SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE"); +- else +- { +- /* Simply add the new symbol. */ +- struct name_list *newsym = xmalloc (sizeof (*newsym) +- + arg->val.str.lenmb + 1); +- memcpy (newsym->str, arg->val.str.startmb, arg->val.str.lenmb); +- newsym->str[arg->val.str.lenmb] = '\0'; +- newsym->next = defined; +- defined = newsym; +- +- lr_ignore_rest (ldfile, 1); +- } +- } +- } +- + if (nowtok == tok_copy) + { + now = lr_token (ldfile, charmap, result, NULL, verbose); +@@ -3770,7 +3683,6 @@ + break; + + case tok_end: +- seen_end: + /* Next we assume `LC_COLLATE'. */ + if (!ignore_content) + { +@@ -3811,182 +3723,6 @@ + lr_ignore_rest (ldfile, arg->tok == tok_lc_collate); + return; + +- case tok_define: +- if (ignore_content) +- { +- lr_ignore_rest (ldfile, 0); +- break; +- } +- +- arg = lr_token (ldfile, charmap, result, NULL, verbose); +- if (arg->tok != tok_ident) +- goto err_label; +- +- /* Simply add the new symbol. */ +- struct name_list *newsym = xmalloc (sizeof (*newsym) +- + arg->val.str.lenmb + 1); +- memcpy (newsym->str, arg->val.str.startmb, arg->val.str.lenmb); +- newsym->str[arg->val.str.lenmb] = '\0'; +- newsym->next = defined; +- defined = newsym; +- +- lr_ignore_rest (ldfile, 1); +- break; +- +- case tok_undef: +- if (ignore_content) +- { +- lr_ignore_rest (ldfile, 0); +- break; +- } +- +- arg = lr_token (ldfile, charmap, result, NULL, verbose); +- if (arg->tok != tok_ident) +- goto err_label; +- +- /* Remove _all_ occurrences of the symbol from the list. */ +- struct name_list *prevdef = NULL; +- struct name_list *curdef = defined; +- while (curdef != NULL) +- if (strncmp (arg->val.str.startmb, curdef->str, +- arg->val.str.lenmb) == 0 +- && curdef->str[arg->val.str.lenmb] == '\0') +- { +- if (prevdef == NULL) +- defined = curdef->next; +- else +- prevdef->next = curdef->next; +- +- struct name_list *olddef = curdef; +- curdef = curdef->next; +- +- free (olddef); +- } +- else +- { +- prevdef = curdef; +- curdef = curdef->next; +- } +- +- lr_ignore_rest (ldfile, 1); +- break; +- +- case tok_ifdef: +- case tok_ifndef: +- if (ignore_content) +- { +- lr_ignore_rest (ldfile, 0); +- break; +- } +- +- found_ifdef: +- arg = lr_token (ldfile, charmap, result, NULL, verbose); +- if (arg->tok != tok_ident) +- goto err_label; +- lr_ignore_rest (ldfile, 1); +- +- if (collate->else_action == else_none) +- { +- curdef = defined; +- while (curdef != NULL) +- if (strncmp (arg->val.str.startmb, curdef->str, +- arg->val.str.lenmb) == 0 +- && curdef->str[arg->val.str.lenmb] == '\0') +- break; +- else +- curdef = curdef->next; +- +- if ((nowtok == tok_ifdef && curdef != NULL) +- || (nowtok == tok_ifndef && curdef == NULL)) +- { +- /* We have to use the if-branch. */ +- collate->else_action = else_ignore; +- } +- else +- { +- /* We have to use the else-branch, if there is one. */ +- nowtok = skip_to (ldfile, collate, charmap, 0); +- if (nowtok == tok_else) +- collate->else_action = else_seen; +- else if (nowtok == tok_elifdef) +- { +- nowtok = tok_ifdef; +- goto found_ifdef; +- } +- else if (nowtok == tok_elifndef) +- { +- nowtok = tok_ifndef; +- goto found_ifdef; +- } +- else if (nowtok == tok_eof) +- goto seen_eof; +- else if (nowtok == tok_end) +- goto seen_end; +- } +- } +- else +- { +- /* XXX Should it really become necessary to support nested +- preprocessor handling we will push the state here. */ +- lr_error (ldfile, _("%s: nested conditionals not supported"), +- "LC_COLLATE"); +- nowtok = skip_to (ldfile, collate, charmap, 1); +- if (nowtok == tok_eof) +- goto seen_eof; +- else if (nowtok == tok_end) +- goto seen_end; +- } +- break; +- +- case tok_elifdef: +- case tok_elifndef: +- case tok_else: +- if (ignore_content) +- { +- lr_ignore_rest (ldfile, 0); +- break; +- } +- +- lr_ignore_rest (ldfile, 1); +- +- if (collate->else_action == else_ignore) +- { +- /* Ignore everything until the endif. */ +- nowtok = skip_to (ldfile, collate, charmap, 1); +- if (nowtok == tok_eof) +- goto seen_eof; +- else if (nowtok == tok_end) +- goto seen_end; +- } +- else +- { +- assert (collate->else_action == else_none); +- lr_error (ldfile, _("\ +-%s: '%s' without matching 'ifdef' or 'ifndef'"), "LC_COLLATE", +- nowtok == tok_else ? "else" +- : nowtok == tok_elifdef ? "elifdef" : "elifndef"); +- } +- break; +- +- case tok_endif: +- if (ignore_content) +- { +- lr_ignore_rest (ldfile, 0); +- break; +- } +- +- lr_ignore_rest (ldfile, 1); +- +- if (collate->else_action != else_ignore +- && collate->else_action != else_seen) +- lr_error (ldfile, _("\ +-%s: 'endif' without matching 'ifdef' or 'ifndef'"), "LC_COLLATE"); +- +- /* XXX If we support nested preprocessor directives we pop +- the state here. */ +- collate->else_action = else_none; +- break; +- + default: + err_label: + SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE"); +@@ -3997,7 +3733,6 @@ + nowtok = now->tok; + } + +- seen_eof: + /* When we come here we reached the end of the file. */ + lr_error (ldfile, _("%s: premature end of file"), "LC_COLLATE"); + } --- eglibc-2.12.1.orig/debian/patches/locale/LC_IDENTIFICATION-optional-fields.diff +++ eglibc-2.12.1/debian/patches/locale/LC_IDENTIFICATION-optional-fields.diff @@ -0,0 +1,37 @@ +In LC_IDENTIFICATION, audience, application and abbreviation keywords +are optional, thus do not report an error if they are not defined. + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-08 + +--- + locale/programs/ld-identification.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +--- a/locale/programs/ld-identification.c ++++ b/locale/programs/ld-identification.c +@@ -147,6 +147,9 @@ + "LC_IDENTIFICATION", #cat)); \ + identification->cat = ""; \ + } ++#define TEST_ELEM_OPT(cat) \ ++ if (identification->cat == NULL) \ ++ identification->cat = ""; \ + + TEST_ELEM (title); + TEST_ELEM (source); +@@ -157,9 +160,9 @@ + TEST_ELEM (fax); + TEST_ELEM (language); + TEST_ELEM (territory); +- TEST_ELEM (audience); +- TEST_ELEM (application); +- TEST_ELEM (abbreviation); ++ TEST_ELEM_OPT (audience); ++ TEST_ELEM_OPT (application); ++ TEST_ELEM_OPT (abbreviation); + TEST_ELEM (revision); + TEST_ELEM (date); + --- eglibc-2.12.1.orig/debian/patches/hppa/local-longjmp-chk.diff +++ eglibc-2.12.1/debian/patches/hppa/local-longjmp-chk.diff @@ -0,0 +1,14 @@ +--- + ports/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.S | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- /dev/null ++++ b/ports/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.S +@@ -0,0 +1,7 @@ ++/* Jump to the position specified by ENV, causing the ++ setjmp call there to return VAL, or 1 if VAL is 0. ++ void __longjmp (__jmp_buf env, int val). */ ++ ++#warning longjmp_chk unimplemented ++#define __longjmp ____longjmp_chk ++#include<__longjmp.S> --- eglibc-2.12.1.orig/debian/patches/hppa/submitted-lt.diff +++ eglibc-2.12.1/debian/patches/hppa/submitted-lt.diff @@ -0,0 +1,337 @@ +# DP: Description: Make glibc-2.3.5 compile to enable hppa linuxthreads +# correctly again. +# DP: Related bugs: +# DP: Dpatch author: Jeff Bailey +# DP: Patch author: Carlos O'Donell +# DP: Upstream status: Pending +# DP: Status Details: +# DP: Date: 2005-07-17 + +--- + linuxthreads/descr.h | 2 - + linuxthreads/oldsemaphore.c | 2 - + linuxthreads/pt-machine.c | 4 ++- + linuxthreads/pthread.c | 10 ++++---- + linuxthreads/spinlock.c | 22 +++++++++---------- + linuxthreads/spinlock.h | 26 +++++++++++++++++------ + linuxthreads/sysdeps/pthread/bits/initspin.h | 3 +- + linuxthreads/sysdeps/pthread/bits/libc-lock.h | 6 ++--- + linuxthreads/sysdeps/pthread/bits/pthreadtypes.h | 8 ++++--- + linuxthreads/sysdeps/pthread/pthread.h | 14 ++++++------ + 10 files changed, 58 insertions(+), 39 deletions(-) + +--- a/linuxthreads/descr.h ++++ b/linuxthreads/descr.h +@@ -71,7 +71,7 @@ + /* Atomic counter made possible by compare_and_swap */ + struct pthread_atomic { + long p_count; +- int p_spinlock; ++ __atomic_lock_t p_spinlock; + }; + + +--- a/linuxthreads/oldsemaphore.c ++++ b/linuxthreads/oldsemaphore.c +@@ -31,7 +31,7 @@ + + typedef struct { + long int sem_status; +- int sem_spinlock; ++ __atomic_lock_t sem_spinlock; + } old_sem_t; + + extern int __old_sem_init (old_sem_t *__sem, int __pshared, unsigned int __value); +--- a/linuxthreads/pt-machine.c ++++ b/linuxthreads/pt-machine.c +@@ -19,7 +19,9 @@ + + #define PT_EI + +-extern long int testandset (int *spinlock); ++#include ++ ++extern long int testandset (__atomic_lock_t *spinlock); + extern int __compare_and_swap (long int *p, long int oldval, long int newval); + + #include +--- a/linuxthreads/pthread.c ++++ b/linuxthreads/pthread.c +@@ -309,7 +309,7 @@ + pthread_descr self; + + /* First of all init __pthread_handles[0] and [1] if needed. */ +-# if __LT_SPINLOCK_INIT != 0 ++# ifdef __LT_INITIALIZER_NOT_ZERO + __pthread_handles[0].h_lock = __LOCK_INITIALIZER; + __pthread_handles[1].h_lock = __LOCK_INITIALIZER; + # endif +@@ -379,7 +379,7 @@ + # endif + /* self->p_start_args need not be initialized, it's all zero. */ + self->p_userstack = 1; +-# if __LT_SPINLOCK_INIT != 0 ++# ifdef __LT_INITIALIZER_NOT_ZERO + self->p_resume_count = (struct pthread_atomic) __ATOMIC_INITIALIZER; + # endif + self->p_alloca_cutoff = __MAX_ALLOCA_CUTOFF; +@@ -393,7 +393,7 @@ + #else /* USE_TLS */ + + /* First of all init __pthread_handles[0] and [1]. */ +-# if __LT_SPINLOCK_INIT != 0 ++# ifdef __LT_INITIALIZER_NOT_ZERO + __pthread_handles[0].h_lock = __LOCK_INITIALIZER; + __pthread_handles[1].h_lock = __LOCK_INITIALIZER; + # endif +@@ -696,8 +696,8 @@ + # endif + mgr->p_start_args = (struct pthread_start_args) PTHREAD_START_ARGS_INITIALIZER(__pthread_manager); + mgr->p_nr = 1; +-# if __LT_SPINLOCK_INIT != 0 +- self->p_resume_count = (struct pthread_atomic) __ATOMIC_INITIALIZER; ++# ifdef __LT_INITIALIZER_NOT_ZERO ++ mgr->p_resume_count = (struct pthread_atomic) __ATOMIC_INITIALIZER; + # endif + mgr->p_alloca_cutoff = PTHREAD_STACK_MIN / 4; + #else +--- a/linuxthreads/spinlock.c ++++ b/linuxthreads/spinlock.c +@@ -24,9 +24,9 @@ + #include "spinlock.h" + #include "restart.h" + +-static void __pthread_acquire(int * spinlock); ++static void __pthread_acquire(__atomic_lock_t * spinlock); + +-static inline void __pthread_release(int * spinlock) ++static inline void __pthread_release(__atomic_lock_t * spinlock) + { + WRITE_MEMORY_BARRIER(); + *spinlock = __LT_SPINLOCK_INIT; +@@ -269,11 +269,11 @@ + struct wait_node { + struct wait_node *next; /* Next node in null terminated linked list */ + pthread_descr thr; /* The thread waiting with this node */ +- int abandoned; /* Atomic flag */ ++ __atomic_lock_t abandoned; /* Atomic flag */ + }; + + static long wait_node_free_list; +-static int wait_node_free_list_spinlock; ++__pthread_lock_define_initialized(static, wait_node_free_list_spinlock); + + /* Allocate a new node from the head of the free list using an atomic + operation, or else using malloc if that list is empty. A fundamental +@@ -376,7 +376,7 @@ + if (self == NULL) + self = thread_self(); + +- wait_node.abandoned = 0; ++ wait_node.abandoned = __LT_SPINLOCK_INIT; + wait_node.next = (struct wait_node *) lock->__status; + wait_node.thr = self; + lock->__status = (long) &wait_node; +@@ -402,7 +402,7 @@ + wait_node.thr = self; + newstatus = (long) &wait_node; + } +- wait_node.abandoned = 0; ++ wait_node.abandoned = __LT_SPINLOCK_INIT; + wait_node.next = (struct wait_node *) oldstatus; + /* Make sure the store in wait_node.next completes before performing + the compare-and-swap */ +@@ -451,7 +451,7 @@ + if (self == NULL) + self = thread_self(); + +- p_wait_node->abandoned = 0; ++ p_wait_node->abandoned = __LT_SPINLOCK_INIT; + p_wait_node->next = (struct wait_node *) lock->__status; + p_wait_node->thr = self; + lock->__status = (long) p_wait_node; +@@ -474,7 +474,7 @@ + p_wait_node->thr = self; + newstatus = (long) p_wait_node; + } +- p_wait_node->abandoned = 0; ++ p_wait_node->abandoned = __LT_SPINLOCK_INIT; + p_wait_node->next = (struct wait_node *) oldstatus; + /* Make sure the store in wait_node.next completes before performing + the compare-and-swap */ +@@ -574,7 +574,7 @@ + while (p_node != (struct wait_node *) 1) { + int prio; + +- if (p_node->abandoned) { ++ if (lock_held(&p_node->abandoned)) { + /* Remove abandoned node. */ + #if defined TEST_FOR_COMPARE_AND_SWAP + if (!__pthread_has_cas) +@@ -674,7 +674,7 @@ + #if !defined HAS_COMPARE_AND_SWAP || defined TEST_FOR_COMPARE_AND_SWAP + + int __pthread_compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock) ++ __atomic_lock_t * spinlock) + { + int res; + +@@ -711,7 +711,7 @@ + - When nanosleep() returns, we try again, doing MAX_SPIN_COUNT + sched_yield(), then sleeping again if needed. */ + +-static void __pthread_acquire(int * spinlock) ++static void __pthread_acquire(__atomic_lock_t * spinlock) + { + int cnt = 0; + struct timespec tm; +--- a/linuxthreads/spinlock.h ++++ b/linuxthreads/spinlock.h +@@ -33,14 +33,28 @@ + #endif + #endif + ++/* Define lock_held for all arches that don't need a modified copy. */ ++#ifndef __LT_INITIALIZER_NOT_ZERO ++# define lock_held(p) *(p) ++#endif ++ ++/* Initliazers for possibly complex structures */ ++#ifdef __LT_INITIALIZER_NOT_ZERO ++# define __pthread_lock_define_initialized(CLASS,NAME) \ ++ CLASS __atomic_lock_t NAME = __LT_SPINLOCK_ALT_INIT ++#else ++# define __pthread_lock_define_initialized(CLASS,NAME) \ ++ CLASS __atomic_lock_t NAME ++#endif ++ + #if defined(TEST_FOR_COMPARE_AND_SWAP) + + extern int __pthread_has_cas; + extern int __pthread_compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock); ++ __atomic_lock_t * spinlock); + + static inline int compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock) ++ __atomic_lock_t * spinlock) + { + if (__builtin_expect (__pthread_has_cas, 1)) + return __compare_and_swap(ptr, oldval, newval); +@@ -58,7 +72,7 @@ + + static inline int + compare_and_swap_with_release_semantics (long * ptr, long oldval, +- long newval, int * spinlock) ++ long newval, __atomic_lock_t * spinlock) + { + return __compare_and_swap_with_release_semantics (ptr, oldval, + newval); +@@ -67,7 +81,7 @@ + #endif + + static inline int compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock) ++ __atomic_lock_t * spinlock) + { + return __compare_and_swap(ptr, oldval, newval); + } +@@ -75,10 +89,10 @@ + #else + + extern int __pthread_compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock); ++ __atomic_lock_t * spinlock); + + static inline int compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock) ++ __atomic_lock_t * spinlock) + { + return __pthread_compare_and_swap(ptr, oldval, newval, spinlock); + } +--- a/linuxthreads/sysdeps/pthread/bits/initspin.h ++++ b/linuxthreads/sysdeps/pthread/bits/initspin.h +@@ -23,6 +23,7 @@ + #define __LT_SPINLOCK_INIT 0 + + /* Macros for lock initializers, using the above definition. */ +-#define __LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT } ++#define __LOCK_INITIALIZER ((struct _pthread_fastlock){ 0, __LT_SPINLOCK_INIT }) ++#define __LOCK_ALT_INITIALIZER { 0, __LT_SPINLOCK_INIT } + #define __ALT_LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT } + #define __ATOMIC_INITIALIZER { 0, __LT_SPINLOCK_INIT } +--- a/linuxthreads/sysdeps/pthread/bits/libc-lock.h ++++ b/linuxthreads/sysdeps/pthread/bits/libc-lock.h +@@ -71,12 +71,12 @@ + initialized locks must be set to one due to the lack of normal + atomic operations.) */ + +-#if __LT_SPINLOCK_INIT == 0 ++#ifdef __LT_INITIALIZER_NOT_ZERO + # define __libc_lock_define_initialized(CLASS,NAME) \ +- CLASS __libc_lock_t NAME; ++ CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER; + #else + # define __libc_lock_define_initialized(CLASS,NAME) \ +- CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER; ++ CLASS __libc_lock_t NAME; + #endif + + #define __libc_rwlock_define_initialized(CLASS,NAME) \ +--- a/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h ++++ b/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h +@@ -22,12 +22,14 @@ + #define __need_schedparam + #include + ++typedef int __atomic_lock_t; ++ + /* Fast locks (not abstract because mutexes and conditions aren't abstract). */ + struct _pthread_fastlock + { +- long int __status; /* "Free" or "taken" or head of waiting list */ +- int __spinlock; /* Used by compare_and_swap emulation. Also, +- adaptive SMP lock stores spin count here. */ ++ long int __status; /* "Free" or "taken" or head of waiting list */ ++ __atomic_lock_t __spinlock; /* Used by compare_and_swap emulation. Also, ++ adaptive SMP lock stores spin count here. */ + }; + + #ifndef _PTHREAD_DESCR_DEFINED +--- a/linuxthreads/sysdeps/pthread/pthread.h ++++ b/linuxthreads/sysdeps/pthread/pthread.h +@@ -31,26 +31,26 @@ + /* Initializers. */ + + #define PTHREAD_MUTEX_INITIALIZER \ +- {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, __LOCK_INITIALIZER} ++ {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, __LOCK_ALT_INITIALIZER} + #ifdef __USE_GNU + # define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \ +- {0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, __LOCK_INITIALIZER} ++ {0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, __LOCK_ALT_INITIALIZER} + # define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \ +- {0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, __LOCK_INITIALIZER} ++ {0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, __LOCK_ALT_INITIALIZER} + # define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \ +- {0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __LOCK_INITIALIZER} ++ {0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __LOCK_ALT_INITIALIZER} + #endif + +-#define PTHREAD_COND_INITIALIZER {__LOCK_INITIALIZER, 0, "", 0} ++#define PTHREAD_COND_INITIALIZER {__LOCK_ALT_INITIALIZER, 0, "", 0} + + #if defined __USE_UNIX98 || defined __USE_XOPEN2K + # define PTHREAD_RWLOCK_INITIALIZER \ +- { __LOCK_INITIALIZER, 0, NULL, NULL, NULL, \ ++ { __LOCK_ALT_INITIALIZER, 0, NULL, NULL, NULL, \ + PTHREAD_RWLOCK_DEFAULT_NP, PTHREAD_PROCESS_PRIVATE } + #endif + #ifdef __USE_GNU + # define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \ +- { __LOCK_INITIALIZER, 0, NULL, NULL, NULL, \ ++ { __LOCK_ALT_INITIALIZER, 0, NULL, NULL, NULL, \ + PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, PTHREAD_PROCESS_PRIVATE } + #endif + --- eglibc-2.12.1.orig/debian/patches/hppa/local-stack-grows-up.diff +++ eglibc-2.12.1/debian/patches/hppa/local-stack-grows-up.diff @@ -0,0 +1,210 @@ +--- + nptl/allocatestack.c | 24 ++++++++++++++++-------- + nptl/pthread_attr_getstack.c | 6 +++++- + nptl/pthread_attr_setstack.c | 10 +++++++++- + nptl/pthread_create.c | 14 ++++++++++---- + nptl/pthread_getattr_np.c | 15 ++++++++++++++- + 5 files changed, 54 insertions(+), 15 deletions(-) + +--- a/nptl/allocatestack.c ++++ b/nptl/allocatestack.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002-2007, 2009 Free Software Foundation, Inc. ++/* Copyright (C) 2002-2007, 2009, 2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + +@@ -353,6 +353,15 @@ + if (__builtin_expect (attr->flags & ATTR_FLAG_STACKADDR, 0)) + { + uintptr_t adj; ++#if _STACK_GROWS_DOWN ++ char * stackaddr = (char *) attr->stackaddr; ++#else ++ /* Assume the same layout as the _STACK_GROWS_DOWN case, ++ with struct pthread at the top of the stack block. ++ Later we adjust the guard location and stack address ++ to match the _STACK_GROWS_UP case. */ ++ char * stackaddr = (char *) attr->stackaddr + attr->stacksize; ++#endif + + /* If the user also specified the size of the stack make sure it + is large enough. */ +@@ -362,11 +371,11 @@ + + /* Adjust stack size for alignment of the TLS block. */ + #if TLS_TCB_AT_TP +- adj = ((uintptr_t) attr->stackaddr - TLS_TCB_SIZE) ++ adj = ((uintptr_t) stackaddr - TLS_TCB_SIZE) + & __static_tls_align_m1; + assert (size > adj + TLS_TCB_SIZE); + #elif TLS_DTV_AT_TP +- adj = ((uintptr_t) attr->stackaddr - __static_tls_size) ++ adj = ((uintptr_t) stackaddr - __static_tls_size) + & __static_tls_align_m1; + assert (size > adj); + #endif +@@ -376,10 +385,10 @@ + the stack. It is the user's responsibility to do this if it + is wanted. */ + #if TLS_TCB_AT_TP +- pd = (struct pthread *) ((uintptr_t) attr->stackaddr ++ pd = (struct pthread *) ((uintptr_t) stackaddr + - TLS_TCB_SIZE - adj); + #elif TLS_DTV_AT_TP +- pd = (struct pthread *) (((uintptr_t) attr->stackaddr ++ pd = (struct pthread *) (((uintptr_t) stackaddr + - __static_tls_size - adj) + - TLS_PRE_TCB_SIZE); + #endif +@@ -391,7 +400,7 @@ + pd->specific[0] = pd->specific_1stblock; + + /* Remember the stack-related values. */ +- pd->stackblock = (char *) attr->stackaddr - size; ++ pd->stackblock = (char *) stackaddr - size; + pd->stackblock_size = size; + + /* This is a user-provided stack. It will not be queued in the +@@ -616,7 +625,7 @@ + char *guard = mem + (((size - guardsize) / 2) & ~pagesize_m1); + #elif _STACK_GROWS_DOWN + char *guard = mem; +-# elif _STACK_GROWS_UP ++#elif _STACK_GROWS_UP + char *guard = (char *) (((uintptr_t) pd - guardsize) & ~pagesize_m1); + #endif + if (mprotect (guard, guardsize, PROT_NONE) != 0) +@@ -715,7 +724,6 @@ + *stack = stacktop; + #elif _STACK_GROWS_UP + *stack = pd->stackblock; +- assert (*stack > 0); + #endif + + return 0; +--- a/nptl/pthread_attr_getstack.c ++++ b/nptl/pthread_attr_getstack.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002 Free Software Foundation, Inc. ++/* Copyright (C) 2002, 2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + +@@ -33,7 +33,11 @@ + iattr = (struct pthread_attr *) attr; + + /* Store the result. */ ++#ifdef _STACK_GROWS_DOWN + *stackaddr = (char *) iattr->stackaddr - iattr->stacksize; ++#else ++ *stackaddr = (char *) iattr->stackaddr; ++#endif + *stacksize = iattr->stacksize; + + return 0; +--- a/nptl/pthread_attr_setstack.c ++++ b/nptl/pthread_attr_setstack.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. ++/* Copyright (C) 2002, 2003, 2006, 2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + +@@ -48,7 +48,11 @@ + #endif + + iattr->stacksize = stacksize; ++#if _STACK_GROWS_DOWN + iattr->stackaddr = (char *) stackaddr + stacksize; ++#else ++ iattr->stackaddr = (char *) stackaddr; ++#endif + iattr->flags |= ATTR_FLAG_STACKADDR; + + return 0; +@@ -81,7 +85,11 @@ + # endif + + iattr->stacksize = stacksize; ++#if _STACK_GROWS_DOWN + iattr->stackaddr = (char *) stackaddr + stacksize; ++#else ++ iattr->stackaddr = (char *) stackaddr; ++#endif + iattr->flags |= ATTR_FLAG_STACKADDR; + + return 0; +--- a/nptl/pthread_create.c ++++ b/nptl/pthread_create.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002-2007,2008,2009 Free Software Foundation, Inc. ++/* Copyright (C) 2002-2007,2008,2009,2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + +@@ -388,12 +388,18 @@ + #ifdef _STACK_GROWS_DOWN + char *sp = CURRENT_STACK_FRAME; + size_t freesize = (sp - (char *) pd->stackblock) & ~pagesize_m1; +-#else +-# error "to do" +-#endif + assert (freesize < pd->stackblock_size); + if (freesize > PTHREAD_STACK_MIN) + madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED); ++#else ++ char *sp = CURRENT_STACK_FRAME; ++ size_t freesize = ((char *) pd->stackblock + pd->stackblock_size - sp) ++ & ~pagesize_m1; ++ void *freeblock = (void *) (sp + PTHREAD_STACK_MIN); ++ assert (freesize < pd->stackblock_size); ++ if (freesize > PTHREAD_STACK_MIN) ++ madvise (freeblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED); ++#endif + + /* If the thread is detached free the TCB. */ + if (IS_DETACHED (pd)) +--- a/nptl/pthread_getattr_np.c ++++ b/nptl/pthread_getattr_np.c +@@ -1,4 +1,5 @@ +-/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. ++/* Copyright (C) 2002, 2003, 2004, 2006, 2007, ++ 2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + +@@ -61,7 +62,11 @@ + if (__builtin_expect (thread->stackblock != NULL, 1)) + { + iattr->stacksize = thread->stackblock_size; ++#ifdef _STACK_GROWS_DOWN + iattr->stackaddr = (char *) thread->stackblock + iattr->stacksize; ++#else ++ iattr->stackaddr = (char *) thread->stackblock; ++#endif + } + else + { +@@ -110,13 +115,21 @@ + { + /* Found the entry. Now we have the info we need. */ + iattr->stacksize = rl.rlim_cur; ++#ifdef _STACK_GROWS_DOWN + iattr->stackaddr = (void *) to; + + /* The limit might be too high. */ + if ((size_t) iattr->stacksize + > (size_t) iattr->stackaddr - last_to) + iattr->stacksize = (size_t) iattr->stackaddr - last_to; ++#else ++ iattr->stackaddr = (void *) from; + ++ /* The limit might be too high. */ ++ if ((size_t) iattr->stacksize ++ > to - (size_t) iattr->stackaddr) ++ iattr->stacksize = to - (size_t) iattr->stackaddr; ++#endif + /* We succeed and no need to look further. */ + ret = 0; + break; --- eglibc-2.12.1.orig/debian/patches/hppa/local-linuxthreads-gscope.diff +++ eglibc-2.12.1/debian/patches/hppa/local-linuxthreads-gscope.diff @@ -0,0 +1,36 @@ +--- + ports/sysdeps/hppa/linuxthreads/tls.h | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +--- a/ports/sysdeps/hppa/linuxthreads/tls.h ++++ b/ports/sysdeps/hppa/linuxthreads/tls.h +@@ -100,6 +100,29 @@ + #define THREAD_SETMEM_NC(descr, member, value) \ + ((void) sizeof (descr), THREAD_SELF->member = (value)) + ++/* Get and set the global scope generation counter in struct pthread. */ ++#define THREAD_GSCOPE_FLAG_UNUSED 0 ++#define THREAD_GSCOPE_FLAG_USED 1 ++#define THREAD_GSCOPE_FLAG_WAIT 2 ++#define THREAD_GSCOPE_RESET_FLAG() \ ++ do \ ++ { int __res \ ++ = atomic_exchange_rel (&THREAD_SELF->p_gscope_flag, \ ++ THREAD_GSCOPE_FLAG_UNUSED); \ ++ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ ++ lll_futex_wake (&THREAD_SELF->p_gscope_flag, 1); \ ++ } \ ++ while (0) ++#define THREAD_GSCOPE_SET_FLAG() \ ++ do \ ++ { \ ++ THREAD_SELF->p_gscope_flag = THREAD_GSCOPE_FLAG_USED; \ ++ atomic_write_barrier (); \ ++ } \ ++ while (0) ++#define THREAD_GSCOPE_WAIT() \ ++ do { /* GL(dl_wait_lookup_done) () */ } while (0) ++ + /* Install the dtv pointer. The pointer passed is to the element with + index -1 which contain the length. */ + # define INSTALL_DTV(tcbp, dtvp) \ --- eglibc-2.12.1.orig/debian/patches/hppa/local-linuxthreads.diff +++ eglibc-2.12.1/debian/patches/hppa/local-linuxthreads.diff @@ -0,0 +1,319 @@ +--- + ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/lowlevellock.h | 298 ++++++++++ + ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/sysdep-cancel.h | 7 + 2 files changed, 305 insertions(+) + +--- /dev/null ++++ b/ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/lowlevellock.h +@@ -0,0 +1,298 @@ ++/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _LOWLEVELLOCK_H ++#define _LOWLEVELLOCK_H 1 ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* The hppa only has one atomic read and modify memory operation, ++ load and clear, so hppa uses a kernel helper routine to implement ++ compare_and_exchange. See atomic.h for the userspace calling ++ sequence. */ ++ ++#define FUTEX_WAIT 0 ++#define FUTEX_WAKE 1 ++#define FUTEX_REQUEUE 3 ++#define FUTEX_CMP_REQUEUE 4 ++#define FUTEX_WAKE_OP 5 ++#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1) ++#define FUTEX_LOCK_PI 6 ++#define FUTEX_UNLOCK_PI 7 ++#define FUTEX_TRYLOCK_PI 8 ++ ++/* Initialize locks to zero. */ ++#define LLL_MUTEX_LOCK_INITIALIZER (0) ++ ++ ++/* Type for lock object. */ ++typedef int lll_lock_t; ++ ++ ++#define lll_futex_wait(futexp, val) \ ++ ({ \ ++ INTERNAL_SYSCALL_DECL (__err); \ ++ long int __ret; \ ++ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ ++ (futexp), FUTEX_WAIT, (val), 0); \ ++ __ret; \ ++ }) ++ ++#define lll_futex_timed_wait(futexp, val, timespec) \ ++ ({ \ ++ INTERNAL_SYSCALL_DECL (__err); \ ++ long int __ret; \ ++ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ ++ (futexp), FUTEX_WAIT, (val), (timespec)); \ ++ __ret; \ ++ }) ++ ++#define lll_futex_wake(futexp, nr) \ ++ ({ \ ++ INTERNAL_SYSCALL_DECL (__err); \ ++ long int __ret; \ ++ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ ++ (futexp), FUTEX_WAKE, (nr), 0); \ ++ __ret; \ ++ }) ++ ++#define lll_robust_mutex_dead(futexv) \ ++ do \ ++ { \ ++ int *__futexp = &(futexv); \ ++ atomic_or (__futexp, FUTEX_OWNER_DIED); \ ++ lll_futex_wake (__futexp, 1); \ ++ } \ ++ while (0) ++ ++/* Returns non-zero if error happened, zero if success. */ ++#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val) \ ++ ({ \ ++ INTERNAL_SYSCALL_DECL (__err); \ ++ long int __ret; \ ++ __ret = INTERNAL_SYSCALL (futex, __err, 6, \ ++ (futexp), FUTEX_CMP_REQUEUE, (nr_wake), \ ++ (nr_move), (mutex), (val)); \ ++ __ret; \ ++ }) ++ ++/* Returns non-zero if error happened, zero if success. */ ++#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2) \ ++ ({ \ ++ INTERNAL_SYSCALL_DECL (__err); \ ++ long int __ret; \ ++ __ret = INTERNAL_SYSCALL (futex, __err, 6, \ ++ (futexp), FUTEX_WAKE_OP, (nr_wake), \ ++ (nr_wake2), (futexp2), \ ++ FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \ ++ __ret; \ ++ }) ++ ++static inline int __attribute__((always_inline)) ++__lll_mutex_trylock(lll_lock_t *futex) ++{ ++ return atomic_compare_and_exchange_val_acq (futex, 1, 0) != 0; ++} ++#define lll_mutex_trylock(lock) __lll_mutex_trylock (&(lock)) ++ ++static inline int __attribute__((always_inline)) ++__lll_robust_mutex_trylock(int *futex, int id) ++{ ++ return atomic_compare_and_exchange_val_acq (futex, id, 0) != 0; ++} ++#define lll_robust_mutex_trylock(lock, id) \ ++ __lll_robust_mutex_trylock (&(lock), id) ++ ++ ++static inline int __attribute__((always_inline)) ++__lll_mutex_cond_trylock(lll_lock_t *futex) ++{ ++ return atomic_compare_and_exchange_val_acq (futex, 2, 0) != 0; ++} ++#define lll_mutex_cond_trylock(lock) __lll_mutex_cond_trylock (&(lock)) ++ ++ ++extern void __lll_lock_wait (lll_lock_t *futex) attribute_hidden; ++ ++static inline void __attribute__((always_inline)) ++__lll_mutex_lock(lll_lock_t *futex) ++{ ++ if (atomic_compare_and_exchange_bool_acq (futex, 1, 0) != 0) ++ __lll_lock_wait (futex); ++} ++#define lll_mutex_lock(futex) __lll_mutex_lock (&(futex)) ++ ++extern int __lll_robust_lock_wait (int *futex) attribute_hidden; ++ ++static inline int __attribute__ ((always_inline)) ++__lll_robust_mutex_lock (int *futex, int id) ++{ ++ int result = 0; ++ if (atomic_compare_and_exchange_bool_acq (futex, id, 0) != 0) ++ result = __lll_robust_lock_wait (futex); ++ return result; ++} ++#define lll_robust_mutex_lock(futex, id) \ ++ __lll_robust_mutex_lock (&(futex), id) ++ ++static inline void __attribute__ ((always_inline)) ++__lll_mutex_cond_lock (lll_lock_t *futex) ++{ ++ if (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0) ++ __lll_lock_wait (futex); ++} ++#define lll_mutex_cond_lock(futex) __lll_mutex_cond_lock (&(futex)) ++ ++ ++#define lll_robust_mutex_cond_lock(futex, id) \ ++ __lll_robust_mutex_lock (&(futex), (id) | FUTEX_WAITERS) ++ ++ ++extern int __lll_timedlock_wait (lll_lock_t *futex, const struct timespec *) ++ attribute_hidden; ++extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *) ++ attribute_hidden; ++ ++static inline int __attribute__ ((always_inline)) ++__lll_mutex_timedlock (lll_lock_t *futex, const struct timespec *abstime) ++{ ++ int result = 0; ++ if (atomic_compare_and_exchange_bool_acq (futex, 1, 0) != 0) ++ result = __lll_timedlock_wait (futex, abstime); ++ return result; ++} ++#define lll_mutex_timedlock(futex, abstime) \ ++ __lll_mutex_timedlock (&(futex), abstime) ++ ++static inline int __attribute__ ((always_inline)) ++__lll_robust_mutex_timedlock (int *futex, const struct timespec *abstime, ++ int id) ++{ ++ int result = 0; ++ if (atomic_compare_and_exchange_bool_acq (futex, id, 0) != 0) ++ result = __lll_robust_timedlock_wait (futex, abstime); ++ return result; ++} ++#define lll_robust_mutex_timedlock(futex, abstime, id) \ ++ __lll_robust_mutex_timedlock (&(futex), abstime, id) ++ ++ ++static inline void __attribute__ ((always_inline)) ++__lll_mutex_unlock (lll_lock_t *futex) ++{ ++ int val = atomic_exchange_rel (futex, 0); ++ if (__builtin_expect (val > 1, 0)) ++ lll_futex_wake (futex, 1); ++} ++#define lll_mutex_unlock(futex) __lll_mutex_unlock(&(futex)) ++ ++ ++static inline void __attribute__ ((always_inline)) ++__lll_robust_mutex_unlock (int *futex, int mask) ++{ ++ int val = atomic_exchange_rel (futex, 0); ++ if (__builtin_expect (val & mask, 0)) ++ lll_futex_wake (futex, 1); ++} ++#define lll_robust_mutex_unlock(futex) \ ++ __lll_robust_mutex_unlock(&(futex), FUTEX_WAITERS) ++ ++ ++static inline void __attribute__ ((always_inline)) ++__lll_mutex_unlock_force (lll_lock_t *futex) ++{ ++ (void) atomic_exchange_rel (futex, 0); ++ lll_futex_wake (futex, 1); ++} ++#define lll_mutex_unlock_force(futex) __lll_mutex_unlock_force(&(futex)) ++ ++#define lll_mutex_islocked(futex) \ ++ (futex != 0) ++ ++/* Our internal lock implementation is identical to the binary-compatible ++ mutex implementation. */ ++ ++#define LLL_LOCK_INITIALIZER (0) ++#define LLL_LOCK_INITIALIZER_CONST (0) ++#define LLL_LOCK_INITIALIZER_LOCKED (1) ++ ++ ++#define THREAD_INIT_LOCK(PD, LOCK) \ ++ (PD)->LOCK = LLL_LOCK_INITIALIZER ++ ++extern int lll_unlock_wake_cb (lll_lock_t *__futex) attribute_hidden; ++ ++/* The states of a lock are: ++ 0 - untaken ++ 1 - taken by one user ++ >1 - taken by more users */ ++ ++#define lll_trylock(lock) lll_mutex_trylock (lock) ++#define lll_lock(lock) lll_mutex_lock (lock) ++#define lll_unlock(lock) lll_mutex_unlock (lock) ++#define lll_islocked(lock) lll_mutex_islocked (lock) ++ ++/* The kernel notifies a process which uses CLONE_CLEARTID via futex ++ wakeup when the clone terminates. The memory location contains the ++ thread ID while the clone is running and is reset to zero ++ afterwards. */ ++#define lll_wait_tid(tid) \ ++ do { \ ++ __typeof (tid) __tid; \ ++ while ((__tid = (tid)) != 0) \ ++ lll_futex_wait (&(tid), __tid); \ ++ } while (0) ++ ++extern int __lll_timedwait_tid (int *, const struct timespec *) ++ attribute_hidden; ++ ++#define lll_timedwait_tid(tid, abstime) \ ++ ({ \ ++ int __res = 0; \ ++ if ((tid) != 0) \ ++ __res = __lll_timedwait_tid (&(tid), (abstime)); \ ++ __res; \ ++ }) ++ ++ ++/* Conditional variable handling. */ ++ ++extern void __lll_cond_wait (pthread_cond_t *cond) ++ attribute_hidden; ++extern int __lll_cond_timedwait (pthread_cond_t *cond, ++ const struct timespec *abstime) ++ attribute_hidden; ++extern void __lll_cond_wake (pthread_cond_t *cond) ++ attribute_hidden; ++extern void __lll_cond_broadcast (pthread_cond_t *cond) ++ attribute_hidden; ++ ++#define lll_cond_wait(cond) \ ++ __lll_cond_wait (cond) ++#define lll_cond_timedwait(cond, abstime) \ ++ __lll_cond_timedwait (cond, abstime) ++#define lll_cond_wake(cond) \ ++ __lll_cond_wake (cond) ++#define lll_cond_broadcast(cond) \ ++ __lll_cond_broadcast (cond) ++ ++#endif /* lowlevellock.h */ +--- a/ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/sysdep-cancel.h ++++ b/ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/sysdep-cancel.h +@@ -240,3 +240,10 @@ + + #endif + /* !defined NOT_IN_libc || defined IS_IN_libpthread */ ++ ++#ifndef __ASSEMBLER__ ++# define RTLD_SINGLE_THREAD_P \ ++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ ++ p_multiple_threads) == 0, 1) ++#endif ++ --- eglibc-2.12.1.orig/debian/patches/hppa/local-dlfptr.diff +++ eglibc-2.12.1/debian/patches/hppa/local-dlfptr.diff @@ -0,0 +1,16 @@ +--- + ports/sysdeps/hppa/dl-machine.h | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +--- a/ports/sysdeps/hppa/dl-machine.h ++++ b/ports/sysdeps/hppa/dl-machine.h +@@ -64,7 +64,8 @@ + } + + #define ELF_MACHINE_BEFORE_RTLD_RELOC(dynamic_info) \ +- __hppa_init_bootstrap_fdesc_table (&bootstrap_map); ++ __hppa_init_bootstrap_fdesc_table (&bootstrap_map); \ ++ _dl_fptr_init(); + + /* Return nonzero iff ELF header is compatible with the running host. */ + static inline int --- eglibc-2.12.1.orig/debian/patches/hppa/cvs-vfork.diff +++ eglibc-2.12.1/debian/patches/hppa/cvs-vfork.diff @@ -0,0 +1,55 @@ +2010-06-24 Carlos O'Donell + + * sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S: Only create stack + frame around call to SYSCALL_ERROR_HANDLER. Do not restore %rp + from the stack frame on successfull return. + +diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S b/ports/sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S +index 83a70b7..15efa98 100644 +--- a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S ++++ b/ports/sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2005 Free Software Foundation, Inc. ++/* Copyright (C) 2005, 2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -50,10 +50,9 @@ + + /* r26, r25, r24, r23 are free since vfork has no arguments */ + ENTRY(__vfork) +- /* Prologue */ +- stwm %r3, 64(%sp) +- stw %sp, -4(%sp) +- stw %r19, -32(%sp) ++ /* We must not create a frame. When the child unwinds to call ++ exec it will clobber the same frame that the parent ++ needs to unwind. */ + + /* Save the PIC register. */ + #ifdef PIC +@@ -75,12 +74,20 @@ ENTRY(__vfork) + comclr,>>= %r1,%ret0,%r0 /* Note: unsigned compare. */ + b,n .Lerror + +- /* Return, no need to restore the PIC register. */ +- ldw -84(%sp), %rp +- bv %r0(%rp) +- ldwm -64(%sp), %r3 ++ /* Return, and DO NOT restore rp. The child may have called ++ functions that updated the frame's rp. This works because ++ the kernel ensures rp is preserved across the vfork ++ syscall. */ ++ bv,n %r0(%rp) + + .Lerror: ++ /* Now we need a stack to call a function. We are assured ++ that there is no child now, so it's safe to create ++ a frame. */ ++ stw %rp, -20(%sp) ++ stwm %r3, 64(%sp) ++ stw %sp, -4(%sp) ++ + sub %r0,%ret0,%r3 + SYSCALL_ERROR_HANDLER + /* Restore the PIC register (in delay slot) on error */ --- eglibc-2.12.1.orig/debian/patches/hppa/local-inlining.diff +++ eglibc-2.12.1/debian/patches/hppa/local-inlining.diff @@ -0,0 +1,18 @@ +Increase the maximal overall growth of the compilation unit caused +by inlining for dl-reloc.c on hppa. This remove some warnings and +strangely it reduces the size of the final binary. + +--- + ports/sysdeps/hppa/Makefile | 1 + + 1 file changed, 1 insertion(+) + +--- a/ports/sysdeps/hppa/Makefile ++++ b/ports/sysdeps/hppa/Makefile +@@ -24,6 +24,7 @@ + + ifeq ($(subdir),elf) + CFLAGS-rtld.c += -mdisable-fpregs ++CFLAGS-dl-reloc.c += --param inline-unit-growth=100 + sysdep-dl-routines += dl-symaddr dl-fptr + sysdep_routines += $(sysdep-dl-routines) + sysdep-rtld-routines += $(sysdep-dl-routines) --- eglibc-2.12.1.orig/debian/patches/hppa/submitted-nptl-carlos.diff +++ eglibc-2.12.1/debian/patches/hppa/submitted-nptl-carlos.diff @@ -0,0 +1,247 @@ +--- + elf/rtld.c | 10 +++++----- + include/atomic.h | 26 +++++++++++++------------- + nptl/Makefile | 35 ++++++++++++++++++++++++++++++++--- + nptl/pthread_barrier_wait.c | 2 +- + nptl/sysdeps/pthread/Makefile | 2 ++ + stdio-common/Makefile | 2 +- + sunrpc/clnt_udp.c | 2 +- + 7 files changed, 55 insertions(+), 24 deletions(-) + +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -389,14 +389,14 @@ + know it is available. We do not have to clear the memory if we + do not have to use the temporary bootstrap_map. Global variables + are initialized to zero by default. */ +-#ifndef DONT_USE_BOOTSTRAP_MAP ++#if !defined DONT_USE_BOOTSTRAP_MAP + # ifdef HAVE_BUILTIN_MEMSET + __builtin_memset (bootstrap_map.l_info, '\0', sizeof (bootstrap_map.l_info)); + # else +- for (size_t cnt = 0; +- cnt < sizeof (bootstrap_map.l_info) / sizeof (bootstrap_map.l_info[0]); +- ++cnt) +- bootstrap_map.l_info[cnt] = 0; ++ /* Clear the whole bootstrap_map structure */ ++ for (char *cnt = (char *)&(bootstrap_map); ++ cnt < ((char *)&(bootstrap_map) + sizeof (bootstrap_map)); ++ *cnt++ = '\0'); + # endif + # if USE___THREAD + bootstrap_map.l_tls_modid = 0; +--- a/include/atomic.h ++++ b/include/atomic.h +@@ -185,7 +185,7 @@ + __typeof (*(mem)) __atg5_value = (newvalue); \ + \ + do \ +- __atg5_oldval = *__atg5_memp; \ ++ __atg5_oldval = *(volatile __typeof (mem))__atg5_memp; \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg5_memp, __atg5_value, \ + __atg5_oldval), 0)); \ +@@ -206,7 +206,7 @@ + __typeof (*(mem)) __atg6_value = (value); \ + \ + do \ +- __atg6_oldval = *__atg6_memp; \ ++ __atg6_oldval = *(volatile __typeof (mem))__atg6_memp; \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg6_memp, \ + __atg6_oldval \ +@@ -224,7 +224,7 @@ + __typeof (*(mem)) __atg7_value = (value); \ + \ + do \ +- __atg7_oldv = *__atg7_memp; \ ++ __atg7_oldv = *(volatile __typeof (mem))__atg7_memp; \ + while (__builtin_expect \ + (catomic_compare_and_exchange_bool_acq (__atg7_memp, \ + __atg7_oldv \ +@@ -242,7 +242,7 @@ + __typeof (mem) __atg8_memp = (mem); \ + __typeof (*(mem)) __atg8_value = (value); \ + do { \ +- __atg8_oldval = *__atg8_memp; \ ++ __atg8_oldval = *(volatile __typeof (mem))__atg8_memp; \ + if (__atg8_oldval >= __atg8_value) \ + break; \ + } while (__builtin_expect \ +@@ -259,7 +259,7 @@ + __typeof (mem) __atg9_memp = (mem); \ + __typeof (*(mem)) __atg9_value = (value); \ + do { \ +- __atg9_oldv = *__atg9_memp; \ ++ __atg9_oldv = *(volatile __typeof (mem))__atg9_memp; \ + if (__atg9_oldv >= __atg9_value) \ + break; \ + } while (__builtin_expect \ +@@ -277,7 +277,7 @@ + __typeof (mem) __atg10_memp = (mem); \ + __typeof (*(mem)) __atg10_value = (value); \ + do { \ +- __atg10_oldval = *__atg10_memp; \ ++ __atg10_oldval = *(volatile __typeof (mem))__atg10_memp; \ + if (__atg10_oldval <= __atg10_value) \ + break; \ + } while (__builtin_expect \ +@@ -361,7 +361,7 @@ + \ + do \ + { \ +- __atg11_oldval = *__atg11_memp; \ ++ __atg11_oldval = *(volatile __typeof (mem))__atg11_memp; \ + if (__builtin_expect (__atg11_oldval <= 0, 0)) \ + break; \ + } \ +@@ -400,7 +400,7 @@ + __typeof (*(mem)) __atg14_mask = ((__typeof (*(mem))) 1 << (bit)); \ + \ + do \ +- __atg14_old = (*__atg14_memp); \ ++ __atg14_old = (*(volatile __typeof (mem))__atg14_memp); \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg14_memp, \ + __atg14_old | __atg14_mask,\ +@@ -418,7 +418,7 @@ + __typeof (*(mem)) __atg15_mask = (mask); \ + \ + do \ +- __atg15_old = (*__atg15_memp); \ ++ __atg15_old = (*(volatile __typeof (mem))__atg15_memp); \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg15_memp, \ + __atg15_old & __atg15_mask, \ +@@ -450,7 +450,7 @@ + __typeof (*(mem)) __atg16_mask = (mask); \ + \ + do \ +- __atg16_old = (*__atg16_memp); \ ++ __atg16_old = (*(volatile __typeof (mem))__atg16_memp); \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg16_memp, \ + __atg16_old & __atg16_mask,\ +@@ -468,7 +468,7 @@ + __typeof (*(mem)) __atg17_mask = (mask); \ + \ + do \ +- __atg17_old = (*__atg17_memp); \ ++ __atg17_old = (*(volatile __typeof (mem))__atg17_memp); \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg17_memp, \ + __atg17_old | __atg17_mask, \ +@@ -484,7 +484,7 @@ + __typeof (*(mem)) __atg18_mask = (mask); \ + \ + do \ +- __atg18_old = (*__atg18_memp); \ ++ __atg18_old = (*(volatile __typeof (mem))__atg18_memp); \ + while (__builtin_expect \ + (catomic_compare_and_exchange_bool_acq (__atg18_memp, \ + __atg18_old | __atg18_mask,\ +@@ -500,7 +500,7 @@ + __typeof (*(mem)) __atg19_mask = (mask); \ + \ + do \ +- __atg19_old = (*__atg19_memp); \ ++ __atg19_old = (*(volatile __typeof (mem))__atg19_memp); \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg19_memp, \ + __atg19_old | __atg19_mask,\ +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -276,9 +276,9 @@ + # Files which must not be linked with libpthread. + tests-nolibpthread = tst-unload + +-# This sets the stack resource limit to 1023kb, which is not a multiple +-# of the page size since every architecture's page size is > 1k. +-tst-oddstacklimit-ENV = ; ulimit -s 1023; ++# This sets the stack resource limit to 8193kb, which is not a multiple ++# of the page size since every architecture's page size is 4096 bytes. ++tst-oddstacklimit-ENV = ; ulimit -s 8193; + + distribute = eintr.c tst-cleanup4aux.c + +@@ -442,6 +442,35 @@ + CFLAGS-tst-cleanupx4.c += -fexceptions + CFLAGS-tst-oncex3.c += -fexceptions + CFLAGS-tst-oncex4.c += -fexceptions ++ ++ldflags-libgcc_s = --as-needed -lgcc_s --no-as-needed ++LDFLAGS-tst-cancelx2 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx3 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx4 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx5 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx6 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx7 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx8 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx9 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx10 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx11 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx12 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx13 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx14 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx15 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx16 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx17 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx18 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx20 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx21 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cleanupx0 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cleanupx1 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cleanupx2 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cleanupx3 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cleanupx4 += $(ldflags-libgcc_s) ++LDFLAGS-tst-oncex3 += $(ldflags-libgcc_s) ++LDFLAGS-tst-oncex4 += $(ldflags-libgcc_s) ++ + CFLAGS-tst-align.c += $(stack-align-test-flags) + CFLAGS-tst-align3.c += $(stack-align-test-flags) + CFLAGS-tst-initializers1.c = -W -Wall -Werror +--- a/nptl/pthread_barrier_wait.c ++++ b/nptl/pthread_barrier_wait.c +@@ -64,7 +64,7 @@ + do + lll_futex_wait (&ibarrier->curr_event, event, + ibarrier->private ^ FUTEX_PRIVATE_FLAG); +- while (event == ibarrier->curr_event); ++ while (event == *(volatile unsigned int *)&ibarrier->curr_event); + } + + /* Make sure the init_count is stored locally or in a register. */ +--- a/nptl/sysdeps/pthread/Makefile ++++ b/nptl/sysdeps/pthread/Makefile +@@ -44,7 +44,9 @@ + + ifeq ($(have-forced-unwind),yes) + tests += tst-mqueue8x ++ldflags-libgcc_s = --as-needed -lgcc_s --no-as-needed + CFLAGS-tst-mqueue8x.c += -fexceptions ++LDFLAGS-tst-mqueue8x += $(ldflags-libgcc_s) + endif + endif + +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -96,7 +96,7 @@ + $(SHELL) -e tst-printf.sh $(common-objpfx) '$(run-program-prefix)' + # eglibc: endif + +-CFLAGS-vfprintf.c = -Wno-uninitialized ++CFLAGS-vfprintf.c = -Wno-uninitialized -fno-delayed-branch + CFLAGS-vfwprintf.c = -Wno-uninitialized + CFLAGS-tst-printf.c = -Wno-format + CFLAGS-tstdiomisc.c = -Wno-format +--- a/sunrpc/clnt_udp.c ++++ b/sunrpc/clnt_udp.c +@@ -456,7 +456,7 @@ + while (inlen < 0 && errno == EINTR); + if (inlen < 0) + { +- if (errno == EWOULDBLOCK) ++ if (errno == EWOULDBLOCK || errno == EAGAIN) + continue; + cu->cu_error.re_errno = errno; + return (cu->cu_error.re_status = RPC_CANTRECV); --- eglibc-2.12.1.orig/debian/patches/hppa/local-lowlevellock.diff +++ eglibc-2.12.1/debian/patches/hppa/local-lowlevellock.diff @@ -0,0 +1,34 @@ +2010-02-11 Aurelien Jarno + + * sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: remove + useless include. Move include to... + * sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c: here. + +--- + ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c | 1 + + ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h | 2 -- + 2 files changed, 1 insertion(+), 2 deletions(-) + +--- a/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c ++++ b/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include /* Need THREAD_*, and header.*. */ + + void + __lll_lock_wait (lll_lock_t *futex, int private) +--- a/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h ++++ b/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h +@@ -22,10 +22,8 @@ + #include + #include + #include +-#include + #include + #include /* Need __ASSUME_PRIVATE_FUTEX. */ +-#include /* Need THREAD_*, and header.*. */ + + /* HPPA only has one atomic read and modify memory operation, + load and clear, so hppa uses a kernel helper routine to implement --- eglibc-2.12.1.orig/debian/patches/hppa/cvs-nptl-compat.diff +++ eglibc-2.12.1/debian/patches/hppa/cvs-nptl-compat.diff @@ -0,0 +1,36 @@ +--- + ports/sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +--- a/ports/sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h ++++ b/ports/sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h +@@ -64,7 +64,10 @@ + { + struct __pthread_mutex_s + { +- int __lock; ++ /* Ensure that the entire structure when embedded in another ++ structure retains the same alignment requirements as it ++ did in LinuxThreads, thus add aligned 16 here. */ ++ int __lock __attribute__ ((aligned(16))); + unsigned int __count; + int __owner; + /* KIND must stay at this position in the structure to maintain +@@ -113,7 +116,7 @@ + start of the 4-word lock structure, the next four words + are set all to 1 by the Linuxthreads + PTHREAD_COND_INITIALIZER. */ +- int __lock; ++ int __lock __attribute__ ((aligned(16))); + /* Tracks the initialization of this structure: + 0 initialized with NPTL PTHREAD_COND_INITIALIZER. + 1 initialized with Linuxthreads PTHREAD_COND_INITIALIZER. +@@ -161,7 +164,7 @@ + start of the 4-word 16-byte aligned lock structure. The + next four words are all set to 1 by the Linuxthreads + PTHREAD_RWLOCK_INITIALIZER. We ignore them in NPTL. */ +- int __compat_padding[4]; ++ int __compat_padding[4] __attribute__ ((aligned(16))); + int __lock; + unsigned int __nr_readers; + unsigned int __readers_wakeup; --- eglibc-2.12.1.orig/debian/patches/hppa/submitted-fadvise64_64.diff +++ eglibc-2.12.1/debian/patches/hppa/submitted-fadvise64_64.diff @@ -0,0 +1,26 @@ +--- + sysdeps/unix/sysv/linux/posix_fadvise.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +--- a/sysdeps/unix/sysv/linux/posix_fadvise.c ++++ b/sysdeps/unix/sysv/linux/posix_fadvise.c +@@ -35,6 +35,19 @@ + return INTERNAL_SYSCALL_ERRNO (ret, err); + return 0; + #else ++# ifdef __NR_fadvise64_64 ++ INTERNAL_SYSCALL_DECL (err); ++ int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, ++ __LONG_LONG_PAIR ((long) (offset >> 31), ++ (long) offset), ++ __LONG_LONG_PAIR ((long) (len >> 31), ++ (long) len), ++ advise); ++ if (INTERNAL_SYSCALL_ERROR_P (ret, err)) ++ return INTERNAL_SYSCALL_ERRNO (ret, err); ++ return 0; ++# else + return ENOSYS; ++# endif + #endif + } --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-undef-glibc.diff +++ eglibc-2.12.1/debian/patches/kfreebsd/local-undef-glibc.diff @@ -0,0 +1,18 @@ +Description: #undef __GLIBC__ before defining it +Author: rmh +Upstream status: REJECTED. DO NOT SUBMIT. (send to debian instead) + +--- + include/features.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/include/features.h ++++ b/include/features.h +@@ -310,6 +310,7 @@ + + /* Major and minor version number of the GNU C library package. Use + these macros to test for features in specific releases. */ ++#undef __GLIBC__ + #define __GLIBC__ 2 + #define __GLIBC_MINOR__ 8 + --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-pthread_at_fork.diff +++ eglibc-2.12.1/debian/patches/kfreebsd/local-pthread_at_fork.diff @@ -0,0 +1,15 @@ +--- + linuxthreads/old_pthread_atfork.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/linuxthreads/old_pthread_atfork.c ++++ b/linuxthreads/old_pthread_atfork.c +@@ -19,7 +19,7 @@ + + #include + +-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_3) ++#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_3_2) + # define __pthread_atfork __dyn_pthread_atfork + # include "pthread_atfork.c" + # undef __pthread_atfork --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-config_h_in.patch +++ eglibc-2.12.1/debian/patches/kfreebsd/local-config_h_in.patch @@ -0,0 +1,17 @@ +2009-05-23 Aurelien Jarno + + * config.h.in (__KFREEBSD_KERNEL_VERSION): Add. + +--- a/config.h.in ++++ b/config.h.in +@@ -150,6 +150,9 @@ + /* Linux specific: minimum supported kernel version. */ + #undef __LINUX_KERNEL_VERSION + ++/* kFreeBSD specific: minimum supported kernel version. */ ++#undef __KFREEBSD_KERNEL_VERSION ++ + /* Override abi-tags ABI version if necessary. */ + #undef __ABI_TAG_VERSION + + --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-sys_queue_h.diff +++ eglibc-2.12.1/debian/patches/kfreebsd/local-sys_queue_h.diff @@ -0,0 +1,90 @@ +--- + misc/sys/queue.h | 37 +++++++++++++++++++++++++++++++++++++ + 1 file changed, 37 insertions(+) + +--- a/misc/sys/queue.h ++++ b/misc/sys/queue.h +@@ -32,6 +32,8 @@ + #ifndef _SYS_QUEUE_H_ + #define _SYS_QUEUE_H_ + ++#include ++ + /* + * This file defines five types of data structures: singly-linked lists, + * lists, simple queues, tail queues, and circular queues. +@@ -136,6 +138,11 @@ + (var); \ + (var) = ((var)->field.le_next)) + ++#define LIST_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = ((head)->lh_first); \ ++ (var) && ((tvar) = ((var)->field.le_next), 1); \ ++ (var) = (tvar)) ++ + /* + * List access methods. + */ +@@ -197,6 +204,16 @@ + #define SLIST_FOREACH(var, head, field) \ + for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next) + ++#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = SLIST_FIRST((head)); \ ++ (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ ++#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ ++ for ((varp) = &SLIST_FIRST((head)); \ ++ ((var) = *(varp)) != NULL; \ ++ (varp) = &SLIST_NEXT((var), field)) ++ + /* + * Singly-linked List access methods. + */ +@@ -253,6 +270,11 @@ + (head)->stqh_last = &(head)->stqh_first; \ + } while (/*CONSTCOND*/0) + ++#define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \ ++ if (((head)->stqh_first = ((elm)->field.stqe_next)) == NULL) \ ++ (head)->stqh_last = &((head)->stqh_first); \ ++} while (/*CONSTCOND*/0) ++ + #define STAILQ_REMOVE(head, elm, type, field) do { \ + if ((head)->stqh_first == (elm)) { \ + STAILQ_REMOVE_HEAD((head), field); \ +@@ -271,6 +293,11 @@ + (var); \ + (var) = ((var)->field.stqe_next)) + ++#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = ((elm)->field.stqe_next); \ ++ (var) && ((tvar) = ((var)->field.stqe_next), 1); \ ++ (var) = (tvar)) ++ + #define STAILQ_CONCAT(head1, head2) do { \ + if (!STAILQ_EMPTY((head2))) { \ + *(head1)->stqh_last = (head2)->stqh_first; \ +@@ -437,11 +464,21 @@ + (var); \ + (var) = ((var)->field.tqe_next)) + ++#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = ((head)->tqh_first); \ ++ (var) && ((tvar) = ((var)->field.tqe_next), 1); \ ++ (var) = (tvar)) ++ + #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ + for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \ + (var); \ + (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last))) + ++#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ ++ for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \ ++ (var) && ((tvar) = (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)), 1); \ ++ (var) = (tvar)) ++ + #define TAILQ_CONCAT(head1, head2, field) do { \ + if (!TAILQ_EMPTY(head2)) { \ + *(head1)->tqh_last = (head2)->tqh_first; \ --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-readdir_r.diff +++ eglibc-2.12.1/debian/patches/kfreebsd/local-readdir_r.diff @@ -0,0 +1,46 @@ +--- + sysdeps/unix/readdir_r.c | 30 +++++++++++++++++++++++++++++- + 1 file changed, 29 insertions(+), 1 deletion(-) + +--- a/sysdeps/unix/readdir_r.c ++++ b/sysdeps/unix/readdir_r.c +@@ -114,14 +114,32 @@ + + if (dp != NULL) + { +-#ifdef GETDENTS_64BIT_ALIGNED +- /* The d_reclen value might include padding which is not part of +- the DIRENT_TYPE data structure. */ +- reclen = MIN (reclen, sizeof (DIRENT_TYPE)); +-#endif ++ /* The required size of *entry, according to POSIX, is ++ offsetof (DIRENT_TYPE, d_name[0]) + NAME_MAX + 1. ++ We must not write beyond the end of *entry. On some operating ++ systems, dp->d_reclen may be larger; in this case, copy only as ++ many bytes as needed. Also give an error if d_name is too long. */ ++#ifdef _DIRENT_HAVE_D_RECLEN ++ /* DIRENT_TYPE is of variable size, with d_name as its last entry. */ ++ size_t namelen; ++# ifdef _DIRENT_HAVE_D_NAMLEN ++ namelen = dp->d_namlen; ++# else ++ namelen = strlen (dp->d_name); ++# endif ++ ++ if (namelen <= NAME_MAX) ++ *result = memcpy (entry, dp, ++ offsetof (DIRENT_TYPE, d_name[0]) + namelen + 1); ++ else ++ { ++ errno = EOVERFLOW; ++ dp = NULL; ++ *result = NULL; ++ } ++#else ++ /* DIRENT_TYPE is of fixed size. */ + *result = memcpy (entry, dp, reclen); +-#ifdef GETDENTS_64BIT_ALIGNED +- entry->d_reclen = reclen; + #endif + } + else --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-sysdeps.diff +++ eglibc-2.12.1/debian/patches/kfreebsd/local-sysdeps.diff @@ -0,0 +1,28112 @@ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Dist +@@ -0,0 +1,29 @@ ++bits/mcontext.h ++bits/stat16.h ++fpu.h ++machine/pal.h ++net/ethernet.h ++net/if_arp.h ++net/if_ether.h ++net/if_dl.h ++net/route.h ++nfs/nfs.h ++regdef.h ++sa_len.c ++stat16conv.c ++statfsconv.c ++sys/acl.h ++sys/extattr.h ++sys/io.h ++sys/jail.h ++sys/linker.h ++sys/mount.h ++sys/perm.h ++sys/rfork.h ++sys/rtprio.h ++sys/syslimits.h ++sys/timex.h ++sys/vm86.h ++sys_lseek.S ++sysarch.h ++ucontext_i.h +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Implies +@@ -0,0 +1,11 @@ ++# The kernel include files come from the 'kernel-include' add-on. ++# This is actually added by configure.in. ++#/usr/src/sys/ ++ ++# One of two possible utmp file formats. ++# This is actually added by configure.in. ++#unix/bsd/bsd4.4/kfreebsd/utmp-xyz ++ ++# The gnu subdirectory exists for things common to Linux-based, Hurd-based ++# and kFreeBSD-based GNU systems. ++gnu +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Makefile +@@ -0,0 +1,134 @@ ++# Use bash, not /bin/sh, for executing scripts, because the native ++# FreeBSD /bin/sh does not interpret the IFS="" read ... command ++# in localedata/tst-fmon.sh correctly. ++SHELL = bash ++ ++# Additional header files to be installed in $prefix/include: ++ ++ifeq ($(subdir),misc) ++sysdep_headers += \ ++ kenv.h \ ++ sys/mount.h \ ++ sys/kd.h \ ++ sys/rfork.h ++endif ++ ++ifeq ($(subdir),stdlib) ++sysdep_headers += \ ++ bits/mcontext.h ++endif ++ ++# Additional functions, and particular system calls: ++ ++ifeq ($(subdir),csu) ++# For . ++sysdep_routines += errno-loc ++endif ++ ++ifeq ($(subdir),assert) ++CFLAGS-assert.c += -DFATAL_PREPARE_INCLUDE='' ++CFLAGS-assert-perr.c += -DFATAL_PREPARE_INCLUDE='' ++endif ++ ++ifeq ($(subdir),io) ++# For . ++sysdep_routines += sys_access sys_faccessat sys_fchownat sys_fexecve sys_getcwd sys_linkat sys_lseek sys_freebsd6_lseek sys_readlinkat sys_symlinkat sys_unlinkat ++# For . ++sysdep_routines += sys_open sys_openat open_2 ++# For . ++sysdep_routines += sys_fchmodat sys_fstat sys_fstatat sys_lstat sys_mkdirat sys_mkfifoat sys_mknod sys_mknodat sys_nfstat sys_nlstat sys_nstat sys_stat lchflags ++# For . ++sysdep_routines += fstatfs64 statfs64 sys_fstatfs sys_statfs ++# For ++sysdep_routines += sys_renameat ++# For . ++sysdep_routines += sys_futimesat ++# Other. ++sysdep_routines += lchmod ++endif ++ ++ifeq ($(subdir),dirent) ++# For . ++sysdep_routines += sys_getdents sys_getdirentries getdirentries getdirentries64 ++endif ++ ++ifeq ($(subdir),misc) ++# For . ++sysdep_routines += kenv ++# For . ++sysdep_routines += clone start_thread ++# For . ++sysdep_routines += sys_ftruncate sys_freebsd6_ftruncate sys_truncate sys_freebsd6_truncate ++# For . ++sysdep_routines += acl_aclcheck_fd acl_aclcheck_file acl_delete_fd acl_delete_file acl_get_fd acl_get_file acl_set_fd acl_set_file ++# For . ++sysdep_routines += extattrctl extattr_delete_file extattr_get_file extattr_set_file ++# For . ++sysdep_routines += jail ++# For . ++sysdep_routines += ktrace utrace ++# For . ++sysdep_routines += kldfind kldfirstmod kldload kldnext kldstat kldsym kldunload kldunloadf ++# For . ++sysdep_routines += minherit sys_mmap sys_freebsd6_mmap sys_munmap ++# For . ++sysdep_routines += fhopen sys_fhstat sys_fhstatfs fhstat fhstat64 fhstatfs fhstatfs64 getfh getfsstat getfsstat64 sys_getfsstat getmntinfo getmntinfo64 mount nmount unmount ++# For . ++sysdep_routines += rfork ++# For . ++sysdep_routines += rtprio ++# For . ++sysdep_routines += bsd_sendfile ++# For . ++sysdep_routines += devname ++# For . ++sysdep_routines += sysctl sysctlbyname sysctlnametomib ++# For . ++sysdep_routines += sys_readv sys_writev ++# Other. ++sysdep_routines += swapon swapoff sys_aio_cancel sys_aio_error sys_aio_read sys_aio_return sys_aio_suspend sys_aio_waitcomplete sys_aio_write sys_lio_listio issetugid modfind modfnext modnext modstat obreak quotactl rfork sysarch undelete yield ++# for INLINE_SYSCALL ++sysdep_routines += sys_fork sys_execve sys_sigaction sys_close sys_fcntl ++sysdep_routines += sys_clock_getres sys_clock_gettime sys_clock_settime ++sysdep_routines += sys_shm_open sys_shm_unlink ++endif ++ ++ifeq ($(subdir),posix) ++# For . ++sysdep_routines += sys_getlogin sys_pread sys_freebsd6_pread sys_pwrite sys_freebsd6_pwrite sys_setlogin sys_read sys_write ++# for ++sysdep_routines += sys_cpuset_getaffinity sys_cpuset_setaffinity ++endif ++ ++ifeq ($(subdir),inet) ++sysdep_headers += net/ethernet.h net/if_ether.h ++endif ++ ++ifeq ($(subdir),time) ++# For . ++sysdep_routines += ntp_adjtime ntp_gettime ++endif ++ ++ifeq ($(subdir),socket) ++sysdep_routines += sa_len sys_bind sys_connect sys_sendto ++endif ++ ++# Linuxthreads dependencies. ++ ++ifeq ($(subdir),posix) ++sysdep_headers += bits/initspin.h ++endif ++ ++# Don't compile the ctype glue code, since we have a much better ++# than the old non-GNU C library. ++inhibit-glue = yes ++ ++# Special ELF hacks. ++ifeq ($(subdir),elf) ++sysdep-rtld-routines += dl-brk dl-sbrk ++sysdep_routines += sys_umtx ++endif ++ ++ifeq ($(subdir),sunrpc) ++sysdep_headers += nfs/nfs.h ++endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Versions +@@ -0,0 +1,114 @@ ++libc { ++ # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk. ++ # When you get an error from errlist-compat.awk, you need to add a new ++ # version here. Don't do this blindly, since this means changing the ABI ++ # for all GNU/kFreeBSD configurations. ++ ++ GLIBC_2.2.6 { ++ # c* ++ clone; ++ ++ # e* ++ extattrctl; extattr_delete_file; extattr_get_file; extattr_set_file; ++ ++ # f* ++ fhopen; fhstat; fhstatfs; futimes; ++ ++ # g* ++ getdents; getfh; getfsstat; getfsstat64; getmntinfo; getmntinfo64; ++ getresgid; getresuid; ++ ++ # i* ++ issetugid; ++ ++ # j* ++ jail; ++ ++ # k* ++ kldfind; kldfirstmod; kldload; kldnext; kldstat; kldsym; kldunload; kldunloadf; ++ ktrace; ++ ++ # l* ++ lchmod; lutimes; ++ ++ # m* ++ minherit; modfind; modfnext; modnext; modstat; mount; ++ ++ # n* ++ nmount; ntp_adjtime; ntp_gettime; ++ ++ # q* ++ quotactl; ++ ++ # r* ++ rfork; rtprio; ++ ++ # s* ++ sendfile; setresgid; setresuid; swapoff; swapon; sysarch; sysctl; sysctlbyname; ++ ++ # u* ++ undelete; unmount; utrace; ++ ++ # see . ++ __acl_aclcheck_fd; __acl_aclcheck_file; __acl_delete_fd; __acl_delete_file; ++ __acl_get_fd; __acl_get_file; __acl_set_fd; __acl_set_file; ++ ++ # see . ++ __errno_location; ++ ++ # see . ++ __sysctl; ++ ++ # Questionable system calls. These functions may be removed at any moment. ++ __syscall_aio_cancel; __syscall_aio_error; __syscall_aio_read; ++ __syscall_aio_return; __syscall_aio_suspend; __syscall_aio_waitcomplete; ++ __syscall_aio_write; __syscall_lio_listio; ++ __syscall_obreak; ++ __syscall_yield; ++ } ++ GLIBC_2.3 { ++ #errlist-compat 87 ++ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; ++ } ++ GLIBC_2.3.4 { ++ # f* ++ fhstat64; fhstatfs64; ++ kqueue; kevent; ++ ++ #errlist-compat 93 ++ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; ++ ++ # functions used in inline functions or macros ++ __libc_sa_len; ++ } ++ GLIBC_2.10 { ++ devname; ++ devname_r; ++ kenv; ++ sysctlnametomib; ++ } ++ GLIBC_2.11 { ++ lchflags; ++ #errlist-compat 94 ++ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; ++ } ++ GLIBC_PRIVATE { ++ # needed by libpthread. ++ __clone; __libc_fork; __libc_sigaction; ++ # needed by libpthread as INLINE_SYSCALL: ++ __syscall_fork; ++ __syscall_open; __syscall_close; ++ __syscall_read; __syscall_write; ++ __syscall_wait4; __syscall_fcntl; ++ # needed by librt as INLINE_SYSCALL: ++ __syscall_clock_getres; __syscall_clock_gettime; __syscall_clock_settime; ++ __syscall_shm_open; __syscall_shm_unlink; ++ # misc fixes for FreeBSD: ++ __syscall_freebsd6_lseek; __syscall_freebsd6_pread; __syscall_freebsd6_pwrite; ++ __syscall_lseek; __syscall_pread; __syscall_pwrite; ++ __syscall_connect; __syscall_sendto; ++ __syscall_cpuset_getaffinity ; __syscall_cpuset_setaffinity; ++ # global variable used in brk() ++ _end; ++ } ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/_G_config.h +@@ -0,0 +1,100 @@ ++/* This file is needed by libio to define various configuration parameters. ++ These are always the same in the GNU C library. */ ++ ++#ifndef _G_config_h ++#define _G_config_h 1 ++ ++/* Define types for libio in terms of the standard internal type names. */ ++ ++#include ++#define __need_size_t ++#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T ++# define __need_wchar_t ++#endif ++#define __need_NULL ++#include ++#define __need_mbstate_t ++#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T ++# define __need_wint_t ++#endif ++#include ++#define _G_size_t size_t ++typedef struct ++{ ++ __off_t __pos; ++ __mbstate_t __state; ++} _G_fpos_t; ++typedef struct ++{ ++ __off64_t __pos; ++ __mbstate_t __state; ++} _G_fpos64_t; ++#define _G_ssize_t __ssize_t ++#define _G_off_t __off_t ++#define _G_off64_t __off64_t ++#define _G_pid_t __pid_t ++#define _G_uid_t __uid_t ++#define _G_wchar_t wchar_t ++#define _G_wint_t wint_t ++#define _G_stat64 stat64 ++#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T ++# include ++typedef union ++{ ++ struct __gconv_info __cd; ++ struct ++ { ++ struct __gconv_info __cd; ++ struct __gconv_step_data __data; ++ } __combined; ++} _G_iconv_t; ++#endif ++ ++typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); ++typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); ++typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); ++typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); ++ ++#define _G_HAVE_BOOL 1 ++ ++ ++/* These library features are always available in the GNU C library. */ ++#define _G_HAVE_ATEXIT 1 ++#define _G_HAVE_SYS_CDEFS 1 ++#define _G_HAVE_SYS_WAIT 1 ++#define _G_NEED_STDARG_H 1 ++#define _G_va_list __gnuc_va_list ++ ++#define _G_HAVE_PRINTF_FP 1 ++#define _G_HAVE_MMAP 1 ++#define _G_HAVE_LONG_DOUBLE_IO 1 ++#define _G_HAVE_IO_FILE_OPEN 1 ++#define _G_HAVE_IO_GETLINE_INFO 1 ++ ++#define _G_IO_IO_FILE_VERSION 0x20001 ++ ++#define _G_OPEN64 __open64 ++#define _G_LSEEK64 __lseek64 ++#define _G_MMAP64 __mmap64 ++#define _G_FSTAT64(fd,buf) __fxstat64 (_STAT_VER, fd, buf) ++ ++/* This is defined by if `st_blksize' exists. */ ++#define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE) ++ ++#define _G_BUFSIZ 8192 ++ ++/* These are the vtbl details for ELF. */ ++#define _G_NAMES_HAVE_UNDERSCORE 0 ++#define _G_VTABLE_LABEL_HAS_LENGTH 1 ++#define _G_USING_THUNKS 1 ++#define _G_VTABLE_LABEL_PREFIX "__vt_" ++#define _G_VTABLE_LABEL_PREFIX_ID __vt_ ++ ++ ++#if defined __cplusplus || defined __STDC__ ++# define _G_ARGS(ARGLIST) ARGLIST ++#else ++# define _G_ARGS(ARGLIST) () ++#endif ++ ++#endif /* _G_config.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/a.out.h +@@ -0,0 +1,140 @@ ++#ifndef __A_OUT_GNU_H__ ++#define __A_OUT_GNU_H__ ++ ++#define __GNU_EXEC_MACROS__ ++ ++struct exec ++{ ++ unsigned long a_info; /* Use macros N_MAGIC, etc for access. */ ++ unsigned int a_text; /* Length of text, in bytes. */ ++ unsigned int a_data; /* Length of data, in bytes. */ ++ unsigned int a_bss; /* Length of uninitialized data area for file, in bytes. */ ++ unsigned int a_syms; /* Length of symbol table data in file, in bytes. */ ++ unsigned int a_entry; /* Start address. */ ++ unsigned int a_trsize;/* Length of relocation info for text, in bytes. */ ++ unsigned int a_drsize;/* Length of relocation info for data, in bytes. */ ++}; ++ ++enum machine_type ++{ ++ M_OLDSUN2 = 0, ++ M_68010 = 1, ++ M_68020 = 2, ++ M_SPARC = 3, ++ M_386 = 100, ++ M_MIPS1 = 151, ++ M_MIPS2 = 152 ++}; ++ ++#define N_MAGIC(exec) ((exec).a_info & 0xffff) ++#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff)) ++#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff) ++#define N_SET_INFO(exec, magic, type, flags) \ ++ ((exec).a_info = ((magic) & 0xffff) \ ++ | (((int)(type) & 0xff) << 16) \ ++ | (((flags) & 0xff) << 24)) ++#define N_SET_MAGIC(exec, magic) \ ++ ((exec).a_info = ((exec).a_info & 0xffff0000) | ((magic) & 0xffff)) ++#define N_SET_MACHTYPE(exec, machtype) \ ++ ((exec).a_info = \ ++ ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16)) ++#define N_SET_FLAGS(exec, flags) \ ++ ((exec).a_info = \ ++ ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24)) ++ ++/* Code indicating object file or impure executable. */ ++#define OMAGIC 0407 ++/* Code indicating pure executable. */ ++#define NMAGIC 0410 ++/* Code indicating demand-paged executable. */ ++#define ZMAGIC 0413 ++/* This indicates a demand-paged executable with the header in the text. ++ The first page is unmapped to help trap NULL pointer references. */ ++#define QMAGIC 0314 ++/* Code indicating core file. */ ++#define CMAGIC 0421 ++ ++#define N_TRSIZE(a) ((a).a_trsize) ++#define N_DRSIZE(a) ((a).a_drsize) ++#define N_SYMSIZE(a) ((a).a_syms) ++#define N_BADMAG(x) \ ++ (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \ ++ && N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC) ++#define _N_HDROFF(x) (1024 - sizeof (struct exec)) ++#define N_TXTOFF(x) \ ++ (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : \ ++ (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec))) ++#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text) ++#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data) ++#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x)) ++#define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x)) ++#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x)) ++ ++/* Address of text segment in memory after it is loaded. */ ++#define N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? 4096 : 0) ++ ++/* Address of data segment in memory after it is loaded. */ ++#define SEGMENT_SIZE 1024 ++ ++#define _N_SEGMENT_ROUND(x) (((x) + SEGMENT_SIZE - 1) & ~(SEGMENT_SIZE - 1)) ++#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text) ++ ++#define N_DATADDR(x) \ ++ (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) \ ++ : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x)))) ++#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data) ++ ++#if !defined (N_NLIST_DECLARED) ++struct nlist ++{ ++ union ++ { ++ char *n_name; ++ union ++ { ++ char *n_name; ++ struct nlist *n_next; ++ long n_strx; ++ } n_un; ++ } __attribute__ ((__transparent_union__)); ++ unsigned char n_type; ++ char n_other; ++ short n_desc; ++ unsigned long n_value; ++}; ++#endif /* no N_NLIST_DECLARED. */ ++ ++#define N_UNDF 0 ++#define N_ABS 2 ++#define N_TEXT 4 ++#define N_DATA 6 ++#define N_BSS 8 ++#define N_FN 15 ++#define N_EXT 1 ++#define N_TYPE 036 ++#define N_STAB 0340 ++#define N_INDR 0xa ++#define N_SETA 0x14 /* Absolute set element symbol. */ ++#define N_SETT 0x16 /* Text set element symbol. */ ++#define N_SETD 0x18 /* Data set element symbol. */ ++#define N_SETB 0x1A /* Bss set element symbol. */ ++#define N_SETV 0x1C /* Pointer to set vector in data area. */ ++ ++#if !defined (N_RELOCATION_INFO_DECLARED) ++/* This structure describes a single relocation to be performed. ++ The text-relocation section of the file is a vector of these structures, ++ all of which apply to the text section. ++ Likewise, the data-relocation section applies to the data section. */ ++ ++struct relocation_info ++{ ++ int r_address; ++ unsigned int r_symbolnum:24; ++ unsigned int r_pcrel:1; ++ unsigned int r_length:2; ++ unsigned int r_extern:1; ++ unsigned int r_pad:4; ++}; ++#endif /* no N_RELOCATION_INFO_DECLARED. */ ++ ++#endif /* __A_OUT_GNU_H__ */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/access.c +@@ -0,0 +1,68 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* ++ The FreeBSD kernel do not test file access correctly when the ++ process' real user ID is superuser. In particular, they always return ++ zero when testing execute permissions without regard to whether the ++ file is executable. ++ ++ While this behaviour conforms to POSIX.1-2008, it is explicitely ++ discouraged. This wrapper implements the recommended behaviour. ++ */ ++ ++extern int __syscall_access (const char *path, int mode); ++libc_hidden_proto (__syscall_access) ++ ++int ++__access (const char *path, int mode) ++{ ++ struct stat64 stats; ++ ++ if ((__getuid() != 0) || !(mode & X_OK)) ++ return __syscall_access (path, mode); ++ ++ /* Althought the super-user can read and write any file, ++ the file-system might be i.e. read-only. Do the check. */ ++ ++ if (__syscall_access (path, mode)) ++ return -1; ++ ++ if (stat64 (path, &stats)) ++ return -1; ++ ++ /* The super-user can execute any file that anyone can execute. */ ++ if (stats.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) ++ return 0; ++ ++ __set_errno (EACCES); ++ return -1; ++} ++ ++weak_alias (__access, access) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/Makefile +@@ -0,0 +1,28 @@ ++# Additional header files to be installed in $prefix/include: ++ ++ifeq ($(subdir),misc) ++sysdep_headers += machine/pal.h ++sysdep_routines += sys_select sys_utimes sys_lutimes sys_futimes ++endif ++ ++# Additional functions, and particular system calls: ++ ++ifeq ($(subdir),io) ++sysdep_routines += sys_poll ++endif ++ ++ifeq ($(subdir),math) ++sysdep_routines += ieee_get_fp_control ieee_set_fp_control ++endif ++ ++ifeq ($(subdir),posix) ++sysdep_routines += sys_nanosleep sys_sched_rr_gi ++endif ++ ++ifeq ($(subdir),time) ++sysdep_routines += sys_adjtime sys_gettimeofday sys_settimeofday sys_getitimer sys_setitimer ++endif ++ ++ifeq ($(subdir),resource) ++sysdep_routines += sys_getrusage ++endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/README +@@ -0,0 +1,11 @@ ++Note that even on 64-bit platforms, because __ino64_t != __ino_t, we have ++stat64 != stat, fstat64 != fstat, lstat64 != lstat, fhstat64 != fhstat, ++glob64 != glob. ++ ++Note that on alpha glue code is used in order to use a 64-bit __time_t with a ++32-bit __kernel_time_t type. All system calls taking arguments with ++'time_t', 'struct timeval', 'struct timespec', 'struct itimerval', ++'struct rusage', 'struct msqid_ds', 'struct shmid_ds', 'struct semid_ds' need ++some special handling. The benefit is that user programs will not need to switch ++from a 32-bit time_t to a 64-bit time_t in 2038. ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/adjtime.c +@@ -0,0 +1,51 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_adjtime (const struct __kernel_timeval *delta, ++ struct __kernel_timeval *olddelta); ++ ++int ++__adjtime (const struct timeval *delta, struct timeval *olddelta) ++{ ++ struct __kernel_timeval kdelta; ++ int retval; ++ ++ kdelta.tv_sec = delta->tv_sec; ++ kdelta.tv_usec = delta->tv_usec; ++ if (olddelta != NULL) ++ { ++ struct __kernel_timeval kolddelta; ++ ++ retval = __syscall_adjtime (&kdelta, &kolddelta); ++ if (retval >= 0) ++ { ++ olddelta->tv_sec = kolddelta.tv_sec; ++ olddelta->tv_usec = kolddelta.tv_usec; ++ } ++ } ++ else ++ retval = __syscall_adjtime (&kdelta, NULL); ++ return retval; ++} ++ ++weak_alias (__adjtime, adjtime) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/kernel_time_t.h +@@ -0,0 +1,143 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++/* This header files describe the way that structures using time_t ++ are represented in the kernel */ ++ ++#ifndef _BITS_KERNEL_TIME_T_H ++#define _BITS_TIME_H 1 ++ ++#include ++#include ++ ++/* This structure corresponds to the newer FreeBSD 'struct timespec' */ ++struct __kernel_timespec ++ { ++ int tv_sec; /* Seconds. */ ++ long int tv_nsec; /* Nanoseconds. */ ++ }; ++ ++/* This structure corresponds to the newer FreeBSD 'struct timeval' */ ++struct __kernel_timeval ++ { ++ int tv_sec; /* Seconds. */ ++ __suseconds_t tv_usec; /* Microseconds. */ ++ }; ++ ++/* This structure corresponds to the newer FreeBSD 'struct itimerval' */ ++struct __kernel_itimerval ++ { ++ /* Value to put into `it_value' when the timer expires. */ ++ struct __kernel_timeval it_interval; ++ /* Time to the next timer expiration. */ ++ struct __kernel_timeval it_value; ++ }; ++ ++/* This structure corresponds to the newer FreeBSD 'struct rusage' */ ++struct __kernel_rusage ++ { ++ /* Total amount of user time used. */ ++ struct __kernel_timeval ru_utime; ++ /* Total amount of system time used. */ ++ struct __kernel_timeval ru_stime; ++ /* Maximum resident set size (in kilobytes). */ ++ long int ru_maxrss; ++ /* Amount of sharing of text segment memory ++ with other processes (kilobyte-seconds). */ ++ long int ru_ixrss; ++ /* Amount of data segment memory used (kilobyte-seconds). */ ++ long int ru_idrss; ++ /* Amount of stack memory used (kilobyte-seconds). */ ++ long int ru_isrss; ++ /* Number of soft page faults (i.e. those serviced by reclaiming ++ a page from the list of pages awaiting reallocation. */ ++ long int ru_minflt; ++ /* Number of hard page faults (i.e. those that required I/O). */ ++ long int ru_majflt; ++ /* Number of times a process was swapped out of physical memory. */ ++ long int ru_nswap; ++ /* Number of input operations via the file system. Note: This ++ and `ru_oublock' do not include operations with the cache. */ ++ long int ru_inblock; ++ /* Number of output operations via the file system. */ ++ long int ru_oublock; ++ /* Number of IPC messages sent. */ ++ long int ru_msgsnd; ++ /* Number of IPC messages received. */ ++ long int ru_msgrcv; ++ /* Number of signals delivered. */ ++ long int ru_nsignals; ++ /* Number of voluntary context switches, i.e. because the process ++ gave up the process before it had to (usually to wait for some ++ resource to be available). */ ++ long int ru_nvcsw; ++ /* Number of involuntary context switches, i.e. a higher priority process ++ became runnable or the current process used up its time slice. */ ++ long int ru_nivcsw; ++ }; ++ ++/* This structure corresponds to the newer FreeBSD 'struct msqid_ds' */ ++struct __kernel_msqid_ds ++{ ++ struct ipc_perm msg_perm; /* structure describing operation permission */ ++ void *__msg_first; ++ void *__msg_last; ++ msglen_t __msg_cbytes; /* current number of bytes on queue */ ++ msgqnum_t msg_qnum; /* number of messages currently on queue */ ++ msglen_t msg_qbytes; /* max number of bytes allowed on queue */ ++ __pid_t msg_lspid; /* pid of last msgsnd() */ ++ __pid_t msg_lrpid; /* pid of last msgrcv() */ ++ int msg_stime; /* time of last msgsnd command */ ++ long __unused1; ++ int msg_rtime; /* time of last msgrcv command */ ++ long __unused2; ++ int msg_ctime; /* time of last change */ ++ long __unused3; ++ long __unused4[4]; ++}; ++ ++/* This structure corresponds to the newer FreeBSD 'struct shmid_ds' */ ++struct __kernel_shmid_ds ++ { ++ struct ipc_perm shm_perm; /* operation permission struct */ ++ int shm_segsz; /* size of segment in bytes */ ++ __pid_t shm_lpid; /* pid of last shmop */ ++ __pid_t shm_cpid; /* pid of creator */ ++ shmatt_t shm_nattch; /* number of current attaches */ ++ int shm_atime; /* time of last shmat() */ ++ int shm_dtime; /* time of last shmdt() */ ++ int shm_ctime; /* time of last change by shmctl() */ ++ void *__shm_internal; ++ }; ++ ++/* This structure corresponds to the newer FreeBSD 'struct semid_ds' */ ++struct semid_ds ++{ ++ struct ipc_perm sem_perm; /* operation permission struct */ ++ void *__sem_base; ++ unsigned short int sem_nsems; /* number of semaphores in set */ ++ int sem_otime; /* last semop() time */ ++ long __unused1; ++ int sem_ctime; /* last time changed by semctl() */ ++ long __unused2; ++ long __unused3[4]; ++}; ++ ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/mcontext.h +@@ -0,0 +1,52 @@ ++/* Machine-dependent processor state structure for FreeBSD. alpha version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++/* Whole processor state. */ ++typedef struct ++ { ++ long mc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* General registers. */ ++ unsigned long mc_regs[32]; ++ long mc_ps; ++ long mc_pc; /* Process counter. */ ++ ++ /* Trap arguments. */ ++ unsigned long mc_traparg_a0; ++ unsigned long mc_traparg_a1; ++ unsigned long mc_traparg_a2; ++ ++ /* Floating-point registers. */ ++ unsigned long mc_fpregs[32]; ++ unsigned long mc_fpcr; ++ unsigned long mc_fp_control; ++#define _MC_FPOWNED_NONE 0 /* FP state not used */ ++#define _MC_FPOWNED_FPU 1 /* FP state came from FPU */ ++#define _MC_FPOWNED_PCB 2 /* FP state came from PCB */ ++ long mc_ownedfp; ++#define _MC_REV0_SIGFRAME 1 /* context is a signal frame */ ++#define _MC_REV0_TRAPFRAME 2 /* context is a trap frame */ ++ long mc_format; ++ long mc_thrptr; /* Thread pointer */ ++ long mc_spare[5]; ++ } mcontext_t; +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/sigcontext.h +@@ -0,0 +1,84 @@ ++/* Machine-dependent signal context structure for FreeBSD. alpha version. ++ Copyright (C) 1991-1992,1994,1997,2001-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++#ifndef _BITS_SIGCONTEXT_H ++#define _BITS_SIGCONTEXT_H 1 ++ ++/* State of this thread when the signal was taken. */ ++struct sigcontext ++ { ++ __sigset_t sc_mask; /* Blocked signals to restore. */ ++ long sc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* General registers. */ ++ unsigned long sc_regs[32]; ++ long sc_ps; ++ long sc_pc; /* Process counter. */ ++ ++ /* Trap arguments. */ ++ unsigned long sc_traparg_a0; ++ unsigned long sc_traparg_a1; ++ unsigned long sc_traparg_a2; ++ ++ /* Floating-point registers. */ ++ unsigned long sc_fpregs[32]; ++ unsigned long sc_fpcr; ++ unsigned long sc_fp_control; ++ long sc_ownedfp; ++ long sc_format; /* see mcontext_t */ ++ long sc_spare[6]; /* XXX */ ++ }; ++ ++/* Traditional BSD names for some members. */ ++#define sc_sp sc_regs[30] /* Stack pointer. */ ++#define sc_fp sc_regs[15] /* Frame pointer. */ ++ ++ ++#if 0 /* XXX These need verification. */ ++ ++/* Codes for SIGFPE. */ ++#define FPE_INTDIV 1 /* integer divide by zero */ ++#define FPE_INTOVF 2 /* integer overflow */ ++#define FPE_FLTDIV 3 /* floating divide by zero */ ++#define FPE_FLTOVF 4 /* floating overflow */ ++#define FPE_FLTUND 5 /* floating underflow */ ++#define FPE_FLTINX 6 /* floating loss of precision */ ++#define FPE_SUBRNG_FAULT 0x7 /* BOUNDS instruction failed */ ++#define FPE_FLTDNR_FAULT 0x8 /* denormalized operand */ ++#define FPE_EMERR_FAULT 0xa /* mysterious emulation error 33 */ ++#define FPE_EMBND_FAULT 0xb /* emulation BOUNDS instruction failed */ ++ ++/* Codes for SIGILL. */ ++#define ILL_PRIVIN_FAULT 1 ++#define ILL_ALIGN_FAULT 14 ++#define ILL_FPOP_FAULT 24 ++ ++/* Codes for SIGBUS. */ ++#define BUS_PAGE_FAULT 12 ++#define BUS_SEGNP_FAULT 26 ++#define BUS_STK_FAULT 27 ++#define BUS_SEGM_FAULT 29 ++ ++#endif ++ ++#endif /* _BITS_SIGCONTEXT_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/stat16.h +@@ -0,0 +1,53 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* This structure corresponds to the original FreeBSD 'struct stat' ++ (i.e. _STAT_VER_stat), and is used by the fhstat() system call. */ ++struct stat16 ++ { ++ __dev_t st_dev; /* Device containing the file. */ ++ __ino_t st_ino; /* File serial number. */ ++ ++ __uint16_t st_mode; /* File mode. */ ++ __uint16_t st_nlink; /* Link count. */ ++ ++ __uid_t st_uid; /* User ID of the file's owner. */ ++ __gid_t st_gid; /* Group ID of the file's group. */ ++ ++ __dev_t st_rdev; /* Device number, if device. */ ++ ++ int st_atime; /* Time of last access. */ ++ long int st_atimensec; /* Nanoseconds of last access. */ ++ int st_mtime; /* Time of last modification. */ ++ long int st_mtimensec; /* Nanoseconds of last modification. */ ++ int st_ctime; /* Time of last status change. */ ++ long int st_ctimensec; /* Nanoseconds of last status change. */ ++ ++ __off_t st_size; /* Size of file, in bytes. */ ++ ++ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ ++ ++ __blksize_t st_blksize; /* Optimal block size for I/O. */ ++ ++ __uint32_t st_flags; /* User defined flags. */ ++ ++ __uint32_t st_gen; /* Generation number. */ ++ ++ __uint32_t __unused1; ++ __quad_t __unused2[2]; ++ }; +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/stat32.h +@@ -0,0 +1,52 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* This structure corresponds to the newer FreeBSD 'struct nstat' ++ (i.e. _STAT_VER_nstat). */ ++struct stat32 ++ { ++ __dev_t st_dev; /* Device containing the file. */ ++ __ino_t st_ino; /* File serial number. */ ++ ++ __uint32_t st_mode; /* File mode. */ ++ __uint32_t st_nlink; /* Link count. */ ++ ++ __uid_t st_uid; /* User ID of the file's owner. */ ++ __gid_t st_gid; /* Group ID of the file's group. */ ++ ++ __dev_t st_rdev; /* Device number, if device. */ ++ ++ int st_atime; /* Time of last access. */ ++ long int st_atimensec; /* Nanoseconds of last access. */ ++ int st_mtime; /* Time of last modification. */ ++ long int st_mtimensec; /* Nanoseconds of last modification. */ ++ int st_ctime; /* Time of last status change. */ ++ long int st_ctimensec; /* Nanoseconds of last status change. */ ++ ++ __off_t st_size; /* Size of file, in bytes. */ ++ ++ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ ++ ++ __blksize_t st_blksize; /* Optimal block size for I/O. */ ++ ++ __uint32_t st_flags; /* User defined flags. */ ++ ++ __uint32_t st_gen; /* Generation number. */ ++ ++ __quad_t __unused1[2]; ++ }; +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/time.h +@@ -0,0 +1,89 @@ ++/* System-dependent timing definitions. FreeBSD version. ++ Copyright (C) 1996-1997, 1999, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* ++ * Never include this file directly; use instead. ++ */ ++ ++#ifndef __need_timeval ++# ifndef _BITS_TIME_H ++# define _BITS_TIME_H 1 ++ ++/* ISO/IEC 9899:1990 7.12.1: ++ The macro `CLOCKS_PER_SEC' is the number per second of the value ++ returned by the `clock' function. */ ++/* CAE XSH, Issue 4, Version 2: ++ The value of CLOCKS_PER_SEC is required to be 1 million on all ++ XSI-conformant systems. */ ++# define CLOCKS_PER_SEC 1000000l ++ ++# if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K ++/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK ++ presents the real value for clock ticks per second for the system. */ ++# define CLK_TCK 100 ++# endif ++ ++# ifdef __USE_POSIX199309 ++/* Identifier for system-wide realtime clock. */ ++# define CLOCK_REALTIME 0 ++/* High-resolution timer from the CPU. */ ++# define CLOCK_PROCESS_CPUTIME_ID 2 ++/* Thread-specific CPU-time clock. */ ++# define CLOCK_THREAD_CPUTIME_ID 3 ++/* Monotonic system-wide clock. */ ++# define CLOCK_MONOTONIC 4 ++/* These are BSD specific clocks. */ ++# ifdef __USE_BSD ++# define CLOCK_VIRTUAL 1 ++# define CLOCK_PROF 2 ++# endif ++ ++/* Flag to indicate time is absolute. */ ++# define TIMER_ABSTIME 1 ++# endif ++ ++ ++/* Getkerninfo clock information structure */ ++struct clockinfo ++ { ++ int hz; /* clock frequency */ ++ int tick; /* micro-seconds per hz tick */ ++ int spare; ++ int stathz; /* statistics clock frequency */ ++ int profhz; /* profiling clock frequency */ ++ }; ++ ++# endif /* bits/time.h */ ++#endif ++ ++#ifdef __need_timeval ++# undef __need_timeval ++# ifndef _STRUCT_TIMEVAL ++# define _STRUCT_TIMEVAL 1 ++# include ++ ++/* A time value that is accurate to the nearest ++ microsecond but also has a range of years. */ ++struct timeval ++ { ++ __time_t tv_sec; /* Seconds. */ ++ __suseconds_t tv_usec; /* Microseconds. */ ++ }; ++# endif /* struct timeval */ ++#endif /* need timeval */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/brk.S +@@ -0,0 +1,73 @@ ++/* Copyright (C) 1993, 1995-1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Traditional name for the 'brk' system call. */ ++#define SYS_brk SYS_obreak ++ ++#include ++ ++#ifdef PIC ++.section .bss ++ .align 3 ++ .globl __curbrk ++__curbrk: .skip 8 ++ .type __curbrk,@object ++ .size __curbrk,8 ++#else ++.comm __curbrk, 8 ++#endif ++ ++ .text ++LEAF(__brk, 8) ++ ldgp gp, 0(t12) ++ subq sp, 8, sp ++#ifdef PROF ++ .set noat ++ lda AT, _mcount ++ jsr AT, (AT), _mcount ++ .set at ++#endif ++ .prologue 1 ++ ++ /* Save the requested brk across the system call. */ ++ stq a0, 0(sp) ++ ++ ldiq v0, SYS_brk ++ call_pal PAL_callsys ++ ++ ldq a0, 0(sp) ++ ++ /* Test for error. */ ++ bne a3, $error ++ ++ /* Don't need to handle brk(0) specially, because the kernel doesn't ++ support this way of calling brk anyway. */ ++ ++ /* Update __curbrk and return cleanly. */ ++ stq a0, __curbrk ++ mov zero, v0 ++ addq sp, 8, sp ++ ret ++ ++ /* What a horrible way to die. */ ++$error: addq sp, 8, sp ++ jmp zero, __syscall_error ++ ++ END(__brk) ++ ++weak_alias (__brk, brk) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/dl-brk.S +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/dl-machine.h +@@ -0,0 +1,34 @@ ++/* Dynamic linker magic for glibc on FreeBSD. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* FreeBSD on alpha can emulate two ABIs (= sets of system calls): ++ The native FreeBSD ABI and OSF/1. Without additional kernel ++ modules, only the FreeBSD ABI is supported. For this reason, we use ++ this ABI, and we have to label every executable as using this ABI, ++ by writing the string "FreeBSD" at byte offset 8 (= EI_ABIVERSION) ++ of every executable. Strictly speaking, only ld.so and the ++ executables would need this labelling. But it's easiest to mark ++ every executable and every shared object the same way. */ ++#define VALID_ELF_HEADER(e_ident, expected, size) \ ++ (memcmp (e_ident, expected, EI_ABIVERSION) == 0 \ ++ && memcmp ((const char *) (e_ident) + EI_ABIVERSION, "FreeBSD", 8) == 0) ++#define VALID_ELF_ABIVERSION(abi) (memcmp (&(abi), "FreeBSD", 8) == 0) ++ ++#include_next +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fhstatfs64.c +@@ -0,0 +1,2 @@ ++/* 'fhstatfs64' is the same as 'fhstatfs', because ++ __fsblkcnt64_t == __fsblkcnt_t and __fsfilcnt64_t == __fsfilcnt_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fork.S +@@ -0,0 +1,30 @@ ++/* Copyright (C) 1993, 1995, 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++PSEUDO (__libc_fork, fork, 0) ++ /* In the parent process, a4 == 0, v0 == child pid. */ ++ /* In the child process, a4 == 1, v0 == parent pid. */ ++ cmovne a4, zero, v0 ++ ret ++ ++PSEUDO_END (__libc_fork) ++ ++weak_alias (__libc_fork, __fork) ++weak_alias (__fork, fork) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fpu.h +@@ -0,0 +1,128 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _FPU_H ++#define _FPU_H 1 ++ ++ ++/* Usage of the fpcr register. ++ The rounding mode bits (in FPCR_DYN_MASK) can be modified in user mode ++ and will be preserved by the kernel when a software assisted floating- ++ point operation or an exception occurs. All other bits will be set by ++ the kernel when a software assisted floating-point operation or an ++ exception occurs. */ ++ ++#if 0 /* Only Linux, not FreeBSD */ ++#define FPCR_DNOD (1UL<<47) /* denorm INV trap disable */ ++#define FPCR_DNZ (1UL<<48) /* denorms to zero */ ++#endif ++#define FPCR_INVD (1UL<<49) /* invalid op disable (opt.) */ ++#define FPCR_DZED (1UL<<50) /* division by zero disable (opt.) */ ++#define FPCR_OVFD (1UL<<51) /* overflow disable (optional) */ ++#define FPCR_INV (1UL<<52) /* invalid operation */ ++#define FPCR_DZE (1UL<<53) /* division by zero */ ++#define FPCR_OVF (1UL<<54) /* overflow */ ++#define FPCR_UNF (1UL<<55) /* underflow */ ++#define FPCR_INE (1UL<<56) /* inexact */ ++#define FPCR_IOV (1UL<<57) /* integer overflow */ ++#define FPCR_UNDZ (1UL<<60) /* underflow to zero (opt.) */ ++#define FPCR_UNFD (1UL<<61) /* underflow disable (opt.) */ ++#define FPCR_INED (1UL<<62) /* inexact disable (opt.) */ ++#define FPCR_SUM (1UL<<63) /* summary bit, an OR of bits 52..56 */ ++ ++#define FPCR_DYN_SHIFT 58 /* first dynamic rounding mode bit */ ++#define FPCR_DYN_CHOPPED (0x0UL << FPCR_DYN_SHIFT) /* towards 0 */ ++#define FPCR_DYN_MINUS (0x1UL << FPCR_DYN_SHIFT) /* towards -INF */ ++#define FPCR_DYN_NORMAL (0x2UL << FPCR_DYN_SHIFT) /* towards nearest */ ++#define FPCR_DYN_PLUS (0x3UL << FPCR_DYN_SHIFT) /* towards +INF */ ++#define FPCR_DYN_MASK (0x3UL << FPCR_DYN_SHIFT) ++ ++#define FPCR_MASK 0xffff800000000000 ++ ++ ++/* IEEE traps are enabled depending on a control word (not to be confused ++ with fpcr!) which can be read using __ieee_get_fp_control() and written ++ using __ieee_set_fp_control(). The bits in these control word are ++ as follows (compatible with Linux and OSF/1). */ ++ ++/* Trap enable bits. Get copied (inverted) to bits 49,50,51,61,62,47 ++ of fpcr in the kernel. */ ++#define IEEE_TRAP_ENABLE_INV (1UL<<1) /* invalid op */ ++#define IEEE_TRAP_ENABLE_DZE (1UL<<2) /* division by zero */ ++#define IEEE_TRAP_ENABLE_OVF (1UL<<3) /* overflow */ ++#define IEEE_TRAP_ENABLE_UNF (1UL<<4) /* underflow */ ++#define IEEE_TRAP_ENABLE_INE (1UL<<5) /* inexact */ ++#if 0 /* Only Linux, not FreeBSD */ ++#define IEEE_TRAP_ENABLE_DNO (1UL<<6) /* denorm */ ++#endif ++#define IEEE_TRAP_ENABLE_MASK (IEEE_TRAP_ENABLE_INV | IEEE_TRAP_ENABLE_DZE |\ ++ IEEE_TRAP_ENABLE_OVF | IEEE_TRAP_ENABLE_UNF |\ ++ IEEE_TRAP_ENABLE_INE/*| IEEE_TRAP_ENABLE_DNO*/) ++ ++#if 0 /* Only Linux, not FreeBSD */ ++ ++/* Denorm and Underflow flushing. */ ++/* Get copied to bits 48,60 of fpcr in the kernel. */ ++#define IEEE_MAP_DMZ (1UL<<12) /* Map denorm inputs to zero */ ++#define IEEE_MAP_UMZ (1UL<<13) /* Map underflowed outputs to zero */ ++ ++#define IEEE_MAP_MASK (IEEE_MAP_DMZ | IEEE_MAP_UMZ) ++ ++#endif ++ ++/* Status bits. Get copied to bits 52,53,54,55,56 of fpcr in the kernel. */ ++#define IEEE_STATUS_INV (1UL<<17) /* invalid op */ ++#define IEEE_STATUS_DZE (1UL<<18) /* division by zero */ ++#define IEEE_STATUS_OVF (1UL<<19) /* overflow */ ++#define IEEE_STATUS_UNF (1UL<<20) /* underflow */ ++#define IEEE_STATUS_INE (1UL<<21) /* inexact */ ++#if 0 /* Only Linux, not FreeBSD */ ++#define IEEE_STATUS_DNO (1UL<<22) /* denorm */ ++#endif ++ ++#define IEEE_STATUS_MASK (IEEE_STATUS_INV | IEEE_STATUS_DZE | \ ++ IEEE_STATUS_OVF | IEEE_STATUS_UNF | \ ++ IEEE_STATUS_INE /* | IEEE_STATUS_DNO */) ++ ++#define IEEE_SW_MASK (IEEE_TRAP_ENABLE_MASK | \ ++ IEEE_STATUS_MASK /* | IEEE_MAP_MASK */) ++ ++#if 0 /* Only Linux, not FreeBSD */ ++ ++#define IEEE_CURRENT_RM_SHIFT 32 ++#define IEEE_CURRENT_RM_MASK (3UL<, 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_futimes (int fd, const struct __kernel_timeval tvp[2]); ++ ++int ++__futimes (int fd, const struct timeval tvp[2]) ++{ ++ if (tvp != NULL) ++ { ++ struct __kernel_timeval ktv[2]; ++ ++ ktv[0].tv_sec = tvp[0].tv_sec; ++ ktv[0].tv_usec = tvp[0].tv_usec; ++ ktv[1].tv_sec = tvp[1].tv_sec; ++ ktv[1].tv_usec = tvp[1].tv_usec; ++ return __syscall_futimes (fd, ktv); ++ } ++ else ++ return __syscall_futimes (fd, NULL); ++} ++ ++weak_alias (__futimes, futimes) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getfsstat64.c +@@ -0,0 +1,2 @@ ++/* 'getfsstat64' is the same as 'getfsstat', because ++ __fsblkcnt64_t == __fsblkcnt_t and __fsfilcnt64_t == __fsfilcnt_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getitimer.c +@@ -0,0 +1,49 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_getitimer (int which, struct __kernel_itimerval *value); ++ ++int ++__getitimer (enum __itimer_which which, struct itimerval *value) ++{ ++ struct __kernel_itimerval kvalue; ++ int retval; ++ ++ if (value == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ retval = __syscall_getitimer (which, &kvalue); ++ if (retval >= 0) ++ { ++ value->it_interval.tv_sec = kvalue.it_interval.tv_sec; ++ value->it_interval.tv_usec = kvalue.it_interval.tv_usec; ++ value->it_value.tv_sec = kvalue.it_value.tv_sec; ++ value->it_value.tv_usec = kvalue.it_value.tv_usec; ++ } ++ return retval; ++} ++ ++weak_alias (__getitimer, getitimer) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getmntinfo.c +@@ -0,0 +1,8 @@ ++/* 'getmntinfo64' is the same as 'getmntinfo', because ++ __fsblkcnt64_t == __fsblkcnt_t and __fsfilcnt64_t == __fsfilcnt_t. */ ++ ++#define getmntinfo64 __no_getmntinfo64_decl ++#include ++#undef getmntinfo64 ++ ++weak_alias (__getmntinfo, getmntinfo64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getmntinfo64.c +@@ -0,0 +1,2 @@ ++/* 'getmntinfo64' is the same as 'getmntinfo', because ++ __fsblkcnt64_t == __fsblkcnt_t and __fsfilcnt64_t == __fsfilcnt_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getrusage.c +@@ -0,0 +1,63 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_getrusage (int who, struct __kernel_rusage *usage); ++ ++int ++__getrusage (enum __rusage_who who, struct rusage *usage) ++{ ++ struct __kernel_rusage kusage; ++ int retval; ++ ++ if (usage == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ retval = __syscall_getrusage (who, &kusage); ++ if (retval >= 0) ++ { ++ usage->ru_utime.tv_sec = kusage.ru_utime.tv_sec; ++ usage->ru_utime.tv_usec = kusage.ru_utime.tv_usec; ++ usage->ru_stime.tv_sec = kusage.ru_stime.tv_sec; ++ usage->ru_stime.tv_usec = kusage.ru_stime.tv_usec; ++ usage->ru_maxrss = kusage.ru_maxrss; ++ usage->ru_ixrss = kusage.ru_ixrss; ++ usage->ru_idrss = kusage.ru_idrss; ++ usage->ru_isrss = kusage.ru_isrss; ++ usage->ru_minflt = kusage.ru_minflt; ++ usage->ru_majflt = kusage.ru_majflt; ++ usage->ru_nswap = kusage.ru_nswap; ++ usage->ru_inblock = kusage.ru_inblock; ++ usage->ru_oublock = kusage.ru_oublock; ++ usage->ru_msgsnd = kusage.ru_msgsnd; ++ usage->ru_msgrcv = kusage.ru_msgrcv; ++ usage->ru_nsignals = kusage.ru_nsignals; ++ usage->ru_nvcsw = kusage.ru_nvcsw; ++ usage->ru_nivcsw = kusage.ru_nivcsw; ++ } ++ return retval; ++} ++ ++weak_alias (__getrusage, getrusage) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/gettimeofday.c +@@ -0,0 +1,52 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_gettimeofday (struct __kernel_timeval *tv, ++ struct timezone *tz); ++ ++#undef __gettimeofday ++ ++int ++__gettimeofday (struct timeval *tv, struct timezone *tz) ++{ ++ struct __kernel_timeval ktv; ++ int retval; ++ ++ if (tv == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ retval = __syscall_gettimeofday (&ktv, tz); ++ if (retval >= 0) ++ { ++ tv->tv_sec = ktv.tv_sec; ++ tv->tv_usec = ktv.tv_usec; ++ } ++ return retval; ++} ++ ++INTDEF(__gettimeofday) ++ ++weak_alias (__gettimeofday, gettimeofday) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/ieee_get_fp_control.c +@@ -0,0 +1,35 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++unsigned long ++__ieee_get_fp_control (void) ++{ ++ /* The Alpha hardware requires this to be a system call. */ ++ unsigned long word; ++ ++ if (__sysarch (ALPHA_GET_FPMASK, &word) < 0) ++ abort (); ++ ++ return word; ++} ++ ++weak_alias (__ieee_get_fp_control, ieee_get_fp_control) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/ieee_set_fp_control.c +@@ -0,0 +1,33 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++void ++__ieee_set_fp_control (unsigned long trap_enable_mask) ++{ ++ /* The Alpha hardware requires this to be a system call. */ ++ unsigned long word = trap_enable_mask; ++ ++ if (__sysarch (ALPHA_SET_FPMASK, &word) < 0) ++ abort (); ++} ++ ++weak_alias (__ieee_set_fp_control, ieee_set_fp_control) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/lutimes.c +@@ -0,0 +1,44 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_lutimes (const char *file, ++ const struct __kernel_timeval tvp[2]); ++ ++int ++__lutimes (const char *file, const struct timeval tvp[2]) ++{ ++ if (tvp != NULL) ++ { ++ struct __kernel_timeval ktv[2]; ++ ++ ktv[0].tv_sec = tvp[0].tv_sec; ++ ktv[0].tv_usec = tvp[0].tv_usec; ++ ktv[1].tv_sec = tvp[1].tv_sec; ++ ktv[1].tv_usec = tvp[1].tv_usec; ++ return __syscall_lutimes (file, ktv); ++ } ++ else ++ return __syscall_lutimes (file, NULL); ++} ++ ++weak_alias (__lutimes, lutimes) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/machine/pal.h +@@ -0,0 +1,57 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Unprivileged PAL function codes. (The PAL codes which require ++ privileges are useful in the kernel only.) */ ++ ++/* Common PAL codes. */ ++#define PAL_bpt 128 ++#define PAL_bugchk 129 ++#define PAL_callsys 131 ++#define PAL_imb 134 ++#define PAL_rduniq 158 ++#define PAL_wruniq 159 ++#define PAL_gentrap 170 ++#define PAL_nphalt 190 ++ ++/* gentrap causes. */ ++#define GEN_INTOVF -1 /* integer overflow */ ++#define GEN_INTDIV -2 /* integer division by zero */ ++#define GEN_FLTOVF -3 /* fp overflow */ ++#define GEN_FLTDIV -4 /* fp division by zero */ ++#define GEN_FLTUND -5 /* fp underflow */ ++#define GEN_FLTINV -6 /* invalid fp operand */ ++#define GEN_FLTINE -7 /* inexact fp operand */ ++#define GEN_DECOVF -8 /* decimal overflow (for COBOL??) */ ++#define GEN_DECDIV -9 /* decimal division by zero */ ++#define GEN_DECINV -10 /* invalid decimal operand */ ++#define GEN_ROPRAND -11 /* reserved operand */ ++#define GEN_ASSERTERR -12 /* assertion error */ ++#define GEN_NULPTRERR -13 /* null pointer error */ ++#define GEN_STKOVF -14 /* stack overflow */ ++#define GEN_STRLENERR -15 /* string length error */ ++#define GEN_SUBSTRERR -16 /* substring error */ ++#define GEN_RANGERR -17 /* range error */ ++#define GEN_SUBRNG -18 ++#define GEN_SUBRNG1 -19 ++#define GEN_SUBRNG2 -20 ++#define GEN_SUBRNG3 -21 /* these report range errors for */ ++#define GEN_SUBRNG4 -22 /* subscripting (indexing) at levels 0..7 */ ++#define GEN_SUBRNG5 -23 ++#define GEN_SUBRNG6 -24 ++#define GEN_SUBRNG7 -25 +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/msgctl.c +@@ -0,0 +1,62 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_msgctl (int msqid, int cmd, struct __kernel_msqid_ds *buf); ++ ++int ++__msgctl (int msqid, int cmd, struct msqid_ds *buf) ++{ ++ struct __kernel_msqid_ds kmsqid_ds; ++ int retval; ++ ++ kmsqid_ds.msg_perm = msqid_ds->msg_perm; ++ kmsqid_ds.__msg_first = msqid_ds->__msg_first; ++ kmsqid_ds.__msg_last = msqid_ds->__msg_last; ++ kmsqid_ds.__msg_cbytes = msqid_ds->__msg_cbytes; ++ kmsqid_ds.msg_qnum = msqid_ds->msg_qnum; ++ kmsqid_ds.msg_qbytes = msqid_ds->msg_qbytes; ++ kmsqid_ds.msg_lspid = msqid_ds->msg_lspid; ++ kmsqid_ds.msg_lrpid = msqid_ds->msg_lrpid; ++ kmsqid_ds.msg_stime = msqid_ds->msg_stime; ++ kmsqid_ds.msg_rtime = msqid_ds->msg_rtime; ++ kmsqid_ds.msg_ctime = msqid_ds->msg_ctime; ++ ++ retval = __syscall_msgctl (msqid, cmd, &kmsqid_ds); ++ ++ msqid_ds->msg_perm = kmsqid_ds.msg_perm; ++ msqid_ds->__msg_first = kmsqid_ds.__msg_first; ++ msqid_ds->__msg_last = kmsqid_ds.__msg_last; ++ msqid_ds->__msg_cbytes = kmsqid_ds.__msg_cbytes; ++ msqid_ds->msg_qnum = kmsqid_ds.msg_qnum; ++ msqid_ds->msg_qbytes = kmsqid_ds.msg_qbytes; ++ msqid_ds->msg_lspid = kmsqid_ds.msg_lspid; ++ msqid_ds->msg_lrpid = kmsqid_ds.msg_lrpid; ++ msqid_ds->msg_stime = kmsqid_ds.msg_stime; ++ msqid_ds->msg_rtime = kmsqid_ds.msg_rtime; ++ msqid_ds->msg_ctime = kmsqid_ds.msg_ctime; ++ ++ return retval; ++} ++ ++weak_alias (__msgctl, msgctl) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/nanosleep.c +@@ -0,0 +1,54 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_nanosleep (const struct __kernel_timespec *requested_time, ++ struct __kernel_timespec *remaining); ++ ++int ++__libc_nanosleep (const struct timespec *requested_time, ++ struct timespec *remaining) ++{ ++ struct __kernel_timespec krequested_time; ++ int retval; ++ ++ krequested_time.tv_sec = requested_time->tv_sec; ++ krequested_time.tv_nsec = requested_time->tv_nsec; ++ if (remaining != NULL) ++ { ++ struct __kernel_timespec kremaining; ++ ++ retval = __syscall_nanosleep (&krequested_time, &kremaining); ++ if (retval >= 0 || errno == EINTR) ++ { ++ remaining->tv_sec = kremaining.tv_sec; ++ remaining->tv_nsec = kremaining.tv_nsec; ++ } ++ } ++ else ++ retval = __syscall_nanosleep (&krequested_time, NULL); ++ return retval; ++} ++ ++weak_alias (__libc_nanosleep, __nanosleep) ++weak_alias (__libc_nanosleep, nanosleep) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/poll.c +@@ -0,0 +1,46 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++/* nfds_t is defined as 'unsigned long int' in , but the poll ++ system call expects an 'unsigned int' as second argument. */ ++ ++extern int __syscall_poll (struct pollfd *fds, unsigned int nfds, int timeout); ++ ++int ++__poll (struct pollfd *fds, nfds_t nfds, int timeout) ++{ ++ unsigned int infds = nfds; ++ ++ if (infds == nfds) ++ return INLINE_SYSCALL (poll, 3, fds, infds, timeout); ++ else ++ { ++ /* NFDS doesn't fit into an unsigned int. FDS cannot point to such ++ a big chunk of valid memory. */ ++ __set_errno (EFAULT); ++ return -1; ++ } ++} ++libc_hidden_def (__poll) ++ ++weak_alias (__poll, poll) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/regdef.h +@@ -0,0 +1,62 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _REGDEF_H ++#define _REGDEF_H ++ ++/* Common symbolic names for Alpha registers. ++ Names taken from binutils/opcodes/alpha-dis.c. ++ Register usage info taken from gcc-3.1/gcc/config/alpha/alpha.h. ++ NB: "saved" = "call-saved", "nonsaved" = "call-used". */ ++ ++#define v0 $0 /* nonsaved, first return value */ ++#define t0 $1 /* nonsaved, second return value, lexical closure reg */ ++#define t1 $2 /* nonsaved */ ++#define t2 $3 /* nonsaved */ ++#define t3 $4 /* nonsaved */ ++#define t4 $5 /* nonsaved */ ++#define t5 $6 /* nonsaved */ ++#define t6 $7 /* nonsaved */ ++#define t7 $8 /* nonsaved */ ++#define s0 $9 /* saved */ ++#define s1 $10 /* saved */ ++#define s2 $11 /* saved */ ++#define s3 $12 /* saved */ ++#define s4 $13 /* saved */ ++#define s5 $14 /* saved */ ++#define s6 $15 /* use only in leaf functions without frame pointer */ ++#define fp $15 /* frame pointer */ ++#define a0 $16 /* nonsaved, argument 1 */ ++#define a1 $17 /* nonsaved, argument 2 */ ++#define a2 $18 /* nonsaved, argument 3 */ ++#define a3 $19 /* nonsaved, argument 4 */ ++#define a4 $20 /* nonsaved, argument 5 */ ++#define a5 $21 /* nonsaved, argument 6 */ ++#define t8 $22 /* nonsaved */ ++#define t9 $23 /* nonsaved */ ++#define t10 $24 /* nonsaved */ ++#define t11 $25 /* nonsaved */ ++#define ra $26 /* return address */ ++#define t12 $27 /* current function's address */ ++#define pv $27 /* current function's address */ ++#define AT $28 /* nonsaved, assembler temporary */ ++#define gp $29 /* global pointer */ ++#define sp $30 /* stack pointer */ ++#define zero $31 /* reads as zero, writes go to /dev/null */ ++ ++#endif /* _REGDEF_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/rfork.S +@@ -0,0 +1,29 @@ ++/* Copyright (C) 1993, 1995, 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++SYSCALL__ (rfork, 0) ++ /* In the parent process, a4 == 0, v0 == child pid. */ ++ /* In the child process, a4 == 1, v0 == parent pid. */ ++ cmovne a4, zero, v0 ++ ret ++ ++PSEUDO_END (__rfork) ++ ++weak_alias (__rfork, rfork) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sched_rr_gi.c +@@ -0,0 +1,50 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_sched_rr_get_interval (pid_t pid, ++ struct __kernel_timespec *t); ++ ++int ++__sched_rr_get_interval (pid_t pid, struct timespec *t) ++{ ++ struct __kernel_timespec kt; ++ int retval; ++ ++ if (t == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ retval = __syscall_sched_rr_get_interval (pid, &kt); ++ if (retval >= 0) ++ { ++ t->tv_sec = kt.tv_sec; ++ t->tv_nsec = kt.tv_nsec; ++ } ++ return retval; ++} ++ ++weak_alias (__sched_rr_get_interval, sched_rr_get_interval) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/select.c +@@ -0,0 +1,53 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_select (int nfds, ++ fd_set *readfds, ++ fd_set *writefds, ++ fd_set *exceptfds, ++ struct __kernel_timeval *timeout); ++ ++int ++__select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, ++ struct timeval *timeout) ++{ ++ int retval; ++ ++ if (timeout != NULL) ++ { ++ struct __kernel_timeval ktimeout; ++ ++ ktimeout.tv_sec = timeout->tv_sec; ++ ktimeout.tv_usec = timeout->tv_usec; ++ retval = __syscall_select (nfds, readfds, writefds, exceptfds, &ktimeout); ++ timeout->tv_sec = ktimeout.tv_sec; ++ timeout->tv_usec = ktimeout.tv_usec; ++ } ++ else ++ retval = __syscall_select (nfds, readfds, writefds, exceptfds, NULL); ++ return retval; ++} ++libc_hidden_def (__select) ++ ++weak_alias (__select, select) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/semctl.c +@@ -0,0 +1,87 @@ ++/* Copyright (C) 1995,1997,1998,2000,2003,2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include /* va_list */ ++#include /* NULL */ ++#include ++ ++/* union semun from FreeBSD */ ++/* ++ * semctl's arg parameter structure ++ */ ++union __kernel_semun ++{ ++ int val; /* value for SETVAL */ ++ struct __kernel_semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */ ++ unsigned short *array; /* array for GETALL & SETALL */ ++}; ++ ++int ++semctl (int semid, int semnum, int cmd, ...) ++{ ++ int result; ++ va_list ap; ++ ++ union semun semun; ++ union semun semun_ptr; ++ ++ union __kernel_semun ksemun; ++ struct __kernel_semid_ds ksemid_ds; ++ ++ va_start (ap, cmd); ++ if (cmd == GETALL || cmd == SETVAL || cmd == SETALL) ++ { ++ semun = va_arg (ap, union semun); ++ semun_ptr = &semun; ++ } ++ else if (cmd == IPC_SET || cmd == IPC_STAT) ++ { ++ semun = va_arg (ap, union semun); ++ ++ ksemid_ds.sem_perm = semun.buf->sem_perm; ++ ksemid_ds.sem_base = semun.buf->sem_base; ++ ksemid_ds.sem_nsems = semun.buf->sem_nsems; ++ ksemid_ds.sem_otime = semun.buf->sem_otime; ++ ksemid_ds.sem_ctime = semun.buf->sem_ctime; ++ ++ ksemun.buf = &ksemid_ds ++ semun_ptr = (semun_ptr *) &ksemun; ++ } ++ else ++ { ++ semun_ptr = NULL; ++ } ++ va_end (ap); ++ ++ result = syscall (SYS_semctl, semid, semnum, cmd, semun_ptr); ++ ++ if (cmd == IPC_SET || cmd == IPC_STAT) ++ { ++ semun.buf->sem_perm = ksemid_ds.sem_perm; ++ semun.buf->sem_base = ksemid_ds.sem_base; ++ semun.buf->sem_nsems = ksemid_ds.sem_nsems; ++ semun.buf->sem_otime = ksemid_ds.sem_otime; ++ semun.buf->sem_ctime = ksemid_ds.sem_ctime; ++ } ++ ++ return result; ++} ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/setfpucw.c +@@ -0,0 +1,88 @@ ++/* Set FP exception mask and rounding mode. ++ Copyright (C) 1996, 1997, 1998, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++extern unsigned long __ieee_get_fp_control (void); ++extern void __ieee_set_fp_control (unsigned long); ++ ++ ++static inline unsigned long ++rdfpcr (void) ++{ ++ unsigned long fpcr; ++ asm ("excb; mf_fpcr %0" : "=f"(fpcr)); ++ return fpcr; ++} ++ ++static inline void ++wrfpcr (unsigned long fpcr) ++{ ++ asm volatile ("mt_fpcr %0; excb" : : "f"(fpcr)); ++} ++ ++ ++void ++__setfpucw (fpu_control_t fpu_control) ++{ ++ if (!fpu_control) ++ fpu_control = _FPU_DEFAULT; ++ ++ /* Note that the fpu_control argument, as defined in , ++ consists of bits that are not directly related to the bits of the ++ fpcr and fp_control registers. In particular, the precision control ++ (_FPU_EXTENDED, _FPU_DOUBLE, _FPU_SINGLE) and the interrupt mask ++ _FPU_MASK_UM are without effect. */ ++ ++ /* First, set dynamic rounding mode: */ ++ { ++ unsigned long fpcr; ++ ++ fpcr = rdfpcr(); ++ fpcr &= ~FPCR_DYN_MASK; ++ switch (fpu_control & 0xc00) ++ { ++ case _FPU_RC_NEAREST: fpcr |= FPCR_DYN_NORMAL; break; ++ case _FPU_RC_DOWN: fpcr |= FPCR_DYN_MINUS; break; ++ case _FPU_RC_UP: fpcr |= FPCR_DYN_PLUS; break; ++ case _FPU_RC_ZERO: fpcr |= FPCR_DYN_CHOPPED; break; ++ } ++ wrfpcr(fpcr); ++ } ++ ++ /* Now tell kernel about traps that we like to hear about: */ ++ { ++ unsigned long old_fpcw, fpcw; ++ ++ old_fpcw = fpcw = __ieee_get_fp_control (); ++ fpcw &= ~IEEE_TRAP_ENABLE_MASK; ++ ++ if (!(fpu_control & _FPU_MASK_IM)) fpcw |= IEEE_TRAP_ENABLE_INV; ++ if (!(fpu_control & _FPU_MASK_DM)) fpcw |= IEEE_TRAP_ENABLE_UNF; ++ if (!(fpu_control & _FPU_MASK_ZM)) fpcw |= IEEE_TRAP_ENABLE_DZE; ++ if (!(fpu_control & _FPU_MASK_OM)) fpcw |= IEEE_TRAP_ENABLE_OVF; ++ if (!(fpu_control & _FPU_MASK_PM)) fpcw |= IEEE_TRAP_ENABLE_INE; ++ ++ if (fpcw != old_fpcw) ++ __ieee_set_fp_control (fpcw); ++ } ++ ++ __fpu_control = fpu_control; /* update global copy */ ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/setitimer.c +@@ -0,0 +1,63 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_setitimer (int which, ++ const struct __kernel_itimerval *new, ++ struct __kernel_itimerval *old); ++ ++int ++__setitimer (enum __itimer_which which, ++ const struct itimerval *new, struct itimerval *old) ++{ ++ int retval; ++ struct __kernel_itimerval knew; ++ ++ if (new == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ knew.it_interval.tv_sec = new->it_interval.tv_sec; ++ knew.it_interval.tv_usec = new->it_interval.tv_usec; ++ knew.it_value.tv_sec = new->it_value.tv_sec; ++ knew.it_value.tv_usec = new->it_value.tv_usec; ++ if (old != NULL) ++ { ++ struct __kernel_itimerval kold; ++ ++ retval = __syscall_setitimer (which, &knew, &kold); ++ if (retval >= 0) ++ { ++ old->it_interval.tv_sec = kold.it_interval.tv_sec; ++ old->it_interval.tv_usec = kold.it_interval.tv_usec; ++ old->it_value.tv_sec = kold.it_value.tv_sec; ++ old->it_value.tv_usec = kold.it_value.tv_usec; ++ } ++ } ++ else ++ retval = __syscall_setitimer (which, &knew, NULL); ++ return retval; ++} ++ ++weak_alias (__setitimer, setitimer) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/settimeofday.c +@@ -0,0 +1,43 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_settimeofday (const struct __kernel_timeval *tv, ++ const struct timezone *tz); ++ ++int ++__settimeofday (const struct timeval *tv, const struct timezone *tz) ++{ ++ struct __kernel_timeval ktv; ++ ++ if (tv == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ ktv.tv_sec = tv->tv_sec; ++ ktv.tv_usec = tv->tv_usec; ++ return __syscall_settimeofday (&ktv, tz); ++} ++ ++weak_alias (__settimeofday, settimeofday) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/shmctl.c +@@ -0,0 +1,58 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_msgctl (int shmid, int cmd, struct __kernel_shmid_ds *buf); ++ ++int ++__msgctl (int shmid, int cmd, struct shmid_ds *buf) ++{ ++ struct __kernel_shmid_ds kshmid_ds; ++ int retval; ++ ++ kshmid_ds.shm_perm = shmid_ds->shm_perm; ++ kshmid_ds.shm_segsz = shmid_ds->shm_segsz; ++ kshmid_ds.shm_lpid = shmid_ds->shm_lpid; ++ kshmid_ds.shm_cpid = shmid_ds->shm_cpid; ++ kshmid_ds.shm_nattch = shmid_ds->shm_nattch; ++ kshmid_ds.shm_atime = shmid_ds->shm_atime; ++ kshmid_ds.shm_dtime = shmid_ds->shm_dtime; ++ kshmid_ds.shm_ctime = shmid_ds->shm_ctime; ++ kshmid_ds.__shm_internal = shmid_ds->__shm_internal; ++ ++ retval = __syscall_shmctl (shmid, cmd, &kshmid_ds); ++ ++ shmid_ds->shm_perm = kshmid_ds.shm_perm; ++ shmid_ds->shm_segsz = kshmid_ds.shm_segsz; ++ shmid_ds->shm_lpid = kshmid_ds.shm_lpid; ++ shmid_ds->shm_cpid = kshmid_ds.shm_cpid; ++ shmid_ds->shm_nattch = kshmid_ds.shm_nattch; ++ shmid_ds->shm_atime = kshmid_ds.shm_atime; ++ shmid_ds->shm_dtime = kshmid_ds.shm_dtime; ++ shmid_ds->shm_ctime = kshmid_ds.shm_ctime; ++ shmid_ds->__shm_internal = kshmid_ds.__shm_internal; ++ ++ return retval; ++} ++ ++weak_alias (__shmctl, shmctl) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sigcontextinfo.h +@@ -0,0 +1,25 @@ ++/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#define SIGCONTEXT int _code, struct sigcontext * ++#define SIGCONTEXT_EXTRA_ARGS _code, ++#define GET_PC(ctx) ((void *) (ctx)->sc_pc) ++#define GET_FRAME(ctx) ((void *) (ctx)->sc_regs[15]) ++#define GET_STACK(ctx) ((void *) (ctx)->sc_regs[30]) ++#define CALL_SIGHANDLER(handler, signo, ctx) \ ++ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/start_thread.S +@@ -0,0 +1,172 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* __start_thread (flags, stack, func, arg) ++ calls __rfork (flags), and in the child sets the stack pointer and then ++ calls _exit (func (arg)). ++ It cannot be done in portable C. */ ++ ++#include ++#define SIG_SETMASK 3 ++ ++ .text ++ENTRY (__start_thread) ++ /* There is a window of a few instructions, right after the rfork ++ system call, where the handling of a signal would write garbage ++ into the stack shared by the parent and the child (assuming ++ RFMEM is set in flags). To solve this: 1. We block all signals ++ around the rfork system call and unblock them afterwards in ++ the parent and in the child (but only after changing the stack ++ pointer). 2. The child accesses only values passed in registers ++ and on its own stack. This way, if the parent is scheduled to ++ run first, and handles a signal, it will not affect the child; ++ and if the child runs first, and handles a signal, it will use ++ the child's stack and not affect the parent. ++ We need to pass 7 words of info to the child: stack, func, arg, ++ and the signal mask to restore. Since we have only 4 call-saved ++ registers available (%ebx, %esi, %edi, %ebp), we pass only the ++ stack pointer in a register, and the rest through the child's ++ stack. */ ++ lda sp,-56(sp) ++ stq ra,0(sp) ++ stq s0,8(sp) ++ stq s1,16(sp) ++ stq s2,24(sp) ++ stq s3,32(sp) ++ .prologue 1 ++ ++ /* Save arguments. */ ++ mov a0,s1 /* flags */ ++ mov a1,s0 /* stack */ ++ mov a2,s2 /* func */ ++ mov a3,s3 /* arg */ ++ ++ and a0,32,t0 /* flags & RFMEM */ ++ beq t0,$simple ++ ++ /* Block all signals. */ ++ lda t0,-1 ++ stq t0,40(sp) ++ stq t0,48(sp) ++ lda a0,SIG_SETMASK ++ lda a1,40(sp) ++ mov a1,a2 ++ lda v0,SYS_sigprocmask ++ call_pal PAL_callsys ++ bne a3,$error ++ ++ /* Copy all info to the child's stack. */ ++ lda s0,-32(s0) /* room for func, arg, sigset_t */ ++ andnot s0,7,s0 /* make it 8-bytes aligned */ ++ stq s2,8(s0) /* func */ ++ stq s3,0(s0) /* arg */ ++ ldq t0,40(sp) /* sigset_t word 0 */ ++ ldq t1,48(sp) /* sigset_t word 1 */ ++ stq t0,16(s0) ++ stq t1,24(s0) ++ ++ /* Perform the rfork system call. */ ++ mov s1,a0 /* flags */ ++ lda v0,SYS_rfork ++ call_pal PAL_callsys ++ bne a3,$error ++ ++ /* a4 is now 0 for the parent and 1 for the child. */ ++ bne a4,$child ++ ++ /* Save the child pid, currently in v0. */ ++ mov v0,s1 ++ ++ /* Restore the previous signal mask. */ ++ lda a0,SIG_SETMASK ++ lda a1,40(sp) ++ mov zero,a2 ++ lda v0,SYS_sigprocmask ++ call_pal PAL_callsys ++ ++ /* Return the child pid, currently in s1. */ ++ mov s1,v0 ++$retv0: ldq ra,0(sp) ++ ldq s0,8(sp) ++ ldq s1,16(sp) ++ ldq s2,24(sp) ++ ldq s3,32(sp) ++ lda sp,56(sp) ++ ret zero,(ra),1 ++ ++$child: /* Here we are in the child thread. */ ++ ++ /* Set the stack pointer. */ ++ mov s0,sp ++ ++ /* Restore the previous signal mask. */ ++ lda a0,SIG_SETMASK ++ lda a1,16(sp) ++ mov zero,a2 ++ lda v0,SYS_sigprocmask ++ call_pal PAL_callsys ++ ++$child1: ++ /* Call func (arg). */ ++ ldq a0,0(sp) ++ ldq pv,8(sp) ++ jsr ra,(pv),0 ++ ++ /* Tail-call _exit. */ ++ br gp,$here ++$here: ldgp gp,0(gp) ++ mov v0,a0 ++ jmp zero,_exit ++ ++$simple:/* Simple case without signal mask handling. */ ++ ++ /* Copy all info to the child's stack. */ ++ lda s0,-16(s0) /* room for func, arg */ ++ andnot s0,7,s0 /* make it 8-bytes aligned */ ++ stq s2,8(s0) /* func */ ++ stq s3,0(s0) /* arg */ ++ ++ /* Perform the rfork system call. */ ++ mov s1,a0 /* flags */ ++ lda v0,SYS_rfork ++ call_pal PAL_callsys ++ bne a3,$error ++ ++ /* a4 is now 0 for the parent and 1 for the child. */ ++ /* If in the parent, return the child pid, currently in v0. */ ++ beq a4,$retv0 ++ ++$simple_child:/* Here we are in the child thread. */ ++ ++ /* Set the stack pointer. */ ++ mov s0,sp ++ ++ br zero,$child1 ++ ++$error: ldq ra,0(sp) ++ ldq s0,8(sp) ++ ldq s1,16(sp) ++ ldq s2,24(sp) ++ ldq s3,32(sp) ++ lda sp,56(sp) ++#if 0 /* Not needed: The PSEUDO_END expansion starts with this label. */ ++ br zero,1996f ++#endif ++ ++PSEUDO_END (__start_thread) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/statfs64.c +@@ -0,0 +1,2 @@ ++/* 'statfs64' is the same as 'statfs', because ++ __fsblkcnt64_t == __fsblkcnt_t and __fsfilcnt64_t == __fsfilcnt_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sysarch.h +@@ -0,0 +1,53 @@ ++/* Parameters for the architecture specific system call. alpha version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYSARCH_H ++#define _SYSARCH_H 1 ++ ++#include ++ ++/* Function that can be used as first argument to 'sysarch'. */ ++enum ++ { ++ ALPHA_SETHAE = 0, ++#define ALPHA_SETHAE ALPHA_SETHAE ++ /* Arg is 'unsigned long *'. Returns the current pcb_fp_control. */ ++ ALPHA_GET_FPMASK = 1, ++#define ALPHA_GET_FPMASK ALPHA_GET_FPMASK ++ /* Arg is 'unsigned long *'. Sets the pcb_fp_control and returns its ++ old value in the same memory location. */ ++ ALPHA_SET_FPMASK = 2, ++#define ALPHA_SET_FPMASK ALPHA_SET_FPMASK ++ ALPHA_GET_UAC = 3, ++#define ALPHA_GET_UAC ALPHA_GET_UAC ++ ALPHA_SET_UAC = 4 ++#define ALPHA_SET_UAC ALPHA_SET_UAC ++ }; ++ ++__BEGIN_DECLS ++ ++extern int sysarch (int __cmd, void *__arg); ++ ++#ifdef _LIBC ++extern int __sysarch (int __cmd, void *__arg); ++#endif ++ ++__END_DECLS ++ ++#endif /* _SYSARCH_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/syscall.S +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/syscalls.list +@@ -0,0 +1,21 @@ ++# File name Caller Syscall name # args Strong name Weak names ++ ++fhstatfs - fhstatfs i:pp __fhstatfs fhstatfs fhstatfs64 ++fstatfs - fstatfs i:ip __fstatfs fstatfs __fstatfs64 fstatfs64 ++getfsstat - getfsstat i:pii __getfsstat getfsstat __getfsstat64 getfsstat64 ++sys_poll - poll i:pii __syscall_poll ++statfs - statfs i:sp __statfs statfs statfs64 ++sys_adjtime - adjtime i:pp __syscall_adjtime ++sys_futimes - futimes i:ip __syscall_futimes ++sys_getitimer - getitimer i:ip __syscall_getitimer ++sys_getrusage - getrusage i:ip __syscall_getrusage ++sys_gettimeofday - gettimeofday i:PP __syscall_gettimeofday ++sys_lutimes - lutimes i:sp __syscall_lutimes ++sys_msgctl - msgctl i:iip __syscall_msgctl ++sys_nanosleep - nanosleep i:pp __syscall_nanosleep ++sys_sched_rr_gi - sched_rr_get_interval i:ip __syscall_sched_rr_get_interval ++sys_shmctl - shmctl i:iip __syscall_shmctl ++sys_select - select i:iPPPP __syscall_select ++sys_setitimer - setitimer i:ipp __syscall_setitimer ++sys_settimeofday - settimeofday i:PP __syscall_settimeofday ++sys_utimes - utimes i:sp __syscall_utimes +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sysdep.h +@@ -0,0 +1,34 @@ ++/* Copyright (C) 1993, 1995, 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _FREEBSD_ALPHA_SYSDEP_H ++#define _FREEBSD_ALPHA_SYSDEP_H 1 ++ ++#ifdef __ASSEMBLER__ ++#include /* get PAL_callsys */ ++#else ++#include ++#endif ++ ++#include ++ ++/* FIXME: Is this necessary? */ ++#undef INLINE_SYSCALL ++#define INLINE_SYSCALL(name, nr, args...) __syscall_##name(args) ++ ++#endif /* freebsd/alpha/sysdep.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/utimes.c +@@ -0,0 +1,44 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_utimes (const char *file, ++ const struct __kernel_timeval tvp[2]); ++ ++int ++__utimes (const char *file, const struct timeval tvp[2]) ++{ ++ if (tvp != NULL) ++ { ++ struct __kernel_timeval ktv[2]; ++ ++ ktv[0].tv_sec = tvp[0].tv_sec; ++ ktv[0].tv_usec = tvp[0].tv_usec; ++ ktv[1].tv_sec = tvp[1].tv_sec; ++ ktv[1].tv_usec = tvp[1].tv_usec; ++ return __syscall_utimes (file, ktv); ++ } ++ else ++ return __syscall_utimes (file, NULL); ++} ++ ++weak_alias (__utimes, utimes) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/vfork.S +@@ -0,0 +1,29 @@ ++/* Copyright (C) 1993, 1995, 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++SYSCALL__ (vfork, 0) ++ /* In the parent process, a4 == 0, v0 == child pid. */ ++ /* In the child process, a4 == 1, v0 == parent pid. */ ++ cmovne a4, zero, v0 ++ ret ++ ++PSEUDO_END (__vfork) ++ ++weak_alias (__vfork, vfork) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bind.c +@@ -0,0 +1,60 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* According to POSIX.1-2004 the len argument specifies the length of ++ the sockaddr structure pointed to by the addrarg argument. However ++ the FreeBSD kernel waits the actual length of the address stored ++ there. The code below emulate this behaviour. */ ++ ++extern int __libc_sa_len (sa_family_t __af); ++extern int __libc_sa_len_internal (sa_family_t __af); ++ ++extern int __syscall_bind (int fd, __CONST_SOCKADDR_ARG addr, ++ socklen_t addrlen) __THROW; ++libc_hidden_proto (__syscall_bind) ++ ++/* Open a connection on socket FD to peer at ADDR (which LEN bytes long). ++ For connectionless socket types, just set the default address to send to ++ and the only address from which to accept transmissions. ++ Return 0 on success, -1 for errors. */ ++ ++int ++__bind (int fd, __CONST_SOCKADDR_ARG addr, socklen_t addrlen) ++{ ++ socklen_t new_addrlen; ++ ++#ifndef NOT_IN_libc ++ new_addrlen = INTUSE(__libc_sa_len) ((addr.__sockaddr__)->sa_family); ++#else ++ new_addrlen = __libc_sa_len ((addr.__sockaddr__)->sa_family); ++#endif ++ ++ /* Only allow a smaller size, otherwise it could lead to ++ stack corruption */ ++ if (new_addrlen < addrlen) ++ addrlen = new_addrlen; ++ ++ /* We pass 3 arguments. */ ++ return INLINE_SYSCALL (bind, 3, fd, addr, addrlen); ++} ++ ++weak_alias (__bind, bind) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/dirent.h +@@ -0,0 +1,52 @@ ++/* Directory entry structure `struct dirent'. FreeBSD version. ++ Copyright (C) 1996-1998,2001-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _DIRENT_H ++# error "Never use directly; include instead." ++#endif ++ ++struct dirent ++ { ++ unsigned int d_ino; /* File serial number. */ ++ unsigned short int d_reclen; /* Length of the whole `struct dirent'. */ ++ unsigned char d_type; /* File type, possibly unknown. */ ++ unsigned char d_namlen; /* Length of the file name. */ ++ ++ /* Only this member is in the POSIX standard. */ ++ char d_name[256]; /* File name (actually longer). */ ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct dirent64 ++ { ++ unsigned int d_ino; /* File serial number. */ ++ unsigned short int d_reclen; /* Length of the whole `struct dirent'. */ ++ unsigned char d_type; /* File type, possibly unknown. */ ++ unsigned char d_namlen; /* Length of the file name. */ ++ ++ /* Only this member is in the POSIX standard. */ ++ char d_name[256]; /* File name (actually longer). */ ++ }; ++#endif ++ ++#define d_fileno d_ino /* Backwards compatibility. */ ++ ++#define _DIRENT_HAVE_D_RECLEN 1 ++#define _DIRENT_HAVE_D_NAMLEN 1 ++#define _DIRENT_HAVE_D_TYPE 1 +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/errno.h +@@ -0,0 +1,183 @@ ++/*- ++ * Copyright (c) 1982, 1986, 1989, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * (c) UNIX System Laboratories, Inc. ++ * All or some portions of this file are derived from material licensed ++ * to the University of California by American Telephone and Telegraph ++ * Co. or Unix System Laboratories, Inc. and are reproduced herein with ++ * the permission of UNIX System Laboratories, Inc. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)errno.h 8.5 (Berkeley) 1/21/94 ++ * based on $FreeBSD: src/sys/sys/errno.h,v 1.28 2005/04/02 12:33:28 das Exp $ ++ */ ++ ++#ifdef _ERRNO_H ++ ++# undef EDOM ++# undef EILSEQ ++# undef ERANGE ++ ++#define EPERM 1 /* Operation not permitted */ ++#define ENOENT 2 /* No such file or directory */ ++#define ESRCH 3 /* No such process */ ++#define EINTR 4 /* Interrupted system call */ ++#define EIO 5 /* Input/output error */ ++#define ENXIO 6 /* Device not configured */ ++#define E2BIG 7 /* Argument list too long */ ++#define ENOEXEC 8 /* Exec format error */ ++#define EBADF 9 /* Bad file descriptor */ ++#define ECHILD 10 /* No child processes */ ++#define EDEADLK 11 /* Resource deadlock avoided */ ++ /* 11 was EAGAIN */ ++#define ENOMEM 12 /* Cannot allocate memory */ ++#define EACCES 13 /* Permission denied */ ++#define EFAULT 14 /* Bad address */ ++#define ENOTBLK 15 /* Block device required */ ++#define EBUSY 16 /* Device busy */ ++#define EEXIST 17 /* File exists */ ++#define EXDEV 18 /* Cross-device link */ ++#define ENODEV 19 /* Operation not supported by device */ ++#define ENOTDIR 20 /* Not a directory */ ++#define EISDIR 21 /* Is a directory */ ++#define EINVAL 22 /* Invalid argument */ ++#define ENFILE 23 /* Too many open files in system */ ++#define EMFILE 24 /* Too many open files */ ++#define ENOTTY 25 /* Inappropriate ioctl for device */ ++#define ETXTBSY 26 /* Text file busy */ ++#define EFBIG 27 /* File too large */ ++#define ENOSPC 28 /* No space left on device */ ++#define ESPIPE 29 /* Illegal seek */ ++#define EROFS 30 /* Read-only filesystem */ ++#define EMLINK 31 /* Too many links */ ++#define EPIPE 32 /* Broken pipe */ ++ ++/* math software */ ++#define EDOM 33 /* Numerical argument out of domain */ ++#define ERANGE 34 /* Result too large */ ++ ++/* non-blocking and interrupt i/o */ ++#define EAGAIN 35 /* Resource temporarily unavailable */ ++#define EWOULDBLOCK EAGAIN /* Operation would block */ ++#define EINPROGRESS 36 /* Operation now in progress */ ++#define EALREADY 37 /* Operation already in progress */ ++ ++/* ipc/network software -- argument errors */ ++#define ENOTSOCK 38 /* Socket operation on non-socket */ ++#define EDESTADDRREQ 39 /* Destination address required */ ++#define EMSGSIZE 40 /* Message too long */ ++#define EPROTOTYPE 41 /* Protocol wrong type for socket */ ++#define ENOPROTOOPT 42 /* Protocol not available */ ++#define EPROTONOSUPPORT 43 /* Protocol not supported */ ++#define ESOCKTNOSUPPORT 44 /* Socket type not supported */ ++#define EOPNOTSUPP 45 /* Operation not supported */ ++#define ENOTSUP EOPNOTSUPP /* Operation not supported */ ++#define EPFNOSUPPORT 46 /* Protocol family not supported */ ++#define EAFNOSUPPORT 47 /* Address family not supported by protocol family */ ++#define EADDRINUSE 48 /* Address already in use */ ++#define EADDRNOTAVAIL 49 /* Can't assign requested address */ ++ ++/* ipc/network software -- operational errors */ ++#define ENETDOWN 50 /* Network is down */ ++#define ENETUNREACH 51 /* Network is unreachable */ ++#define ENETRESET 52 /* Network dropped connection on reset */ ++#define ECONNABORTED 53 /* Software caused connection abort */ ++#define ECONNRESET 54 /* Connection reset by peer */ ++#define ENOBUFS 55 /* No buffer space available */ ++#define EISCONN 56 /* Socket is already connected */ ++#define ENOTCONN 57 /* Socket is not connected */ ++#define ESHUTDOWN 58 /* Can't send after socket shutdown */ ++#define ETOOMANYREFS 59 /* Too many references: can't splice */ ++#define ETIMEDOUT 60 /* Operation timed out */ ++#define ECONNREFUSED 61 /* Connection refused */ ++ ++#define ELOOP 62 /* Too many levels of symbolic links */ ++#define ENAMETOOLONG 63 /* File name too long */ ++ ++/* should be rearranged */ ++#define EHOSTDOWN 64 /* Host is down */ ++#define EHOSTUNREACH 65 /* No route to host */ ++#define ENOTEMPTY 66 /* Directory not empty */ ++ ++/* quotas & mush */ ++#define EPROCLIM 67 /* Too many processes */ ++#define EUSERS 68 /* Too many users */ ++#define EDQUOT 69 /* Disc quota exceeded */ ++ ++/* Network File System */ ++#define ESTALE 70 /* Stale NFS file handle */ ++#define EREMOTE 71 /* Too many levels of remote in path */ ++#define EBADRPC 72 /* RPC struct is bad */ ++#define ERPCMISMATCH 73 /* RPC version wrong */ ++#define EPROGUNAVAIL 74 /* RPC prog. not avail */ ++#define EPROGMISMATCH 75 /* Program version wrong */ ++#define EPROCUNAVAIL 76 /* Bad procedure for program */ ++ ++#define ENOLCK 77 /* No locks available */ ++#define ENOSYS 78 /* Function not implemented */ ++ ++#define EFTYPE 79 /* Inappropriate file type or format */ ++#define EAUTH 80 /* Authentication error */ ++#define ENEEDAUTH 81 /* Need authenticator */ ++#define EIDRM 82 /* Identifier removed */ ++#define ENOMSG 83 /* No message of desired type */ ++#define EOVERFLOW 84 /* Value too large to be stored in data type */ ++#define ECANCELED 85 /* Operation canceled */ ++#define EILSEQ 86 /* Illegal byte sequence */ ++#define ENOATTR 87 /* Attribute not found */ ++ ++#define EDOOFUS 88 /* Programming error */ ++ ++#define EBADMSG 89 /* Bad message */ ++#define EMULTIHOP 90 /* Multihop attempted */ ++#define ENOLINK 91 /* Link has been severed */ ++#define EPROTO 92 /* Protocol error */ ++#define ENOTCAPABLE 93 /* Capabilities insufficient */ ++ ++#define ELAST 93 /* Must be equal largest errno */ ++ ++# ifndef __ASSEMBLER__ ++/* Function to get address of global `errno' variable. */ ++extern int *__errno_location (void) __THROW __attribute__ ((__const__)); ++ ++# if !defined _LIBC || defined _LIBC_REENTRANT ++/* When using threads, errno is a per-thread value. */ ++# define errno (*__errno_location ()) ++# endif ++# endif /* !__ASSEMBLER__ */ ++#endif /* _ERRNO_H */ ++ ++#if !defined _ERRNO_H && defined __need_Emath ++/* This is ugly but the kernel header is not clean enough. We must ++ define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is ++ defined. */ ++ ++#define EDOM 33 /* Numerical argument out of domain */ ++#define ERANGE 34 /* Result too large */ ++#define EILSEQ 86 /* Illegal byte sequence */ ++ ++#endif /* !_ERRNO_H && __need_Emath */ ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/fcntl.h +@@ -0,0 +1,180 @@ ++/* O_*, F_*, FD_* bit values for FreeBSD. ++ Copyright (C) 1991-1992, 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _FCNTL_H ++# error "Never use directly; include instead." ++#endif ++ ++#include ++#include ++#ifdef __USE_GNU ++# include ++#endif ++ ++ ++/* open/fcntl - O_SYNC is only implemented on blocks devices and on files ++ located on an ext2 file system */ ++#define O_ACCMODE 0003 ++#define O_RDONLY 00 ++#define O_WRONLY 01 ++#define O_RDWR 02 ++#define O_CREAT 01000 /* not fcntl */ ++#define O_EXCL 04000 /* not fcntl */ ++#define O_NOCTTY 0100000 /* not fcntl */ ++#define O_TRUNC 02000 /* not fcntl */ ++#define O_APPEND 010 ++#define O_NONBLOCK 04 ++#define O_NDELAY O_NONBLOCK ++#define O_SYNC 0200 ++#define O_FSYNC O_SYNC ++#define O_ASYNC 0100 ++ ++#ifdef __USE_GNU ++# define O_DIRECT 0200000 /* Direct disk access. */ ++enum { O_DIRECTORY = 0 }; /* Must be a directory. */ ++enum { O_NOATIME = 0}; /* Do not set atime. */ ++# define O_NOFOLLOW 0400 /* Do not follow links. */ ++#endif ++ ++#ifdef __USE_BSD ++#define O_SHLOCK 020 /* Open with shared file lock. */ ++#define O_EXLOCK 040 /* Open with shared exclusive lock. */ ++#endif ++ ++/* For now FreeBSD has synchronisity options for data and read operations. ++ We define the symbols here but let them do the same as O_SYNC since ++ this is a superset. */ ++#if defined __USE_POSIX199309 || defined __USE_UNIX98 ++# define O_DSYNC O_SYNC /* Synchronize data. */ ++# define O_RSYNC O_SYNC /* Synchronize read operations. */ ++#endif ++ ++/* Since 'off_t' is 64-bit, O_LARGEFILE is a no-op. */ ++#define O_LARGEFILE 0 ++ ++#ifdef __USE_BSD ++/* Bits in the file status flags returned by F_GETFL. ++ These are all the O_* flags, plus FREAD and FWRITE, which are ++ independent bits set by which of O_RDONLY, O_WRONLY, and O_RDWR, was ++ given to `open'. */ ++#define FREAD 1 ++#define FWRITE 2 ++#endif ++ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_EACCESS 0x100 /* Test access permitted for ++ effective IDs, not real IDs. */ ++# define AT_SYMLINK_NOFOLLOW 0x200 /* Do not follow symbolic links. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_REMOVEDIR 0x800 /* Remove directory instead of ++ unlinking file. */ ++#endif ++ ++/* ++ * We are out of bits in f_flag (which is a short). However, ++ * the flag bits not set in FMASK are only meaningful in the ++ * initial open syscall. Those bits can thus be given a ++ * different meaning for fcntl(2). ++ */ ++#ifdef __USE_BSD ++/* ++ * Set by shm_open(3) to get automatic MAP_ASYNC behavior ++ * for POSIX shared memory objects (which are otherwise ++ * implemented as plain files). ++ */ ++#define FPOSIXSHM O_NOFOLLOW ++#endif ++ ++/* Values for the second argument to `fcntl'. */ ++#define F_DUPFD 0 /* Duplicate file descriptor. */ ++#define F_GETFD 1 /* Get file descriptor flags. */ ++#define F_SETFD 2 /* Set file descriptor flags. */ ++#define F_GETFL 3 /* Get file status flags. */ ++#define F_SETFL 4 /* Set file status flags. */ ++#define F_GETLK 7 /* Get record locking info. */ ++#define F_SETLK 8 /* Set record locking info (non-blocking). */ ++#define F_SETLKW 9 /* Set record locking info (blocking). */ ++/* Not necessary, we always have 64-bit offsets. */ ++#define F_GETLK64 7 /* Get record locking info. */ ++#define F_SETLK64 8 /* Set record locking info (non-blocking). */ ++#define F_SETLKW64 9 /* Set record locking info (blocking). */ ++ ++#if defined __USE_BSD || defined __USE_UNIX98 ++# define F_SETOWN 5 /* Get owner of socket (receiver of SIGIO). */ ++# define F_GETOWN 6 /* Set owner of socket (receiver of SIGIO). */ ++#endif ++ ++/* For F_[GET|SET]FD. */ ++#define FD_CLOEXEC 1 /* actually anything with low bit set goes */ ++ ++/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */ ++#define F_RDLCK 1 /* Read lock. */ ++#define F_WRLCK 3 /* Write lock. */ ++#define F_UNLCK 2 /* Remove lock. */ ++ ++#ifdef __USE_BSD ++/* Operations for bsd flock(), also used by the kernel implementation. */ ++# define LOCK_SH 1 /* shared lock */ ++# define LOCK_EX 2 /* exclusive lock */ ++# define LOCK_NB 4 /* or'd with one of the above to prevent ++ blocking */ ++# define LOCK_UN 8 /* remove lock */ ++#endif ++ ++struct flock ++ { ++ __off_t l_start; /* Offset where the lock begins. */ ++ __off_t l_len; /* Size of the locked area; zero means until EOF. */ ++ __pid_t l_pid; /* Process holding the lock. */ ++ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ ++ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ ++ int __l_sysid; /* remote system id or zero for local */ ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct flock64 ++ { ++ __off64_t l_start; /* Offset where the lock begins. */ ++ __off64_t l_len; /* Size of the locked area; zero means until EOF. */ ++ __pid_t l_pid; /* Process holding the lock. */ ++ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ ++ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ ++ int __l_sysid; /* remote system id or zero for local */ ++ }; ++#endif ++ ++/* Define some more compatibility macros to be backward compatible with ++ BSD systems which did not managed to hide these kernel macros. */ ++#ifdef __USE_BSD ++# define FAPPEND O_APPEND ++# define FFSYNC O_FSYNC ++# define FASYNC O_ASYNC ++# define FNONBLOCK O_NONBLOCK ++# define FNDELAY O_NDELAY ++ ++#define FCREAT O_CREAT ++#define FEXCL O_EXCL ++#define FTRUNC O_TRUNC ++#define FNOCTTY O_NOCTTY ++#define FSYNC O_SYNC ++#endif /* Use BSD. */ ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/in.h +@@ -0,0 +1,308 @@ ++/* Copyright (C) 1997, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* FreeBSD version. */ ++ ++#ifndef _NETINET_IN_H ++# error "Never use directly; include instead." ++#endif ++ ++ ++/* Link numbers. */ ++#define IMPLINK_IP 155 ++#define IMPLINK_LOWEXPER 156 ++#define IMPLINK_HIGHEXPER 158 ++ ++#define IPPROTO_DIVERT 258 /* divert pseudo-protocol */ ++ ++/* To select the IP level. */ ++#define SOL_IP 0 ++ ++/* ++ * Options for use with [gs]etsockopt at the IP level. ++ * First word of comment is data type; bool is stored in int. ++ */ ++#define IP_OPTIONS 1 /* buf/ip_opts; set/get IP options */ ++#define IP_HDRINCL 2 /* int; header is included with data */ ++#define IP_TOS 3 /* int; IP type of service and preced. */ ++#define IP_TTL 4 /* int; IP time to live */ ++#define IP_RECVOPTS 5 /* bool; receive all IP opts w/dgram */ ++#define IP_RECVRETOPTS 6 /* bool; receive IP opts for response */ ++#define IP_RECVDSTADDR 7 /* bool; receive IP dst addr w/dgram */ ++#define IP_SENDSRCADDR IP_RECVDSTADDR /* cmsg_type to set src addr */ ++#define IP_RETOPTS 8 /* ip_opts; set/get IP options */ ++#define IP_MULTICAST_IF 9 /* struct in_addr *or* struct ip_mreqn; ++ * set/get IP multicast i/f */ ++#define IP_MULTICAST_TTL 10 /* u_char; set/get IP multicast ttl */ ++#define IP_MULTICAST_LOOP 11 /* u_char; set/get IP multicast loopback */ ++#define IP_ADD_MEMBERSHIP 12 /* ip_mreq; add an IP group membership */ ++#define IP_DROP_MEMBERSHIP 13 /* ip_mreq; drop an IP group membership */ ++#define IP_MULTICAST_VIF 14 /* set/get IP mcast virt. iface */ ++#define IP_RSVP_ON 15 /* enable RSVP in kernel */ ++#define IP_RSVP_OFF 16 /* disable RSVP in kernel */ ++#define IP_RSVP_VIF_ON 17 /* set RSVP per-vif socket */ ++#define IP_RSVP_VIF_OFF 18 /* unset RSVP per-vif socket */ ++#define IP_PORTRANGE 19 /* int; range to choose for unspec port */ ++#define IP_RECVIF 20 /* bool; receive reception if w/dgram */ ++/* for IPSEC */ ++#define IP_IPSEC_POLICY 21 /* int; set/get security policy */ ++#define IP_FAITH 22 /* bool; accept FAITH'ed connections */ ++ ++#define IP_ONESBCAST 23 /* bool: send all-ones broadcast */ ++#define IP_NONLOCALOK 24 /* bool: allow bind to spoof non-local addresses; ++ requires kernel compile option IP_NONLOCALBIND */ ++ ++#define IP_FW_TABLE_ADD 40 /* add entry */ ++#define IP_FW_TABLE_DEL 41 /* delete entry */ ++#define IP_FW_TABLE_FLUSH 42 /* flush table */ ++#define IP_FW_TABLE_GETSIZE 43 /* get table size */ ++#define IP_FW_TABLE_LIST 44 /* list table contents */ ++ ++#define IP_FW_ADD 50 /* add a firewall rule to chain */ ++#define IP_FW_DEL 51 /* delete a firewall rule from chain */ ++#define IP_FW_FLUSH 52 /* flush firewall rule chain */ ++#define IP_FW_ZERO 53 /* clear single/all firewall counter(s) */ ++#define IP_FW_GET 54 /* get entire firewall rule chain */ ++#define IP_FW_RESETLOG 55 /* reset logging counters */ ++ ++#define IP_FW_NAT_CFG 56 /* add/config a nat rule */ ++#define IP_FW_NAT_DEL 57 /* delete a nat rule */ ++#define IP_FW_NAT_GET_CONFIG 58 /* get configuration of a nat rule */ ++#define IP_FW_NAT_GET_LOG 59 /* get log of a nat rule */ ++ ++#define IP_DUMMYNET_CONFIGURE 60 /* add/configure a dummynet pipe */ ++#define IP_DUMMYNET_DEL 61 /* delete a dummynet pipe from chain */ ++#define IP_DUMMYNET_FLUSH 62 /* flush dummynet */ ++#define IP_DUMMYNET_GET 64 /* get entire dummynet pipes */ ++ ++#define IP_RECVTTL 65 /* bool; receive IP TTL w/dgram */ ++#define IP_MINTTL 66 /* minimum TTL for packet or drop */ ++#define IP_DONTFRAG 67 /* don't fragment packet */ ++ ++/* IPv4 Source Filter Multicast API [RFC3678] */ ++#define IP_ADD_SOURCE_MEMBERSHIP 70 /* join a source-specific group */ ++#define IP_DROP_SOURCE_MEMBERSHIP 71 /* drop a single source */ ++#define IP_BLOCK_SOURCE 72 /* block a source */ ++#define IP_UNBLOCK_SOURCE 73 /* unblock a source */ ++ ++/* The following option is private; do not use it from user applications. */ ++#define IP_MSFILTER 74 /* set/get filter list */ ++ ++/* Protocol Independent Multicast API [RFC3678] */ ++#define MCAST_JOIN_GROUP 80 /* join an any-source group */ ++#define MCAST_LEAVE_GROUP 81 /* leave all sources for group */ ++#define MCAST_JOIN_SOURCE_GROUP 82 /* join a source-specific group */ ++#define MCAST_LEAVE_SOURCE_GROUP 83 /* leave a single source */ ++#define MCAST_BLOCK_SOURCE 84 /* block a source */ ++#define MCAST_UNBLOCK_SOURCE 85 /* unblock a source */ ++ ++/* ++ * Defaults and limits for options ++ */ ++#define IP_DEFAULT_MULTICAST_TTL 1 /* normally limit m'casts to 1 hop */ ++#define IP_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */ ++ ++/* ++ * The imo_membership vector for each socket is now dynamically allocated at ++ * run-time, bounded by USHRT_MAX, and is reallocated when needed, sized ++ * according to a power-of-two increment. ++ */ ++#define IP_MIN_MEMBERSHIPS 31 ++#define IP_MAX_MEMBERSHIPS 4095 ++#define IP_MAX_SOURCE_FILTER 1024 /* # of filters per socket, per group */ ++ ++/* ++ * Filter modes; also used to represent per-socket filter mode internally. ++ */ ++ ++#define MCAST_UNDEFINED 0 /* fmode: not yet defined */ ++#define MCAST_INCLUDE 1 /* fmode: include these source(s) */ ++#define MCAST_EXCLUDE 2 /* fmode: exclude these source(s) */ ++ ++/* ++ * Argument for IP_PORTRANGE: ++ * - which range to search when port is unspecified at bind() or connect() ++ */ ++#define IP_PORTRANGE_DEFAULT 0 /* default range */ ++#define IP_PORTRANGE_HIGH 1 /* "high" - request firewall bypass */ ++#define IP_PORTRANGE_LOW 2 /* "low" - vouchsafe security */ ++ ++/* ++ * Names for IP sysctl objects ++ */ ++#define IPCTL_FORWARDING 1 /* act as router */ ++#define IPCTL_SENDREDIRECTS 2 /* may send redirects when forwarding */ ++#define IPCTL_DEFTTL 3 /* default TTL */ ++#ifdef notyet ++#define IPCTL_DEFMTU 4 /* default MTU */ ++#endif ++#define IPCTL_RTEXPIRE 5 /* cloned route expiration time */ ++#define IPCTL_RTMINEXPIRE 6 /* min value for expiration time */ ++#define IPCTL_RTMAXCACHE 7 /* trigger level for dynamic expire */ ++#define IPCTL_SOURCEROUTE 8 /* may perform source routes */ ++#define IPCTL_DIRECTEDBROADCAST 9 /* may re-broadcast received packets */ ++#define IPCTL_INTRQMAXLEN 10 /* max length of netisr queue */ ++#define IPCTL_INTRQDROPS 11 /* number of netisr q drops */ ++#define IPCTL_STATS 12 /* ipstat structure */ ++#define IPCTL_ACCEPTSOURCEROUTE 13 /* may accept source routed packets */ ++#define IPCTL_FASTFORWARDING 14 /* use fast IP forwarding code */ ++#define IPCTL_KEEPFAITH 15 /* FAITH IPv4->IPv6 translater ctl */ ++#define IPCTL_GIF_TTL 16 /* default TTL for gif encap packet */ ++#define IPCTL_MAXID 17 ++ ++/* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS. ++ The `ip_dst' field is used for the first-hop gateway when using a ++ source route (this gets put into the header proper). */ ++struct ip_opts ++ { ++ struct in_addr ip_dst; /* First hop; zero without source route. */ ++ char ip_opts[40]; /* Actually variable in size. */ ++ }; ++ ++/* Options for use with `getsockopt' and `setsockopt' at the IPv6 level. ++ The first word in the comment at the right is the data type used; ++ "bool" means a boolean value stored in an `int'. */ ++#define IPV6_SOCKOPT_RESERVED1 3 /* reserved for future use */ ++#define IPV6_UNICAST_HOPS 4 /* int; IP6 hops */ ++#define IPV6_MULTICAST_IF 9 /* u_int; set/get IP6 multicast i/f */ ++#define IPV6_MULTICAST_HOPS 10 /* int; set/get IP6 multicast hops */ ++#define IPV6_MULTICAST_LOOP 11 /* u_int; set/get IP6 multicast loopback */ ++#define IPV6_JOIN_GROUP 12 /* ip6_mreq; join a group membership */ ++#define IPV6_LEAVE_GROUP 13 /* ip6_mreq; leave a group membership */ ++#define IPV6_PORTRANGE 14 /* int; range to choose for unspec port */ ++#define ICMP6_FILTER 18 /* icmp6_filter; icmp6 filter */ ++ ++#define IPV6_CHECKSUM 26 /* int; checksum offset for raw socket */ ++#define IPV6_V6ONLY 27 /* bool; make AF_INET6 sockets v6 only */ ++ ++#define IPV6_IPSEC_POLICY 28 /* struct; get/set security policy */ ++#define IPV6_FAITH 29 /* bool; accept FAITH'ed connections */ ++ ++#define IPV6_FW_ADD 30 /* add a firewall rule to chain */ ++#define IPV6_FW_DEL 31 /* delete a firewall rule from chain */ ++#define IPV6_FW_FLUSH 32 /* flush firewall rule chain */ ++#define IPV6_FW_ZERO 33 /* clear single/all firewall counter(s) */ ++#define IPV6_FW_GET 34 /* get entire firewall rule chain */ ++#define IPV6_RTHDRDSTOPTS 35 /* ip6_dest; send dst option before rthdr */ ++ ++#define IPV6_RECVPKTINFO 36 /* bool; recv if, dst addr */ ++#define IPV6_RECVHOPLIMIT 37 /* bool; recv hop limit */ ++#define IPV6_RECVRTHDR 38 /* bool; recv routing header */ ++#define IPV6_RECVHOPOPTS 39 /* bool; recv hop-by-hop option */ ++#define IPV6_RECVDSTOPTS 40 /* bool; recv dst option after rthdr */ ++ ++#define IPV6_USE_MIN_MTU 42 /* bool; send packets at the minimum MTU */ ++#define IPV6_RECVPATHMTU 43 /* bool; notify an according MTU */ ++#define IPV6_PATHMTU 44 /* mtuinfo; get the current path MTU (sopt), ++ 4 bytes int; MTU notification (cmsg) */ ++ ++#define IPV6_PKTINFO 46 /* in6_pktinfo; send if, src addr */ ++#define IPV6_HOPLIMIT 47 /* int; send hop limit */ ++#define IPV6_NEXTHOP 48 /* sockaddr; next hop addr */ ++#define IPV6_HOPOPTS 49 /* ip6_hbh; send hop-by-hop option */ ++#define IPV6_DSTOPTS 50 /* ip6_dest; send dst option befor rthdr */ ++#define IPV6_RTHDR 51 /* ip6_rthdr; send routing header */ ++ ++#define IPV6_RECVTCLASS 57 /* bool; recv traffic class values */ ++ ++#define IPV6_AUTOFLOWLABEL 59 /* bool; attach flowlabel automagically */ ++ ++#define IPV6_TCLASS 61 /* int; send traffic class value */ ++#define IPV6_DONTFRAG 62 /* bool; disable IPv6 fragmentation */ ++ ++#define IPV6_PREFER_TEMPADDR 63 /* int; prefer temporary addresses as ++ * the source address. ++ */ ++ ++/* Obsolete synonyms for the above. */ ++#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP ++#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP ++#define IPV6_RXHOPOPTS IPV6_HOPOPTS ++#define IPV6_RXDSTOPTS IPV6_DSTOPTS ++ ++/* Socket level values for IPv6. */ ++#define SOL_IPV6 41 ++#define SOL_ICMPV6 58 ++ ++/* ++ * Defaults and limits for options ++ */ ++#define IPV6_DEFAULT_MULTICAST_HOPS 1 /* normally limit m'casts to 1 hop */ ++#define IPV6_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */ ++ ++/* ++ * Argument for IPV6_PORTRANGE: ++ * - which range to search when port is unspecified at bind() or connect() ++ */ ++#define IPV6_PORTRANGE_DEFAULT 0 /* default range */ ++#define IPV6_PORTRANGE_HIGH 1 /* "high" - request firewall bypass */ ++#define IPV6_PORTRANGE_LOW 2 /* "low" - vouchsafe security */ ++ ++/* Routing header options for IPv6. */ ++#define IPV6_RTHDR_LOOSE 0 /* Hop doesn't need to be neighbour. */ ++#define IPV6_RTHDR_STRICT 1 /* Hop must be a neighbour. */ ++ ++#define IPV6_RTHDR_TYPE_0 0 /* IPv6 Routing header type 0. */ ++ ++/* ++ * Names for IP sysctl objects ++ */ ++#define IPV6CTL_FORWARDING 1 /* act as router */ ++#define IPV6CTL_SENDREDIRECTS 2 /* may send redirects when forwarding*/ ++#define IPV6CTL_DEFHLIM 3 /* default Hop-Limit */ ++#define IPV6CTL_FORWSRCRT 5 /* forward source-routed dgrams */ ++#define IPV6CTL_STATS 6 /* stats */ ++#define IPV6CTL_MRTSTATS 7 /* multicast forwarding stats */ ++#define IPV6CTL_MRTPROTO 8 /* multicast routing protocol */ ++#define IPV6CTL_MAXFRAGPACKETS 9 /* max packets reassembly queue */ ++#define IPV6CTL_SOURCECHECK 10 /* verify source route and intf */ ++#define IPV6CTL_SOURCECHECK_LOGINT 11 /* minimume logging interval */ ++#define IPV6CTL_ACCEPT_RTADV 12 ++#define IPV6CTL_KEEPFAITH 13 ++#define IPV6CTL_LOG_INTERVAL 14 ++#define IPV6CTL_HDRNESTLIMIT 15 ++#define IPV6CTL_DAD_COUNT 16 ++#define IPV6CTL_AUTO_FLOWLABEL 17 ++#define IPV6CTL_DEFMCASTHLIM 18 ++#define IPV6CTL_GIF_HLIM 19 /* default HLIM for gif encap packet */ ++#define IPV6CTL_KAME_VERSION 20 ++#define IPV6CTL_USE_DEPRECATED 21 /* use deprecated addr (RFC2462 5.5.4) */ ++#define IPV6CTL_RR_PRUNE 22 /* walk timer for router renumbering */ ++#define IPV6CTL_V6ONLY 24 ++#define IPV6CTL_RTEXPIRE 25 /* cloned route expiration time */ ++#define IPV6CTL_RTMINEXPIRE 26 /* min value for expiration time */ ++#define IPV6CTL_RTMAXCACHE 27 /* trigger level for dynamic expire */ ++ ++#define IPV6CTL_USETEMPADDR 32 /* use temporary addresses (RFC3041) */ ++#define IPV6CTL_TEMPPLTIME 33 /* preferred lifetime for tmpaddrs */ ++#define IPV6CTL_TEMPVLTIME 34 /* valid lifetime for tmpaddrs */ ++#define IPV6CTL_AUTO_LINKLOCAL 35 /* automatic link-local addr assign */ ++#define IPV6CTL_RIP6STATS 36 /* raw_ip6 stats */ ++#define IPV6CTL_PREFER_TEMPADDR 37 /* prefer temporary addr as src */ ++#define IPV6CTL_ADDRCTLPOLICY 38 /* get/set address selection policy */ ++#define IPV6CTL_USE_DEFAULTZONE 39 /* use default scope zone */ ++ ++#define IPV6CTL_MAXFRAGS 41 /* max fragments */ ++#define IPV6CTL_MCAST_PMTU 44 /* enable pMTU discovery for multicast? */ ++ ++/* New entries should be added here from current IPV6CTL_MAXID value. */ ++/* to define items, should talk with KAME guys first, for *BSD compatibility */ ++/* 42-44 is already used in KAME */ ++#define IPV6CTL_STEALTH 45 ++#define ICMPV6CTL_ND6_ONLINKNSRFC4861 47 ++#define IPV6CTL_MAXID 48 +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ioctl-types.h +@@ -0,0 +1,37 @@ ++/* Structure types for pre-termios terminal ioctls. FreeBSD version. ++ Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_IOCTL_H ++# error "Never use directly; include instead." ++#endif ++ ++/* Many systems that have TIOCGWINSZ define TIOCGSIZE for source ++ compatibility with Sun; they define `struct ttysize' to have identical ++ layout as `struct winsize' and #define TIOCGSIZE to be TIOCGWINSZ ++ (likewise TIOCSSIZE and TIOCSWINSZ). */ ++/* struct ttysize is in FreeBSD originally defined in , ++ which is replaced by GLIBC version -> define here */ ++struct ttysize ++{ ++ unsigned short int ts_lines; ++ unsigned short int ts_cols; ++ unsigned short int ts_xxx; ++ unsigned short int ts_yyy; ++}; ++#define _IOT_ttysize _IOT_winsize +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ioctls.h +@@ -0,0 +1,50 @@ ++/*- ++ * Copyright (c) 1982, 1986, 1990 The Regents of the University of California. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)ioctl.h 8.6 (Berkeley) 3/28/94 ++ */ ++ ++#ifndef _IOCTLS_H_ ++#define _IOCTLS_H_ ++ ++#include ++ ++#include ++ ++/* ++ * @(#)ioctl.h 8.6 (Berkeley) 3/28/94 ++ */ ++ ++#define TIOCGSIZE TIOCGWINSZ ++#define TIOCSSIZE TIOCSWINSZ ++ ++#include ++ ++#include ++ ++#endif /* !_IOCTLS_H_ */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ipc.h +@@ -0,0 +1,56 @@ ++/* Copyright (C) 1995-1997, 1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_IPC_H ++# error "Never use directly; include instead." ++#endif ++ ++#include ++ ++/* Mode bits for `msgget', `semget', and `shmget'. */ ++#define IPC_CREAT 01000 /* create key if key does not exist */ ++#define IPC_EXCL 02000 /* fail if key exists */ ++#define IPC_NOWAIT 04000 /* return error on wait */ ++ ++/* Control commands for `msgctl', `semctl', and `shmctl'. */ ++#define IPC_RMID 0 /* remove identifier */ ++#define IPC_SET 1 /* set `ipc_perm' options */ ++#define IPC_STAT 2 /* get `ipc_perm' options */ ++ ++/* Special key values. */ ++#define IPC_PRIVATE ((key_t) 0) /* private key */ ++ ++#ifdef __USE_BSD ++/* Common mode bits. */ ++# define IPC_R 0400 /* read permission, same as S_IRUSR */ ++# define IPC_W 0200 /* write permission, same as S_IWUSR */ ++# define IPC_M 0x1000 /* control permission */ ++#endif ++ ++ ++/* Data structure used to pass permission information to IPC operations. */ ++struct ipc_perm ++ { ++ __uint16_t /* yuck! */ cuid; /* creator's user ID */ ++ __uint16_t /* yuck! */ cgid; /* creator's group ID */ ++ __uint16_t /* yuck! */ uid; /* owner's user ID */ ++ __uint16_t /* yuck! */ gid; /* owner's group ID */ ++ __mode_t mode; /* read/write permission */ ++ __uint16_t __seq; ++ __key_t __key; ++ }; +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/local_lim.h +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/mman.h +@@ -0,0 +1,130 @@ ++/* Definitions for POSIX memory map interface. FreeBSD version. ++ Copyright (C) 1994-1998, 2000-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_MMAN_H ++# error "Never use directly; include instead." ++#endif ++ ++#include ++#include ++ ++/* Protections are chosen from these bits, OR'd together. The ++ implementation does not necessarily support PROT_EXEC or PROT_WRITE ++ without PROT_READ. The only guarantees are that no writing will be ++ allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ ++ ++#define PROT_NONE 0x00 /* No access. */ ++#define PROT_READ 0x01 /* Pages can be read. */ ++#define PROT_WRITE 0x02 /* Pages can be written. */ ++#define PROT_EXEC 0x04 /* Pages can be executed. */ ++ ++/* Flags contain mapping type, sharing type and options. */ ++ ++/* Mapping type (must choose one and only one of these). */ ++#ifdef __USE_BSD ++# define MAP_FILE 0x0000 /* Mapped from a file or device. */ ++# define MAP_ANON 0x1000 /* Allocated from anonymous virtual memory. */ ++# define MAP_TYPE 0x1000 /* Mask for type field. */ ++# ifdef __USE_MISC ++# define MAP_ANONYMOUS MAP_ANON /* Linux name. */ ++# endif ++#endif ++ ++/* Sharing types (must choose one and only one of these). */ ++#define MAP_SHARED 0x0001 /* Share changes. */ ++#define MAP_PRIVATE 0x0002 /* Changes private; copy pages on write. */ ++#ifdef __USE_BSD ++# define MAP_COPY MAP_PRIVATE /* Virtual copy of region at mapping time. */ ++#endif ++ ++/* Other flags. */ ++#define MAP_FIXED 0x0010 /* Map address must be exactly as requested. */ ++#ifdef __USE_BSD ++#define MAP_RENAME 0x0020 /* Sun: rename private pages to file */ ++#define MAP_NORESERVE 0x0040 /* Sun: don't reserve needed swap area */ ++#define MAP_RESERVED0080 0x0080 /* previously misimplemented MAP_INHERIT */ ++#define MAP_RESERVED0100 0x0100 /* previously unimplemented MAP_NOEXTEND */ ++# define MAP_HASSEMPHORE 0x0200 /* Region may contain semaphores. */ ++# define MAP_STACK 0x0400 /* Region grows down, like a stack. */ ++# define MAP_NOSYNC 0x0800 /* Try to avoid flushing to the disk. */ ++# define MAP_NOCORE 0x20000 /* Don't include these pages in a core dump. */ ++#endif ++ ++/* Advice to `madvise'. */ ++#ifdef __USE_BSD ++# define MADV_NORMAL 0 /* No further special treatment. */ ++# define MADV_RANDOM 1 /* Expect random page references. */ ++# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ ++# define MADV_WILLNEED 3 /* Will need these pages. */ ++# define MADV_DONTNEED 4 /* Don't need these pages. */ ++# define MADV_FREE 5 /* Don't need these pages, they contain junk. */ ++# define MADV_NOSYNC 6 /* Try to avoid flushing to the disk. */ ++# define MADV_AUTOSYNC 7 /* Use the default flushing strategy. */ ++# define MADV_NOCORE 8 /* Don't include these pages in a core dump. */ ++# define MADV_CORE 9 /* Include pages in a core dump (default). */ ++# define MADV_PROTECT 10 /* protect process from pageout kill */ ++#endif ++ ++/* The POSIX people had to invent similar names for the same things. */ ++#ifdef __USE_XOPEN2K ++# define POSIX_MADV_NORMAL 0 /* No further special treatment. */ ++# define POSIX_MADV_RANDOM 1 /* Expect random page references. */ ++# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */ ++# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */ ++# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */ ++#endif ++ ++/* Flags to `msync'. */ ++#define MS_ASYNC 1 /* Sync memory asynchronously. */ ++#define MS_SYNC 0 /* Synchronous memory sync. */ ++#define MS_INVALIDATE 2 /* Invalidate the caches. */ ++ ++/* Flags for `mlockall' (can be OR'd together). */ ++#define MCL_CURRENT 1 /* Lock all currently mapped pages. */ ++#define MCL_FUTURE 2 /* Lock all additions to address ++ space. */ ++ ++/* Flags for 'minherit'. */ ++#ifdef __USE_BSD ++# define INHERIT_SHARE 0 ++# define INHERIT_COPY 1 ++# define INHERIT_NONE 2 ++#endif ++ ++ ++/* ++ * Return bits from mincore ++ */ ++#ifdef __USE_MISC ++#define MINCORE_INCORE 0x1 /* Page is incore */ ++#define MINCORE_REFERENCED 0x2 /* Page has been referenced by us */ ++#define MINCORE_MODIFIED 0x4 /* Page has been modified by us */ ++#define MINCORE_REFERENCED_OTHER 0x8 /* Page has been referenced */ ++#define MINCORE_MODIFIED_OTHER 0x10 /* Page has been modified */ ++#endif /* Use MISC */ ++ ++#ifdef __USE_BSD ++ ++__BEGIN_DECLS ++ ++extern int minherit (void *__addr, size_t __len, int __inherit); ++ ++__END_DECLS ++ ++#endif /* Use BSD */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/msq.h +@@ -0,0 +1,69 @@ ++/* Copyright (C) 1995, 1997, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_MSG_H ++#error "Never use directly; include instead." ++#endif ++ ++#include ++ ++/* Define options for message queue functions. */ ++#define MSG_NOERROR 010000 /* no error if message is too big */ ++ ++/* Types used in the structure definition. */ ++typedef unsigned long int msgqnum_t; ++typedef unsigned long int msglen_t; ++ ++ ++/* Structure of record for one message inside the kernel. ++ The type `struct __msg' is opaque. */ ++struct msqid_ds ++{ ++ struct ipc_perm msg_perm; /* structure describing operation permission */ ++ void *__msg_first; ++ void *__msg_last; ++ msglen_t __msg_cbytes; /* current number of bytes on queue */ ++ msgqnum_t msg_qnum; /* number of messages currently on queue */ ++ msglen_t msg_qbytes; /* max number of bytes allowed on queue */ ++ __pid_t msg_lspid; /* pid of last msgsnd() */ ++ __pid_t msg_lrpid; /* pid of last msgrcv() */ ++ __time_t msg_stime; /* time of last msgsnd command */ ++ long __unused1; ++ __time_t msg_rtime; /* time of last msgrcv command */ ++ long __unused2; ++ __time_t msg_ctime; /* time of last change */ ++ long __unused3; ++ long __unused4[4]; ++}; ++ ++#ifdef __USE_MISC ++ ++# define msg_cbytes __msg_cbytes ++ ++/* buffer for msgctl calls IPC_INFO, MSG_INFO */ ++struct msginfo ++ { ++ int msgmax; ++ int msgmni; ++ int msgmnb; ++ int msgtql; ++ int msgssz; ++ int msgseg; ++ }; ++ ++#endif /* __USE_MISC */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/poll.h +@@ -0,0 +1,51 @@ ++/* Copyright (C) 1997, 2001-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_POLL_H ++# error "Never use directly; include instead." ++#endif ++ ++/* Event types that can be polled for. These bits may be set in `events' ++ to indicate the interesting event types; they will appear in `revents' ++ to indicate the status of the file descriptor. */ ++#define POLLIN 0x0001 /* There is data to read. */ ++#define POLLPRI 0x0002 /* There is urgent data to read. */ ++#define POLLOUT 0x0004 /* Writing now will not block. */ ++ ++#ifdef __USE_XOPEN ++/* These values are defined in XPG4.2. */ ++# define POLLRDNORM 0x0040 /* Normal data may be read. */ ++# define POLLRDBAND 0x0080 /* Priority data may be read. */ ++# define POLLWRNORM 0x0004 /* Writing now will not block. */ ++# define POLLWRBAND 0x0100 /* Priority data may be written. */ ++#endif ++ ++#ifdef __USE_BSD ++/* These are extensions for FreeBSD. */ ++# define POLLEXTEND 0x0200 /* File size may have grown. */ ++# define POLLATTRIB 0x0400 /* File attributes may have changed. */ ++# define POLLNLINK 0x0800 /* File may have been moved/removed. */ ++# define POLLWRITE 0x1000 /* File's contents may have changed. */ ++#endif ++ ++/* Event types always implicitly polled for. These bits need not be set in ++ `events', but they will appear in `revents' to indicate the status of ++ the file descriptor. */ ++#define POLLERR 0x0008 /* Error condition. */ ++#define POLLHUP 0x0010 /* Hung up. */ ++#define POLLNVAL 0x0020 /* Invalid polling request. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/posix_opt.h +@@ -0,0 +1,90 @@ ++/* Define POSIX options for FreeBSD. ++ Copyright (C) 1996-1997, 1999, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* ++ * Never include this file directly; use instead. ++ */ ++ ++#ifndef _BITS_POSIX_OPT_H ++#define _BITS_POSIX_OPT_H 1 ++ ++/* Job control is supported. */ ++#define _POSIX_JOB_CONTROL 1 ++ ++/* Processes have a saved set-user-ID and a saved set-group-ID. */ ++#define _POSIX_SAVED_IDS 1 ++ ++/* Priority scheduling is supported. */ ++#define _POSIX_PRIORITY_SCHEDULING 1 ++ ++/* Synchronizing file data is supported. */ ++#define _POSIX_SYNCHRONIZED_IO 1 ++ ++/* The fsync function is present. */ ++#define _POSIX_FSYNC 1 ++ ++/* Mapping of files to memory is supported. */ ++#define _POSIX_MAPPED_FILES 1 ++ ++/* Locking of all memory is supported. */ ++#define _POSIX_MEMLOCK 1 ++ ++/* Locking of ranges of memory is supported. */ ++#define _POSIX_MEMLOCK_RANGE 1 ++ ++/* Setting of memory protections is supported. */ ++#define _POSIX_MEMORY_PROTECTION 1 ++ ++/* Implementation supports `poll' function. */ ++#define _POSIX_POLL 1 ++ ++/* Implementation supports `select' and `pselect' functions. */ ++#define _POSIX_SELECT 1 ++ ++/* XPG4.2 shared memory is supported. */ ++#define _XOPEN_SHM 1 ++ ++/* X/Open realtime support is available. */ ++#define _XOPEN_REALTIME 1 ++ ++/* Only root can change owner of file. */ ++#define _POSIX_CHOWN_RESTRICTED 1 ++ ++/* `c_cc' member of 'struct termios' structure can be disabled by ++ using the value _POSIX_VDISABLE. */ ++#define _POSIX_VDISABLE ((unsigned char)'\377') ++ ++/* The LFS interface is available, except for the asynchronous I/O. */ ++#define _LFS_LARGEFILE 1 ++#define _LFS64_LARGEFILE 1 ++#define _LFS64_STDIO 1 ++ ++/* POSIX timers are available. */ ++#define _POSIX_TIMERS 1 ++ ++/* GNU libc provides regular expression handling. */ ++#define _POSIX_REGEXP 1 ++ ++/* We have a POSIX shell. */ ++#define _POSIX_SHELL 1 ++ ++/* The `spawn' function family is supported. */ ++#define _POSIX_SPAWN 200912L ++ ++#endif /* bits/posix_opt.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/resource.h +@@ -0,0 +1,200 @@ ++/* Bit values & structures for resource limits. FreeBSD version. ++ Copyright (C) 1994, 1996-1998, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_RESOURCE_H ++# error "Never use directly; include instead." ++#endif ++ ++#include ++ ++/* Transmute defines to enumerations. The macro re-definitions are ++ necessary because some programs want to test for operating system ++ features with #ifdef RUSAGE_SELF. In ISO C the reflexive ++ definition is a no-op. ++ ++ These are the values for FreeBSD. Earlier BSD systems have a subset of ++ these kinds of resource limit. */ ++ ++/* Kinds of resource limit. */ ++enum __rlimit_resource ++{ ++ /* Per-process CPU limit, in seconds. */ ++ RLIMIT_CPU = 0, ++#define RLIMIT_CPU RLIMIT_CPU ++ ++ /* Largest file that can be created, in bytes. */ ++ RLIMIT_FSIZE = 1, ++#define RLIMIT_FSIZE RLIMIT_FSIZE ++ ++ /* Maximum size of data segment, in bytes. */ ++ RLIMIT_DATA = 2, ++#define RLIMIT_DATA RLIMIT_DATA ++ ++ /* Maximum size of stack segment, in bytes. */ ++ RLIMIT_STACK = 3, ++#define RLIMIT_STACK RLIMIT_STACK ++ ++ /* Largest core file that can be created, in bytes. */ ++ RLIMIT_CORE = 4, ++#define RLIMIT_CORE RLIMIT_CORE ++ ++ /* Largest resident set size, in bytes. ++ This affects swapping; processes that are exceeding their ++ resident set size will be more likely to have physical memory ++ taken from them. */ ++ __RLIMIT_RSS = 5, ++#define RLIMIT_RSS __RLIMIT_RSS ++ ++ /* Locked-in-memory address space. */ ++ __RLIMIT_MEMLOCK = 6, ++#define RLIMIT_MEMLOCK __RLIMIT_MEMLOCK ++ ++ /* Number of processes. */ ++ __RLIMIT_NPROC = 7, ++#define RLIMIT_NPROC __RLIMIT_NPROC ++ ++ /* Number of open files. */ ++ RLIMIT_NOFILE = 8, ++#define RLIMIT_NOFILE RLIMIT_NOFILE ++ ++ /* Maximum size of all socket buffers. */ ++ __RLIMIT_SBSIZE = 9, ++#define RLIMIT_SBSIZE __RLIMIT_SBSIZE ++ ++ /* Address space limit. */ ++ RLIMIT_AS = 10, ++#define RLIMIT_AS RLIMIT_AS ++ ++ __RLIMIT_NLIMITS = 11, ++ __RLIM_NLIMITS = __RLIMIT_NLIMITS ++#define RLIMIT_NLIMITS __RLIMIT_NLIMITS ++#define RLIM_NLIMITS __RLIM_NLIMITS ++}; ++ ++/* Value to indicate that there is no limit. */ ++#define RLIM_INFINITY 0x7fffffffffffffffLL ++#ifdef __USE_LARGEFILE64 ++# define RLIM64_INFINITY 0x7fffffffffffffffLL ++#endif ++ ++ ++/* Type for resource quantity measurement. */ ++typedef __rlim_t rlim_t; ++#ifdef __USE_LARGEFILE64 ++typedef __rlim64_t rlim64_t; ++#endif ++ ++struct rlimit ++ { ++ /* The current (soft) limit. */ ++ rlim_t rlim_cur; ++ /* The hard limit. */ ++ rlim_t rlim_max; ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct rlimit64 ++ { ++ /* The current (soft) limit. */ ++ rlim64_t rlim_cur; ++ /* The hard limit. */ ++ rlim64_t rlim_max; ++ }; ++#endif ++ ++#define CP_USER 0 ++#define CP_NICE 1 ++#define CP_SYS 2 ++#define CP_INTR 3 ++#define CP_IDLE 4 ++#define CPUSTATES 5 ++ ++/* Whose usage statistics do you want? */ ++enum __rusage_who ++{ ++ /* The calling process. */ ++ RUSAGE_SELF = 0, ++#define RUSAGE_SELF RUSAGE_SELF ++ ++ /* All of its terminated child processes. */ ++ RUSAGE_CHILDREN = -1 ++#define RUSAGE_CHILDREN RUSAGE_CHILDREN ++}; ++ ++#define __need_timeval ++#include /* For `struct timeval'. */ ++ ++/* Structure which says how much of each resource has been used. */ ++struct rusage ++ { ++ /* Total amount of user time used. */ ++ struct timeval ru_utime; ++ /* Total amount of system time used. */ ++ struct timeval ru_stime; ++ /* Maximum resident set size (in kilobytes). */ ++ long int ru_maxrss; ++ /* Amount of sharing of text segment memory ++ with other processes (kilobyte-seconds). */ ++ long int ru_ixrss; ++ /* Amount of data segment memory used (kilobyte-seconds). */ ++ long int ru_idrss; ++ /* Amount of stack memory used (kilobyte-seconds). */ ++ long int ru_isrss; ++ /* Number of soft page faults (i.e. those serviced by reclaiming ++ a page from the list of pages awaiting reallocation. */ ++ long int ru_minflt; ++ /* Number of hard page faults (i.e. those that required I/O). */ ++ long int ru_majflt; ++ /* Number of times a process was swapped out of physical memory. */ ++ long int ru_nswap; ++ /* Number of input operations via the file system. Note: This ++ and `ru_oublock' do not include operations with the cache. */ ++ long int ru_inblock; ++ /* Number of output operations via the file system. */ ++ long int ru_oublock; ++ /* Number of IPC messages sent. */ ++ long int ru_msgsnd; ++ /* Number of IPC messages received. */ ++ long int ru_msgrcv; ++ /* Number of signals delivered. */ ++ long int ru_nsignals; ++ /* Number of voluntary context switches, i.e. because the process ++ gave up the process before it had to (usually to wait for some ++ resource to be available). */ ++ long int ru_nvcsw; ++ /* Number of involuntary context switches, i.e. a higher priority process ++ became runnable or the current process used up its time slice. */ ++ long int ru_nivcsw; ++ }; ++ ++/* Priority limits. */ ++#define PRIO_MIN -20 /* Minimum priority a process can have. */ ++#define PRIO_MAX 20 /* Maximum priority a process can have. */ ++ ++/* The type of the WHICH argument to `getpriority' and `setpriority', ++ indicating what flavor of entity the WHO argument specifies. */ ++enum __priority_which ++{ ++ PRIO_PROCESS = 0, /* WHO is a process ID. */ ++#define PRIO_PROCESS PRIO_PROCESS ++ PRIO_PGRP = 1, /* WHO is a process group ID. */ ++#define PRIO_PGRP PRIO_PGRP ++ PRIO_USER = 2 /* WHO is a user ID. */ ++#define PRIO_USER PRIO_USER ++}; +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sched.h +@@ -0,0 +1,183 @@ ++/* Definitions of constants and data structure for POSIX 1003.1b-1993 ++ scheduling interface. ++ Copyright (C) 1996-1999,2001-2003,2005,2006,2007,2008 ++ Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef __need_schedparam ++ ++#ifndef _SCHED_H ++# error "Never include directly; use instead." ++#endif ++ ++ ++/* Scheduling algorithms. */ ++#define SCHED_OTHER 2 ++#define SCHED_FIFO 1 ++#define SCHED_RR 3 ++ ++ ++#ifdef __USE_MISC ++/* Cloning flags. */ ++# define CSIGNAL 0x000000ff /* Signal mask to be sent at exit. */ ++# define CLONE_VM 0x00000100 /* Set if VM shared between processes. */ ++# define CLONE_FS 0x00000200 /* Set if fs info shared between processes. */ ++# define CLONE_FILES 0x00000400 /* Set if open files shared between processes. */ ++# define CLONE_SIGHAND 0x00000800 /* Set if signal handlers shared. */ ++# define CLONE_PTRACE 0x00002000 /* Set if tracing continues on the child. */ ++# define CLONE_VFORK 0x00004000 /* Set if the parent wants the child to ++ wake it up on mm_release. */ ++# define CLONE_SYSVSEM 0x00040000 /* share system V SEM_UNDO semantics */ ++#endif ++ ++/* The official definition. */ ++struct sched_param ++ { ++ int __sched_priority; ++ }; ++ ++__BEGIN_DECLS ++ ++#ifdef __USE_MISC ++/* Clone current process. */ ++extern int clone (int (*__fn) (void *__arg), void *__child_stack, ++ int __flags, void *__arg) __THROW; ++ ++/* Unshare the specified resources. */ ++extern int unshare (int __flags) __THROW; ++ ++/* Get index of currently used CPU. */ ++extern int sched_getcpu (void) __THROW; ++#endif ++ ++__END_DECLS ++ ++#endif /* need schedparam */ ++ ++#if !defined __defined_schedparam \ ++ && (defined __need_schedparam || defined _SCHED_H) ++# define __defined_schedparam 1 ++/* Data structure to describe a process' schedulability. */ ++struct __sched_param ++ { ++ int __sched_priority; ++ }; ++# undef __need_schedparam ++#endif ++ ++ ++#if defined _SCHED_H && !defined __cpu_set_t_defined ++# define __cpu_set_t_defined ++/* Size definition for CPU sets. */ ++# define __CPU_SETSIZE 128 ++# define __NCPUBITS (8 * sizeof (__cpu_mask)) ++ ++/* Type for array elements in 'cpu_set_t'. */ ++typedef unsigned long int __cpu_mask; ++ ++/* Basic access functions. */ ++# define __CPUELT(cpu) ((cpu) / __NCPUBITS) ++# define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS)) ++ ++/* Data structure to describe CPU mask. */ ++typedef struct ++{ ++ __cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS]; ++} cpu_set_t; ++ ++/* Access functions for CPU masks. */ ++# if __GNUC_PREREQ (2, 91) ++# define __CPU_ZERO_S(setsize, cpusetp) \ ++ do __builtin_memset (cpusetp, '\0', setsize); while (0) ++# else ++# define __CPU_ZERO_S(setsize, cpusetp) \ ++ do { \ ++ size_t __i; \ ++ size_t __imax = (setsize) / sizeof (__cpu_mask); \ ++ __cpu_mask *__bits = (cpusetp)->__bits; \ ++ for (__i = 0; __i < __imax; ++__i) \ ++ __bits[__i] = 0; \ ++ } while (0) ++# endif ++# define __CPU_SET_S(cpu, setsize, cpusetp) \ ++ (__extension__ \ ++ ({ size_t __cpu = (cpu); \ ++ __cpu < 8 * (setsize) \ ++ ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \ ++ |= __CPUMASK (__cpu)) \ ++ : 0; })) ++# define __CPU_CLR_S(cpu, setsize, cpusetp) \ ++ (__extension__ \ ++ ({ size_t __cpu = (cpu); \ ++ __cpu < 8 * (setsize) \ ++ ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \ ++ &= ~__CPUMASK (__cpu)) \ ++ : 0; })) ++# define __CPU_ISSET_S(cpu, setsize, cpusetp) \ ++ (__extension__ \ ++ ({ size_t __cpu = (cpu); \ ++ __cpu < 8 * (setsize) \ ++ ? ((((__const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \ ++ & __CPUMASK (__cpu))) != 0 \ ++ : 0; })) ++ ++# define __CPU_COUNT_S(setsize, cpusetp) \ ++ __sched_cpucount (setsize, cpusetp) ++ ++# if __GNUC_PREREQ (2, 91) ++# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \ ++ (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0) ++# else ++# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \ ++ (__extension__ \ ++ ({ __const __cpu_mask *__arr1 = (cpusetp1)->__bits; \ ++ __const __cpu_mask *__arr2 = (cpusetp2)->__bits; \ ++ size_t __imax = (setsize) / sizeof (__cpu_mask); \ ++ size_t __i; \ ++ for (__i = 0; __i < __imax; ++__i) \ ++ if (__bits[__i] != __bits[__i]) \ ++ break; \ ++ __i == __imax; })) ++# endif ++ ++# define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \ ++ (__extension__ \ ++ ({ cpu_set_t *__dest = (destset); \ ++ __const __cpu_mask *__arr1 = (srcset1)->__bits; \ ++ __const __cpu_mask *__arr2 = (srcset2)->__bits; \ ++ size_t __imax = (setsize) / sizeof (__cpu_mask); \ ++ size_t __i; \ ++ for (__i = 0; __i < __imax; ++__i) \ ++ ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i]; \ ++ __dest; })) ++ ++# define __CPU_ALLOC_SIZE(count) \ ++ ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask)) ++# define __CPU_ALLOC(count) __sched_cpualloc (count) ++# define __CPU_FREE(cpuset) __sched_cpufree (cpuset) ++ ++__BEGIN_DECLS ++ ++extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) ++ __THROW; ++extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur; ++extern void __sched_cpufree (cpu_set_t *__set) __THROW; ++ ++__END_DECLS ++ ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sem.h +@@ -0,0 +1,95 @@ ++/* Copyright (C) 1995-1998, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_SEM_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++/* Flags for `semop'. */ ++#define SEM_UNDO 0x1000 /* undo the operation on exit */ ++ ++/* Commands for `semctl'. */ ++#define GETPID 4 /* get sempid */ ++#define GETVAL 5 /* get semval */ ++#define GETALL 6 /* get all semval's */ ++#define GETNCNT 3 /* get semncnt */ ++#define GETZCNT 7 /* get semzcnt */ ++#define SETVAL 8 /* set semval */ ++#define SETALL 9 /* set all semval's */ ++ ++#ifdef __USE_BSD ++# define SEM_R IPC_R /* read permission for user */ ++# define SEM_A IPC_W /* alter permission for user */ ++#endif ++ ++ ++/* Data structure describing a set of semaphores. */ ++struct semid_ds ++{ ++ struct ipc_perm sem_perm; /* operation permission struct */ ++ void *__sem_base; ++ unsigned short int sem_nsems; /* number of semaphores in set */ ++ __time_t sem_otime; /* last semop() time */ ++ long __unused1; ++ __time_t sem_ctime; /* last time changed by semctl() */ ++ long __unused2; ++ long __unused3[4]; ++}; ++ ++/* The user should define a union like the following to use it for arguments ++ for `semctl'. ++ ++ union semun ++ { ++ int val; <= value for SETVAL ++ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET ++ unsigned short int *array; <= array for GETALL & SETALL ++ struct seminfo *__buf; <= buffer for IPC_INFO ++ }; ++ ++ Previous versions of this file used to define this union but this is ++ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether ++ one must define the union or not. */ ++#define _SEM_SEMUN_UNDEFINED 1 ++ ++#ifdef __USE_MISC ++ ++/* ipcs ctl cmds */ ++# define SEM_STAT 10 ++# define SEM_INFO 11 ++ ++/* ++ * semaphore info struct ++ */ ++struct seminfo { ++ int semmap, /* # of entries in semaphore map */ ++ semmni, /* # of semaphore identifiers */ ++ semmns, /* # of semaphores in system */ ++ semmnu, /* # of undo structures in system */ ++ semmsl, /* max # of semaphores per id */ ++ semopm, /* max # of operations per semop call */ ++ semume, /* max # of undo entries per process */ ++ semusz, /* size in bytes of undo structure */ ++ semvmx, /* semaphore maximum value */ ++ semaem; /* adjust on exit max value */ ++}; ++ ++#endif ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/shm.h +@@ -0,0 +1,90 @@ ++/* Copyright (C) 1995-1997, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_SHM_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++/* Permission flag for shmget. */ ++#ifdef __USE_BSD ++# define SHM_R IPC_R /* read permission for user */ ++# define SHM_W IPC_W /* write permission for user */ ++#endif ++ ++/* Flags for `shmat'. */ ++#define SHM_RDONLY 010000 /* attach read-only else read-write */ ++#define SHM_RND 020000 /* round attach address to SHMLBA */ ++ ++/* Commands for `shmctl'. */ ++#define SHM_LOCK 11 /* lock segment (root only) */ ++#define SHM_UNLOCK 12 /* unlock segment (root only) */ ++ ++__BEGIN_DECLS ++ ++/* Segment low boundary address multiple. */ ++#define SHMLBA (__getpagesize ()) ++extern int __getpagesize (void) __THROW __attribute__ ((__const__)); ++ ++ ++/* Type to count number of attaches. */ ++typedef unsigned short int shmatt_t; ++ ++/* Data structure describing a set of semaphores. */ ++struct shmid_ds ++ { ++ struct ipc_perm shm_perm; /* operation permission struct */ ++ int shm_segsz; /* size of segment in bytes */ ++ __pid_t shm_lpid; /* pid of last shmop */ ++ __pid_t shm_cpid; /* pid of creator */ ++ shmatt_t shm_nattch; /* number of current attaches */ ++ __time_t shm_atime; /* time of last shmat() */ ++ __time_t shm_dtime; /* time of last shmdt() */ ++ __time_t shm_ctime; /* time of last change by shmctl() */ ++ void *__shm_internal; ++ }; ++ ++#ifdef __USE_MISC ++ ++/* ipcs ctl commands */ ++# define SHM_STAT 13 ++# define SHM_INFO 14 ++ ++struct shminfo ++ { ++ int shmmax, /* max shared memory segment size (bytes) */ ++ shmmin, /* min shared memory segment size (bytes) */ ++ shmmni, /* max number of shared memory identifiers */ ++ shmseg, /* max shared memory segments per process */ ++ shmall; /* max amount of shared memory (pages) */ ++ }; ++ ++struct shm_info ++ { ++ int used_ids; ++ unsigned long int shm_tot; /* total allocated shm */ ++ unsigned long int shm_rss; /* total resident shm */ ++ unsigned long int shm_swp; /* total swapped shm */ ++ unsigned long int swap_attempts; ++ unsigned long int swap_successes; ++ }; ++ ++#endif /* __USE_MISC */ ++ ++__END_DECLS +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sigaction.h +@@ -0,0 +1,76 @@ ++/* Copyright (C) 1991-1992,1996-1998,2001-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SIGNAL_H ++# error "Never include directly; use instead." ++#endif ++ ++/* These definitions match those used by the FreeBSD kernel. */ ++ ++/* Structure describing the action to be taken when a signal arrives. */ ++struct sigaction ++ { ++ /* Signal handler. */ ++#ifdef __USE_POSIX199309 ++ union ++ { ++ /* Used if SA_SIGINFO is not set. */ ++ __sighandler_t sa_handler; ++ /* Used if SA_SIGINFO is set. */ ++ void (*sa_sigaction) (int, siginfo_t *, void *); ++ } ++ __sigaction_handler; ++# define sa_handler __sigaction_handler.sa_handler ++# define sa_sigaction __sigaction_handler.sa_sigaction ++#else ++ __sighandler_t sa_handler; ++#endif ++ ++ /* Special flags. */ ++ int sa_flags; ++ ++ /* Additional set of signals to be blocked. */ ++ __sigset_t sa_mask; ++ }; ++ ++/* Bits in `sa_flags'. */ ++#if defined __USE_UNIX98 || defined __USE_MISC ++# define SA_ONSTACK 0x0001 /* Take signal on signal stack. */ ++# define SA_RESTART 0x0002 /* Restart syscall on signal return. */ ++# define SA_RESETHAND 0x0004 /* Reset to SIG_DFL on entry to handler. */ ++# define SA_NODEFER 0x0010 /* Don't automatically block the signal when ++ its handler is being executed. */ ++# define SA_NOCLDWAIT 0x0020 /* Don't save zombie processes. */ ++# define SA_SIGINFO 0x0040 /* Provide additional info to the handler. */ ++#endif ++#define SA_NOCLDSTOP 0x0008 /* Don't send SIGCHLD when children stop. */ ++ ++#ifdef __USE_MISC ++# define SA_INTERRUPT 0 /* Historical no-op ("not SA_RESTART"). */ ++ ++/* Some aliases for the SA_ constants. */ ++# define SA_NOMASK SA_NODEFER ++# define SA_ONESHOT SA_RESETHAND ++# define SA_STACK SA_ONSTACK ++#endif ++ ++ ++/* Values for the HOW argument to `sigprocmask'. */ ++#define SIG_BLOCK 1 /* Block signals. */ ++#define SIG_UNBLOCK 2 /* Unblock signals. */ ++#define SIG_SETMASK 3 /* Set the set of blocked signals. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/siginfo.h +@@ -0,0 +1,214 @@ ++/* siginfo_t, sigevent and constants. FreeBSD version. ++ Copyright (C) 1997-1998, 2000-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if !defined _SIGNAL_H && !defined __need_siginfo_t \ ++ && !defined __need_sigevent_t ++# error "Never include this file directly. Use instead" ++#endif ++ ++#if (!defined __have_sigval_t \ ++ && (defined _SIGNAL_H || defined __need_siginfo_t \ ++ || defined __need_sigevent_t)) ++# define __have_sigval_t 1 ++ ++/* Type for data associated with a signal. */ ++typedef union sigval ++ { ++ int sival_int; ++ void *sival_ptr; ++ } sigval_t; ++#endif ++ ++#if (!defined __have_siginfo_t \ ++ && (defined _SIGNAL_H || defined __need_siginfo_t)) ++# define __have_siginfo_t 1 ++ ++typedef struct siginfo ++ { ++ int si_signo; /* Signal number. */ ++ int si_errno; /* If non-zero, an errno value associated with ++ this signal, as defined in . */ ++ int si_code; /* Signal code. */ ++ int si_pid; /* Sending process ID. */ ++ unsigned int si_uid; /* Real user ID of sending process. */ ++ int si_status; /* Exit value or signal. */ ++ void *si_addr; /* Address of faulting instruction. */ ++ union sigval si_value; /* Signal value. */ ++ long int si_band; /* Band event for SIGPOLL. */ ++ int __si_spare[7]; ++ } siginfo_t; ++ ++ ++/* Values for `si_code'. Positive values are reserved for kernel-generated ++ signals. */ ++enum ++{ ++ SI_ASYNCIO = 0x10004, /* Sent by AIO completion. */ ++# define SI_ASYNCIO SI_ASYNCIO ++ SI_MESGQ = 0x10005, /* Sent by real time mesq state change. */ ++# define SI_MESGQ SI_MESGQ ++ SI_TIMER = 0x10003, /* Sent by timer expiration. */ ++# define SI_TIMER SI_TIMER ++ SI_QUEUE = 0x10002, /* Sent by sigqueue. */ ++# define SI_QUEUE SI_QUEUE ++ SI_USER = 0x10001, /* Sent by kill, sigsend, raise. */ ++# define SI_USER SI_USER ++ SI_UNDEFINED = 0 ++# define SI_UNDEFINED SI_UNDEFINED ++}; ++ ++/* `si_code' values for SIGILL signal. */ ++enum ++{ ++ ILL_ILLOPC = 1, /* Illegal opcode. */ ++# define ILL_ILLOPC ILL_ILLOPC ++ ILL_ILLOPN, /* Illegal operand. */ ++# define ILL_ILLOPN ILL_ILLOPN ++ ILL_ILLADR, /* Illegal addressing mode. */ ++# define ILL_ILLADR ILL_ILLADR ++ ILL_ILLTRP, /* Illegal trap. */ ++# define ILL_ILLTRP ILL_ILLTRP ++ ILL_PRVOPC, /* Privileged opcode. */ ++# define ILL_PRVOPC ILL_PRVOPC ++ ILL_PRVREG, /* Privileged register. */ ++# define ILL_PRVREG ILL_PRVREG ++ ILL_COPROC, /* Coprocessor error. */ ++# define ILL_COPROC ILL_COPROC ++ ILL_BADSTK /* Internal stack error. */ ++# define ILL_BADSTK ILL_BADSTK ++}; ++ ++/* `si_code' values for SIGFPE signal. */ ++enum ++{ ++ FPE_INTOVF = 1, /* Integer overflow. */ ++# define FPE_INTOVF FPE_INTOVF ++ FPE_INTDIV, /* Integer divide by zero. */ ++# define FPE_INTDIV FPE_INTDIV ++ FPE_FLTDIV, /* Floating point divide by zero. */ ++# define FPE_FLTDIV FPE_FLTDIV ++ FPE_FLTOVF, /* Floating point overflow. */ ++# define FPE_FLTOVF FPE_FLTOVF ++ FPE_FLTUND, /* Floating point underflow. */ ++# define FPE_FLTUND FPE_FLTUND ++ FPE_FLTRES, /* Floating point inexact result. */ ++# define FPE_FLTRES FPE_FLTRES ++ FPE_FLTINV, /* Floating point invalid operation. */ ++# define FPE_FLTINV FPE_FLTINV ++ FPE_FLTSUB /* Subscript out of range. */ ++# define FPE_FLTSUB FPE_FLTSUB ++}; ++ ++/* `si_code' values for SIGSEGV signal. */ ++enum ++{ ++ SEGV_MAPERR = 1, /* Address not mapped to object. */ ++# define SEGV_MAPERR SEGV_MAPERR ++ SEGV_ACCERR /* Invalid permissions for mapped object. */ ++# define SEGV_ACCERR SEGV_ACCERR ++}; ++ ++/* `si_code' values for SIGBUS signal. */ ++enum ++{ ++ BUS_ADRALN = 1, /* Invalid address alignment. */ ++# define BUS_ADRALN BUS_ADRALN ++ BUS_ADRERR, /* Non-existant physical address. */ ++# define BUS_ADRERR BUS_ADRERR ++ BUS_OBJERR /* Object specific hardware error. */ ++# define BUS_OBJERR BUS_OBJERR ++}; ++ ++/* `si_code' values for SIGTRAP signal. */ ++enum ++{ ++ TRAP_BRKPT = 1, /* Process breakpoint. */ ++# define TRAP_BRKPT TRAP_BRKPT ++ TRAP_TRACE /* Process trace trap. */ ++# define TRAP_TRACE TRAP_TRACE ++}; ++ ++/* `si_code' values for SIGCHLD signal. */ ++/* XXX These are only used by the waitid() function, not by the kernel. */ ++enum ++{ ++ CLD_EXITED = 1, /* Child has exited. */ ++# define CLD_EXITED CLD_EXITED ++ CLD_KILLED, /* Child was killed. */ ++# define CLD_KILLED CLD_KILLED ++ CLD_DUMPED, /* Child terminated abnormally. */ ++# define CLD_DUMPED CLD_DUMPED ++ CLD_TRAPPED, /* Traced child has trapped. */ ++# define CLD_TRAPPED CLD_TRAPPED ++ CLD_STOPPED, /* Child has stopped. */ ++# define CLD_STOPPED CLD_STOPPED ++ CLD_CONTINUED /* Stopped child has continued. */ ++# define CLD_CONTINUED CLD_CONTINUED ++}; ++ ++/* `si_code' values for SIGPOLL signal. */ ++enum ++{ ++ POLL_IN = 1, /* Data input available. */ ++# define POLL_IN POLL_IN ++ POLL_OUT, /* Output buffers available. */ ++# define POLL_OUT POLL_OUT ++ POLL_MSG, /* Input message available. */ ++# define POLL_MSG POLL_MSG ++ POLL_ERR, /* I/O error. */ ++# define POLL_ERR POLL_ERR ++ POLL_PRI, /* High priority input available. */ ++# define POLL_PRI POLL_PRI ++ POLL_HUP /* Device disconnected. */ ++# define POLL_HUP POLL_HUP ++}; ++ ++# undef __need_siginfo_t ++#endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t). */ ++ ++ ++#if (defined _SIGNAL_H || defined __need_sigevent_t) \ ++ && !defined __have_sigevent_t ++# define __have_sigevent_t 1 ++ ++/* Structure to transport application-defined values with signals. */ ++ ++typedef struct sigevent ++ { ++ int sigev_notify; ++ int sigev_signo; ++ sigval_t sigev_value; ++ /* Not yet supported by the kernel. */ ++ void (*sigev_notify_function) (sigval_t); /* Function to start. */ ++ void *sigev_notify_attributes; /* Really pthread_attr_t. */ ++ } sigevent_t; ++ ++/* `sigev_notify' values. */ ++enum ++{ ++ SIGEV_SIGNAL = 1, /* Notify via signal. */ ++# define SIGEV_SIGNAL SIGEV_SIGNAL ++ SIGEV_NONE = 0, /* Other notification: meaningless. */ ++# define SIGEV_NONE SIGEV_NONE ++ /* Not yet supported by the kernel. */ ++ SIGEV_THREAD = 2 /* Deliver via thread creation. */ ++# define SIGEV_THREAD SIGEV_THREAD ++}; ++ ++#endif /* have _SIGNAL_H. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/signum.h +@@ -0,0 +1,80 @@ ++/* Signal number definitions. FreeBSD version. ++ Copyright (C) 1991-1993, 1996, 1998, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifdef _SIGNAL_H ++ ++/* This file defines the fake signal functions and signal ++ number constants for 4.2 or 4.3 BSD-derived Unix system. */ ++ ++/* Fake signal functions. */ ++#define SIG_ERR ((__sighandler_t) -1) /* Error return. */ ++#define SIG_DFL ((__sighandler_t) 0) /* Default action. */ ++#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */ ++ ++#define SIG_CATCH ((__sighandler_t) 2) /* FreeBSD specific ? */ ++#define SIG_HOLD ((__sighandler_t) 3) /* Add signal to hold mask. */ ++ ++/* Signals. */ ++#define SIGHUP 1 /* Hangup (POSIX). */ ++#define SIGINT 2 /* Interrupt (ANSI). */ ++#define SIGQUIT 3 /* Quit (POSIX). */ ++#define SIGILL 4 /* Illegal instruction (ANSI). */ ++#define SIGABRT SIGIOT /* Abort (ANSI). */ ++#define SIGTRAP 5 /* Trace trap (POSIX). */ ++#define SIGIOT 6 /* IOT trap (4.2 BSD). */ ++#define SIGEMT 7 /* EMT trap (4.2 BSD). */ ++#define SIGFPE 8 /* Floating-point exception (ANSI). */ ++#define SIGKILL 9 /* Kill, unblockable (POSIX). */ ++#define SIGBUS 10 /* Bus error (4.2 BSD). */ ++#define SIGSEGV 11 /* Segmentation violation (ANSI). */ ++#define SIGSYS 12 /* Bad argument to system call (4.2 BSD). */ ++#define SIGPIPE 13 /* Broken pipe (POSIX). */ ++#define SIGALRM 14 /* Alarm clock (POSIX). */ ++#define SIGTERM 15 /* Termination (ANSI). */ ++#define SIGURG 16 /* Urgent condition on socket (4.2 BSD). */ ++#define SIGSTOP 17 /* Stop, unblockable (POSIX). */ ++#define SIGTSTP 18 /* Keyboard stop (POSIX). */ ++#define SIGCONT 19 /* Continue (POSIX). */ ++#define SIGCHLD 20 /* Child status has changed (POSIX). */ ++#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */ ++#define SIGTTIN 21 /* Background read from tty (POSIX). */ ++#define SIGTTOU 22 /* Background write to tty (POSIX). */ ++#define SIGIO 23 /* I/O now possible (4.2 BSD). */ ++#define SIGPOLL SIGIO /* Pollable event occurred (System V). */ ++#define SIGXCPU 24 /* CPU limit exceeded (4.2 BSD). */ ++#define SIGXFSZ 25 /* File size limit exceeded (4.2 BSD). */ ++#define SIGVTALRM 26 /* Virtual alarm clock (4.2 BSD). */ ++#define SIGPROF 27 /* Profiling alarm clock (4.2 BSD). */ ++#define SIGWINCH 28 /* Window size change (4.3 BSD, Sun). */ ++#define SIGINFO 29 /* Information request (4.4 BSD). */ ++#define SIGUSR1 30 /* User-defined signal 1 (POSIX). */ ++#define SIGUSR2 31 /* User-defined signal 2 (POSIX). */ ++ ++#define _NSIG 129 /* Biggest signal number + 1 ++ (including real-time signals). */ ++ ++#define SIGRTMIN (__libc_current_sigrtmin ()) ++#define SIGRTMAX (__libc_current_sigrtmax ()) ++ ++/* These are the hard limits of the kernel. These values should not be ++ used directly at user level. */ ++#define __SIGRTMIN 65 /* be in sync with FreeBSD kernel */ ++#define __SIGRTMAX 126 /* be in sync with FreeBSD kernel */ ++ ++#endif /* included. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sigset.h +@@ -0,0 +1,140 @@ ++/* __sig_atomic_t, __sigset_t, and related definitions. FreeBSD version. ++ Copyright (C) 1994-1996, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SIGSET_H_types ++# define _SIGSET_H_types 1 ++ ++typedef int __sig_atomic_t; ++ ++/* A `sigset_t' has a bit for each signal. */ ++__extension__ typedef struct ++ { ++ __extension__ union ++ { ++ unsigned int __sigbits[4]; ++ unsigned int __bits[4]; ++ }; ++ } __sigset_t; ++ ++#endif ++ ++ ++/* We only want to define these functions if was actually ++ included; otherwise we were included just to define the types. Since we ++ are namespace-clean, it wouldn't hurt to define extra macros. But ++ trouble can be caused by functions being defined (e.g., any global ++ register vars declared later will cause compilation errors). */ ++ ++#if !defined _SIGSET_H_fns && defined _SIGNAL_H ++# define _SIGSET_H_fns 1 ++ ++# ifndef _EXTERN_INLINE ++# define _EXTERN_INLINE __extern_inline ++# endif ++ ++/* Return a mask that includes the bit for SIG only. */ ++# define __sigmask(sig) ((unsigned int) 1 << ((sig) - 1) % 32) ++ ++/* Return the word index for SIG. */ ++# define __sigword(sig) (((sig) - 1) >> 5) ++ ++# if defined __GNUC__ && __GNUC__ >= 2 ++# define __sigemptyset(set) \ ++ (__extension__ ({ sigset_t *__set = (set); \ ++ __set->__sigbits[0] = 0; __set->__sigbits[1] = 0; \ ++ __set->__sigbits[2] = 0; __set->__sigbits[3] = 0; \ ++ 0; })) ++# define __sigfillset(set) \ ++ (__extension__ ({ sigset_t *__set = (set); \ ++ __set->__sigbits[0] = ~0; __set->__sigbits[1] = ~0; \ ++ __set->__sigbits[2] = ~0; __set->__sigbits[3] = ~0; \ ++ 0; })) ++ ++# ifdef __USE_GNU ++/* The POSIX does not specify for handling the whole signal set in one ++ command. This is often wanted and so we define three more functions ++ here. */ ++# define __sigisemptyset(set) \ ++ (__extension__ ({ const sigset_t *__set = (set); \ ++ __set->__sigbits[0] == 0 \ ++ && __set->__sigbits[1] == 0 \ ++ && __set->__sigbits[2] == 0 \ ++ && __set->__sigbits[3] == 0; })) ++# define __sigandset(dest, left, right) \ ++ (__extension__ ({ sigset_t *__dest = (dest); \ ++ const sigset_t *__left = (left); \ ++ const sigset_t *__right = (right); \ ++ __dest->__sigbits[0] = \ ++ __left->__sigbits[0] & __right->__sigbits[0]; \ ++ __dest->__sigbits[1] = \ ++ __left->__sigbits[1] & __right->__sigbits[1]; \ ++ __dest->__sigbits[2] = \ ++ __left->__sigbits[2] & __right->__sigbits[2]; \ ++ __dest->__sigbits[3] = \ ++ __left->__sigbits[3] & __right->__sigbits[3]; \ ++ 0; })) ++# define __sigorset(dest, left, right) \ ++ (__extension__ ({ sigset_t *__dest = (dest); \ ++ const sigset_t *__left = (left); \ ++ const sigset_t *__right = (right); \ ++ __dest->__sigbits[0] = \ ++ __left->__sigbits[0] | __right->__sigbits[0]; \ ++ __dest->__sigbits[1] = \ ++ __left->__sigbits[1] | __right->__sigbits[1]; \ ++ __dest->__sigbits[2] = \ ++ __left->__sigbits[2] | __right->__sigbits[2]; \ ++ __dest->__sigbits[3] = \ ++ __left->__sigbits[3] | __right->__sigbits[3]; \ ++ 0; })) ++# endif ++# endif ++ ++/* These functions needn't check for a bogus signal number -- error ++ checking is done in the non __ versions. */ ++ ++extern int __sigismember (__const __sigset_t *, int); ++extern int __sigaddset (__sigset_t *, int); ++extern int __sigdelset (__sigset_t *, int); ++ ++# ifdef __USE_EXTERN_INLINES ++ ++_EXTERN_INLINE int ++__sigismember (__const __sigset_t *__set, int __sig) ++{ ++ return (__set->__sigbits[__sigword (__sig)] & __sigmask (__sig) ? 1 : 0); ++} ++ ++_EXTERN_INLINE int ++__sigaddset (__sigset_t *__set, int __sig) ++{ ++ __set->__sigbits[__sigword (__sig)] |= __sigmask (__sig); ++ return 0; ++} ++ ++_EXTERN_INLINE int ++__sigdelset (__sigset_t *__set, int __sig) ++{ ++ __set->__sigbits[__sigword (__sig)] &= ~__sigmask (__sig); ++ return 0; ++} ++ ++# endif ++ ++ ++#endif /* ! _SIGSET_H_fns. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/socket.h +@@ -0,0 +1,388 @@ ++/* System-specific socket constants and types. FreeBSD version. ++ Copyright (C) 1991-1992,1994-1999,2000-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef __BITS_SOCKET_H ++#define __BITS_SOCKET_H 1 ++ ++#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H ++# error "Never include directly; use instead." ++#endif ++ ++#define __need_size_t ++#define __need_NULL ++#include ++ ++#include /* XXX Is this allowed? */ ++#include ++ ++/* Type for length arguments in socket calls. */ ++#ifndef __socklen_t_defined ++typedef __socklen_t socklen_t; ++# define __socklen_t_defined ++#endif ++ ++ ++/* Types of sockets. */ ++enum __socket_type ++{ ++ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based ++ byte streams. */ ++#define SOCK_STREAM SOCK_STREAM ++ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams ++ of fixed maximum length. */ ++#define SOCK_DGRAM SOCK_DGRAM ++ SOCK_RAW = 3, /* Raw protocol interface. */ ++#define SOCK_RAW SOCK_RAW ++ SOCK_RDM = 4, /* Reliably-delivered messages. */ ++#define SOCK_RDM SOCK_RDM ++ SOCK_SEQPACKET = 5 /* Sequenced, reliable, connection-based, ++ datagrams of fixed maximum length. */ ++#define SOCK_SEQPACKET SOCK_SEQPACKET ++}; ++ ++/* Protocol families. */ ++#define PF_UNSPEC 0 /* Unspecified. */ ++#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */ ++#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */ ++#define PF_FILE PF_LOCAL /* POSIX name for PF_LOCAL. */ ++#define PF_INET 2 /* IP protocol family. */ ++#define PF_IMPLINK 3 /* ARPAnet IMP protocol. */ ++#define PF_PUP 4 /* PUP protocols. */ ++#define PF_CHAOS 5 /* MIT Chaos protocols. */ ++#define PF_NS 6 /* Xerox NS protocols. */ ++#define PF_ISO 7 /* ISO protocols. */ ++#define PF_OSI PF_ISO ++#define PF_ECMA 8 /* ECMA protocols. */ ++#define PF_DATAKIT 9 /* AT&T Datakit protocols. */ ++#define PF_CCITT 10 /* CCITT protocols (X.25 et al). */ ++#define PF_SNA 11 /* IBM SNA protocol. */ ++#define PF_DECnet 12 /* DECnet protocols. */ ++#define PF_DLI 13 /* Direct data link interface. */ ++#define PF_LAT 14 /* DEC Local Area Transport protocol. */ ++#define PF_HYLINK 15 /* NSC Hyperchannel protocol. */ ++#define PF_APPLETALK 16 /* Don't use this. */ ++#define PF_ROUTE 17 /* Internal Routing Protocol. */ ++#define PF_LINK 18 /* Link layer interface. */ ++#define PF_XTP 19 /* eXpress Transfer Protocol (no AF). */ ++#define PF_COIP 20 /* Connection-oriented IP, aka ST II. */ ++#define PF_CNT 21 /* Computer Network Technology. */ ++#define PF_RTIP 22 /* Help Identify RTIP packets. **/ ++#define PF_IPX 23 /* Novell Internet Protocol. */ ++#define PF_SIP 24 /* Simple Internet Protocol. */ ++#define PF_PIP 25 /* Help Identify PIP packets. */ ++#define PF_ISDN 26 /* Integrated Services Digital Network. */ ++#define PF_KEY 27 /* Internal key-management function. */ ++#define PF_INET6 28 /* IP version 6. */ ++#define PF_NATM 29 /* Native ATM access. */ ++#define PF_ATM 30 /* ATM. */ ++#define PF_HDRCMPLT 31 /* Used by BPF to not rewrite headers in ++ interface output routine. */ ++#define PF_NETGRAPH 32 /* Netgraph sockets. */ ++#define PF_MAX 33 ++ ++/* Address families. */ ++#define AF_UNSPEC PF_UNSPEC ++#define AF_LOCAL PF_LOCAL ++#define AF_UNIX PF_UNIX ++#define AF_FILE PF_FILE ++#define AF_INET PF_INET ++#define AF_IMPLINK PF_IMPLINK ++#define AF_PUP PF_PUP ++#define AF_CHAOS PF_CHAOS ++#define AF_NS PF_NS ++#define AF_ISO PF_ISO ++#define AF_OSI PF_OSI ++#define AF_ECMA PF_ECMA ++#define AF_DATAKIT PF_DATAKIT ++#define AF_CCITT PF_CCITT ++#define AF_SNA PF_SNA ++#define AF_DECnet PF_DECnet ++#define AF_DLI PF_DLI ++#define AF_LAT PF_LAT ++#define AF_HYLINK PF_HYLINK ++#define AF_APPLETALK PF_APPLETALK ++#define AF_ROUTE PF_ROUTE ++#define AF_LINK PF_LINK ++#define pseudo_AF_XTP PF_XTP ++#define AF_COIP PF_COIP ++#define AF_CNT PF_CNT ++#define pseudo_AF_RTIP PF_RTIP ++#define AF_IPX PF_IPX ++#define AF_SIP PF_SIP ++#define pseudo_AF_PIP PF_PIP ++#define AF_ISDN PF_ISDN ++#define AF_E164 AF_ISDN /* CCITT E.164 recommendation. */ ++#define pseudo_AF_KEY PF_KEY ++#define AF_INET6 PF_INET6 ++#define AF_NATM PF_NATM ++#define AF_ATM PF_ATM ++#define pseudo_AF_HDRCMPLT PF_HDRCMPLT ++#define AF_NETGRAPH PF_NETGRAPH ++#define AF_MAX PF_MAX ++ ++/* Maximum queue length specifiable by listen. */ ++#define SOMAXCONN 128 /* 5 on the original 4.4 BSD. */ ++ ++/* Get the definition of the macro to define the common sockaddr members. */ ++#include ++ ++/* Structure describing a generic socket address. */ ++struct sockaddr ++ { ++ __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */ ++ char sa_data[14]; /* Address data. */ ++ }; ++ ++ ++/* Structure large enough to hold any socket address (with the historical ++ exception of AF_UNIX). We reserve 128 bytes. */ ++#if ULONG_MAX > 0xffffffff ++# define __ss_aligntype __uint64_t ++#else ++# define __ss_aligntype __uint32_t ++#endif ++#define _SS_SIZE 128 ++#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype))) ++ ++struct sockaddr_storage ++ { ++ __SOCKADDR_COMMON (ss_); /* Address family, etc. */ ++ __ss_aligntype __ss_align; /* Force desired alignment. */ ++ char __ss_padding[_SS_PADSIZE]; ++ }; ++ ++ ++/* Bits in the FLAGS argument to `send', `recv', et al. */ ++enum ++ { ++ MSG_OOB = 0x01, /* Process out-of-band data. */ ++#define MSG_OOB MSG_OOB ++ MSG_PEEK = 0x02, /* Peek at incoming messages. */ ++#define MSG_PEEK MSG_PEEK ++ MSG_DONTROUTE = 0x04, /* Don't use local routing. */ ++#define MSG_DONTROUTE MSG_DONTROUTE ++ MSG_EOR = 0x08, /* Data completes record. */ ++#define MSG_EOR MSG_EOR ++ MSG_TRUNC = 0x10, /* Data discarded before delivery. */ ++#define MSG_TRUNC MSG_TRUNC ++ MSG_CTRUNC = 0x20, /* Control data lost before delivery. */ ++#define MSG_CTRUNC MSG_CTRUNC ++ MSG_WAITALL = 0x40, /* Wait for full request or error. */ ++#define MSG_WAITALL MSG_WAITALL ++ MSG_DONTWAIT = 0x80, /* This message should be nonblocking. */ ++#define MSG_DONTWAIT MSG_DONTWAIT ++ MSG_EOF = 0x100, /* Data completes connection. */ ++#define MSG_EOF MSG_EOF ++ MSG_NOTIFICATION = 0x2000,/* SCTP notification */ ++#define MSG_NOTIFICATION MSG_NOTIFICATION ++ MSG_NBIO = 0x4000,/*FIONBIO mode, used by fifofs */ ++#define MSG_NBIO MSG_NBIO ++ MSG_COMPAT = 0x8000,/* Used in sendit(). */ ++#define MSG_COMPAT MSG_COMPAT ++ MSG_NOSIGNAL = 0x20000 /* do not generate SIGPIPE on EOF */ ++#define MSG_NOSIGNAL MSG_NOSIGNAL ++ }; ++ ++ ++/* Structure describing messages sent by ++ `sendmsg' and received by `recvmsg'. */ ++struct msghdr ++ { ++ void *msg_name; /* Address to send to/receive from. */ ++ socklen_t msg_namelen; /* Length of address data. */ ++ ++ struct iovec *msg_iov; /* Vector of data to send/receive into. */ ++ int msg_iovlen; /* Number of elements in the vector. */ ++ ++ void *msg_control; /* Ancillary data (eg BSD filedesc passing). */ ++ socklen_t msg_controllen; /* Ancillary data buffer length. */ ++ ++ int msg_flags; /* Flags in received message. */ ++ }; ++ ++/* Structure used for storage of ancillary data object information. */ ++struct cmsghdr ++ { ++ socklen_t cmsg_len; /* Length of data in cmsg_data plus length ++ of cmsghdr structure. */ ++ int cmsg_level; /* Originating protocol. */ ++ int cmsg_type; /* Protocol specific type. */ ++#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L ++ __extension__ unsigned char __cmsg_data __flexarr __attribute__ ((aligned (__alignof__(size_t)))); /* Ancillary data. */ ++#endif ++ }; ++ ++#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg) ++ ++#define CMSG_FIRSTHDR(mhdr) \ ++ ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ ++ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL) ++ ++#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \ ++ & (size_t) ~(sizeof (size_t) - 1)) ++#define CMSG_SPACE(len) (CMSG_ALIGN (len) \ ++ + CMSG_ALIGN (sizeof (struct cmsghdr))) ++#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len)) ++ ++/* Ancillary data object manipulation macros. */ ++#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L ++# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data) ++#else ++# define CMSG_DATA(cmsg) ((unsigned char *) (cmsg) + CMSG_ALIGN(sizeof (struct cmsghdr))) ++#endif ++ ++extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, ++ struct cmsghdr *__cmsg) __THROW; ++#ifdef __USE_EXTERN_INLINES ++# ifndef _EXTERN_INLINE ++# define _EXTERN_INLINE __extern_inline ++# endif ++_EXTERN_INLINE struct cmsghdr * ++__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) ++{ ++ if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) ++ /* The kernel header does this so there may be a reason. */ ++ return 0; ++ ++ __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg ++ + CMSG_ALIGN (__cmsg->cmsg_len)); ++ if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control ++ + __mhdr->msg_controllen) ++ || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len) ++ > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) ++ /* No more entries. */ ++ return 0; ++ return __cmsg; ++} ++#endif /* Use `extern inline'. */ ++ ++/* Socket level message types. */ ++enum ++ { ++ SCM_RIGHTS = 0x01, /* Access rights (array of int). */ ++#define SCM_RIGHTS SCM_RIGHTS ++ SCM_TIMESTAMP = 0x02, /* Timestamp (struct timeval). */ ++#define SCM_TIMESTAMP SCM_TIMESTAMP ++ SCM_CREDS = 0x03 /* Process creds (struct cmsgcred). */ ++#define SCM_CREDS SCM_CREDS ++ }; ++ ++/* Unfortunately, BSD practice dictates this structure be of fixed size. ++ If there are more than CMGROUP_MAX groups, the list is truncated. ++ (On GNU systems, the `cmcred_euid' field is just the first in the ++ list of effective UIDs.) */ ++#define CMGROUP_MAX 16 ++ ++/* Structure delivered by SCM_CREDS. This describes the identity of the ++ sender of the data simultaneously received on the socket. By BSD ++ convention, this is included only when a sender on a AF_LOCAL socket ++ sends cmsg data of this type and size; the sender's structure is ++ ignored, and the system fills in the various IDs of the sender process. */ ++struct cmsgcred ++ { ++ __pid_t cmcred_pid; ++ __uid_t cmcred_uid; ++ __uid_t cmcred_euid; ++ __gid_t cmcred_gid; ++ short cmcred_ngroups; ++ __gid_t cmcred_groups[CMGROUP_MAX]; ++ }; ++ ++/* Protocol number used to manipulate socket-level options ++ with `getsockopt' and `setsockopt'. */ ++#define SOL_SOCKET 0xffff ++ ++/* Socket-level options for `getsockopt' and `setsockopt'. */ ++enum ++ { ++ SO_DEBUG = 0x0001, /* Record debugging information. */ ++#define SO_DEBUG SO_DEBUG ++ SO_ACCEPTCONN = 0x0002, /* Accept connections on socket. */ ++#define SO_ACCEPTCONN SO_ACCEPTCONN ++ SO_REUSEADDR = 0x0004, /* Allow reuse of local addresses. */ ++#define SO_REUSEADDR SO_REUSEADDR ++ SO_KEEPALIVE = 0x0008, /* Keep connections alive and send ++ SIGPIPE when they die. */ ++#define SO_KEEPALIVE SO_KEEPALIVE ++ SO_DONTROUTE = 0x0010, /* Don't do local routing. */ ++#define SO_DONTROUTE SO_DONTROUTE ++ SO_BROADCAST = 0x0020, /* Allow transmission of ++ broadcast messages. */ ++#define SO_BROADCAST SO_BROADCAST ++ SO_USELOOPBACK = 0x0040, /* Use the software loopback to avoid ++ hardware use when possible. */ ++#define SO_USELOOPBACK SO_USELOOPBACK ++ SO_LINGER = 0x0080, /* Block on close of a reliable ++ socket to transmit pending data. */ ++#define SO_LINGER SO_LINGER ++ SO_OOBINLINE = 0x0100, /* Receive out-of-band data in-band. */ ++#define SO_OOBINLINE SO_OOBINLINE ++ SO_REUSEPORT = 0x0200, /* Allow local address and port reuse. */ ++#define SO_REUSEPORT SO_REUSEPORT ++ SO_TIMESTAMP = 0x0400, /* Timestamp received dgram traffic. */ ++#define SO_TIMESTAMP SO_TIMESTAMP ++ SO_SNDBUF = 0x1001, /* Send buffer size. */ ++#define SO_SNDBUF SO_SNDBUF ++ SO_RCVBUF = 0x1002, /* Receive buffer. */ ++#define SO_RCVBUF SO_RCVBUF ++ SO_SNDLOWAT = 0x1003, /* Send low-water mark. */ ++#define SO_SNDLOWAT SO_SNDLOWAT ++ SO_RCVLOWAT = 0x1004, /* Receive low-water mark. */ ++#define SO_RCVLOWAT SO_RCVLOWAT ++ SO_SNDTIMEO = 0x1005, /* Send timeout. */ ++#define SO_SNDTIMEO SO_SNDTIMEO ++ SO_RCVTIMEO = 0x1006, /* Receive timeout. */ ++#define SO_RCVTIMEO SO_RCVTIMEO ++ SO_ERROR = 0x1007, /* Get and clear error status. */ ++#define SO_ERROR SO_ERROR ++ SO_STYLE = 0x1008, /* Get socket connection style. */ ++#define SO_STYLE SO_STYLE ++ SO_TYPE = SO_STYLE /* Compatible name for SO_STYLE. */ ++#define SO_TYPE SO_TYPE ++ }; ++ ++/* Socket options. */ ++#define LOCAL_PEERCRED 0x001 /* retrieve peer credentials */ ++#define LOCAL_CREDS 0x002 /* pass credentials to receiver */ ++#define LOCAL_CONNWAIT 0x004 /* connects block until accepted */ ++ ++/* Structure used to manipulate the SO_LINGER option. */ ++struct linger ++ { ++ int l_onoff; /* Nonzero to linger on close. */ ++ int l_linger; /* Time to linger. */ ++ }; ++ ++ ++#ifdef __USE_BSD ++ ++struct sf_hdtr; ++ ++__BEGIN_DECLS ++ ++extern int bsd_sendfile (int __in_fd, int __out_sock, ++ __off_t __in_offset, size_t __nbytes, ++ struct sf_hdtr *__hdtr, __off_t *__sockbytes, ++ int __flags) __THROW; ++ ++__END_DECLS ++ ++#endif /* Use BSD */ ++ ++#endif /* bits/socket.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/stat.h +@@ -0,0 +1,214 @@ ++/* Copyright (C) 1992, 1996-1997, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_STAT_H ++# error "Never include directly; use instead." ++#endif ++ ++/* This structure needs to be defined in accordance with the ++ implementation of __stat, __fstat, and __lstat. */ ++ ++#include ++ ++/* Versions of the 'struct stat' data structure. */ ++#define _STAT_VER_ostat 0 /* 'struct ostat' in /usr/src/sys/sys/stat.h */ ++#define _STAT_VER_stat 1 /* 'struct stat' in /usr/src/sys/sys/stat.h */ ++#define _STAT_VER_nstat 2 /* 'struct nstat' in /usr/src/sys/sys/stat.h */ ++#define _STAT_VER_gstat 3 /* glibc's 'struct stat' without LFS */ ++/* By default we use _STAT_VER_gstat, but we support also _STAT_VER_stat */ ++#define _STAT_VER _STAT_VER_gstat ++ ++/* Structure describing file characteristics. */ ++struct stat ++ { ++ __dev_t st_dev; /* Device containing the file. */ ++#ifndef __USE_FILE_OFFSET64 ++ __ino_t st_ino; /* File serial number. */ ++#else ++ __ino64_t st_ino; /* File serial number. */ ++#endif ++ ++ __mode_t st_mode; /* File mode. */ ++ __mode_t __pad_mode; /* __mode_t is 16 bit, fill to 32 bit to retain previous ABI */ ++ __nlink_t st_nlink; /* Link count. */ ++ __nlink_t __pad_nlink; /* __nlink_t is 16 bit, fill to 32 bit to retain previous ABI */ ++ ++ __uid_t st_uid; /* User ID of the file's owner. */ ++ __gid_t st_gid; /* Group ID of the file's group. */ ++ ++ __dev_t st_rdev; /* Device number, if device. */ ++ ++#if defined __USE_MISC || defined __USE_XOPEN2K8 ++ /* Nanosecond resolution timestamps are stored in a format ++ equivalent to 'struct timespec'. This is the type used ++ whenever possible but the Unix namespace rules do not allow the ++ identifier 'timespec' to appear in the header. ++ Therefore we have to handle the use of this header in strictly ++ standard-compliant sources special. */ ++ struct timespec st_atim; /* Time of last access. */ ++ struct timespec st_mtim; /* Time of last modification. */ ++ struct timespec st_ctim; /* Time of last status change. */ ++# define st_atime st_atim.tv_sec /* Backward compatibility. */ ++# define st_mtime st_mtim.tv_sec ++# define st_ctime st_ctim.tv_sec ++#else ++ __time_t st_atime; /* Time of last access. */ ++ long int st_atimensec; /* Nanoseconds of last access. */ ++ __time_t st_mtime; /* Time of last modification. */ ++ long int st_mtimensec; /* Nanoseconds of last modification. */ ++ __time_t st_ctime; /* Time of last status change. */ ++ long int st_ctimensec; /* Nanoseconds of last status change. */ ++#endif ++ ++ __off_t st_size; /* Size of file, in bytes. */ ++ ++ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ ++ ++ __blksize_t st_blksize; /* Optimal block size for I/O. */ ++#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */ ++ ++ __uint32_t st_flags; /* User defined flags. */ ++ ++ __uint32_t st_gen; /* Generation number. */ ++ ++ __quad_t __unused1[2]; ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct stat64 ++ { ++ __dev_t st_dev; /* Device containing the file. */ ++ __ino64_t st_ino; /* File serial number. */ ++ ++ __mode_t st_mode; /* File mode. */ ++ __mode_t __pad_mode; /* __mode_t is 16 bit, fill to 32 bit to retain previous ABI */ ++ __nlink_t st_nlink; /* Link count. */ ++ __nlink_t __pad_nlink; /* __nlink_t is 16 bit, fill to 32 bit to retain previous ABI */ ++ ++ __uid_t st_uid; /* User ID of the file's owner. */ ++ __gid_t st_gid; /* Group ID of the file's group. */ ++ ++ __dev_t st_rdev; /* Device number, if device. */ ++ ++#if defined __USE_MISC || defined __USE_XOPEN2K8 ++ /* Nanosecond resolution timestamps are stored in a format ++ equivalent to 'struct timespec'. This is the type used ++ whenever possible but the Unix namespace rules do not allow the ++ identifier 'timespec' to appear in the header. ++ Therefore we have to handle the use of this header in strictly ++ standard-compliant sources special. */ ++ struct timespec st_atim; /* Time of last access. */ ++ struct timespec st_mtim; /* Time of last modification. */ ++ struct timespec st_ctim; /* Time of last status change. */ ++# define st_atime st_atim.tv_sec /* Backward compatibility. */ ++# define st_mtime st_mtim.tv_sec ++# define st_ctime st_ctim.tv_sec ++#else ++ __time_t st_atime; /* Time of last access. */ ++ long int st_atimensec; /* Nanoseconds of last access. */ ++ __time_t st_mtime; /* Time of last modification. */ ++ long int st_mtimensec; /* Nanoseconds of last modification. */ ++ __time_t st_ctime; /* Time of last status change. */ ++ long int st_ctimensec; /* Nanoseconds of last status change. */ ++#endif ++ ++ __off_t st_size; /* Size of file, in bytes. */ ++ ++ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ ++ ++ __blksize_t st_blksize; /* Optimal block size for I/O. */ ++ ++ __uint32_t st_flags; /* User defined flags. */ ++ ++ __uint32_t st_gen; /* Generation number. */ ++ ++ __quad_t __unused1[2]; ++ }; ++#endif ++ ++/* Encoding of the file mode. These are the standard Unix values, ++ but POSIX.1 does not specify what values should be used. */ ++ ++#define __S_IFMT 0170000 /* These bits determine file type. */ ++ ++/* File types. */ ++#define __S_IFDIR 0040000 /* Directory. */ ++#define __S_IFCHR 0020000 /* Character device. */ ++#define __S_IFBLK 0060000 /* Block device. */ ++#define __S_IFREG 0100000 /* Regular file. */ ++#define __S_IFLNK 0120000 /* Symbolic link. */ ++#define __S_IFSOCK 0140000 /* Socket. */ ++#define __S_IFWHT 0160000 /* Whiteout. */ ++#define __S_IFIFO 0010000 /* FIFO. */ ++ ++/* POSIX.1b objects. */ ++#define __S_TYPEISMQ(buf) 0 ++#define __S_TYPEISSEM(buf) 0 ++#define __S_TYPEISSHM(buf) 0 ++ ++/* Protection bits. */ ++ ++#define __S_ISUID 04000 /* Set user ID on execution. */ ++#define __S_ISGID 02000 /* Set group ID on execution. */ ++#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */ ++#define __S_IREAD 0400 /* Read by owner. */ ++#define __S_IWRITE 0200 /* Write by owner. */ ++#define __S_IEXEC 0100 /* Execute by owner. */ ++ ++#ifdef __USE_BSD ++ ++/* Definitions of flags stored in file flags word. */ ++ ++/* Super-user and owner changeable flags. */ ++# define UF_SETTABLE 0x0000ffff /* mask of owner changeable flags */ ++# define UF_NODUMP 0x00000001 /* do not dump file */ ++# define UF_IMMUTABLE 0x00000002 /* file may not be changed */ ++# define UF_APPEND 0x00000004 /* writes to file may only append */ ++# define UF_OPAQUE 0x00000008 /* directory is opaque wrt. union */ ++# define UF_NOUNLINK 0x00000010 /* file may not be removed or renamed */ ++ ++/* Super-user changeable flags. */ ++# define SF_SETTABLE 0xffff0000 /* mask of superuser changeable flags */ ++# define SF_ARCHIVED 0x00010000 /* file is archived */ ++# define SF_IMMUTABLE 0x00020000 /* file may not be changed */ ++# define SF_APPEND 0x00040000 /* writes to file may only append */ ++# define SF_NOUNLINK 0x00100000 /* file may not be removed or renamed */ ++# define SF_SNAPSHOT 0x00200000 /* snapshot inode */ ++ ++__BEGIN_DECLS ++ ++/* Set file flags for FILE to FLAGS. */ ++extern int chflags (__const char *__file, unsigned long int __flags) __THROW; ++ ++/* Set file flags of the file referred to by FD to FLAGS. */ ++extern int fchflags (int __fd, unsigned long int __flags) __THROW; ++ ++/* Set file flags for FILE to FLAGS without following symlinks. */ ++extern int lchflags(__const char *__file, int __flags); ++ ++/* Get device name in /dev with a device number of dev and a file type ++ matching the one encoded in type. */ ++extern char *devname(__dev_t dev, __mode_t type) __THROW; ++ ++/* Store at most BUFLEN characters of the device name in /dev with a ++ device number of dev and a file type matching the one encoded in type. */ ++extern char *devname_r(__dev_t dev, __mode_t type, char *buf, int buflen) __THROW; ++ ++__END_DECLS ++ ++#endif /* __USE_BSD */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/stat16.h +@@ -0,0 +1,56 @@ ++/* Copyright (C) 2002, 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* This structure corresponds to the standard FreeBSD 'struct stat' ++ (i.e. _STAT_VER_stat), and is used by the stat() system call family. */ ++ ++struct stat16 ++ { ++ __dev_t st_dev; /* Device containing the file. */ ++ __ino_t st_ino; /* File serial number. */ ++ ++ __uint16_t st_mode; /* File mode. */ ++ __uint16_t st_nlink; /* Link count. */ ++ ++ __uid_t st_uid; /* User ID of the file's owner. */ ++ __gid_t st_gid; /* Group ID of the file's group. */ ++ ++ __dev_t st_rdev; /* Device number, if device. */ ++ ++ struct timespec st_atimespec; /* time of last access */ ++ struct timespec st_mtimespec; /* time of last data modification */ ++ struct timespec st_ctimespec; /* time of last file status change */ ++ ++ __off_t st_size; /* Size of file, in bytes. */ ++ ++ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ ++ ++ __blksize_t st_blksize; /* Optimal block size for I/O. */ ++ ++ __uint32_t st_flags; /* User defined flags. */ ++ ++ __uint32_t st_gen; /* Generation number. */ ++ ++ __uint32_t __unused1; ++ ++ long int st_birthtime; /* Time of file creation. */ ++ long int st_birthtimensec; /* Nanoseconds of file creation. */ ++ ++#define _BIRTH_PADSIZE (2*(8 - sizeof (long))) ++ char __birth_padding[_BIRTH_PADSIZE]; ++ }; +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/statfs.h +@@ -0,0 +1,91 @@ ++/* Definition of `struct statfs', information about a filesystem. ++ Copyright (C) 1996-1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _BITS_STATFS_H ++#define _BITS_STATFS_H 1 ++ ++#if !defined _SYS_STATFS_H && !defined _SYS_MOUNT_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++struct statfs ++ { ++ unsigned long f_version; ++ unsigned long f_bsize; ++ unsigned long f_iosize; ++#ifndef __USE_FILE_OFFSET64 ++ __fsblkcnt_t f_blocks; ++ __fsblkcnt_t f_bfree; ++ __fsblkcnt_t f_bavail; ++ __fsfilcnt_t f_files; ++ __fsfilcnt_t f_ffree; ++#else ++ __fsblkcnt64_t f_blocks; ++ __fsblkcnt64_t f_bfree; ++ __fsblkcnt64_t f_bavail; ++ __fsfilcnt64_t f_files; ++ __fsfilcnt64_t f_ffree; ++#endif ++ __fsid_t f_fsid; ++ __uid_t f_owner; ++ int f_type; ++ int f_flags; ++ unsigned long int f_syncwrites; ++ unsigned long int f_asyncwrites; ++ char f_fstypename[16]; ++ char f_mntonname[80]; ++ unsigned long int f_syncreads; ++ unsigned long int f_asyncreads; ++ unsigned short f_namemax; ++ char f_mntfromname[80]; ++ short __unused3; ++ long __unused4[2]; ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct statfs64 ++ { ++ unsigned long f_version; ++ unsigned long f_bsize; ++ unsigned long f_iosize; ++ __fsblkcnt64_t f_blocks; ++ __fsblkcnt64_t f_bfree; ++ __fsblkcnt64_t f_bavail; ++ __fsfilcnt64_t f_files; ++ __fsfilcnt64_t f_ffree; ++ __fsid_t f_fsid; ++ __uid_t f_owner; ++ int f_type; ++ int f_flags; ++ unsigned long int f_syncwrites; ++ unsigned long int f_asyncwrites; ++ char f_fstypename[16]; ++ char f_mntonname[80]; ++ unsigned long int f_syncreads; ++ unsigned long int f_asyncreads; ++ unsigned short f_namemax; ++ char f_mntfromname[80]; ++ short __unused3; ++ long __unused4[2]; ++ }; ++#endif ++ ++#endif /* _BITS_STATFS_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/statvfs.h +@@ -0,0 +1,95 @@ ++/* Definition of `struct statvfs', information about a filesystem. ++ Copyright (C) 1998, 2000-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_STATVFS_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++#if __WORDSIZE == 32 ++#define _STATVFSBUF_F_UNUSED ++#endif ++ ++struct statvfs ++ { ++ unsigned long int f_bsize; ++ unsigned long int f_frsize; ++#ifndef __USE_FILE_OFFSET64 ++ __fsblkcnt_t f_blocks; ++ __fsblkcnt_t f_bfree; ++ __fsblkcnt_t f_bavail; ++ __fsfilcnt_t f_files; ++ __fsfilcnt_t f_ffree; ++ __fsfilcnt_t f_favail; ++#else ++ __fsblkcnt64_t f_blocks; ++ __fsblkcnt64_t f_bfree; ++ __fsblkcnt64_t f_bavail; ++ __fsfilcnt64_t f_files; ++ __fsfilcnt64_t f_ffree; ++ __fsfilcnt64_t f_favail; ++#endif ++ unsigned long int f_fsid; ++#ifdef _STATVFSBUF_F_UNUSED ++ int __f_unused; ++#endif ++ unsigned long int f_flag; ++ unsigned long int f_namemax; ++ unsigned int f_spare[6]; ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct statvfs64 ++ { ++ unsigned long int f_bsize; ++ unsigned long int f_frsize; ++ __fsblkcnt64_t f_blocks; ++ __fsblkcnt64_t f_bfree; ++ __fsblkcnt64_t f_bavail; ++ __fsfilcnt64_t f_files; ++ __fsfilcnt64_t f_ffree; ++ __fsfilcnt64_t f_favail; ++ unsigned long int f_fsid; ++#ifdef _STATVFSBUF_F_UNUSED ++ int __f_unused; ++#endif ++ unsigned long int f_flag; ++ unsigned long int f_namemax; ++ unsigned int f_spare[6]; ++ }; ++#endif ++ ++/* Definitions for the flag in `f_flag'. */ ++enum ++{ ++ ST_RDONLY = 1, /* Mount read-only. */ ++#define ST_RDONLY ST_RDONLY ++ ST_NOSUID = 2 /* Ignore suid and sgid bits. */ ++#define ST_NOSUID ST_NOSUID ++#ifdef __USE_GNU ++ , ++ ST_NODEV = 4, /* Disallow access to device special files. */ ++# define ST_NODEV ST_NODEV ++ ST_NOEXEC = 8, /* Disallow program execution. */ ++# define ST_NOEXEC ST_NOEXEC ++ ST_SYNCHRONOUS = 16 /* Writes are synced at once. */ ++# define ST_SYNCHRONOUS ST_SYNCHRONOUS ++#endif /* Use GNU. */ ++}; +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sys_errlist.h +@@ -0,0 +1,33 @@ ++/* Declare sys_errlist and sys_nerr, or don't. Compatibility (do) version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _STDIO_H ++# error "Never include directly; use instead." ++#endif ++ ++/* sys_errlist and sys_nerr are deprecated. Use strerror instead. */ ++ ++#ifdef __USE_BSD ++extern int sys_nerr; ++extern __const char *__const sys_errlist[]; ++#endif ++#ifdef __USE_GNU ++extern int _sys_nerr; ++extern __const char *__const _sys_errlist[]; ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/syslog-path.h +@@ -0,0 +1,31 @@ ++/* -- _PATH_LOG definition ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_SYSLOG_H ++# error "Never include this file directly. Use instead" ++#endif ++ ++#ifndef _BITS_SYSLOG_PATH_H ++#define _BITS_SYSLOG_PATH_H 1 ++ ++/* On kFreeBSD, named pipes are not allowed in /dev (devfs), so we pick this ++ alternate path. */ ++#define _PATH_LOG "/var/run/log" ++ ++#endif /* bits/syslog-path.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/termios.h +@@ -0,0 +1,253 @@ ++/* termios type and macro definitions. FreeBSD version. ++ Copyright (C) 1993-1994,1996-1997,1999,2001-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _TERMIOS_H ++# error "Never include directly; use instead." ++#endif ++ ++/* These macros are also defined in some files (with ++ numerically identical values), but this serves to shut up cpp's ++ complaining. */ ++#ifdef __USE_BSD ++ ++# ifdef MDMBUF ++# undef MDMBUF ++# endif ++# ifdef FLUSHO ++# undef FLUSHO ++# endif ++# ifdef PENDIN ++# undef PENDIN ++# endif ++ ++#endif /* __USE_BSD */ ++ ++#ifdef ECHO ++# undef ECHO ++#endif ++#ifdef TOSTOP ++# undef TOSTOP ++#endif ++#ifdef NOFLSH ++# undef NOFLSH ++#endif ++ ++ ++typedef unsigned char cc_t; ++typedef unsigned int speed_t; ++typedef unsigned int tcflag_t; ++ ++#define NCCS 20 ++struct termios ++ { ++ tcflag_t c_iflag; /* input mode flags */ ++ tcflag_t c_oflag; /* output mode flags */ ++ tcflag_t c_cflag; /* control mode flags */ ++ tcflag_t c_lflag; /* local mode flags */ ++ cc_t c_cc[NCCS]; /* control characters */ ++ speed_t c_ispeed; /* input speed */ ++ speed_t c_ospeed; /* output speed */ ++#define __ispeed c_ispeed ++#define __ospeed c_ospeed ++#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1 ++#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1 ++ }; ++ ++/* c_cc characters */ ++#define VEOF 0 ++#define VEOL 1 ++#define VEOL2 2 ++#define VERASE 3 ++#define VWERASE 4 ++#define VKILL 5 ++#define VREPRINT 6 ++#ifdef __USE_BSD ++# define VERASE2 7 ++#endif ++#define VINTR 8 ++#define VQUIT 9 ++#define VSUSP 10 ++#ifdef __USE_BSD ++# define VDSUSP 11 ++#endif ++#define VSTART 12 ++#define VSTOP 13 ++#define VLNEXT 14 ++#define VDISCARD 15 ++#define VMIN 16 ++#define VTIME 17 ++#ifdef __USE_BSD ++# define VSTATUS 18 ++#endif ++ ++/* c_iflag bits */ ++#define IGNBRK 0000001 ++#define BRKINT 0000002 ++#define IGNPAR 0000004 ++#define PARMRK 0000010 ++#define INPCK 0000020 ++#define ISTRIP 0000040 ++#define INLCR 0000100 ++#define IGNCR 0000200 ++#define ICRNL 0000400 ++#define IXON 0001000 ++#define IXOFF 0002000 ++#define IXANY 0004000 ++#define IMAXBEL 0020000 ++ ++/* c_oflag bits */ ++#define OPOST (1 << 0) /* Perform output processing. */ ++#define ONLCR (1 << 1) /* Map NL to CR-NL on output. */ ++#if defined __USE_MISC || defined __USE_XOPEN ++# define TAB0 (0 << 2) /* no tab delay and expansion */ ++# define TAB3 (1 << 2) /* expand tabs to spaces */ ++# define TABDLY TAB3 /* tab delay mask */ ++# define OXTABS TAB3 ++# define XTABS TAB3 ++#endif ++#ifdef __USE_BSD ++# define ONOEOT (1 << 3) /* Discard EOT (^D) on output. */ ++#endif ++#define OCRNL (1 << 4) /* map CR to NL on output */ ++#define ONOCR (1 << 5) /* no CR output at column 0 */ ++#define ONLRET (1 << 6) /* NL performs CR function */ ++ ++/* c_cflag bit meaning */ ++#ifdef __USE_BSD ++# define CIGNORE (1 << 0) /* Ignore these control flags. */ ++#endif ++#define CSIZE (CS5|CS6|CS7|CS8) /* Number of bits per byte (mask). */ ++#define CS5 (0 << 8) /* 5 bits per byte. */ ++#define CS6 (1 << 8) /* 6 bits per byte. */ ++#define CS7 (2 << 8) /* 7 bits per byte. */ ++#define CS8 (3 << 8) /* 8 bits per byte. */ ++#define CSTOPB (1 << 10) /* Two stop bits instead of one. */ ++#define CREAD (1 << 11) /* Enable receiver. */ ++#define PARENB (1 << 12) /* Parity enable. */ ++#define PARODD (1 << 13) /* Odd parity instead of even. */ ++#define HUPCL (1 << 14) /* Hang up on last close. */ ++#define CLOCAL (1 << 15) /* Ignore modem status lines. */ ++#ifdef __USE_BSD ++# define CCTS_OFLOW (1 << 16) /* CTS flow control of output. */ ++# define CRTS_IFLOW (1 << 17) /* RTS flow control of input. */ ++# define CRTSCTS (CCTS_OFLOW|CRTS_IFLOW) /* CTS/RTS flow control. */ ++# define CDTR_IFLOW (1 << 18) /* DTR flow control of input. */ ++# define CDSR_OFLOW (1 << 19) /* DSR flow control of output. */ ++# define CCAR_OFLOW (1 << 20) /* DCD flow control of output. */ ++# define MDMBUF (1 << 20) /* Carrier flow control of output. */ ++#endif ++ ++/* c_lflag bits */ ++#ifdef __USE_BSD ++# define ECHOKE (1 << 0) /* Visual erase for KILL. */ ++#endif ++#define _ECHOE (1 << 1) /* Visual erase for ERASE. */ ++#define ECHOE _ECHOE ++#define _ECHOK (1 << 2) /* Echo NL after KILL. */ ++#define ECHOK _ECHOK ++#define _ECHO (1 << 3) /* Enable echo. */ ++#define ECHO _ECHO ++#define _ECHONL (1 << 4) /* Echo NL even if ECHO is off. */ ++#define ECHONL _ECHONL ++#ifdef __USE_BSD ++# define ECHOPRT (1 << 5) /* Hardcopy visual erase. */ ++# define ECHOCTL (1 << 6) /* Echo control characters as ^X. */ ++#endif ++#define _ISIG (1 << 7) /* Enable signals. */ ++#define ISIG _ISIG ++#define _ICANON (1 << 8) /* Do erase and kill processing. */ ++#define ICANON _ICANON ++#ifdef __USE_BSD ++# define ALTWERASE (1 << 9) /* Alternate WERASE algorithm. */ ++#endif ++#define _IEXTEN (1 << 10) /* Enable DISCARD and LNEXT. */ ++#define IEXTEN _IEXTEN ++#define _EXTPROC (1 << 11) /* External processing. */ ++#define EXTPROC _EXTPROC ++#define _TOSTOP (1 << 22) /* Send SIGTTOU for background output. */ ++#define TOSTOP _TOSTOP ++#ifdef __USE_BSD ++# define FLUSHO (1 << 23) /* Output being flushed (state). */ ++# define NOKERNINFO (1 << 25) /* Disable VSTATUS. */ ++# define PENDIN (1 << 29) /* Retype pending input (state). */ ++#endif ++#define _NOFLSH (1 << 31) /* Disable flush after interrupt. */ ++#define NOFLSH _NOFLSH ++ ++ /* Input and output baud rates. */ ++#define B0 0 /* Hang up. */ ++#define B50 50 /* 50 baud. */ ++#define B75 75 /* 75 baud. */ ++#define B110 110 /* 110 baud. */ ++#define B134 134 /* 134.5 baud. */ ++#define B150 150 /* 150 baud. */ ++#define B200 200 /* 200 baud. */ ++#define B300 300 /* 300 baud. */ ++#define B600 600 /* 600 baud. */ ++#define B1200 1200 /* 1200 baud. */ ++#define B1800 1800 /* 1800 baud. */ ++#define B2400 2400 /* 2400 baud. */ ++#define B4800 4800 /* 4800 baud. */ ++#define B9600 9600 /* 9600 baud. */ ++#define B19200 19200 /* 19200 baud. */ ++#define B38400 38400 /* 38400 baud. */ ++#define B76800 76800 ++#ifdef __USE_MISC ++# define EXTA 19200 ++# define EXTB 38400 ++#endif ++#define B7200 7200 ++#define B14400 14400 ++#define B28800 28800 ++#define B57600 57600 ++#define B115200 115200 ++#define B230400 230400 ++#define B460800 460800 ++#define B500000 500000 ++#define B576000 576000 ++#define B921600 921600 ++#define B1000000 1000000 ++#define B1152000 1152000 ++#define B1500000 1500000 ++#define B2000000 2000000 ++#define B2500000 2500000 ++#define B3000000 3000000 ++#define B3500000 3500000 ++#define B4000000 4000000 ++#define __MAX_BAUD B4000000 ++ ++/* tcflow() and TCXONC use these */ ++#define TCOOFF 1 ++#define TCOON 2 ++#define TCIOFF 3 ++#define TCION 4 ++ ++/* tcflush() and TCFLSH use these */ ++#define TCIFLUSH 1 ++#define TCOFLUSH 2 ++#define TCIOFLUSH 3 ++ ++/* tcsetattr uses these */ ++#define TCSANOW 0 ++#define TCSADRAIN 1 ++#define TCSAFLUSH 2 ++#ifdef __USE_BSD ++# define TCSASOFT 0x10 /* Flag: Don't alter hardware state. */ ++#endif ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/time.h +@@ -0,0 +1,98 @@ ++/* System-dependent timing definitions. FreeBSD version. ++ Copyright (C) 1996-1997, 1999, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* ++ * Never include this file directly; use instead. ++ */ ++ ++#ifndef __need_timeval ++# ifndef _BITS_TIME_H ++# define _BITS_TIME_H 1 ++ ++/* ISO/IEC 9899:1990 7.12.1: ++ The macro `CLOCKS_PER_SEC' is the number per second of the value ++ returned by the `clock' function. */ ++/* CAE XSH, Issue 4, Version 2: ++ The value of CLOCKS_PER_SEC is required to be 1 million on all ++ XSI-conformant systems. */ ++# define CLOCKS_PER_SEC 1000000l ++ ++# if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K ++/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK ++ presents the real value for clock ticks per second for the system. */ ++# define CLK_TCK 128 ++# endif ++ ++# ifdef __USE_POSIX199309 ++/* Identifier for system-wide realtime clock. */ ++# define CLOCK_REALTIME 0 ++/* High-resolution timer from the CPU. */ ++# define CLOCK_PROCESS_CPUTIME_ID 2 ++/* Thread-specific CPU-time clock. */ ++# define CLOCK_THREAD_CPUTIME_ID 3 ++/* Monotonic system-wide clock. */ ++# define CLOCK_MONOTONIC 4 ++/* These are BSD specific clocks. */ ++# ifdef __USE_BSD ++# define CLOCK_VIRTUAL 1 ++# define CLOCK_PROF 2 ++# define CLOCK_UPTIME 5 /* FreeBSD-specific. */ ++# define CLOCK_UPTIME_PRECISE 7 /* FreeBSD-specific. */ ++# define CLOCK_UPTIME_FAST 8 /* FreeBSD-specific. */ ++# define CLOCK_REALTIME_PRECISE 9 /* FreeBSD-specific. */ ++# define CLOCK_REALTIME_FAST 10 /* FreeBSD-specific. */ ++# define CLOCK_MONOTONIC_PRECISE 11 /* FreeBSD-specific. */ ++# define CLOCK_MONOTONIC_FAST 12 /* FreeBSD-specific. */ ++# define CLOCK_SECOND 13 /* FreeBSD-specific. */ ++# endif ++ ++/* Flag to indicate time is absolute. */ ++# define TIMER_RELTIME 0 /* relative timer */ ++# define TIMER_ABSTIME 1 /* absolute timer */ ++# endif ++ ++ ++/* Getkerninfo clock information structure */ ++struct clockinfo ++ { ++ int hz; /* clock frequency */ ++ int tick; /* micro-seconds per hz tick */ ++ int spare; ++ int stathz; /* statistics clock frequency */ ++ int profhz; /* profiling clock frequency */ ++ }; ++ ++# endif /* bits/time.h */ ++#endif ++ ++#ifdef __need_timeval ++# undef __need_timeval ++# ifndef _STRUCT_TIMEVAL ++# define _STRUCT_TIMEVAL 1 ++# include ++ ++/* A time value that is accurate to the nearest ++ microsecond but also has a range of years. */ ++struct timeval ++ { ++ __time_t tv_sec; /* Seconds. */ ++ __suseconds_t tv_usec; /* Microseconds. */ ++ }; ++# endif /* struct timeval */ ++#endif /* need timeval */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/typesizes.h +@@ -0,0 +1,66 @@ ++/* bits/typesizes.h -- underlying types for *_t. kFreeBSD version. ++ Copyright (C) 2002, 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _BITS_TYPES_H ++# error "Never include directly; use instead." ++#endif ++ ++#ifndef _BITS_TYPESIZES_H ++#define _BITS_TYPESIZES_H 1 ++ ++/* See for the meaning of these macros. This file exists so ++ that need not vary across different GNU platforms. */ ++ ++#define __DEV_T_TYPE __U32_TYPE ++#define __UID_T_TYPE __U32_TYPE ++#define __GID_T_TYPE __U32_TYPE ++#define __INO_T_TYPE __U32_TYPE ++#define __INO64_T_TYPE __UQUAD_TYPE ++#define __MODE_T_TYPE __U16_TYPE ++#define __NLINK_T_TYPE __U16_TYPE ++#define __OFF_T_TYPE __SQUAD_TYPE ++#define __OFF64_T_TYPE __SQUAD_TYPE ++#define __PID_T_TYPE __S32_TYPE ++#define __RLIM_T_TYPE __SQUAD_TYPE ++#define __RLIM64_T_TYPE __SQUAD_TYPE ++#define __BLKCNT_T_TYPE __SQUAD_TYPE ++#define __BLKCNT64_T_TYPE __SQUAD_TYPE ++#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE ++#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE ++#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE ++#define __FSFILCNT64_T_TYPE __UQUAD_TYPE ++#define __ID_T_TYPE __U32_TYPE ++#define __CLOCK_T_TYPE __S32_TYPE ++#define __TIME_T_TYPE __SLONGWORD_TYPE ++#define __USECONDS_T_TYPE __U32_TYPE ++#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE ++#define __DADDR_T_TYPE __SQUAD_TYPE ++#define __SWBLK_T_TYPE __S32_TYPE ++#define __KEY_T_TYPE __SLONGWORD_TYPE ++#define __CLOCKID_T_TYPE __S32_TYPE ++#define __TIMER_T_TYPE __S32_TYPE ++#define __BLKSIZE_T_TYPE __U32_TYPE ++#define __FSID_T_TYPE union { int __val[2]; int val[2]; } ++#define __SSIZE_T_TYPE __SWORD_TYPE ++ ++/* Number of descriptors that can fit in an `fd_set'. */ ++#define __FD_SETSIZE 1024 ++ ++ ++#endif /* bits/typesizes.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/uio.h +@@ -0,0 +1,55 @@ ++/* Copyright (C) 1996-1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if !defined _SYS_UIO_H && !defined _FCNTL_H ++# error "Never include directly; use instead." ++#endif ++ ++#ifndef _BITS_UIO_H ++#define _BITS_UIO_H 1 ++ ++#include ++ ++ ++/* `struct iovec' -- Structure describing a section of memory. */ ++ ++struct iovec ++{ ++ /* Starting address. */ ++ __ptr_t iov_base; ++ /* Length in bytes. */ ++ size_t iov_len; ++}; ++ ++/* Maximum number of 'struct iovec's that can be passed to a readv() or ++ writev() system call. For larger arrays of 'struct iovec', the libc ++ uses a single read() or write() call to guarantee atomicity. */ ++#define UIO_MAXIOV 1024 ++ ++#ifdef __USE_BSD ++enum uio_rw { UIO_READ, UIO_WRITE }; ++ ++/* Segment flag values. */ ++enum uio_seg { ++ UIO_USERSPACE, /* from user data space */ ++ UIO_SYSSPACE, /* from system space */ ++ UIO_NOCOPY /* don't copy, already in object */ ++}; ++#endif ++ ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/utsname.h +@@ -0,0 +1,27 @@ ++/* Copyright (C) 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_UTSNAME_H ++# error "Never include directly; use instead." ++#endif ++ ++/* Length of the entries in 'struct utsname' is 32. */ ++#define _UTSNAME_LENGTH 32 ++ ++/* But the version entry is longer. */ ++#define _UTSNAME_VERSION_LENGTH 256 +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/waitflags.h +@@ -0,0 +1,37 @@ ++/* Definitions of flag bits for `waitpid' et al. ++ Copyright (C) 1992, 1996-1997, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if !defined _SYS_WAIT_H && !defined _STDLIB_H ++# error "Never include directly; use instead." ++#endif ++ ++ ++/* Bits in the third argument to `waitpid'. */ ++#define WNOHANG 1 /* Don't block waiting. */ ++#define WUNTRACED 2 /* Report status of stopped children. */ ++ ++/* Bits in the fourth argument to `waitid'. */ ++#define WSTOPPED 2 /* Report stopped child (same as WUNTRACED). */ ++#define WCONTINUED 4 /* Report continued child. */ ++#define WNOWAIT 8 /* Poll only. Don't delete the proc entry. */ ++ ++#define __WCLONE 0x80000000 /* Wait for cloned process. */ ++#ifdef __USE_BSD ++# define WLINUXCLONE __WCLONE /* FreeBSD name for __WCLONE. */ ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/waitstatus.h +@@ -0,0 +1,105 @@ ++/* Definitions of status bits for `wait' et al. ++ Copyright (C) 1992,1994,1996,1997,2000,2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if !defined _SYS_WAIT_H && !defined _STDLIB_H ++# error "Never include directly; use instead." ++#endif ++ ++ ++/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ ++#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) ++ ++/* If WIFSIGNALED(STATUS), the terminating signal. */ ++#define __WTERMSIG(status) ((status) & 0x7f) ++ ++/* If WIFSTOPPED(STATUS), the signal that stopped the child. */ ++#define __WSTOPSIG(status) __WEXITSTATUS(status) ++ ++/* Nonzero if STATUS indicates normal termination. */ ++#define __WIFEXITED(status) (__WTERMSIG(status) == 0) ++ ++/* Nonzero if STATUS indicates termination by a signal. */ ++#define __WIFSIGNALED(status) \ ++ (((signed char) (((status) & 0x7f) + 1) >> 1) > 0) ++ ++/* Nonzero if STATUS indicates the child is stopped. */ ++#define __WIFSTOPPED(status) (((status) & 0x7f) == 0x7f) ++ ++/* Nonzero if STATUS indicates the child continued after a stop. We only ++ define this if provides the WCONTINUED flag bit. */ ++#ifdef WCONTINUED ++# define __WIFCONTINUED(status) ((status) == __W_CONTINUED) ++#endif ++ ++/* Nonzero if STATUS indicates the child dumped core. */ ++#define __WCOREDUMP(status) ((status) & __WCOREFLAG) ++ ++/* Macros for constructing status values. */ ++#define __W_EXITCODE(ret, sig) ((ret) << 8 | (sig)) ++#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f) ++ ++/* Linux uses 0xffff, BSD uses SIGCONT */ ++#define __W_CONTINUED 0x13 ++#define __WCOREFLAG 0x80 ++ ++ ++#ifdef __USE_BSD ++ ++# include ++ ++union wait ++ { ++ int w_status; ++ struct ++ { ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++ unsigned int __w_termsig:7; /* Terminating signal. */ ++ unsigned int __w_coredump:1; /* Set if dumped core. */ ++ unsigned int __w_retcode:8; /* Return code if exited normally. */ ++ unsigned int:16; ++# endif /* Little endian. */ ++# if __BYTE_ORDER == __BIG_ENDIAN ++ unsigned int:16; ++ unsigned int __w_retcode:8; ++ unsigned int __w_coredump:1; ++ unsigned int __w_termsig:7; ++# endif /* Big endian. */ ++ } __wait_terminated; ++ struct ++ { ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++ unsigned int __w_stopval:8; /* W_STOPPED if stopped. */ ++ unsigned int __w_stopsig:8; /* Stopping signal. */ ++ unsigned int:16; ++# endif /* Little endian. */ ++# if __BYTE_ORDER == __BIG_ENDIAN ++ unsigned int:16; ++ unsigned int __w_stopsig:8; /* Stopping signal. */ ++ unsigned int __w_stopval:8; /* W_STOPPED if stopped. */ ++# endif /* Big endian. */ ++ } __wait_stopped; ++ }; ++ ++# define w_termsig __wait_terminated.__w_termsig ++# define w_coredump __wait_terminated.__w_coredump ++# define w_retcode __wait_terminated.__w_retcode ++# define w_stopsig __wait_stopped.__w_stopsig ++# define w_stopval __wait_stopped.__w_stopval ++ ++#endif /* Use BSD. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/brk.c +@@ -0,0 +1,53 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Robert Millan ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#ifndef SYS_break ++#define SYS_break SYS_obreak ++#endif ++ ++int __syscall(int number, ...); ++ ++extern void _end; ++ ++/* sbrk.c expects this. */ ++void *__curbrk = &_end; ++ ++/* Set the end of the process's data space to ADDR. ++ Return 0 if successful, -1 if not. */ ++int ++__brk (addr) ++ void *addr; ++{ ++ if (addr < &_end) ++ return 0; ++ ++ if (__syscall (SYS_break, addr) == -1) ++ { ++ __set_errno (ENOMEM); ++ return -1; ++ } ++ ++ __curbrk = addr; ++ return 0; ++} ++weak_alias (__brk, brk) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/check_fds.c +@@ -0,0 +1 @@ ++void __libc_check_standard_fds (void) {;} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/check_native.c +@@ -0,0 +1,42 @@ ++/* Determine whether interfaces use native transport. Dummy version. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++ ++void ++__check_native (uint32_t a1_index, int *a1_native, ++ uint32_t a2_index, int *a2_native) ++{ ++ ++#warning __check_native() not yet implemented ++ return; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/check_pf.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_getres.c +@@ -0,0 +1,42 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++int __syscall_clock_getres(clockid_t clock_id, struct timespec *tp); ++libc_hidden_proto (__syscall_clock_getres) ++ ++# define SYSDEP_GETRES \ ++ case CLOCK_REALTIME: \ ++ case CLOCK_MONOTONIC: \ ++ case CLOCK_REALTIME_FAST: \ ++ case CLOCK_REALTIME_PRECISE: \ ++ case CLOCK_MONOTONIC_FAST: \ ++ case CLOCK_MONOTONIC_PRECISE: \ ++ case CLOCK_UPTIME: \ ++ case CLOCK_UPTIME_FAST: \ ++ case CLOCK_UPTIME_PRECISE: \ ++ case CLOCK_VIRTUAL: \ ++ case CLOCK_SECOND: \ ++ retval = INLINE_SYSCALL (clock_getres, 2, clock_id, res); \ ++ break ++ ++/* We handled the REALTIME clock here. */ ++# define HANDLED_REALTIME 1 ++ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_gettime.c +@@ -0,0 +1,42 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include "kernel-posix-cpu-timers.h" ++ ++int __syscall_clock_gettime(clockid_t clock_id, struct timespec *tp); ++libc_hidden_proto (__syscall_clock_gettime) ++ ++# define SYSDEP_GETTIME \ ++ case CLOCK_REALTIME: \ ++ case CLOCK_MONOTONIC: \ ++ case CLOCK_REALTIME_FAST: \ ++ case CLOCK_REALTIME_PRECISE: \ ++ case CLOCK_MONOTONIC_FAST: \ ++ case CLOCK_MONOTONIC_PRECISE: \ ++ case CLOCK_UPTIME: \ ++ case CLOCK_UPTIME_FAST: \ ++ case CLOCK_UPTIME_PRECISE: \ ++ case CLOCK_VIRTUAL: \ ++ case CLOCK_SECOND: \ ++ retval = INLINE_SYSCALL (clock_gettime, 2, clock_id, tp); \ ++ break ++ ++/* We handled the REALTIME clock here. */ ++# define HANDLED_REALTIME 1 ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_settime.c +@@ -0,0 +1,32 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include "kernel-posix-cpu-timers.h" ++ ++int __syscall_clock_settime(clockid_t clock_id, const struct timespec *tp); ++libc_hidden_proto (__syscall_clock_settime) ++ ++# define SYSDEP_SETTIME \ ++ case CLOCK_REALTIME: \ ++ retval = INLINE_SYSCALL (clock_settime, 2, clock_id, tp); \ ++ break ++/* We handled the REALTIME clock here. */ ++# define HANDLED_REALTIME 1 ++ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clone.c +@@ -0,0 +1,108 @@ ++/* Create a thread. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#define __clone __no_broken_clone_decl ++#include ++#include ++#include ++#include ++#include ++#undef __clone ++ ++/* __start_thread (flags, child_stack, fn, arg) ++ is roughly equivalent to ++ ++ int retval = __rfork (flags); ++ if (retval == 0) ++ { ++ // Here we are in the child thread. ++ %stackpointer = child_stack; ++ _exit (fn (arg)); ++ } ++ return retval; ++ ++ but it cannot be done in portable C because it must access fn and arg ++ after having replaced the stack pointer. */ ++ ++extern int __start_thread (int flags, void *child_stack, ++ int (*fn) (void *), void *arg); ++ ++int __clone (int (*fn) (void *), void *child_stack, int flags, void *arg) ++{ ++ int rfork_flags = RFPROC; ++ ++ if (fn == NULL || child_stack == NULL) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ /* This implementation of clone() does not support all Linux flags. */ ++ if (flags & ~(CSIGNAL | CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND ++ | CLONE_VFORK | CLONE_SYSVSEM)) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ if ((flags & CSIGNAL) != SIGCHLD) ++ { ++ if ((flags & CSIGNAL) & ~RFTHPNMASK) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ if ((flags & CSIGNAL) == 0) ++ rfork_flags |= (RFLINUXTHPN | ((SIGCHLD) << RFTHPNSHIFT)); ++ else ++ rfork_flags |= (RFLINUXTHPN | ((flags & CSIGNAL) << RFTHPNSHIFT)); ++ } ++ ++ if (flags & CLONE_VM) ++ rfork_flags |= RFMEM; ++ ++ if (flags & CLONE_FS) ++ /* Sharing the filesystem related info (umask, cwd, root dir) ++ is not supported by rfork. Ignore this; let's hope programs ++ will set their umask and cwd before spawning threads. */ ++ ; ++ ++ if (flags & CLONE_SYSVSEM) ++ /* Ignore this; it has been introduced into linuxthreads in post 2.4 glibc */ ++ ; ++ ++ if (!(flags & CLONE_FILES)) ++ rfork_flags |= RFFDG; ++ ++ if (flags & CLONE_SIGHAND) ++ { ++ rfork_flags |= RFSIGSHARE; ++ /* Also set the undocumented flag RFTHREAD. It has the effect that when ++ the thread leader exits, all threads belonging to it are killed. */ ++ rfork_flags |= RFTHREAD; ++ } ++ ++ if (flags & CLONE_VFORK) ++ rfork_flags |= RFPPWAIT; ++ ++ return __start_thread (rfork_flags, child_stack, fn, arg); ++} ++ ++weak_alias (__clone, clone) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/configure +@@ -0,0 +1,349 @@ ++# This file is generated from configure.in by Autoconf. DO NOT EDIT! ++ # Local configure fragment for sysdeps/unix/bsd/bsd4.4/kfreebsd. ++ ++case "$machine" in ++ x86_64*) ++ echo "Adding extra sysnames for kfreebsd/x86_64/elf" ++ sysnames="ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/elf $sysnames" ++ ;; ++esac ++ ++# The kFreeBSD headers can be found in ++# /usr/src/sys/ ++# Check whether this directory is available. ++if test -z "$sysheaders" && ++ test "x$cross_compiling" = xno && ++ test -d /usr/src/sys/ ; then ++ sysheaders="/usr/src/sys/" ++ ccheaders=`$CC -print-file-name=include` ++ SYSINCLUDES="-I $sysheaders" ++fi ++ ++# Don't bother trying to generate any glue code to be compatible with the ++# existing system library, because we are the only system library. ++inhibit_glue=yes ++ ++if test -n "$sysheaders"; then ++ OLD_CPPFLAGS=$CPPFLAGS ++ CPPFLAGS="$CPPFLAGS $SYSINCLUDES" ++fi ++ ++ ++echo "$as_me:$LINENO: checking for egrep" >&5 ++echo $ECHO_N "checking for egrep... $ECHO_C" >&6 ++if test "${ac_cv_prog_egrep+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if echo a | (grep -E '(a|b)') >/dev/null 2>&1 ++ then ac_cv_prog_egrep='grep -E' ++ else ac_cv_prog_egrep='egrep' ++ fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 ++echo "${ECHO_T}$ac_cv_prog_egrep" >&6 ++ EGREP=$ac_cv_prog_egrep ++ ++ ++echo "$as_me:$LINENO: checking installed kFreeBSD kernel header files" >&5 ++echo $ECHO_N "checking installed kFreeBSD kernel header files... $ECHO_C" >&6 ++if test "${libc_cv_kfreebsd600+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#if !defined(__FreeBSD_kernel_version) && defined(__FreeBSD_version) ++#define __FreeBSD_kernel_version __FreeBSD_version ++#endif ++#if !defined __FreeBSD_kernel_version || __FreeBSD_kernel_version < (6 *100000+ 0 *1000+ 0) /* 6.0.0 */ ++eat flaming death ++#endif ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "eat flaming death" >/dev/null 2>&1; then ++ libc_cv_kfreebsd600='TOO OLD!' ++else ++ libc_cv_kfreebsd600='6.0.0 or later' ++fi ++rm -f conftest* ++ ++fi ++echo "$as_me:$LINENO: result: $libc_cv_kfreebsd600" >&5 ++echo "${ECHO_T}$libc_cv_kfreebsd600" >&6 ++if test "$libc_cv_kfreebsd600" != '6.0.0 or later'; then ++ { { echo "$as_me:$LINENO: error: GNU libc requires kernel header files from ++kFreeBSD 6.0.0 or later to be installed before configuring. ++The kernel header files are found usually in /usr/src/sys/; make sure ++these directories use files from kFreeBSD 6.0.0 or later. ++This check uses , so ++make sure that file was built correctly when installing the kernel header ++files. To use kernel headers not from /usr/src/sys/, use the ++configure option --with-headers." >&5 ++echo "$as_me: error: GNU libc requires kernel header files from ++kFreeBSD 6.0.0 or later to be installed before configuring. ++The kernel header files are found usually in /usr/src/sys/; make sure ++these directories use files from kFreeBSD 6.0.0 or later. ++This check uses , so ++make sure that file was built correctly when installing the kernel header ++files. To use kernel headers not from /usr/src/sys/, use the ++configure option --with-headers." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++# Check whether --enable-compatible-utmp or --disable-compatible-utmp was given. ++if test "${enable_compatible_utmp+set}" = set; then ++ enableval="$enable_compatible_utmp" ++ enable_utmp_compat=$enableval ++else ++ enable_utmp_compat=no ++fi; ++if test "$enable_utmp_compat" = no; then ++ utmp_subdir=utmp-utmpx ++else ++ utmp_subdir=utmp-compat ++fi ++sysnames="$sysnames sysdeps/unix/bsd/bsd4.4/kfreebsd/$utmp_subdir" ++ ++# If the user gave a minimal version number test whether the available ++# kernel headers are young enough. Additionally we have minimal ++# kernel versions for some architectures. If a previous configure fragment ++# set arch_minimum_kernel already, let that override our defaults here. ++# Note that we presume such a fragment has set libc_cv_gcc_unwind_find_fde ++# if appropriate too. ++test -n "$arch_minimum_kernel" || ++case "$machine" in ++ i386*) ++ libc_cv_gcc_unwind_find_fde=yes ++ arch_minimum_kernel=6.0.0 ++ ;; ++ x86_64*) ++ arch_minimum_kernel=6.0.0 ++ ;; ++ *) ++ arch_minimum_kernel=6.0.0 ++ ;; ++esac ++if test -n "$minimum_kernel"; then ++ ++ user_version=$((`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`)) ++ arch_version=$((`echo "$arch_minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`)) ++ ++ if test $user_version -lt $arch_version; then ++ { echo "$as_me:$LINENO: WARNING: minimum kernel version reset to $arch_minimum_kernel" >&5 ++echo "$as_me: WARNING: minimum kernel version reset to $arch_minimum_kernel" >&2;} ++ minimum_kernel=$arch_minimum_kernel ++ fi ++else ++ if test $arch_minimum_kernel != '6.0.0'; then ++ minimum_kernel=$arch_minimum_kernel ++ fi ++fi ++ ++if test -n "$minimum_kernel"; then ++ echo "$as_me:$LINENO: checking for kernel header at least $minimum_kernel" >&5 ++echo $ECHO_N "checking for kernel header at least $minimum_kernel... $ECHO_C" >&6 ++ hdrnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 100000 + \2 * 1000 + \3)/'`; ++ decnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 65536 + \2 * 256 + \3)/'`; ++ abinum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`; ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#if !defined(__FreeBSD_kernel_version) && defined(__FreeBSD_version) ++#define __FreeBSD_kernel_version __FreeBSD_version ++#endif ++#if __FreeBSD_kernel_version < $hdrnum ++eat flaming death ++#endif ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "eat flaming death" >/dev/null 2>&1; then ++ libc_minimum_kernel='too old!' ++else ++ libc_minimum_kernel=ok ++fi ++rm -f conftest* ++ ++ echo "$as_me:$LINENO: result: $libc_minimum_kernel" >&5 ++echo "${ECHO_T}$libc_minimum_kernel" >&6 ++ if test "$libc_minimum_kernel" = ok; then ++ cat >>confdefs.h <<_ACEOF ++#define __KFREEBSD_KERNEL_VERSION $decnum ++_ACEOF ++ ++ cat >>confdefs.h <<_ACEOF ++#define __ABI_TAG_VERSION $abinum ++_ACEOF ++ ++ else ++ { { echo "$as_me:$LINENO: error: *** The available kernel headers are older than the requested ++*** compatible kernel version" >&5 ++echo "$as_me: error: *** The available kernel headers are older than the requested ++*** compatible kernel version" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++fi ++ ++if test -n "$sysheaders"; then ++ CPPFLAGS=$OLD_CPPFLAGS ++fi ++# The Linux filesystem standard prescribes where to place "essential" ++# files. I.e., when the installation prefix is "/usr" we have to place ++# shared library objects and the configuration files on the root partition ++# in /lib and /etc. ++case "$prefix" in ++/usr | /usr/) ++ # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib ++ case $machine in ++ sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \ ++ mips/mips64/n64/* ) ++ libc_cv_slibdir="/lib64" ++ if test "$libdir" = '${exec_prefix}/lib'; then ++ libdir='${exec_prefix}/lib64'; ++ # Locale data can be shared between 32bit and 64bit libraries ++ libc_cv_localedir='${exec_prefix}/lib/locale' ++ fi ++ ;; ++ mips/mips64/n32/* ) ++ libc_cv_slibdir="/lib32" ++ if test "$libdir" = '${exec_prefix}/lib'; then ++ libdir='${exec_prefix}/lib32'; ++ # Locale data can be shared between 32bit and 64bit libraries ++ libc_cv_localedir='${exec_prefix}/lib/locale' ++ fi ++ ;; ++ *) ++ libc_cv_slibdir="/lib" ++ ;; ++ esac ++ # Allow the user to override the path with --sysconfdir ++ if test $sysconfdir = '${prefix}/etc'; then ++ libc_cv_sysconfdir=/etc ++ else ++ libc_cv_sysconfdir=$sysconfdir ++ fi ++ libc_cv_rootsbindir="/sbin" ++ ;; ++esac ++ ++ ++# Put exception handling support into libc, so that not every shared ++# library needs to include it. ++# FIXME: Does not work yet. ++libc_cv_gcc_unwind_find_fde=no ++ ++ ++# Under kFreeBSD the LinuxThreads or (may be later) NPTL add-on should be available. ++case $add_ons in ++ # Only one of the add-ons should be available. ++ *linuxthreads*nptl*|*nptl*linuxthreads*) ++ echo "\ ++*** LinuxThreads and NPTL add-ons are both available. Only one must be used." ++ exit 1 ++ ;; ++ # It is available. Good. ++ *linuxthreads*) ++ linuxthreads_missing= ++ ;; ++ *nptl*) ++ linuxthreads_missing= ++ ;; ++ *) ++ linuxthreads_missing=yes ++ ;; ++esac ++ ++if test "$linuxthreads_missing"; then ++ if test $enable_sanity = yes; then ++ echo "\ ++*** On GNU/kFreeBSD systems it is normal to compile GNU libc with the ++*** \`linuxthreads' add-on. Without that, the library will be ++*** incompatible with normal GNU/kFreeBSD systems. ++*** If you really mean to not use this add-on, run configure again ++*** using the extra parameter \`--disable-sanity-checks'." ++ exit 1 ++ else ++ echo "\ ++*** WARNING: Are you sure you do not want to use the \`linuxthreads' ++*** add-on?" ++ fi ++fi ++ ++if test "$prefix" = "/usr/local" -o "$prefix" = "/usr/local/" -o "$prefix" = "NONE"; then ++ if test $enable_sanity = yes; then ++ echo "\ ++*** On GNU/kFreeBSD systems the GNU C Library should not be installed into ++*** /usr/local since this might make your system totally unusable. ++*** We strongly advise to use a different prefix. For details read the FAQ. ++*** If you really mean to do this, run configure again using the extra ++*** parameter \`--disable-sanity-checks'." ++ exit 1 ++ else ++ echo "\ ++*** WARNING: Do you really want to install the GNU C Library into /usr/local? ++*** This might make your system totally unusable, for details read the FAQ." ++ fi ++fi ++ ++ ++# One kFreeBSD we use ldconfig. ++use_ldconfig=yes ++ ++# We need some extensions to the `ldd' script. ++case "$machine" in ++ x86_64*) ++ ldd_rewrite_script=../ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldd-rewrite.sed ++ ;; ++ *) ++ ;; ++esac ++ ++ ++if test $host = $build; then ++ # If $prefix/include/{net,scsi} are symlinks, make install will ++ # clobber what they're linked to (probably a kernel tree). ++ # test -L ought to work on all Linux boxes. ++ if test "x$prefix" != xNONE; then ++ ac_prefix=$prefix ++ else ++ ac_prefix=$ac_default_prefix ++ fi ++ echo "$as_me:$LINENO: checking for symlinks in ${ac_prefix}/include" >&5 ++echo $ECHO_N "checking for symlinks in ${ac_prefix}/include... $ECHO_C" >&6 ++ ac_message= ++ if test -L ${ac_prefix}/include/net; then ++ ac_message="$ac_message ++ ${ac_prefix}/include/net is a symlink" ++ fi ++ if test -L ${ac_prefix}/include/scsi; then ++ ac_message="$ac_message ++ ${ac_prefix}/include/scsi is a symlink" ++ fi ++ if test -n "$ac_message"; then ++ { { echo "$as_me:$LINENO: error: $ac_message ++\`make install' will destroy the target of the link(s). ++Delete the links and re-run configure, or better still, move the entire ++${ac_prefix}/include directory out of the way." >&5 ++echo "$as_me: error: $ac_message ++\`make install' will destroy the target of the link(s). ++Delete the links and re-run configure, or better still, move the entire ++${ac_prefix}/include directory out of the way." >&2;} ++ { (exit 1); exit 1; }; } ++ else ++ echo "$as_me:$LINENO: result: ok" >&5 ++echo "${ECHO_T}ok" >&6 ++ fi ++fi ++ ++# We support internal syscalls. ++# It is advertised as inlined syscalls availability ... ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_INLINED_SYSCALLS 1 ++_ACEOF +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/configure.in +@@ -0,0 +1,273 @@ ++GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. ++# Local configure fragment for sysdeps/unix/bsd/bsd4.4/kfreebsd. ++ ++case "$machine" in ++ x86_64*) ++ echo "Adding extra sysnames for kfreebsd/x86_64/elf" ++ sysnames="ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/elf $sysnames" ++ ;; ++esac ++ ++# The kFreeBSD headers can be found in ++# /usr/src/sys/ ++# Check whether this directory is available. ++if test -z "$sysheaders" && ++ test "x$cross_compiling" = xno && ++ test -d /usr/src/sys/ ; then ++ sysheaders="/usr/src/sys/" ++ ccheaders=`$CC -print-file-name=include` ++ dnl We don't have to use -nostdinc. We just want one more directory ++ dnl to be used. ++ SYSINCLUDES="-I $sysheaders" ++fi ++ ++# Don't bother trying to generate any glue code to be compatible with the ++# existing system library, because we are the only system library. ++inhibit_glue=yes ++ ++define([LIBC_KFREEBSD_VERSION],[6.0.0])dnl ++if test -n "$sysheaders"; then ++ OLD_CPPFLAGS=$CPPFLAGS ++ CPPFLAGS="$CPPFLAGS $SYSINCLUDES" ++fi ++define([libc_cv_kfreebsdVER], [libc_cv_kfreebsd]patsubst(LIBC_KFREEBSD_VERSION,[\.]))dnl ++AC_CACHE_CHECK(installed kFreeBSD kernel header files, libc_cv_kfreebsdVER, [dnl ++AC_EGREP_CPP([eat flaming death], [#include ++#if !defined(__FreeBSD_kernel_version) && defined(__FreeBSD_version) ++#define __FreeBSD_kernel_version __FreeBSD_version ++#endif ++#if !defined __FreeBSD_kernel_version || __FreeBSD_kernel_version < ]dnl ++patsubst(LIBC_KFREEBSD_VERSION,[^\([^.]*\)\.\([^.]*\)\.\([^.]*\)$],dnl ++[ (\1 *100000+ \2 *1000+ \3) /* \1.\2.\3 */])[ ++eat flaming death ++#endif], ++ libc_cv_kfreebsdVER='TOO OLD!', ++ libc_cv_kfreebsdVER='LIBC_KFREEBSD_VERSION or later')]) ++if test "$libc_cv_kfreebsdVER" != 'LIBC_KFREEBSD_VERSION or later'; then ++ AC_MSG_ERROR([GNU libc requires kernel header files from ++kFreeBSD LIBC_KFREEBSD_VERSION or later to be installed before configuring. ++The kernel header files are found usually in /usr/src/sys/; make sure ++these directories use files from kFreeBSD LIBC_KFREEBSD_VERSION or later. ++This check uses , so ++make sure that file was built correctly when installing the kernel header ++files. To use kernel headers not from /usr/src/sys/, use the ++configure option --with-headers.]) ++fi ++ ++AC_ARG_ENABLE(compatible-utmp, dnl ++[ --disable-compatible-utmp use a struct utmp which is the same as struct ++ utmpx, as on kFreeBSD, but incompatible with FreeBSD], ++ enable_utmp_compat=$enableval, enable_utmp_compat=no) ++if test "$enable_utmp_compat" = no; then ++ utmp_subdir=utmp-utmpx ++else ++ utmp_subdir=utmp-compat ++fi ++sysnames="$sysnames sysdeps/unix/bsd/bsd4.4/kfreebsd/$utmp_subdir" ++ ++# If the user gave a minimal version number test whether the available ++# kernel headers are young enough. Additionally we have minimal ++# kernel versions for some architectures. If a previous configure fragment ++# set arch_minimum_kernel already, let that override our defaults here. ++# Note that we presume such a fragment has set libc_cv_gcc_unwind_find_fde ++# if appropriate too. ++test -n "$arch_minimum_kernel" || ++case "$machine" in ++ i386*) ++ libc_cv_gcc_unwind_find_fde=yes ++ arch_minimum_kernel=6.0.0 ++ ;; ++ x86_64*) ++ arch_minimum_kernel=6.0.0 ++ ;; ++ *) ++ arch_minimum_kernel=6.0.0 ++ ;; ++esac ++if test -n "$minimum_kernel"; then ++ changequote(,) ++ user_version=$((`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`)) ++ arch_version=$((`echo "$arch_minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`)) ++ changequote([,]) ++ if test $user_version -lt $arch_version; then ++ AC_MSG_WARN([minimum kernel version reset to $arch_minimum_kernel]) ++ minimum_kernel=$arch_minimum_kernel ++ fi ++else ++ if test $arch_minimum_kernel != '6.0.0'; then ++ minimum_kernel=$arch_minimum_kernel ++ fi ++fi ++ ++if test -n "$minimum_kernel"; then ++ AC_MSG_CHECKING(for kernel header at least $minimum_kernel) ++changequote(,)dnl ++ hdrnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 100000 + \2 * 1000 + \3)/'`; ++ decnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 65536 + \2 * 256 + \3)/'`; ++ abinum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`; ++changequote([,])dnl ++ AC_EGREP_CPP([eat flaming death], [#include ++#if !defined(__FreeBSD_kernel_version) && defined(__FreeBSD_version) ++#define __FreeBSD_kernel_version __FreeBSD_version ++#endif ++#if __FreeBSD_kernel_version < $hdrnum ++eat flaming death ++#endif], libc_minimum_kernel='too old!', libc_minimum_kernel=ok) ++ AC_MSG_RESULT($libc_minimum_kernel) ++ if test "$libc_minimum_kernel" = ok; then ++ AC_DEFINE_UNQUOTED(__KFREEBSD_KERNEL_VERSION, $decnum) ++ AC_DEFINE_UNQUOTED(__ABI_TAG_VERSION, $abinum) ++ else ++ AC_MSG_ERROR([*** The available kernel headers are older than the requested ++*** compatible kernel version]) ++ fi ++fi ++ ++if test -n "$sysheaders"; then ++ CPPFLAGS=$OLD_CPPFLAGS ++fi ++# The Linux filesystem standard prescribes where to place "essential" ++# files. I.e., when the installation prefix is "/usr" we have to place ++# shared library objects and the configuration files on the root partition ++# in /lib and /etc. ++case "$prefix" in ++/usr | /usr/) ++ # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib ++ case $machine in ++ sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \ ++ mips/mips64/n64/* ) ++ libc_cv_slibdir="/lib64" ++ if test "$libdir" = '${exec_prefix}/lib'; then ++ libdir='${exec_prefix}/lib64'; ++ # Locale data can be shared between 32bit and 64bit libraries ++ libc_cv_localedir='${exec_prefix}/lib/locale' ++ fi ++ ;; ++ mips/mips64/n32/* ) ++ libc_cv_slibdir="/lib32" ++ if test "$libdir" = '${exec_prefix}/lib'; then ++ libdir='${exec_prefix}/lib32'; ++ # Locale data can be shared between 32bit and 64bit libraries ++ libc_cv_localedir='${exec_prefix}/lib/locale' ++ fi ++ ;; ++ *) ++ libc_cv_slibdir="/lib" ++ ;; ++ esac ++ # Allow the user to override the path with --sysconfdir ++ if test $sysconfdir = '${prefix}/etc'; then ++ libc_cv_sysconfdir=/etc ++ else ++ libc_cv_sysconfdir=$sysconfdir ++ fi ++ libc_cv_rootsbindir="/sbin" ++ ;; ++esac ++ ++ ++# Put exception handling support into libc, so that not every shared ++# library needs to include it. ++# FIXME: Does not work yet. ++libc_cv_gcc_unwind_find_fde=no ++ ++ ++# Under kFreeBSD the LinuxThreads or (may be later) NPTL add-on should be available. ++case $add_ons in ++ # Only one of the add-ons should be available. ++ *linuxthreads*nptl*|*nptl*linuxthreads*) ++ echo "\ ++*** LinuxThreads and NPTL add-ons are both available. Only one must be used." ++ exit 1 ++ ;; ++ # It is available. Good. ++ *linuxthreads*) ++ linuxthreads_missing= ++ ;; ++ *nptl*) ++ linuxthreads_missing= ++ ;; ++ *) ++ linuxthreads_missing=yes ++ ;; ++esac ++ ++if test "$linuxthreads_missing"; then ++ if test $enable_sanity = yes; then ++ echo "\ ++*** On GNU/kFreeBSD systems it is normal to compile GNU libc with the ++*** \`linuxthreads' add-on. Without that, the library will be ++*** incompatible with normal GNU/kFreeBSD systems. ++*** If you really mean to not use this add-on, run configure again ++*** using the extra parameter \`--disable-sanity-checks'." ++ exit 1 ++ else ++ echo "\ ++*** WARNING: Are you sure you do not want to use the \`linuxthreads' ++*** add-on?" ++ fi ++fi ++ ++if test "$prefix" = "/usr/local" -o "$prefix" = "/usr/local/" -o "$prefix" = "NONE"; then ++ if test $enable_sanity = yes; then ++ echo "\ ++*** On GNU/kFreeBSD systems the GNU C Library should not be installed into ++*** /usr/local since this might make your system totally unusable. ++*** We strongly advise to use a different prefix. For details read the FAQ. ++*** If you really mean to do this, run configure again using the extra ++*** parameter \`--disable-sanity-checks'." ++ exit 1 ++ else ++ echo "\ ++*** WARNING: Do you really want to install the GNU C Library into /usr/local? ++*** This might make your system totally unusable, for details read the FAQ." ++ fi ++fi ++ ++ ++# One kFreeBSD we use ldconfig. ++use_ldconfig=yes ++ ++# We need some extensions to the `ldd' script. ++changequote(,) ++case "$machine" in ++ x86_64*) ++ ldd_rewrite_script=../ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldd-rewrite.sed ++ ;; ++ *) ++ ;; ++esac ++changequote([,]) ++ ++if test $host = $build; then ++ # If $prefix/include/{net,scsi} are symlinks, make install will ++ # clobber what they're linked to (probably a kernel tree). ++ # test -L ought to work on all Linux boxes. ++ if test "x$prefix" != xNONE; then ++ ac_prefix=$prefix ++ else ++ ac_prefix=$ac_default_prefix ++ fi ++ AC_MSG_CHECKING([for symlinks in ${ac_prefix}/include]) ++ ac_message= ++ if test -L ${ac_prefix}/include/net; then ++ ac_message="$ac_message ++ ${ac_prefix}/include/net is a symlink" ++ fi ++ if test -L ${ac_prefix}/include/scsi; then ++ ac_message="$ac_message ++ ${ac_prefix}/include/scsi is a symlink" ++ fi ++ if test -n "$ac_message"; then ++ AC_MSG_ERROR([$ac_message ++\`make install' will destroy the target of the link(s). ++Delete the links and re-run configure, or better still, move the entire ++${ac_prefix}/include directory out of the way.]) ++ else ++ AC_MSG_RESULT(ok) ++ fi ++fi ++ ++# We support internal syscalls. ++# It is advertised as inlined syscalls availability ... ++AC_DEFINE(HAVE_INLINED_SYSCALLS) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/connect.c +@@ -0,0 +1,69 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++/* According to POSIX.1-2004 the len argument specifies the length of ++ the sockaddr structure pointed to by the addrarg argument. However ++ the FreeBSD kernel waits the actual length of the address stored ++ there. The code below emulate this behaviour. */ ++ ++extern int __libc_sa_len (sa_family_t __af); ++extern int __libc_sa_len_internal (sa_family_t __af); ++ ++extern int __syscall_connect (int fd, __CONST_SOCKADDR_ARG addr, ++ socklen_t addrlen); ++libc_hidden_proto (__syscall_connect) ++ ++/* Open a connection on socket FD to peer at ADDR (which LEN bytes long). ++ For connectionless socket types, just set the default address to send to ++ and the only address from which to accept transmissions. ++ Return 0 on success, -1 for errors. */ ++ ++int ++__libc_connect (int fd, __CONST_SOCKADDR_ARG addr, socklen_t addrlen) ++{ ++ socklen_t new_addrlen; ++ ++#ifndef NOT_IN_libc ++ new_addrlen = INTUSE(__libc_sa_len) ((addr.__sockaddr__)->sa_family); ++#else ++ new_addrlen = __libc_sa_len ((addr.__sockaddr__)->sa_family); ++#endif ++ ++ /* Only allow a smaller size, otherwise it could lead to ++ stack corruption */ ++ if (new_addrlen < addrlen) ++ addrlen = new_addrlen; ++ ++ /* We pass 3 arguments. */ ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (connect, 3, fd, addr, addrlen); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ int result = INLINE_SYSCALL (connect, 3, fd, addr, addrlen); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++} ++ ++strong_alias (__libc_connect, __connect_internal) ++weak_alias (__libc_connect, __connect) ++weak_alias (__libc_connect, connect) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/devname.c +@@ -0,0 +1,69 @@ ++/* ++ * Copyright (c) 1989, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++ ++#include ++#include ++#include ++#include ++ ++char * ++__devname_r(__dev_t dev, __mode_t type, char *buf, int len) ++{ ++ int i; ++ size_t j; ++ const char *r; ++ ++ if ((type & S_IFMT) == S_IFCHR) { ++ j = len; ++ i = __sysctlbyname("kern.devname", buf, &j, &dev, sizeof (dev)); ++ if (i == 0) ++ return (buf); ++ } ++ ++ /* Finally just format it */ ++ if (dev == NODEV) ++ r = "#NODEV"; ++ else ++ r = "#%c:%d:0x%x"; ++ __snprintf(buf, len, r, ++ (type & S_IFMT) == S_IFCHR ? 'C' : 'B', major(dev), minor(dev)); ++ return (buf); ++} ++ ++ ++char * ++__devname(__dev_t dev, __mode_t type) ++{ ++ static char buf[SPECNAMELEN + 1]; ++ ++ return(__devname_r(dev, type, buf, sizeof(buf))); ++} ++weak_alias (__devname_r, devname_r) ++weak_alias (__devname, devname) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-execstack.c +@@ -0,0 +1,58 @@ ++/* Stack executability handling for GNU dynamic linker. Linux version. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++extern int __stack_prot attribute_relro attribute_hidden; ++ ++ ++int ++internal_function ++_dl_make_stack_executable (void **stack_endp) ++{ ++ /* This gives us the highest/lowest page that needs to be changed. */ ++ uintptr_t page = ((uintptr_t) *stack_endp ++ & -(intptr_t) GLRO(dl_pagesize)); ++ ++ /* Challenge the caller. */ ++ if (__builtin_expect (__check_caller (RETURN_ADDRESS (0), ++ allow_ldso|allow_libpthread) != 0, 0) ++ || __builtin_expect (*stack_endp != __libc_stack_end, 0)) ++ return EPERM; ++ ++ if (__builtin_expect (__mprotect ((void *) page, GLRO(dl_pagesize), ++ __stack_prot) != 0, 0)) ++ return errno; ++ ++ /* Clear the address. */ ++ *stack_endp = NULL; ++ ++ /* Remember that we changed the permission. */ ++ GL(dl_stack_flags) |= PF_X; ++ ++ return 0; ++} ++rtld_hidden_def (_dl_make_stack_executable) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-machine.h +@@ -0,0 +1,31 @@ ++/* Dynamic linker magic for glibc on FreeBSD kernel. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Contrary to most kernels which use ELFOSABI_SYSV aka ELFOSABI_NONE, ++ FreeBSD uses ELFOSABI_FREEBSD for the OSABI field. */ ++ ++# define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_FREEBSD) ++# define VALID_ELF_ABIVERSION(ver) (ver == 0) ++# define VALID_ELF_HEADER(hdr,exp,size) \ ++ memcmp (hdr,exp,size-2) == 0 \ ++ && VALID_ELF_OSABI (hdr[EI_OSABI]) \ ++ && VALID_ELF_ABIVERSION (hdr[EI_ABIVERSION]) ++ ++#include_next +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-origin.c +@@ -0,0 +1,123 @@ ++/* Find path of executable. ++ Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , 1998. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++const char *_self_program_name_from_auxv attribute_hidden; ++ ++static int ++_dl_self_name(char *buf, int buflen) ++{ ++ int len, wdlen; ++ ++ /* try /proc/self/exe symlink. */ ++ len = __readlink("/proc/self/exe", buf, buflen); ++ ++ if (len > 0 && buf[0] == '/') ++ return len; ++ ++ if (!_self_program_name_from_auxv) ++ return -1; ++ ++ len = strlen(_self_program_name_from_auxv); ++ if (len > 0 && _self_program_name_from_auxv[0] == '/') ++ { ++ /* absolute file name */ ++ if (len < buflen) ++ { ++ strcpy(buf, _self_program_name_from_auxv); ++ return len; ++ } ++ memcpy(buf, _self_program_name_from_auxv, buflen); ++ buf[buflen - 1] = 0; ++ return buflen - 1; ++ }; ++ ++ /* relative file name, do our best */ ++ if (NULL == __getcwd(buf, buflen)) ++ return -1; ++ ++ wdlen = strlen(buf); ++ buf[wdlen] = '/'; ++ if ((wdlen + len + 1) < buflen) ++ { ++ strcpy(buf + wdlen + 1, _self_program_name_from_auxv); ++ return wdlen + len + 1; ++ } ++ memcpy(buf + wdlen + 1, _self_program_name_from_auxv, buflen - wdlen - 1); ++ buf[buflen - 1] = 0; ++ return buflen - 1; ++} ++ ++ ++ ++const char * ++_dl_get_origin (void) ++{ ++ char linkval[2*PATH_MAX]; ++ char *result; ++ int len; ++ ++ len = _dl_self_name(linkval, sizeof(linkval)); ++ ++ if (len > 0) ++ { ++ /* We can use this value. */ ++ while (len > 1 && linkval[len - 1] != '/') ++ --len; ++ result = (char *) malloc (len + 1); ++ if (result == NULL) ++ result = (char *) -1; ++ else if (len == 1) ++ memcpy (result, "/", 2); ++ else ++ *((char *) __mempcpy (result, linkval, len - 1)) = '\0'; ++ } ++ else ++ { ++ result = (char *) -1; ++ /* We use the environment variable LD_ORIGIN_PATH. If it is set make ++ a copy and strip out trailing slashes. */ ++ if (GLRO(dl_origin_path) != NULL) ++ { ++ size_t len = strlen (GLRO(dl_origin_path)); ++ result = (char *) malloc (len + 1); ++ if (result == NULL) ++ result = (char *) -1; ++ else ++ { ++ char *cp = __mempcpy (result, GLRO(dl_origin_path), len); ++ while (cp > result + 1 && cp[-1] == '/') ++ --cp; ++ *cp = '\0'; ++ } ++ } ++ } ++ ++ return result; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-osinfo.h +@@ -0,0 +1,98 @@ ++/* Operating system specific code for generic dynamic loader functions. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#ifndef MIN ++# define MIN(a,b) (((a)<(b))?(a):(b)) ++#endif ++ ++#ifdef SHARED ++/* This is the function used in the dynamic linker to print the fatal error ++ message. */ ++static inline void ++__attribute__ ((__noreturn__)) ++dl_fatal (const char *str) ++{ ++ _dl_dprintf (2, str); ++ _exit (1); ++} ++#endif ++ ++#define DL_SYSDEP_OSCHECK(FATAL) \ ++ do { \ ++ /* Test whether the kernel is new enough. This test is only performed \ ++ if the library is not compiled to run on all kernels. */ \ ++ \ ++ int version = _dl_discover_osversion (); \ ++ if (__builtin_expect (version >= 0, 1)) \ ++ { \ ++ if (__builtin_expect (GLRO(dl_osversion) == 0, 1) \ ++ || GLRO(dl_osversion) > version) \ ++ GLRO(dl_osversion) = version; \ ++ \ ++ /* Now we can test with the required version. */ \ ++ if (__KFREEBSD_KERNEL_VERSION > 0 && \ ++ version < __KFREEBSD_KERNEL_VERSION) \ ++ /* Not sufficent. */ \ ++ FATAL ("FATAL: kernel too old\n"); \ ++ } \ ++ else if (__KFREEBSD_KERNEL_VERSION > 0) \ ++ FATAL ("FATAL: cannot determine kernel version\n"); \ ++ } while (0) ++ ++static inline uintptr_t __attribute__ ((always_inline)) ++_dl_setup_stack_chk_guard (void *dl_random) ++{ ++ uintptr_t ret; ++#ifdef ENABLE_STACKGUARD_RANDOMIZE ++ int fd = __open ("/dev/urandom", O_RDONLY); ++ if (fd >= 0) ++ { ++ ssize_t reslen = __read (fd, &ret, sizeof (ret)); ++ __close (fd); ++ if (reslen == (ssize_t) sizeof (ret)) ++ return ret; ++ } ++#endif ++ ret = 0; ++ unsigned char *p = (unsigned char *) &ret; ++ p[sizeof (ret) - 1] = 255; ++ p[sizeof (ret) - 2] = '\n'; ++ return ret; ++} ++ ++static inline uintptr_t __attribute__ ((always_inline)) ++_dl_setup_pointer_guard (void *dl_random, uintptr_t stack_chk_guard) ++{ ++ uintptr_t ret; ++ ++ ret = stack_chk_guard; ++# ifndef HP_TIMING_NONAVAIL ++ hp_timing_t now; ++ HP_TIMING_NOW (now); ++ ret ^= now; ++# endif ++ return ret; ++} ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-sysdep.c +@@ -0,0 +1,56 @@ ++/* Dynamic linker system dependencies for GNU/kFreeBSD. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* For SHARED, use the generic dynamic linker system interface code. */ ++/* otherwise the code is in dl-support.c */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef SHARED ++# include ++#endif ++ ++int ++attribute_hidden ++_dl_discover_osversion (void) ++{ ++ int request[2] = { CTL_KERN, KERN_OSRELDATE }; ++ size_t len; ++ int version; ++ ++ len = sizeof(version); ++ if (__sysctl (request, 2, &version, &len, NULL, 0) < 0) ++ return -1; ++ ++/* ++ * scheme is: Rxx ++ * 'R' is 0 if release branch or x.0-CURRENT before RELENG_*_0 ++ * is created, otherwise 1. ++ */ ++ ++ /* Convert to the GLIBC versioning system */ ++ return ((version / 100000) << 16) /* major */ ++ | (((version % 100000) / 1000) << 8) /* minor 0 - 99 */ ++ | ((version % 200)); /* subrelease 0 - 199 */ ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-sysdep.h +@@ -0,0 +1,26 @@ ++/* System-specific settings for dynamic linker code. Linux version. ++ Copyright (C) 2005, 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include_next ++ ++#ifndef __ASSEMBLER__ ++/* Get version of the OS. */ ++extern int _dl_discover_osversion (void) attribute_hidden; ++# define HAVE_DL_DISCOVER_OSVERSION 1 ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/faccessat.c +@@ -0,0 +1,172 @@ ++/* Test for access to file, relative to open directory. Linux version. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_faccessat (int fd, const char *path, int mode, int flag); ++libc_hidden_proto (__syscall_faccessat) ++ ++int ++faccessat (fd, file, mode, flag) ++ int fd; ++ const char *file; ++ int mode; ++ int flag; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result = INLINE_SYSCALL (faccessat, 4, fd, file, mode, flag); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (flag & ~(AT_SYMLINK_NOFOLLOW | AT_EACCESS)) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ if ((!(flag & AT_EACCESS) || !__libc_enable_secure) ++ && !(flag & AT_SYMLINK_NOFOLLOW)) ++ { ++ /* If we are not set-uid or set-gid, access does the same. */ ++ if (fd != AT_FDCWD && file[0] != '/') ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t filelen; ++ ++ if (fd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ filelen = strlen (file); ++ if (__builtin_expect (filelen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len + filelen); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = ++ (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, file); ++ file = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ return __access (file, mode); ++ } ++#endif ++ ++ struct stat64 stats; ++ if (fstatat64 (fd, file, &stats, flag & AT_SYMLINK_NOFOLLOW)) ++ return -1; ++ ++ mode &= (X_OK | W_OK | R_OK); /* Clear any bogus bits. */ ++#if R_OK != S_IROTH || W_OK != S_IWOTH || X_OK != S_IXOTH ++# error Oops, portability assumptions incorrect. ++#endif ++ ++ if (mode == F_OK) ++ return 0; /* The file exists. */ ++ ++ uid_t uid = (flag & AT_EACCESS) ? __geteuid () : __getuid (); ++ ++ /* The super-user can read and write any file, and execute any file ++ that anyone can execute. */ ++ if (uid == 0 && ((mode & X_OK) == 0 ++ || (stats.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))) ++ return 0; ++ ++ int granted = (uid == stats.st_uid ++ ? (unsigned int) (stats.st_mode & (mode << 6)) >> 6 ++ : (stats.st_gid == ((flag & AT_EACCESS) ++ ? __getegid () : __getgid ()) ++ || __group_member (stats.st_gid)) ++ ? (unsigned int) (stats.st_mode & (mode << 3)) >> 3 ++ : (stats.st_mode & mode)); ++ ++ if (granted == mode) ++ return 0; ++ ++ __set_errno (EACCES); ++ return -1; ++} ++stub_warning(faccessat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fchmodat.c +@@ -0,0 +1,139 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_fchmodat (int fd, const char *path, ++ mode_t mode, int flag); ++libc_hidden_proto (__syscall_fchmodat) ++ ++/* This is specific to kFreeBSD. */ ++extern int __lchmod (__const char *__file, __mode_t __mode); ++ ++int ++fchmodat (fd, file, mode, flag) ++ int fd; ++ const char *file; ++ mode_t mode; ++ int flag; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result = INLINE_SYSCALL (fchmodat, 4, fd, file, mode, flag); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (flag & ~AT_SYMLINK_NOFOLLOW) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ if (fd != AT_FDCWD && file[0] != '/') ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t filelen; ++ ++ if (fd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ filelen = strlen (file); ++ if (__builtin_expect (filelen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len + filelen); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, file); ++ file = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ if (flag & AT_SYMLINK_NOFOLLOW) ++ return __lchmod(file, mode); ++ else ++ return __chmod(file, mode); ++#endif ++} ++stub_warning(fchmodat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fchownat.c +@@ -0,0 +1,138 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_fchownat (int fd, const char *path, uid_t uid, ++ gid_t gid, int flag); ++libc_hidden_proto (__syscall_fchownat) ++ ++/* Change the owner and group of FILE. */ ++int ++fchownat (fd, file, owner, group, flag) ++ int fd; ++ const char *file; ++ uid_t owner; ++ gid_t group; ++ int flag; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result = INLINE_SYSCALL (fchownat, 5, fd, file, owner, group, flag); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (flag & ~AT_SYMLINK_NOFOLLOW) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ if (fd != AT_FDCWD && file[0] != '/') ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t filelen; ++ ++ if (fd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ filelen = strlen (file); ++ if (__builtin_expect (filelen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len + filelen); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, file); ++ file = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ if (flag & AT_SYMLINK_NOFOLLOW) ++ return __lchown(file, owner, group); ++ else ++ return __chown(file, owner, group); ++#endif ++} ++stub_warning(fchownat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fcntl.c +@@ -0,0 +1,69 @@ ++/* Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include /* Must come before . */ ++#include ++#include ++ ++#include ++ ++ ++#ifndef NO_CANCELLATION ++int ++__fcntl_nocancel (int fd, int cmd, ...) ++{ ++ va_list ap; ++ void *arg; ++ ++ va_start (ap, cmd); ++ arg = va_arg (ap, void *); ++ va_end (ap); ++ ++ return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg); ++} ++#endif ++ ++ ++int ++__libc_fcntl (int fd, int cmd, ...) ++{ ++ va_list ap; ++ void *arg; ++ ++ va_start (ap, cmd); ++ arg = va_arg (ap, void *); ++ va_end (ap); ++ ++ if (SINGLE_THREAD_P || cmd != F_SETLKW) ++ return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ++ int result = INLINE_SYSCALL (fcntl, 3, fd, cmd, arg); ++ ++ LIBC_CANCEL_RESET (oldtype); ++ ++ return result; ++} ++libc_hidden_def (__libc_fcntl) ++ ++weak_alias (__libc_fcntl, __fcntl) ++libc_hidden_weak (__fcntl) ++weak_alias (__libc_fcntl, fcntl) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fexecve.c +@@ -0,0 +1,104 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_fexecve (int fd, char *const argv[], char *const envp[]); ++libc_hidden_proto (__syscall_fexecve); ++ ++/* Execute the file FD refers to, overlaying the running program image. ++ ARGV and ENVP are passed to the new program, as for `execve'. */ ++int ++fexecve (fd, argv, envp) ++ int fd; ++ char *const argv[]; ++ char *const envp[]; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result = INLINE_SYSCALL (fexecve, 3, fd, argv, envp); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (fd < 0 || argv == NULL || envp == NULL) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type == KF_TYPE_VNODE && ++ kf->kf_vnode_type == KF_VTYPE_VREG) ++ return __execve (kf->kf_path, argv, envp); ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ __set_errno (EINVAL); ++ return -1; ++#endif ++} ++stub_warning(fexecve) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstat.c +@@ -0,0 +1,40 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__fhstat (const fhandle_t *fhp, struct stat *buf) ++{ ++ struct stat16 buf16; ++ ++ if (__syscall_fhstat (fhp, &buf16) < 0) ++ return -1; ++ ++ /* Convert a 'struct stat16' to 'struct stat'. */ ++ stat16_to_stat (&buf16, buf); ++ ++ return 0; ++} ++ ++weak_alias (__fhstat, fhstat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstat64.c +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++fhstat64 (const fhandle_t *fhp, struct stat64 *buf) ++{ ++ struct stat16 buf16; ++ ++ if (__syscall_fhstat (fhp, &buf16) < 0) ++ return -1; ++ ++ /* Convert a 'struct stat16' to 'struct stat64'. */ ++ stat16_to_stat64 (&buf16, buf); ++ ++ return 0; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstatfs.c +@@ -0,0 +1,35 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++int ++fhstatfs (const fhandle_t *fhp, struct statfs *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fhstatfs (fhp, &kbuf) < 0) ++ return -1; ++ ++ statfs5_to_statfs (&kbuf, buf); ++ ++ return 0; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstatfs64.c +@@ -0,0 +1,36 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++int ++fhstatfs64 (const fhandle_t *fhp, struct statfs64 *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fhstatfs (fhp, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statfs64'. */ ++ statfs5_to_statfs64 (&kbuf, buf); ++ ++ return 0; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatfs.c +@@ -0,0 +1,38 @@ ++/* Return information about the filesystem on which FD resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FD resides. */ ++int ++__fstatfs (int fd, struct statfs *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fstatfs (fd, &kbuf) < 0) ++ return -1; ++ ++ statfs5_to_statfs (&kbuf, buf); ++ ++ return 0; ++} ++weak_alias (__fstatfs, fstatfs) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatfs64.c +@@ -0,0 +1,40 @@ ++/* Return information about the filesystem on which FD resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FD resides. */ ++int ++__fstatfs64 (int fd, struct statfs64 *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fstatfs (fd, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statfs64'. */ ++ statfs5_to_statfs64 (&kbuf, buf); ++ ++ return 0; ++} ++ ++weak_alias (__fstatfs64, fstatfs64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatvfs.c +@@ -0,0 +1,40 @@ ++/* Return information about the filesystem on which FD resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FD resides. */ ++int ++fstatvfs (int fd, struct statvfs *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fstatfs (fd, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statvfs'. */ ++ statfs5_to_statvfs (&kbuf, buf); ++ ++ return 0; ++} ++libc_hidden_def (fstatvfs) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatvfs64.c +@@ -0,0 +1,41 @@ ++/* Return information about the filesystem on which FD resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FD resides. */ ++int ++__fstatvfs64 (int fd, struct statvfs64 *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fstatfs (fd, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statvfs64'. */ ++ statfs5_to_statvfs64 (&kbuf, buf); ++ ++ return 0; ++} ++ ++weak_alias (__fstatvfs64, fstatvfs64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ftruncate.c +@@ -0,0 +1,52 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_ftruncate (int __fd, __off_t __length) __THROW; ++libc_hidden_proto (__syscall_ftruncate) ++extern int __syscall_freebsd6_ftruncate (int __fd, int __unused1, ++ __off_t __length) __THROW; ++libc_hidden_proto (__syscall_freebsd6_ftruncate) ++ ++int ++__ftruncate (int fd, __off_t length) ++{ ++ int result; ++ ++ /* First try the new syscall. */ ++ result = INLINE_SYSCALL (ftruncate, 2, fd, length); ++ ++#ifndef __ASSUME_TRUNCATE_SYSCALL ++ if (result == -1 && errno == ENOSYS) ++ /* New syscall not available, us the old one. */ ++ result = INLINE_SYSCALL (freebsd6_ftruncate, 3, fd, 0, length); ++#endif ++ ++ return result; ++} ++ ++weak_alias (__ftruncate, ftruncate) ++ ++/* 'ftruncate64' is the same as 'ftruncate', because __off64_t == __off_t. */ ++strong_alias (__ftruncate, __ftruncate64) ++weak_alias (__ftruncate64, ftruncate64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ftruncate64.c +@@ -0,0 +1 @@ ++/* 'ftruncate64' is the same as 'ftruncate', because __off64_t == __off_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/futimesat.c +@@ -0,0 +1,139 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_futimesat (int fd, const char *path, ++ const struct timeval *times); ++libc_hidden_proto (__syscall_futimesat) ++ ++/* Change the access time of FILE relative to FD to TVP[0] and ++ the modification time of FILE to TVP[1]. */ ++int ++futimesat (fd, file, tvp) ++ int fd; ++ const char *file; ++ const struct timeval tvp[2]; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result; ++ ++ if (file == NULL) ++ return __futimes (fd, tvp); ++ ++ result = INLINE_SYSCALL (futimesat, 3, fd, file, tvp); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if ((file == NULL) || (fd != AT_FDCWD && file[0] != '/')) ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t filelen; ++ ++ if (fd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ filelen = strlen (file); ++ if (__builtin_expect (filelen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ if (file == NULL) ++ kf_buf = alloca (kf_len); ++ else ++ kf_buf = alloca (kf_len + filelen); ++ ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ if (file != NULL) ++ { ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, file); ++ } ++ file = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ return __utimes(file, tvp); ++#endif ++} ++stub_warning(futimesat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstat.c +@@ -0,0 +1,48 @@ ++/* fxstat using FreeBSD fstat, nfstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__fxstat (int vers, int fd, struct stat *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_fstat (fd, __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat (&buf16, buf); ++ return result; ++ } ++ else if (__builtin_expect (vers == _STAT_VER_stat, 1)) ++ return __syscall_fstat (fd, CHECK_1 ((struct stat16 *) buf)); ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__fxstat) ++ ++weak_alias (__fxstat, _fxstat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstat64.c +@@ -0,0 +1,44 @@ ++/* fxstat using FreeBSD fstat, nfstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__fxstat64 (int vers, int fd, struct stat64 *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_fstat (fd, __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat64 (&buf16, buf); ++ return result; ++ } ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__fxstat64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstatat.c +@@ -0,0 +1,159 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++extern int __syscall_fstatat (int fd, const char *path, ++ struct stat16 *buf, int flag); ++libc_hidden_proto (__syscall_fstatat) ++ ++/* Get information about the file NAME relative to FD in ST. */ ++int ++__fxstatat (int vers, int fd, const char *file, struct stat *st, int flag) ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result; ++ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ result = ++ INLINE_SYSCALL (fstatat, 4, fd, CHECK_STRING (file), ++ __ptrvalue (&buf16), flag); ++ if (result == 0) ++ stat16_to_stat (&buf16, st); ++ } ++ else if (__builtin_expect (vers == _STAT_VER_stat, 1)) ++ { ++ result = ++ INLINE_SYSCALL (fstatat, 4, fd, CHECK_STRING (file), ++ CHECK_1 ((struct stat16 *) st), flag); ++ } ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (flag & ~AT_SYMLINK_NOFOLLOW) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ if (fd != AT_FDCWD && file[0] != '/') ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t filelen; ++ ++ if (fd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ filelen = strlen (file); ++ if (__builtin_expect (filelen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len + filelen); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, file); ++ file = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ if (flag & AT_SYMLINK_NOFOLLOW) ++ return __lxstat (vers, file, st); ++ else ++ return __xstat (vers, file, st); ++#endif ++} ++ ++libc_hidden_def (__fxstatat) ++stub_warning(fstatat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstatat64.c +@@ -0,0 +1,153 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++extern int __syscall_fstatat (int fd, const char *path, ++ struct stat16 *buf, int flag); ++libc_hidden_proto (__syscall_fstatat) ++ ++/* Get information about the file NAME relative to FD in ST. */ ++int ++__fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag) ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result; ++ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ result = ++ INLINE_SYSCALL (fstatat, 4, fd, CHECK_STRING (file), ++ __ptrvalue (&buf16), flag); ++ if (result == 0) ++ stat16_to_stat64 (&buf16, st); ++ } ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (flag & ~AT_SYMLINK_NOFOLLOW) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ if (fd != AT_FDCWD && file[0] != '/') ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t filelen; ++ ++ if (fd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ filelen = strlen (file); ++ if (__builtin_expect (filelen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len + filelen); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, file); ++ file = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ if (flag & AT_SYMLINK_NOFOLLOW) ++ return __lxstat64 (vers, file, st); ++ else ++ return __xstat64 (vers, file, st); ++#endif ++} ++ ++libc_hidden_def (__fxstatat64) ++stub_warning(fstatat64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getcwd.c +@@ -0,0 +1,91 @@ ++/* Determine current working directory. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++/* The system calls only makes a lookup in the VFS cache, which can easily ++ fail. Therefore we use the generic version as a fallback. */ ++extern int __syscall_getcwd (char *__unbounded buf, unsigned int size); ++libc_hidden_proto (__syscall_getcwd) ++ ++static char *generic_getcwd (char *buf, size_t size) internal_function; ++ ++char * ++__getcwd (char *buf, size_t size) ++{ ++ char tmpbuf[PATH_MAX]; ++ ++ if (INLINE_SYSCALL (getcwd, 2, tmpbuf, PATH_MAX) >= 0) ++ { ++ size_t len = strlen (tmpbuf) + 1; ++ ++ if (size == 0) ++ { ++ if (__builtin_expect (buf != NULL, 0)) ++ { ++ __set_errno (EINVAL); ++ return NULL; ++ } ++ ++ buf = (char *) malloc (len); ++ if (__builtin_expect (buf == NULL, 0)) ++ { ++ __set_errno (ENOMEM); ++ return NULL; ++ } ++ } ++ else ++ { ++ if (size < len) ++ { ++ __set_errno (ERANGE); ++ return NULL; ++ } ++ ++ if (buf == NULL) ++ { ++ buf = (char *) malloc (size); ++ if (__builtin_expect (buf == NULL, 0)) ++ { ++ __set_errno (ENOMEM); ++ return NULL; ++ } ++ } ++ } ++ ++ memcpy (buf, tmpbuf, len); ++ return buf; ++ } ++ return generic_getcwd (buf, size); ++} ++ ++weak_alias (__getcwd, getcwd) ++ ++/* Get the code for the generic version. */ ++#define GETCWD_RETURN_TYPE static char * internal_function ++#define __getcwd generic_getcwd ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdents.c +@@ -0,0 +1,90 @@ ++/* Read directory entries, 3 argument function. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#if 1 ++ ++/* Use the 3-argument system call. */ ++ ++extern int __syscall_getdents (int fd, char *buf, size_t nbytes); ++libc_hidden_proto (__syscall_getdents) ++ ++/* Read directory entries from FD into BUF, reading at most NBYTES. ++ Returns the number of bytes read; zero when at end of directory; or ++ -1 for errors. */ ++ssize_t ++internal_function ++__getdents (int fd, char *buf, size_t nbytes) ++{ ++ return __syscall_getdents (fd, buf, nbytes); ++} ++ ++/* Export getdents(). Not an internal_function. */ ++ssize_t ++getdents (int fd, char *buf, size_t nbytes) ++{ ++ return __syscall_getdents (fd, buf, nbytes); ++} ++ ++#else ++ ++/* Use the 4-argument system call. */ ++ ++extern int __syscall_getdirentries (int fd, char *buf, unsigned int nbytes, ++ long *basep); ++ ++/* Read directory entries from FD into BUF, reading at most NBYTES. ++ Returns the number of bytes read; zero when at end of directory; or ++ -1 for errors. */ ++ssize_t ++internal_function ++__getdents (int fd, char *buf, size_t nbytes) ++{ ++ /* On 64-bit platforms, the system call differs from this function ++ because it takes an 'unsigned int', not a 'size_t'. */ ++ unsigned int nbytes32; ++ ++ nbytes32 = nbytes; ++ if (nbytes32 == nbytes) ++ return __syscall_getdirentries (fd, buf, nbytes32, NULL); ++ else ++ { ++ /* NBYTES is too large. */ ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++ ++/* Export getdents(). Not an internal_function. */ ++ssize_t ++getdents (int fd, char *buf, size_t nbytes) ++{ ++ return __getdents (fd, buf, nbytes); ++} ++ ++#endif ++ ++/* Since 'struct dirent64' == 'struct dirent', the functions '__getdents64' ++ and '__getdents' are equal. */ ++strong_alias (__getdents, __getdents64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdents64.c +@@ -0,0 +1 @@ ++/* We have the function getdirentries64 in file getdirentries64.c. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdirentries.c +@@ -0,0 +1,100 @@ ++/* Read directory entries, 4 argument function. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef GETDIRENTRIES ++# define GETDIRENTRIES getdirentries ++# define OFF_T off_t ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++ ++#if 1 ++ ++/* Use the 4-argument system call. */ ++ ++extern int __syscall_getdirentries (int fd, char *buf, unsigned int nbytes, ++ long *basep); ++ ++/* Read directory entries from FD into BUF, reading at most NBYTES. ++ Reading starts at offset *BASEP, and *BASEP is updated with the new ++ position after reading. Returns the number of bytes read; zero when at ++ end of directory; or -1 for errors. */ ++/* FIXME: This is not what this function does. It starts reading at the ++ current position of FD, not at *BASEP. */ ++ssize_t ++GETDIRENTRIES (int fd, char *buf, size_t nbytes, OFF_T *basep) ++{ ++ /* On 32-bit platforms, the system call differs from this function because ++ it takes a 'long *', not an 'OFF_T *'. On 64-bit platforms, the system ++ call differs from this function because it takes an 'unsigned int', not ++ a 'size_t'. */ ++ unsigned int nbytes32; ++ ++ nbytes32 = nbytes; ++ if (nbytes32 == nbytes) ++ { ++ long base; ++ int result = __syscall_getdirentries (fd, buf, nbytes32, &base); ++ ++ if (result >= 0 && basep != NULL) ++ *basep = base; ++ return result; ++ } ++ else ++ { ++ /* NBYTES is too large. */ ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++ ++#else ++ ++/* Use the 3-argument system call. */ ++ ++extern int __syscall_getdents (int fd, char *buf, size_t nbytes); ++ ++/* Read directory entries from FD into BUF, reading at most NBYTES. ++ Reading starts at offset *BASEP, and *BASEP is updated with the new ++ position after reading. Returns the number of bytes read; zero when at ++ end of directory; or -1 for errors. */ ++/* FIXME: This is not what this function does. It starts reading at the ++ current position of FD, not at *BASEP. */ ++ssize_t ++GETDIRENTRIES (int fd, char *buf, size_t nbytes, OFF_T *basep) ++{ ++ OFF_T base = 0; ++ ssize_t result; ++ ++ if (basep) ++ base = __lseek (fd, (off_t) 0, SEEK_CUR); ++ ++ result = __syscall_getdents (fd, buf, nbytes); ++ ++ if (basep && result >= 0) ++ *basep = base; ++ return result; ++} ++ ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdirentries64.c +@@ -0,0 +1,5 @@ ++/* Since 'struct dirent64' == 'struct dirent', the functions 'getdirentries64' ++ and 'getdirentries' differ only in the type of the BASEP argument. */ ++#define GETDIRENTRIES getdirentries64 ++#define OFF_T off64_t ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdomain.c +@@ -0,0 +1,50 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++/* Put the name of the current domain in no more than LEN bytes of NAME. ++ The result is null-terminated if LEN is large enough for the full ++ name and the terminator. */ ++ ++int ++getdomainname (char *name, size_t len) ++{ ++ /* Fetch the "kern.domainname" sysctl value. */ ++ int request[2] = { CTL_KERN, KERN_NISDOMAINNAME }; ++ size_t result_len = len; ++ ++ if (__sysctl (request, 2, name, &result_len, NULL, 0) < 0) ++ { ++ if (errno == ENOMEM) ++ __set_errno (ENAMETOOLONG); ++ return -1; ++ } ++ ++ if (result_len >= len) ++ { ++ __set_errno (ENAMETOOLONG); ++ return -1; ++ } ++ ++ name[result_len] = '\0'; ++ return 0; ++} ++libc_hidden_def (getdomainname) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getfsstat.c +@@ -0,0 +1,49 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++int ++__getfsstat (struct statfs *buf, long bufsize, int flags) ++{ ++ long bufcount; ++ struct statfs_fbsd5 *tmpbuf; ++ int count, i; ++ ++ if (bufsize < 0) ++ bufsize = 0; ++ bufcount = bufsize / sizeof (struct statfs); ++ ++ if ((bufcount == 0) || (buf == NULL)) ++ tmpbuf = NULL; ++ else ++ tmpbuf = alloca(bufcount * sizeof (struct statfs_fbsd5)); ++ ++ count = __syscall_getfsstat (tmpbuf, bufcount * sizeof (struct statfs_fbsd5), flags); ++ if (tmpbuf && count > 0) ++ for (i = count - 1; i >= 0; i--) ++ statfs5_to_statfs (&tmpbuf[i], &buf[i]); ++ ++ return count; ++} ++ ++weak_alias (__getfsstat, getfsstat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getfsstat64.c +@@ -0,0 +1,49 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++int ++__getfsstat64 (struct statfs64 *buf, long bufsize, int flags) ++{ ++ long bufcount; ++ struct statfs_fbsd5 *tmpbuf; ++ int count, i; ++ ++ if (bufsize < 0) ++ bufsize = 0; ++ bufcount = bufsize / sizeof (struct statfs64); ++ ++ if ((bufcount == 0) || (buf == NULL)) ++ tmpbuf = NULL; ++ else ++ tmpbuf = alloca(bufcount * sizeof (struct statfs_fbsd5)); ++ ++ count = __syscall_getfsstat (tmpbuf, bufcount * sizeof (struct statfs_fbsd5), flags); ++ if (tmpbuf && count > 0) ++ for (i = count - 1; i >= 0; i--) ++ statfs5_to_statfs64 (&tmpbuf[i], &buf[i]); ++ ++ return count; ++} ++ ++weak_alias (__getfsstat64, getfsstat64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/gethostid.c +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* Return the current machine's Internet number. */ ++long int ++gethostid (void) ++{ ++ /* Fetch sysctl value of "kern.hostid". */ ++ int request[2] = { CTL_KERN, KERN_HOSTID }; ++ int result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ /* Dummy result. */ ++ return 0; ++ ++ return result; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/gethostname.c +@@ -0,0 +1,52 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++/* Put the name of the current host in no more than LEN bytes of NAME. ++ The result is null-terminated if LEN is large enough for the full ++ name and the terminator. */ ++ ++int ++__gethostname (char *name, size_t len) ++{ ++ /* Fetch the "kern.hostname" sysctl value. */ ++ int request[2] = { CTL_KERN, KERN_HOSTNAME }; ++ size_t result_len = len; ++ ++ if (__sysctl (request, 2, name, &result_len, NULL, 0) < 0) ++ { ++ if (errno == ENOMEM) ++ __set_errno (ENAMETOOLONG); ++ return -1; ++ } ++ ++ if (result_len >= len) ++ { ++ __set_errno (ENAMETOOLONG); ++ return -1; ++ } ++ ++ name[result_len] = '\0'; ++ return 0; ++} ++ ++weak_alias (__gethostname, gethostname) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getloadavg.c +@@ -0,0 +1,53 @@ ++/* Get system load averages. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++struct loadavg ++ { ++ unsigned int ldavg[3]; ++ long fscale; ++ }; ++ ++/* Put the 1 minute, 5 minute and 15 minute load averages into the first ++ NELEM elements of LOADAVG. Return the number written (never more than ++ three, but may be less than NELEM), or -1 if an error occurred. */ ++int ++getloadavg (double loadavg[], int nelem) ++{ ++ if (nelem > 3) ++ nelem = 3; ++ if (nelem > 0) ++ { ++ /* Fetch the "vm.loadavg" sysctl value. */ ++ int request[2] = { CTL_VM, VM_LOADAVG }; ++ struct loadavg result; ++ size_t result_len = sizeof (result); ++ int i; ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ return -1; ++ ++ for (i = 0; i < nelem; i++) ++ loadavg[i] = (double) result.ldavg[i] / (double) result.fscale; ++ } ++ return nelem; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getlogin.c +@@ -0,0 +1,50 @@ ++/* Non-reentrant function to return the current login name. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Defined in getlogin_r.c. */ ++extern char *__getlogin_cache; ++extern char __getlogin_cache_room[MAXLOGNAME]; ++ ++extern int __syscall_getlogin (char *__name, size_t __name_len); ++libc_hidden_proto (__syscall_getlogin) ++ ++/* Return the login name of the user, or NULL if it can't be determined. ++ The returned pointer, if not NULL, is good only until the next call. */ ++ ++char * ++getlogin (void) ++{ ++ if (__getlogin_cache == NULL) ++ { ++ if (INLINE_SYSCALL (getlogin, 2, __getlogin_cache_room, MAXLOGNAME) < 0) ++ return NULL; ++ /* The system call should return a NULL terminated name. */ ++ if (__memchr (__getlogin_cache_room, '\0', MAXLOGNAME) == NULL) ++ abort (); ++ __getlogin_cache = __getlogin_cache_room; ++ } ++ return (__getlogin_cache[0] ? __getlogin_cache : NULL); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getlogin_r.c +@@ -0,0 +1,70 @@ ++/* Reentrant function to return the current login name. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Cache the system call's return value. */ ++char *__getlogin_cache; ++/* The kernel never returns more than MAXLOGNAME bytes, therefore we don't ++ need more than that either. */ ++char __getlogin_cache_room[MAXLOGNAME]; ++ ++extern int __syscall_getlogin (char *__name, size_t __name_len); ++libc_hidden_proto (__syscall_getlogin) ++ ++/* Return at most NAME_LEN characters of the login name of the user in NAME. ++ If it cannot be determined or some other error occurred, return the error ++ code. Otherwise return 0. ++ Note that the getlogin_r function in FreeBSD libc returns a 'char *', ++ but SUSV2 wants a return type of 'int'. */ ++ ++int ++getlogin_r (char *name, size_t name_len) ++{ ++ size_t len; ++ ++ if (__getlogin_cache == NULL) ++ { ++ if (INLINE_SYSCALL (getlogin, 2, __getlogin_cache_room, MAXLOGNAME) < 0) ++ return -1; ++ /* The system call should return a NULL terminated name. */ ++ if (__memchr (__getlogin_cache_room, '\0', MAXLOGNAME) == NULL) ++ abort (); ++ __getlogin_cache = __getlogin_cache_room; ++ } ++ ++ len = strlen (__getlogin_cache); ++ if (__builtin_expect (len < name_len, 1)) ++ { ++ memcpy (name, __getlogin_cache, len + 1); ++ return 0; ++ } ++ else ++ { ++ __set_errno (ERANGE); ++ return -1; ++ } ++} ++libc_hidden_def (getlogin_r) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getmntinfo.c +@@ -0,0 +1,80 @@ ++/* Return list of mounted filesystems. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++static int mntbufsize; ++static struct statfs *mntbuf; ++ ++/* Return list of mounted filesystems. ++ Inherently not multithread-safe. */ ++int ++__getmntinfo (struct statfs **mntbufp, int flags) ++{ ++ for (;;) ++ { ++ int count = __getfsstat (NULL, 0, flags); ++ int count2; ++ ++ if (count < 0) ++ return 0; ++ ++ if (count == 0) ++ { ++ __set_errno (0); ++ return 0; ++ } ++ ++ if (count > mntbufsize) ++ { ++ if (mntbuf != NULL) ++ free (mntbuf); ++ mntbufsize = 0; ++ mntbuf = (struct statfs *) malloc (count * sizeof (struct statfs)); ++ if (mntbuf == NULL) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ mntbufsize = count; ++ } ++ ++ count2 = __getfsstat (mntbuf, count * sizeof (struct statfs), flags); ++ ++ if (count2 < 0) ++ return 0; ++ ++ if (count2 == 0) ++ { ++ __set_errno (0); ++ return 0; ++ } ++ ++ if (count2 <= count) ++ { ++ *mntbufp = mntbuf; ++ return count2; ++ } ++ } ++} ++ ++weak_alias (__getmntinfo, getmntinfo) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getmntinfo64.c +@@ -0,0 +1,78 @@ ++/* Return list of mounted filesystems. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++static int mntbufsize; ++static struct statfs64 *mntbuf; ++ ++/* Return list of mounted filesystems. ++ Inherently not multithread-safe. */ ++int ++getmntinfo64 (struct statfs64 **mntbufp, int flags) ++{ ++ for (;;) ++ { ++ int count = __getfsstat64 (NULL, 0, flags); ++ int count2; ++ ++ if (count < 0) ++ return 0; ++ ++ if (count == 0) ++ { ++ __set_errno (0); ++ return 0; ++ } ++ ++ if (count > mntbufsize) ++ { ++ if (mntbuf != NULL) ++ free (mntbuf); ++ mntbufsize = 0; ++ mntbuf = (struct statfs64 *) malloc (count * sizeof (struct statfs64)); ++ if (mntbuf == NULL) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ mntbufsize = count; ++ } ++ ++ count2 = __getfsstat64 (mntbuf, count * sizeof (struct statfs64), flags); ++ ++ if (count2 < 0) ++ return 0; ++ ++ if (count2 == 0) ++ { ++ __set_errno (0); ++ return 0; ++ } ++ ++ if (count2 <= count) ++ { ++ *mntbufp = mntbuf; ++ return count2; ++ } ++ } ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getpagesize.c +@@ -0,0 +1,42 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* Return the system page size. */ ++int ++__getpagesize (void) ++{ ++ static int cached_pagesize /* = 0 */; ++ ++ if (cached_pagesize == 0) ++ { ++ /* Fetch sysctl value of "hw.pagesize". */ ++ int request[2] = { CTL_HW, HW_PAGESIZE }; ++ size_t result_len = sizeof (cached_pagesize); ++ ++ if (__sysctl (request, 2, &cached_pagesize, &result_len, NULL, 0) < 0) ++ return -1; ++ } ++ return cached_pagesize; ++} ++libc_hidden_def (__getpagesize) ++ ++weak_alias (__getpagesize, getpagesize) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getpt.c +@@ -0,0 +1,92 @@ ++/* Copyright (C) 1998-1999, 2000-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++ ++/* Prefix for master pseudo terminal nodes. */ ++#define _PATH_PTY "/dev/pty" ++ ++ ++/* Letters indicating a series of pseudo terminals. */ ++#ifndef PTYNAME1 ++#define PTYNAME1 "pqrs" ++#endif ++const char __libc_ptyname1[] attribute_hidden = PTYNAME1; ++ ++/* Letters indicating the position within a series. */ ++#ifndef PTYNAME2 ++#define PTYNAME2 "0123456789abcdefghijklmnopqrstuv"; ++#endif ++const char __libc_ptyname2[] attribute_hidden = PTYNAME2; ++ ++ ++/* Open a master pseudo terminal and return its file descriptor. */ ++int ++__posix_openpt (int oflag) ++{ ++ char buf[sizeof (_PATH_PTY) + 2]; ++ const char *p, *q; ++ char *s; ++ ++ s = __mempcpy (buf, _PATH_PTY, sizeof (_PATH_PTY) - 1); ++ /* s[0] and s[1] will be filled in the loop. */ ++ s[2] = '\0'; ++ ++ for (p = __libc_ptyname1; *p != '\0'; ++p) ++ { ++ s[0] = *p; ++ ++ for (q = __libc_ptyname2; *q != '\0'; ++q) ++ { ++ int fd; ++ ++ s[1] = *q; ++ ++ fd = __open (buf, oflag); ++ if (fd >= 0) ++ { ++ if (!(oflag & O_NOCTTY)) ++ __ioctl (fd, TIOCSCTTY, NULL); ++ ++ return fd; ++ } ++ ++ if (errno == ENOENT) ++ return -1; ++ } ++ } ++ ++ __set_errno (ENOENT); ++ return -1; ++} ++ ++weak_alias (__posix_openpt, posix_openpt) ++ ++ ++int ++__getpt (void) ++{ ++ return __posix_openpt (O_RDWR); ++} ++ ++weak_alias (__getpt, getpt) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getrlimit64.c +@@ -0,0 +1 @@ ++/* 'getrlimit64' is the same as 'getrlimit', because __rlim64_t == __rlim_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getsysstats.c +@@ -0,0 +1,108 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++ ++int ++__get_nprocs (void) ++{ ++ /* Fetch sysctl value of "hw.ncpu". */ ++ int request[2] = { CTL_HW, HW_NCPU }; ++ int result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ /* Dummy result. */ ++ return 1; ++ ++ return result; ++} ++ ++weak_alias (__get_nprocs, get_nprocs) ++ ++ ++int ++__get_nprocs_conf (void) ++{ ++ /* We don't know how to distinguish between configured and active CPUs. */ ++ return __get_nprocs (); ++} ++ ++weak_alias (__get_nprocs_conf, get_nprocs_conf) ++ ++ ++long int ++__get_phys_pages (void) ++{ ++ /* Fetch sysctl value of "hw.physmem". This is a little smaller than ++ the real installed memory size, but so what. */ ++ int request[2] = { CTL_HW, HW_PHYSMEM }; ++ int result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ return -1; ++ ++ return result; ++} ++ ++weak_alias (__get_phys_pages, get_phys_pages) ++ ++ ++long int ++__get_avphys_pages (void) ++{ ++#if 1 ++ int result1; ++ int result2; ++ { ++ /* Fetch sysctl value of "vm.stats.vm.v_inactive_count". */ ++ size_t result_len = sizeof (result1); ++ ++ if (__sysctlbyname ("vm.stats.vm.v_inactive_count", &result1, &result_len, ++ NULL, 0) < 0) ++ return -1; ++ } ++ { ++ /* Fetch sysctl value of "vm.stats.vm.v_free_count". */ ++ size_t result_len = sizeof (result2); ++ ++ if (__sysctlbyname ("vm.stats.vm.v_free_count", &result2, &result_len, ++ NULL, 0) < 0) ++ return -1; ++ } ++ ++ return result1 + result2; ++#else ++ /* This does not appear to work. */ ++ /* Fetch v_inactive_count field of sysctl value of "vm.vmmeter". */ ++ int request[2] = { CTL_VM, VM_METER }; ++ struct vmmeter result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ return -1; ++ ++ return result.v_inactive_count; ++#endif ++} ++ ++weak_alias (__get_avphys_pages, get_avphys_pages) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/glob.c +@@ -0,0 +1,3 @@ ++/* 'glob64' is different from 'glob', because ++ 'struct stat64' != 'struct stat'. */ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/glob64.c +@@ -0,0 +1,3 @@ ++/* 'glob64' is different from 'glob', because ++ 'struct stat64' != 'struct stat'. */ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/gtty.c +@@ -0,0 +1,2 @@ ++/* use stub only variant */ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/Makefile +@@ -0,0 +1,19 @@ ++# Additional header files to be installed in $prefix/include: ++ ++ifeq ($(subdir),misc) ++sysdep_headers += \ ++ sys/io.h \ ++ sys/perm.h \ ++ sys/vm86.h ++endif ++ ++# Additional functions, and particular system calls: ++ ++ifeq ($(subdir),misc) ++# For and . ++sysdep_routines += i386_get_ioperm i386_set_ioperm iopl ++# For . ++sysdep_routines += i386_vm86 ++# For . ++sysdep_routines += i386_get_ldt i386_set_ldt ++endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/Versions +@@ -0,0 +1,7 @@ ++libc { ++ GLIBC_2.2.6 { ++ i386_get_ioperm; i386_set_ioperm; i386_vm86; ++ ioperm; iopl; ++ i386_get_ldt; i386_set_ldt; ++ } ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/____longjmp_chk.S +@@ -0,0 +1,7 @@ ++/* Jump to the position specified by ENV, causing the ++ setjmp call there to return VAL, or 1 if VAL is 0. ++ void __longjmp (__jmp_buf env, int val). */ ++ ++#warning longjmp_chk unimplemented ++#define __longjmp ____longjmp_chk ++#include<__longjmp.S> +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/mcontext.h +@@ -0,0 +1,111 @@ ++/* Machine-dependent processor state structure for FreeBSD. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. i386 version. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++/*- ++ * Copyright (c) 1999 Marcel Moolenaar ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer ++ * in this position and unchanged. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ * ++ * based on $FreeBSD: src/sys/i386/include/ucontext.h,v 1.10 2002/12/02 19:58:55 deischen Exp $ ++ */ ++ ++/* Whole processor state. */ ++typedef struct ++ { ++ /* ++ * The first 20 fields must match the definition of ++ * sigcontext. So that we can support sigcontext ++ * and ucontext_t at the same time. ++ */ ++ ++ int mc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* Segment registers. */ ++ int mc_gs; ++ int mc_fs; ++ int mc_es; ++ int mc_ds; ++ ++ /* "General" registers. These members are in the order that the i386 ++ `pusha' and `popa' instructions use (`popa' ignores %esp). */ ++ int mc_edi; ++ int mc_esi; ++ int mc_ebp; ++ int mc_isp; /* Not used; sc_esp is used instead. */ ++ int mc_ebx; ++ int mc_edx; ++ int mc_ecx; ++ int mc_eax; ++ ++ int mc_trapno; ++ int mc_err; ++ ++ int mc_eip; /* Instruction pointer. */ ++ int mc_cs; /* Code segment register. */ ++ ++ int mc_efl; /* Processor flags. */ ++ ++ int mc_esp; /* This stack pointer is used. */ ++ int mc_ss; /* Stack segment register. */ ++ ++ int mc_len; /* sizeof(mcontext_t) */ ++#define _MC_FPFMT_NODEV 0x10000 /* device not present or configured */ ++#define _MC_FPFMT_387 0x10001 ++#define _MC_FPFMT_XMM 0x10002 ++ int mc_fpformat; ++#define _MC_FPOWNED_NONE 0x20000 /* FP state not used */ ++#define _MC_FPOWNED_FPU 0x20001 /* FP state came from FPU */ ++#define _MC_FPOWNED_PCB 0x20002 /* FP state came from PCB */ ++ int mc_ownedfp; ++ int mc_spare1[1]; /* align next field to 16 bytes */ ++ /* ++ * See for the internals of mc_fpstate[]. ++ */ ++ int mc_fpstate[128] __attribute__((aligned(16))); ++ int mc_spare2[8]; ++ } mcontext_t; ++ ++/* Traditional BSD names for some members. */ ++#define mc_eflags mc_efl +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/sigcontext.h +@@ -0,0 +1,97 @@ ++/* Machine-dependent signal context structure for FreeBSD. i386 version. ++ Copyright (C) 1991-1992,1994,1997,2001-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++#ifndef _BITS_SIGCONTEXT_H ++#define _BITS_SIGCONTEXT_H 1 ++ ++/* State of this thread when the signal was taken. ++ The unions below are for compatibility with Linux (whose sigcontext ++ components don't have sc_ prefix) */ ++__extension__ struct sigcontext ++ { ++ __sigset_t sc_mask; /* Blocked signals to restore. */ ++ int sc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* Segment registers. */ ++ union { int sc_gs; int gs; }; ++ union { int sc_fs; int fs; }; ++ union { int sc_es; int es; }; ++ union { int sc_ds; int ds; }; ++ ++ /* "General" registers. These members are in the order that the i386 ++ `pusha' and `popa' instructions use (`popa' ignores %esp). */ ++ union { int sc_edi; int edi; }; ++ union { int sc_esi; int esi; }; ++ union { int sc_ebp; int ebp; }; ++ union { int sc_isp; int isp; }; /* Not used; sc_esp is used instead. */ ++ union { int sc_ebx; int ebx; }; ++ union { int sc_edx; int edx; }; ++ union { int sc_ecx; int ecx; }; ++ union { int sc_eax; int eax; }; ++ ++ union { int sc_trapno; int trapno; }; ++ union { int sc_err; int err; }; ++ ++ union { int sc_eip; int eip; }; /* Instruction pointer. */ ++ union { int sc_cs; int cs; }; /* Code segment register. */ ++ ++ union { int sc_efl; int eflags; }; /* Processor flags. */ ++ ++ union { int sc_esp; int esp; }; /* This stack pointer is used. */ ++ union { int sc_ss; int ss; }; /* Stack segment register. */ ++ ++ int sc_len; /* sizeof(mcontext_t) */ ++ /* ++ * XXX - See and for ++ * the following fields. ++ */ ++ int sc_fpformat; ++ int sc_ownedfp; ++ int sc_spare1[1]; ++ int sc_fpstate[128] __attribute__((aligned(16))); ++ int sc_spare2[8]; ++ }; ++ ++/* Traditional BSD names for some members. */ ++#define sc_sp sc_esp /* Stack pointer. */ ++#define sc_fp sc_ebp /* Frame pointer. */ ++#define sc_pc sc_eip /* Process counter. */ ++#define sc_ps sc_efl ++#define sc_eflags sc_efl ++ ++#if 1 /* FIXME: These need verification. */ ++ ++/* Codes for SIGILL. */ ++#define ILL_PRIVIN_FAULT 1 ++#define ILL_ALIGN_FAULT 14 ++#define ILL_FPOP_FAULT 24 ++ ++/* Codes for SIGBUS. */ ++#define BUS_PAGE_FAULT 12 ++#define BUS_SEGNP_FAULT 26 ++#define BUS_STK_FAULT 27 ++#define BUS_SEGM_FAULT 29 ++ ++#endif ++ ++#endif /* _BITS_SIGCONTEXT_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/dl-machine.h +@@ -0,0 +1,149 @@ ++/* Machine-dependent ELF dynamic relocation inline functions. ++ FreeBSD i386 specific version of dl_platform_init() ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++/* For FreeBSD we redefine an initialization function. ++ This is called very early in dl_sysdep_start. */ ++ ++#if 0 ++Under FreeBSD: ++#define AT_EXECPATH 15 /* Path to the executable. */ ++ ++Under Linux: ++#define AT_PLATFORM 15 /* String identifying platform. */ ++ ++Filled entries from kernel: ++ ++ if (args->execfd != -1) ++ AUXARGS_ENTRY(pos, AT_EXECFD, args->execfd); ++ AUXARGS_ENTRY(pos, AT_PHDR, args->phdr); ++ AUXARGS_ENTRY(pos, AT_PHENT, args->phent); ++ AUXARGS_ENTRY(pos, AT_PHNUM, args->phnum); ++ AUXARGS_ENTRY(pos, AT_PAGESZ, args->pagesz); ++ AUXARGS_ENTRY(pos, AT_FLAGS, args->flags); ++ AUXARGS_ENTRY(pos, AT_ENTRY, args->entry); ++ AUXARGS_ENTRY(pos, AT_BASE, args->base); ++ if (imgp->execpathp != 0) ++ AUXARGS_ENTRY(pos, AT_EXECPATH, imgp->execpathp); ++ AUXARGS_ENTRY(pos, AT_NULL, 0); ++ ++#endif ++ ++#include_next ++ ++#undef DL_PLATFORM_INIT ++#define DL_PLATFORM_INIT dl_platform_kfreebsd_i386_init () ++ ++#ifndef _DL_MACHINE_KFREEBSD ++#define _DL_MACHINE_KFREEBSD ++ ++#define X86_EFLAGS_AC 0x00040000 /* Alignment Check */ ++#define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ ++ ++static inline int try_flip_flags(int val) ++{ ++ int ret; ++ __asm__( ++ "pushfl\n\t" ++ "pushfl\n\t" ++ "popl %%ecx\n\t" ++ "xorl %%ecx,%%eax\n\t" ++ "pushl %%eax\n\t" ++ "popfl\n\t" ++ "pushfl\n\t" ++ "popl %%eax\n\t" ++ "xorl %%ecx,%%eax\n\t" ++ "popfl\n\t" ++ : "=a" (ret) ++ : "0" (val) ++ : "cx" ++ ); ++ return ret; ++} ++ ++static inline void cpuid(int op, int *eax, int *edx) ++{ ++ __asm__( ++ "push %%ebx\n\t" ++ "cpuid\n\t" ++ "pop %%ebx\n\t" ++ : "=a" (*eax), ++ "=d" (*edx) ++ : "0" (op) ++ : "cx" ++ ); ++} ++ ++extern const char *_self_program_name_from_auxv attribute_hidden; ++ ++static inline void __attribute__ ((unused)) ++dl_platform_kfreebsd_i386_init (void) ++{ ++ /* we don't have reasonable AT_PLATFORM from kernel ++ try to use cpuid to get one, also guess AT_HWCAP */ ++ ++ _self_program_name_from_auxv = GLRO(dl_platform); ++ ++ int val, hwcap; ++ ++ val = try_flip_flags(X86_EFLAGS_AC | X86_EFLAGS_ID); ++ ++ if (!(val & X86_EFLAGS_AC)) ++ { ++ /* 386 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[0]; ++ GLRO(dl_hwcap) = 0; ++ } ++ else if (!(val & X86_EFLAGS_ID)) ++ { ++ /* 486 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[1]; ++ GLRO(dl_hwcap) = 0; ++ } ++ else ++ { ++ cpuid(0, &val, &hwcap); ++ if (val == 0) ++ { ++ /* 486 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[1]; ++ GLRO(dl_hwcap) = 0; ++ } ++ else ++ { ++ cpuid(1, &val, &hwcap); ++ GLRO(dl_hwcap) = hwcap; ++ switch (val & 0xf00) ++ { ++ case 0x400: /* 486 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[1]; ++ break; ++ case 0x500: /* 586 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[2]; ++ break; ++ default: /* 686 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[3]; ++ } ++ } ++ } ++} ++ ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/dl-procinfo.h +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/get_clockfreq.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/getcontext.S +@@ -0,0 +1,38 @@ ++/* Save current context. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++.text ++ENTRY(__getcontext) ++ clc ++ movl 0(%esp), %ecx /* save the return PC value */ ++ ++ DO_CALL (getcontext, 1) ++ jb SYSCALL_ERROR_LABEL ++ ++ addl $4, %esp /* remove stale return address */ ++ jmp *%ecx ++ ++L(pseudo_end): ++ ret ++ ++PSEUDO_END(__getcontext) ++ ++weak_alias(__getcontext, getcontext) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_get_ioperm.c +@@ -0,0 +1,36 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++int ++i386_get_ioperm (unsigned long int from, unsigned long int *num, int *turned_on) ++{ ++ struct i386_ioperm_args args; ++ ++ args.start = from; ++ ++ if (__sysarch (I386_GET_IOPERM, &args) < 0) ++ return -1; ++ ++ *num = args.length; ++ *turned_on = args.enable; ++ ++ return 0; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_get_ldt.c +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ Contributed by Robert Millan ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++int ++i386_get_ldt (int from, union descriptor *descs, int num) ++{ ++ struct i386_ldt_args args; ++ ++ args.start = from; ++ args.descs = descs; ++ args.num = num; ++ ++ if (__sysarch (I386_GET_LDT, &args) < 0) ++ return -1; ++ ++ return 0; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_set_ioperm.c +@@ -0,0 +1,34 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++int ++i386_set_ioperm (unsigned long int from, unsigned long int num, int turn_on) ++{ ++ struct i386_ioperm_args args; ++ ++ args.start = from; ++ args.length = num; ++ args.enable = turn_on; ++ ++ return __sysarch (I386_SET_IOPERM, &args); ++} ++ ++strong_alias (i386_set_ioperm, ioperm) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_set_ldt.c +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ Contributed by Robert Millan ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++int ++i386_set_ldt (int from, union descriptor *descs, int num) ++{ ++ struct i386_ldt_args args; ++ ++ args.start = from; ++ args.descs = descs; ++ args.num = num; ++ ++ if (__sysarch (I386_SET_LDT, &args) < 0) ++ return -1; ++ ++ return 0; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_vm86.c +@@ -0,0 +1,31 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++int ++i386_vm86 (int cmd, void *arg) ++{ ++ struct i386_vm86_args args; ++ ++ args.sub_op = cmd; ++ args.sub_args = arg; ++ ++ return __sysarch (I386_VM86, &args); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i486/linuxthreads/pt-machine.h +@@ -0,0 +1,8 @@ ++ ++/* i486+ is almost same as plain i386 version */ ++#include_next ++ ++/* but compare-and-swap is always available */ ++ ++#undef TEST_FOR_COMPARE_AND_SWAP ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i586/linuxthreads/pt-machine.h +@@ -0,0 +1,8 @@ ++ ++/* i486+ is almost same as plain i386 version */ ++#include_next ++ ++/* but compare-and-swap is always available */ ++ ++#undef TEST_FOR_COMPARE_AND_SWAP ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i686/linuxthreads/pt-machine.h +@@ -0,0 +1,8 @@ ++ ++/* i486+ is almost same as plain i386 version */ ++#include_next ++ ++/* but compare-and-swap is always available */ ++ ++#undef TEST_FOR_COMPARE_AND_SWAP ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/iopl.c +@@ -0,0 +1,54 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Robert Millan ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include /* open */ ++#include /* close */ ++ ++static int __iopl_fd = -1; ++ ++int ++iopl (int level) ++ { ++ switch (level) ++ { ++ case 3: ++ if (__iopl_fd != -1) ++ return 0; ++ ++ __iopl_fd = __open ("/dev/io", O_RDWR); ++ if (__iopl_fd == -1) ++ { ++ if (errno == EACCES) ++ __set_errno (EPERM); ++ return -1; ++ } ++ return 0; ++ ++ case 0: ++ if (__iopl_fd != -1) ++ if (__close (__iopl_fd) == -1) ++ return 1; ++ return 0; ++ ++ default: ++ __set_errno (EINVAL); ++ return -1; ++ } ++ } +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/ldconfig.h +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++#define SYSDEP_KNOWN_INTERPRETER_NAMES \ ++ { "/lib/ld.so.1", FLAG_ELF_LIBC6 }, \ ++ { "/libexec/ld-elf.so.1", FLAG_ELF_LIBC5 }, ++ ++#define SYSDEP_KNOWN_LIBRARY_NAMES \ ++ { "libc.so.0.1", FLAG_ELF_LIBC6 }, \ ++ { "libm.so.1", FLAG_ELF_LIBC6 }, \ ++ { "libc.so.4", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.4", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.5", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.5", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.6", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.6", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.7", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.7", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.8", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.8", FLAG_ELF_LIBC5 }, +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/pt-machine.h +@@ -0,0 +1,76 @@ ++/* Machine-dependent pthreads configuration and inline functions. ++ ix86 version for FreeBSD. ++ Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _FREEBSD_PT_MACHINE_H ++#define _FREEBSD_PT_MACHINE_H 1 ++ ++/* ++ some parts are common with linux/i386 version ++ ++ linux specific parts should be in ++ linuxthreads/sysdeps/unix/sysv/linux/i386/ ++ but they are included directly in ++ linuxthreads/sysdeps/i386/ ++ ++ so include them ++ ++ */ ++ ++#include ++#include ++ ++/* hack them */ ++ ++#ifndef __ASSEMBLER__ ++ ++#undef INIT_THREAD_SELF ++#undef FREE_THREAD ++ ++/* The P4 and above really want some help to prevent overheating. */ ++#define BUSY_WAIT_NOP __asm__ ("rep; nop") ++ ++/* and add few FreeBSD specifics */ ++ ++#include ++ ++/* Initialize the thread-unique value. */ ++ ++#define INIT_THREAD_SELF(descr, nr) \ ++{ \ ++ long tmp; \ ++ tmp = (long) descr; \ ++ if (sysarch(I386_SET_GSBASE, &tmp) != 0) \ ++ { \ ++ abort(); \ ++ } \ ++} ++ ++#define FREE_THREAD(descr, nr) do { } while (0) ++ ++#endif /* __ASSEMBLER__ */ ++ ++/* We want the OS to assign stack addresses. */ ++#define FLOATING_STACKS 1 ++ ++/* Maximum size of the stack if the rlimit is unlimited. */ ++#define ARCH_STACK_MAX_SIZE 8*1024*1024 ++ ++#endif /* _FREEBSD_PT_MACHINE_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/sysdep-cancel.h +@@ -0,0 +1,166 @@ ++/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Jakub Jelinek , 2002. ++ Modification for FreeBSD by Petr Salinger, 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#ifndef __ASSEMBLER__ ++# include ++#endif ++ ++#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt ++ ++# undef PSEUDO ++# define PSEUDO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ SINGLE_THREAD_P; \ ++ jne L(pseudo_cancel); \ ++ DO_CALL (syscall_name, args); \ ++ jb SYSCALL_ERROR_LABEL; \ ++ ret; \ ++ L(pseudo_cancel): \ ++ CENABLE \ ++ movl %eax, %ecx; \ ++ movl $SYS_ify (syscall_name), %eax; \ ++ int $0x80; \ ++ PUSHRESULT; \ ++ movl %ecx, %eax; \ ++ CDISABLE; \ ++ POPRESULT; \ ++ jb SYSCALL_ERROR_LABEL; \ ++ L(pseudo_end): ++ ++/* ++ on FreeBSD some syscalls return result in pair edx+eax, ++ therefore proper way would be ++ ++# define PUSHRESULT pushl %edx; pushl %eax; pushfl ++# define POPRESULT popfl; popl %eax; popl %edx ++ ++ for FreeBSD 5.4 affected syscalls are ++ ++ lseek() ++ fork() ++ vfork() ++ rfork() ++ pipe() ++ ++ none of them is cancelable, therefore ++*/ ++ ++# define PUSHRESULT pushl %eax; cfi_adjust_cfa_offset (4); pushfl; cfi_adjust_cfa_offset (4) ++# define POPRESULT popfl; cfi_adjust_cfa_offset (-4); popl %eax; cfi_adjust_cfa_offset (-4) ++ ++# ifdef IS_IN_libpthread ++# define CENABLE call __pthread_enable_asynccancel; ++# define CDISABLE call __pthread_disable_asynccancel ++# elif defined IS_IN_librt ++# ifdef PIC ++# define CENABLE pushl %ebx; \ ++ cfi_adjust_cfa_offset (4); \ ++ cfi_rel_offset (ebx, 0); \ ++ call __i686.get_pc_thunk.bx; \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ebx; \ ++ call __librt_enable_asynccancel@PLT; \ ++ popl %ebx; \ ++ cfi_adjust_cfa_offset (-4); \ ++ cfi_restore (ebx); ++# define CDISABLE pushl %ebx; \ ++ cfi_adjust_cfa_offset (4); \ ++ cfi_rel_offset (ebx, 0); \ ++ call __i686.get_pc_thunk.bx; \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ebx; \ ++ call __librt_disable_asynccancel@PLT; \ ++ popl %ebx; \ ++ cfi_adjust_cfa_offset (-4); \ ++ cfi_restore (ebx); ++# else ++# define CENABLE call __librt_enable_asynccancel; ++# define CDISABLE call __librt_disable_asynccancel ++# endif ++# else ++# define CENABLE call __libc_enable_asynccancel; ++# define CDISABLE call __libc_disable_asynccancel ++# endif ++ ++#if !defined NOT_IN_libc ++# define __local_multiple_threads __libc_multiple_threads ++#elif defined IS_IN_libpthread ++# define __local_multiple_threads __pthread_multiple_threads ++#else ++# define __local_multiple_threads __librt_multiple_threads ++#endif ++ ++# ifndef __ASSEMBLER__ ++# if defined FLOATING_STACKS && USE___THREAD && defined PIC ++# define SINGLE_THREAD_P \ ++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ ++ p_header.data.multiple_threads) == 0, 1) ++# else ++extern int __local_multiple_threads ++# if !defined NOT_IN_libc || defined IS_IN_libpthread ++ attribute_hidden; ++# else ++ ; ++# endif ++# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1) ++# endif ++# else ++# if !defined PIC ++# define SINGLE_THREAD_P cmpl $0, __local_multiple_threads ++# elif defined FLOATING_STACKS && USE___THREAD ++# define SINGLE_THREAD_P cmpl $0, %gs:MULTIPLE_THREADS_OFFSET ++# else ++# if !defined NOT_IN_libc || defined IS_IN_libpthread ++# define __SINGLE_THREAD_CMP cmpl $0, __local_multiple_threads@GOTOFF(%ecx) ++# else ++# define __SINGLE_THREAD_CMP \ ++ movl __local_multiple_threads@GOT(%ecx), %ecx;\ ++ cmpl $0, (%ecx) ++# endif ++# if !defined HAVE_HIDDEN || !USE___THREAD ++# define SINGLE_THREAD_P \ ++ SETUP_PIC_REG (cx); \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ ++ __SINGLE_THREAD_CMP ++# else ++# define SINGLE_THREAD_P \ ++ call __i686.get_pc_thunk.cx; \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ ++ __SINGLE_THREAD_CMP ++# endif ++# endif ++# endif ++ ++#elif !defined __ASSEMBLER__ ++ ++/* This code should never be used but we define it anyhow. */ ++# define SINGLE_THREAD_P (1) ++# define NO_CANCELLATION 1 ++ ++#endif ++ ++#ifndef __ASSEMBLER__ ++# define RTLD_SINGLE_THREAD_P \ ++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ ++ p_header.data.multiple_threads) == 0, 1) ++#endif ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/tls.h +@@ -0,0 +1,93 @@ ++/* Definition for thread-local data handling. linuxthreads/i386 version. ++ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Modification for FreeBSD by Petr Salinger, 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _FREEBSD_TLS_H ++#define _FREEBSD_TLS_H ++ ++#include ++ ++/* We can support TLS only if the floating-stack support is available. ++ To avoid bothering with the TLS support code at all, ++ use configure --without-tls. ++ ++ We need USE_TLS to be consistently defined, for ldsodefs.h conditionals. ++ But some of the code below can cause problems in building libpthread ++*/ ++ ++#if defined HAVE_TLS_SUPPORT \ ++ && (defined FLOATING_STACKS || !defined IS_IN_libpthread) ++ ++# ifndef __ASSEMBLER__ ++ ++#undef TLS_INIT_TP ++#undef TLS_SETUP_GS_SEGMENT ++ ++#include ++#include ++ ++ ++/* Code to initially initialize the thread pointer. This might need ++ special attention since 'errno' is not yet available and if the ++ operation can cause a failure 'errno' must not be touched. */ ++ ++# define TLS_DO_SET_GSBASE(descr) \ ++({ \ ++ long base = (long) descr; \ ++ int result; \ ++ asm volatile ( \ ++ "pushl %3\n\t" \ ++ "pushl %2\n\t" \ ++ "pushl %1\n\t" \ ++ "int $0x80\n\t" \ ++ "popl %3\n\t" \ ++ "popl %3\n\t" \ ++ "popl %3\n\t" \ ++ : "=a" (result) \ ++ : "0" (SYS_sysarch), \ ++ "i" (I386_SET_GSBASE), \ ++ "d" (&base) \ ++ : "memory", "cc" ); \ ++ result; \ ++}) ++ ++# define TLS_SETUP_GS_SEGMENT(descr, secondcall) \ ++ (TLS_DO_SET_GSBASE(descr) \ ++ ? "set_thread_area failed when setting up thread-local storage\n" : NULL) ++ ++/* The value of this macro is null if successful, or an error string. */ ++ ++# define TLS_INIT_TP(descr, secondcall) \ ++ ({ \ ++ void *_descr = (descr); \ ++ tcbhead_t *head = _descr; \ ++ \ ++ head->tcb = _descr; \ ++ /* For now the thread descriptor is at the same address. */ \ ++ head->self = _descr; \ ++ \ ++ INIT_SYSINFO; \ ++ TLS_SETUP_GS_SEGMENT (_descr, secondcall); \ ++ }) ++ ++# endif /* __ASSEMBLER__ */ ++ ++#endif /* HAVE_TLS_SUPPORT && (FLOATING_STACKS || !IS_IN_libpthread) */ ++ ++#endif /* _FREEBSD_TLS_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/makecontext.S +@@ -0,0 +1,113 @@ ++/* Create new context. ++ Copyright (C) 2001,02 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , 2001. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++#include ++ ++ ++ENTRY(__makecontext) ++ movl 4(%esp), %eax ++ ++ /* Load the address of the function we are supposed to run. */ ++ movl 8(%esp), %ecx ++ ++ /* Compute the address of the stack. The information comes from ++ to us_stack element. */ ++ movl oSS_SP(%eax), %edx ++ movl %ecx, oEIP(%eax) ++ addl oSS_SIZE(%eax), %edx ++ ++ /* Put the next context on the new stack (from the uc_link ++ element). */ ++ movl oLINK(%eax), %ecx ++ movl %ecx, -4(%edx) ++ ++ /* Remember the number of parameters for the exit handler since ++ it has to remove them. We store the number in the EBX register ++ which the function we will call must preserve. */ ++ movl 12(%esp), %ecx ++ movl %ecx, oEBX(%eax) ++ ++ /* Make room on the new stack for the parameters. */ ++ negl %ecx ++ leal -8(%edx,%ecx,4), %edx ++ negl %ecx ++ /* Store the future stack pointer. */ ++ movl %edx, oESP(%eax) ++ ++ /* Copy all the parameters. */ ++ jecxz 2f ++1: movl 12(%esp,%ecx,4), %eax ++ movl %eax, (%edx,%ecx,4) ++ decl %ecx ++ jnz 1b ++2: ++ ++ /* If the function we call returns we must continue with the ++ context which is given in the uc_link element. To do this ++ set the return address for the function the user provides ++ to a little bit of helper code which does the magic (see ++ below). */ ++#ifdef PIC ++ call 1f ++1: popl %ecx ++ addl $L(exitcode)-1b, %ecx ++ movl %ecx, (%edx) ++#else ++ movl $L(exitcode), (%edx) ++#endif ++ /* 'makecontext' returns no value. */ ++ ret ++ ++ /* This is the helper code which gets called if a function which ++ is registered with 'makecontext' returns. In this case we ++ have to install the context listed in the uc_link element of ++ the context 'makecontext' manipulated at the time of the ++ 'makecontext' call. If the pointer is NULL the process must ++ terminate. */ ++L(exitcode): ++ /* This removes the parameters passed to the function given to ++ 'makecontext' from the stack. EBX contains the number of ++ parameters (see above). */ ++ leal (%esp,%ebx,4), %esp ++ ++#ifdef PIC ++ call 1f ++1: popl %ebx ++ addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx ++#endif ++ popl %eax /* This is the next context. */ ++ testl %eax, %eax ++ je 2f /* If it is zero exit. */ ++ ++ pushl %eax ++ call JUMPTARGET(__setcontext) ++ /* If this returns (which can happen if the syscall fails) we'll ++ exit the program with the return error value (-1). */ ++ ++2: pushl %eax ++ call HIDDEN_JUMPTARGET(exit) ++ /* The 'exit' call should never return. In case it does cause ++ the process to terminate. */ ++ hlt ++END(__makecontext) ++ ++weak_alias(__makecontext, makecontext) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/rfork.S +@@ -0,0 +1,44 @@ ++/* Copyright (C) 1991-1992, 1994-1995, 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++.text; ++ENTRY (__rfork) ++ /* save the return PC value into ECX, ++ preserve stack frame with argument */ ++ movl 0(%esp), %ecx; ++ DO_CALL (rfork, 1) ++ jb SYSCALL_ERROR_LABEL; ++ /* R1 is now 0 for the parent and 1 for the child. Decrement it to ++ make it -1 (all bits set) for the parent, and 0 (no bits set) ++ for the child. Then AND it with R0, so the parent gets ++ R0&-1==R0, and the child gets R0&0==0. */ ++ decl %edx ++ andl %edx, %eax ++ ++ popl %edx ++ cfi_adjust_cfa_offset(-4) ++ jmp *%ecx ++ ++L(pseudo_end): ++ ret ++PSEUDO_END (__rfork) ++ ++weak_alias (__rfork, rfork) ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sigcontextinfo.h +@@ -0,0 +1,35 @@ ++/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* ++native FreeBSD: ++ sighandler(int signum, int code, struct sigcontext * sg, void * fault_ip) ++posix like: ++ sighandler(int signum, siginfo_t * si, struct sigcontext * sg, void * fault_ip) ++*/ ++ ++#define SIGCONTEXT long _code, struct sigcontext * _sg, void * ++#define SIGCONTEXT_EXTRA_ARGS _code, _sg, ++ ++/* really, really, rest of glibc expects that struct sigcontext is the last argument */ ++#define GET_PC(ctx) ((void *) (_sg)->sc_eip) ++#define GET_FRAME(ctx) ((void *) (_sg)->sc_ebp) ++#define GET_STACK(ctx) ((void *) (_sg)->sc_esp) ++ ++#define CALL_SIGHANDLER(handler, signo, ctx) \ ++ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/start_thread.S +@@ -0,0 +1,207 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* __start_thread (flags, stack, func, arg) ++ calls __rfork (flags), and in the child sets the stack pointer and then ++ calls _exit (func (arg)). ++ It cannot be done in portable C. */ ++ ++#include ++#include ++#define SIG_SETMASK 3 ++ ++ .text ++ENTRY (__start_thread) ++ /* End FDE now, because in the child the unwind info will be ++ wrong. */ ++ cfi_endproc ++ ++ /* There is a window of a few instructions, right after the rfork ++ system call, where the handling of a signal would write garbage ++ into the stack shared by the parent and the child (assuming ++ RFMEM is set in flags). To solve this: 1. We block all signals ++ around the rfork system call and unblock them afterwards in ++ the parent and in the child (but only after changing the stack ++ pointer). 2. The child accesses only values passed in registers ++ and on its own stack. This way, if the parent is scheduled to ++ run first, and handles a signal, it will not affect the child; ++ and if the child runs first, and handles a signal, it will use ++ the child's stack and not affect the parent. ++ We need to pass 7 words of info to the child: stack, func, arg, ++ and the signal mask to restore. Since we have only 4 call-saved ++ registers available (%ebx, %esi, %edi, %ebp), we pass only the ++ stack pointer in a register, and the rest through the child's ++ stack. */ ++ pushl %ebp ++ movl %esp, %ebp ++ subl $36, %esp ++ movl %ebx, 32(%esp) ++ ++ movl 8(%ebp), %eax /* flags */ ++ testl $32, %eax /* flags & RFMEM */ ++ jz L(simple) ++ ++ /* Block all signals. */ ++ movl $-1, %eax ++ movl %eax, 16(%esp) ++ movl %eax, 20(%esp) ++ movl %eax, 24(%esp) ++ movl %eax, 28(%esp) ++ leal 16(%esp), %eax ++ movl $SIG_SETMASK, 4(%esp) ++ movl %eax, 8(%esp) ++ movl %eax, 12(%esp) ++ DO_CALL (sigprocmask, 3) ++ jb L(error) ++ ++ /* Copy all info to the child's stack. */ ++ movl 12(%ebp), %ebx /* stack */ ++ subl $32, %ebx /* room for func, arg, sigset_t */ ++ andl $-16, %ebx /* make it 16-bytes aligned */ ++ movl 16(%ebp), %eax /* func */ ++ movl 20(%ebp), %edx /* arg */ ++ movl %eax, 4(%ebx) ++ movl %edx, (%ebx) ++ movl 16(%esp), %eax /* sigset_t word 0 */ ++ movl 20(%esp), %edx /* sigset_t word 1 */ ++ movl %eax, 16(%ebx) ++ movl %edx, 20(%ebx) ++ movl 24(%esp), %eax /* sigset_t word 2 */ ++ movl 28(%esp), %edx /* sigset_t word 3 */ ++ movl %eax, 24(%ebx) ++ movl %edx, 28(%ebx) ++ ++ /* Perform the rfork system call. */ ++ movl 8(%ebp), %eax /* flags */ ++ movl %eax, 4(%esp) ++ DO_CALL (rfork, 1) ++ jb L(error_unmask) ++ ++ /* %edx is now 0 for the parent and 1 for the child. */ ++ testl %edx, %edx ++ jnz L(child) ++ ++ /* Save the child pid, currently in %eax. */ ++ movl %eax, %ebx ++ ++ /* Restore the previous signal mask. */ ++ leal 16(%esp), %eax ++ movl $SIG_SETMASK, 4(%esp) ++ movl %eax, 8(%esp) ++ movl $0, 12(%esp) ++ DO_CALL (sigprocmask, 3) ++ ++ /* Return the child pid, currently in %ebx. */ ++ movl %ebx, %eax ++ addl $32, %esp ++ popl %ebx ++ popl %ebp ++ ret ++ ++L(child):/* Here we are in the child thread. */ ++ ++ /* Set the stack pointer. */ ++ movl %ebx, %esp ++ /* Terminate the stack frame. */ ++ subl %ebp, %ebp ++ ++ movl 4(%esp), %edi ++ ++ /* Restore the previous signal mask. */ ++ leal 16(%esp), %eax ++ movl $SIG_SETMASK, 4(%esp) ++ movl %eax, 8(%esp) ++ movl $0, 12(%esp) ++ DO_CALL (sigprocmask, 3) ++ ++L(child1): ++ /* Call func (arg). */ ++ call *%edi ++ ++ /* Call _exit. */ ++#ifdef PIC ++ call L(here) ++L(here): ++ popl %ebx ++ addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ebx ++#endif ++ pushl %eax ++ call HIDDEN_JUMPTARGET (_exit) ++ ++L(simple):/* Simple case without signal mask handling. */ ++ ++ /* Copy all info to the child's stack. */ ++ movl 12(%ebp), %ebx /* stack */ ++ subl $8, %ebx /* room for func, arg */ ++ andl $-16, %ebx /* make it 16-bytes aligned */ ++ movl 16(%ebp), %eax /* func */ ++ movl 20(%ebp), %edx /* arg */ ++ movl %eax, 4(%ebx) ++ movl %edx, (%ebx) ++ ++ /* Perform the rfork system call. */ ++ movl 8(%ebp), %eax /* flags */ ++ movl %eax, 4(%esp) ++ DO_CALL (rfork, 1) ++ jb L(error) ++ ++ /* %edx is now 0 for the parent and 1 for the child. */ ++ testl %edx, %edx ++ jnz L(simple_child) ++ ++ /* Return the child pid, currently in %eax. */ ++ addl $32, %esp ++ popl %ebx ++ popl %ebp ++L(pseudo_end): ++ ret ++ ++L(simple_child):/* Here we are in the child thread. */ ++ ++ /* Set the stack pointer. */ ++ movl %ebx, %esp ++ /* Terminate the stack frame. */ ++ subl %ebp, %ebp ++ ++ movl 4(%esp), %edi ++ ++ jmp L(child1) ++ ++L(error_unmask): ++ ++ /* Save the error code, currently in %eax. */ ++ movl %eax, %ebx ++ ++ /* Restore the previous signal mask. */ ++ leal 16(%esp), %eax ++ movl $SIG_SETMASK, 4(%esp) ++ movl %eax, 8(%esp) ++ movl $0, 12(%esp) ++ DO_CALL (sigprocmask, 3) ++ ++ /* load saved error code */ ++ movl %ebx, %eax ++ ++L(error): ++ addl $32, %esp ++ popl %ebx ++ popl %ebp ++ jmp SYSCALL_ERROR_LABEL ++ cfi_startproc ++PSEUDO_END (__start_thread) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/swapcontext.S +@@ -0,0 +1,32 @@ ++/* swap current context. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++.text ++ENTRY(__swapcontext) ++ clc ++ DO_CALL (swapcontext, 2) ++ jb SYSCALL_ERROR_LABEL ++L(pseudo_end): ++ ret ++ ++PSEUDO_END(__swapcontext) ++ ++weak_alias(__swapcontext, swapcontext) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/io.h +@@ -0,0 +1,180 @@ ++/* Copyright (C) 1996, 2000, 2002, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_IO_H ++#define _SYS_IO_H 1 ++ ++#include ++ ++__BEGIN_DECLS ++ ++/* If TURN_ON is TRUE, request for permission to do direct i/o on the ++ port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O ++ permission off for that range. This call requires root privileges. ++ ++ Portability note: not all kFreeBSD platforms support this call. Most ++ platforms based on the PC I/O architecture probably will, however. */ ++extern int ioperm (unsigned long int __from, unsigned long int __num, ++ int __turn_on) __THROW; ++ ++/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to ++ access any I/O port is granted. This call requires root ++ privileges. */ ++extern int iopl (int __level) __THROW; ++ ++#if defined __GNUC__ && __GNUC__ >= 2 ++ ++static __inline unsigned char ++inb (unsigned short int port) ++{ ++ unsigned char _v; ++ ++ __asm__ __volatile__ ("inb %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned char ++inb_p (unsigned short int port) ++{ ++ unsigned char _v; ++ ++ __asm__ __volatile__ ("inb %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned short int ++inw (unsigned short int port) ++{ ++ unsigned short _v; ++ ++ __asm__ __volatile__ ("inw %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned short int ++inw_p (unsigned short int port) ++{ ++ unsigned short int _v; ++ ++ __asm__ __volatile__ ("inw %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned int ++inl (unsigned short int port) ++{ ++ unsigned int _v; ++ ++ __asm__ __volatile__ ("inl %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned int ++inl_p (unsigned short int port) ++{ ++ unsigned int _v; ++ __asm__ __volatile__ ("inl %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline void ++outb (unsigned char value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outb %b0,%w1": :"a" (value), "Nd" (port)); ++} ++ ++static __inline void ++outb_p (unsigned char value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outb %b0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++outw (unsigned short int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outw %w0,%w1": :"a" (value), "Nd" (port)); ++ ++} ++ ++static __inline void ++outw_p (unsigned short int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outw %w0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++outl (unsigned int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outl %0,%w1": :"a" (value), "Nd" (port)); ++} ++ ++static __inline void ++outl_p (unsigned int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outl %0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++insb (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insb":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++insw (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insw":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++insl (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insl":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsb (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsb":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsw (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsw":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsl (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsl":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++#endif /* GNU C */ ++ ++__END_DECLS ++#endif /* _SYS_IO_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/perm.h +@@ -0,0 +1,43 @@ ++/* Copyright (C) 1996, 1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_PERM_H ++#define _SYS_PERM_H 1 ++ ++#include ++ ++__BEGIN_DECLS ++ ++/* Set port input/output permissions. */ ++extern int ioperm (unsigned long int __from, unsigned long int __num, ++ int __turn_on) __THROW; ++ ++ ++/* Change I/O privilege level. */ ++extern int iopl (int __level) __THROW; ++ ++extern int i386_set_ioperm (unsigned long int __from, unsigned long int __num, ++ int __turn_on) __THROW; ++ ++/* Retrieve a contiguous range of port input/output permissions. */ ++extern int i386_get_ioperm (unsigned long int __from, unsigned long int *__num, ++ int *__turned_on) __THROW; ++ ++__END_DECLS ++ ++#endif /* _SYS_PERM_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/vm86.h +@@ -0,0 +1,53 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_VM86_H ++#define _SYS_VM86_H 1 ++ ++#include ++ ++/* Possible values for the 'cmd' argument to i386_vm86. */ ++enum ++ { ++ VM86_INIT = 1, ++#define VM86_INIT VM86_INIT ++ VM86_GET_VME = 3 ++#define VM86_GET_VME VM86_GET_VME ++ }; ++ ++/* Argument structure for VM86_INIT. */ ++struct vm86_init_args ++ { ++ int debug; ++ int cpu_type; ++ unsigned char int_map[32]; ++ }; ++ ++/* Argument structure for VM86_GET_VME. */ ++struct vm86_vme_args ++ { ++ int state; ++ }; ++ ++__BEGIN_DECLS ++ ++extern int i386_vm86 (int __cmd, void *__arg); ++ ++__END_DECLS ++ ++#endif /* _SYS_VM86_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys_fork.S +@@ -0,0 +1,34 @@ ++/* Copyright (C) 1991-1992, 1994-1995, 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++.text; ++ENTRY (__syscall_fork) ++ DO_CALL (fork, 0) ++ jb SYSCALL_ERROR_LABEL; ++ /* R1 is now 0 for the parent and 1 for the child. Decrement it to ++ make it -1 (all bits set) for the parent, and 0 (no bits set) ++ for the child. Then AND it with R0, so the parent gets ++ R0&-1==R0, and the child gets R0&0==0. */ ++ decl r1 ++ andl r1, r0 ++L(pseudo_end): ++ ret ++PSEUDO_END (__syscall_fork) ++libc_hidden_def (__syscall_fork) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys_freebsd6_lseek.S +@@ -0,0 +1,32 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++/* lseek returns a 64-bit result in %eax, %edx. This means that in the ++ error case we have to set both %eax and %edx to -1. */ ++ ++PSEUDO_NOERRNO(__syscall_freebsd6_lseek, freebsd6_lseek, 4) ++ jnb L(no_error) ++ call SYSCALL_ERROR_LABEL; ++ orl $-1, %edx; ++L(pseudo_end): ++L(no_error): ++ ret ++PSEUDO_END(__syscall_freebsd6_lseek) ++libc_hidden_def (__syscall_freebsd6_lseek) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys_lseek.S +@@ -0,0 +1,32 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++/* lseek returns a 64-bit result in %eax, %edx. This means that in the ++ error case we have to set both %eax and %edx to -1. */ ++ ++PSEUDO_NOERRNO(__syscall_lseek, lseek, 3) ++ jnb L(no_error) ++ call SYSCALL_ERROR_LABEL; ++ orl $-1, %edx; ++L(pseudo_end): ++L(no_error): ++ ret ++PSEUDO_END(__syscall_lseek) ++libc_hidden_def (__syscall_lseek) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysarch.h +@@ -0,0 +1,81 @@ ++/* Parameters for the architecture specific system call. i386 version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYSARCH_H ++#define _SYSARCH_H 1 ++ ++#include ++ ++/* Function that can be used as first argument to 'sysarch'. */ ++enum ++ { ++ I386_GET_LDT = 0, ++#define I386_GET_LDT I386_GET_LDT ++ I386_SET_LDT = 1, ++#define I386_SET_LDT I386_SET_LDT ++ I386_GET_IOPERM = 3, ++#define I386_GET_IOPERM I386_GET_IOPERM ++ I386_SET_IOPERM = 4, ++#define I386_SET_IOPERM I386_SET_IOPERM ++ I386_VM86 = 6, ++#define I386_VM86 I386_VM86 ++ I386_GET_FSBASE = 7, ++#define I386_GET_FSBASE I386_GET_FSBASE ++ I386_SET_FSBASE = 8, ++#define I386_SET_FSBASE I386_SET_FSBASE ++ I386_GET_GSBASE = 9, ++#define I386_GET_GSBASE I386_GET_GSBASE ++ I386_SET_GSBASE = 10 ++#define I386_SET_GSBASE I386_SET_GSBASE ++ }; ++ ++/* Argument struct for I386_GET_LDT and I386_SET_LDT. */ ++struct i386_ldt_args ++ { ++ int start; ++ union descriptor *descs; ++ int num; ++ }; ++ ++/* Argument struct for I386_GET_IOPERM and I386_SET_IOPERM. */ ++struct i386_ioperm_args ++ { ++ unsigned int start; ++ unsigned int length; ++ int enable; ++ }; ++ ++/* Argument struct for I386_VM86. */ ++struct i386_vm86_args ++ { ++ int sub_op; ++ void *sub_args; ++ }; ++ ++__BEGIN_DECLS ++ ++extern int sysarch (int __cmd, void *__arg); ++ ++#ifdef _LIBC ++extern int __sysarch (int __cmd, void *__arg); ++#endif ++ ++__END_DECLS ++ ++#endif /* _SYSARCH_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/syscall.S +@@ -0,0 +1,34 @@ ++/* Copyright (C) 1993, 1995-1998, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++ .text; ++ENTRY (__syscall) ++ popl %ecx /* Pop return address into %ecx. */ ++ cfi_adjust_cfa_offset (-4) ++ movl 0(%esp), %eax /* Load syscall number into %eax. */ ++ int $0x80 /* Do the system call. */ ++ pushl %ecx /* Push back return address. */ ++ cfi_adjust_cfa_offset (4) ++ jb SYSCALL_ERROR_LABEL; /* Jump to error handler if error. */ ++ ++L(pseudo_end): ++ ret /* Return to caller. */ ++PSEUDO_END (__syscall) ++weak_alias (__syscall, syscall) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/syscalls-internal.h +@@ -0,0 +1,88 @@ ++/* generally used "internal syscalls" ++ Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef KFREEBSD_INTERNAL_SYSCALLS_H ++#define KFREEBSD_INTERNAL_SYSCALLS_H ++ ++#include ++ ++/* ++ for now, we do not care whether syscall succeeded, ++ we do not have defined ++ INTERNAL_SYSCALL_ERROR_P and INTERNAL_SYSCALL_ERRNO ++ we do not store errno at all ++ to be sure, we return void ++*/ ++ ++#undef INTERNAL_SYSCALL_DECL ++#undef INTERNAL_SYSCALL_NCS ++#undef INTERNAL_SYSCALL ++#undef INTERNAL_SYSCALL_ERROR_P ++#undef INTERNAL_SYSCALL_ERRNO ++ ++#define INTERNAL_SYSCALL_DECL(err) \ ++ do { } while (0) ++ ++#define INTERNAL_SYSCALL(name, err, nr, args...) \ ++ INTERNAL_SYSCALL_##name(name, err, nr, ##args) ++ ++ ++#define INTERNAL_SYSCALL_close(name, err, nr, fd) \ ++(void)({ \ ++ register long int _a1 = (long int) (fd); \ ++ register long int result; \ ++ asm volatile ( \ ++ "pushl %2\n\t" \ ++ "pushl %1\n\t" \ ++ "int $0x80\n\t" \ ++ "popl %2\n\t" \ ++ "popl %2\n\t" \ ++ : "=a" (result) \ ++ : "0" ((long int) SYS_##name), \ ++ "d" (_a1) \ ++ : "memory", "cc" ); \ ++ result; \ ++}) ++ ++#define INTERNAL_SYSCALL_writev(name, err, nr, fd, iov, cnt) \ ++(void)({ \ ++ register long int _a1 = (long int) (fd); \ ++ register long int _a2 = (long int) (iov); \ ++ register long int _a3 = (long int) (cnt); \ ++ register long int result; \ ++ register long int _trash; \ ++ asm volatile ( \ ++ "pushl %5\n\t" \ ++ "pushl %4\n\t" \ ++ "pushl %3\n\t" \ ++ "pushl %2\n\t" \ ++ "int $0x80\n\t" \ ++ "addl $16,%%esp\n\t" \ ++ : "=a" (result), \ ++ "=d" (_trash) \ ++ : "0" ((long int) SYS_##name), \ ++ "ri" (_a1), \ ++ "ri" (_a2), \ ++ "ri" (_a3) \ ++ /* may be even "g" constraint could be used */ \ ++ /* but we have to worry about esp register and esp based address */ \ ++ : "memory", "cc" ); \ ++ result; \ ++}) ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysdep.S +@@ -0,0 +1,38 @@ ++/* Copyright (C) 1995-1998, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++/* The following code is only used in the shared library when we ++ compile the reentrant version. Otherwise each system call defines ++ its own version. */ ++ ++#ifndef PIC ++ ++/* The syscall stubs jump here when they detect an error. ++ The code for FreeBSD is identical to the canonical Unix/i386 code. */ ++ ++#undef CALL_MCOUNT ++#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %eax. */ ++ ++ .text ++ENTRY (__syscall_error) ++#define __syscall_error __syscall_error_1 ++#include ++ ++#endif /* !PIC */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysdep.h +@@ -0,0 +1,240 @@ ++/* Copyright (C) 1992,1993,1995-2000,2002,2003,2004 ++ Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper, , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _FREEBSD_I386_SYSDEP_H ++#define _FREEBSD_I386_SYSDEP_H 1 ++ ++/* There is some commonality. */ ++#include ++#include ++#include ++/* Defines RTLD_PRIVATE_ERRNO and USE_DL_SYSINFO. */ ++#include ++#include ++ ++#if defined __i686 && defined __ASSEMBLER__ ++#undef __i686 ++#define __i686 __i686 ++#endif ++ ++#ifdef __ASSEMBLER__ ++ ++/* We don't want the label for the error handle to be global when we define ++ it here. */ ++#ifdef PIC ++# define SYSCALL_ERROR_LABEL 0f ++#else ++# define SYSCALL_ERROR_LABEL syscall_error ++#endif ++ ++#undef PSEUDO ++#define PSEUDO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args); \ ++ jb SYSCALL_ERROR_LABEL; \ ++ L(pseudo_end): ++ ++#undef PSEUDO_END ++#define PSEUDO_END(name) \ ++ SYSCALL_ERROR_HANDLER \ ++ END (name) ++ ++#undef PSEUDO_NOERRNO ++#define PSEUDO_NOERRNO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args) ++ ++#undef PSEUDO_END_NOERRNO ++#define PSEUDO_END_NOERRNO(name) \ ++ END (name) ++ ++#define ret_NOERRNO ret ++ ++/* The function has to return the error code. */ ++#undef PSEUDO_ERRVAL ++#define PSEUDO_ERRVAL(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args); \ ++ ++#undef PSEUDO_END_ERRVAL ++#define PSEUDO_END_ERRVAL(name) \ ++ END (name) ++ ++#define ret_ERRVAL ret ++ ++#ifndef PIC ++# define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */ ++#else ++ ++# if RTLD_PRIVATE_ERRNO ++# define SYSCALL_ERROR_HANDLER \ ++0:SETUP_PIC_REG(cx); \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ ++ movl %eax, rtld_errno@GOTOFF(%ecx); \ ++ orl $-1, %eax; \ ++ jmp L(pseudo_end); ++ ++# elif defined _LIBC_REENTRANT ++ ++# if USE___THREAD ++# ifndef NOT_IN_libc ++# define SYSCALL_ERROR_ERRNO __libc_errno ++# else ++# define SYSCALL_ERROR_ERRNO errno ++# endif ++# define SYSCALL_ERROR_HANDLER \ ++0:SETUP_PIC_REG (cx); \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ ++ movl SYSCALL_ERROR_ERRNO@GOTNTPOFF(%ecx), %ecx; \ ++ SYSCALL_ERROR_HANDLER_TLS_STORE (%eax, %ecx); \ ++ orl $-1, %eax; \ ++ jmp L(pseudo_end); ++# ifndef NO_TLS_DIRECT_SEG_REFS ++# define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff) \ ++ movl src, %gs:(destoff) ++# else ++# define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff) \ ++ addl %gs:0, destoff; \ ++ movl src, (destoff) ++# endif ++# else ++# define SYSCALL_ERROR_HANDLER \ ++0:pushl %ebx; \ ++ cfi_adjust_cfa_offset (4); \ ++ cfi_rel_offset (ebx, 0); \ ++ SETUP_PIC_REG (bx); \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ebx; \ ++ pushl %eax; \ ++ cfi_adjust_cfa_offset (4); \ ++ PUSH_ERRNO_LOCATION_RETURN; \ ++ call BP_SYM (__errno_location)@PLT; \ ++ POP_ERRNO_LOCATION_RETURN; \ ++ popl %ecx; \ ++ cfi_adjust_cfa_offset (-4); \ ++ popl %ebx; \ ++ cfi_adjust_cfa_offset (-4); \ ++ cfi_restore (ebx); \ ++ movl %ecx, (%eax); \ ++ orl $-1, %eax; \ ++ jmp L(pseudo_end); ++/* A quick note: it is assumed that the call to `__errno_location' does ++ not modify the stack! */ ++# endif ++# else ++/* Store (%eax) into errno through the GOT. */ ++# define SYSCALL_ERROR_HANDLER \ ++0:SETUP_PIC_REG(cx); \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ ++ movl errno@GOT(%ecx), %ecx; \ ++ movl %eax, (%ecx); \ ++ orl $-1, %eax; \ ++ jmp L(pseudo_end); ++# endif /* _LIBC_REENTRANT */ ++#endif /* PIC */ ++ ++/* ++ FreeBSD expects the system call arguments on the stack, ++ syscall number is in %eax. ++ return value is in %eax + %edx ++ error is signaled via cflags. ++ all other data registers are preserved ++ ++ syscall number %eax call-clobbered ++ ++ The stack layout upon entering the function is: ++ ++ 20(%esp) Arg# 5 ++ 16(%esp) Arg# 4 ++ 12(%esp) Arg# 3 ++ 8(%esp) Arg# 2 ++ 4(%esp) Arg# 1 ++ (%esp) Return address ++ ++ (Of course a function with say 3 arguments does not have entries for ++ arguments 4 and 5.) ++ ++*/ ++ ++#undef DO_CALL ++#define DO_CALL(syscall_name, args) \ ++ movl $SYS_ify (syscall_name), %eax; \ ++ int $0x80 \ ++ ++#else /* !__ASSEMBLER__ */ ++ ++#include ++ ++/* Consistency check for position-independent code. */ ++#ifdef __PIC__ ++# define check_consistency() \ ++ ({ int __res; \ ++ __asm__ __volatile__ \ ++ ("call __i686.get_pc_thunk.cx;" \ ++ "addl $_GLOBAL_OFFSET_TABLE_, %%ecx;" \ ++ "subl %%ebx, %%ecx;" \ ++ "je 1f;" \ ++ "ud2;" \ ++ "1:\n" \ ++ ".section .gnu.linkonce.t.__i686.get_pc_thunk.cx,\"ax\",@progbits;" \ ++ ".globl __i686.get_pc_thunk.cx;" \ ++ ".hidden __i686.get_pc_thunk.cx;" \ ++ ".type __i686.get_pc_thunk.cx,@function;" \ ++ "__i686.get_pc_thunk.cx:" \ ++ "movl (%%esp), %%ecx;" \ ++ "ret;" \ ++ ".previous" \ ++ : "=c" (__res)); \ ++ __res; }) ++#endif ++ ++#endif /* __ASSEMBLER__ */ ++ ++ ++/* Pointer mangling support. */ ++#if defined NOT_IN_libc && defined IS_IN_rtld ++/* We cannot use the thread descriptor because in ld.so we use setjmp ++ earlier than the descriptor is initialized. Using a global variable ++ is too complicated here since we have no PC-relative addressing mode. */ ++#else ++# ifdef __ASSEMBLER__ ++# define PTR_MANGLE(reg) xorl %gs:POINTER_GUARD, reg; \ ++ roll $9, reg ++# define PTR_DEMANGLE(reg) rorl $9, reg; \ ++ xorl %gs:POINTER_GUARD, reg ++# else ++# define PTR_MANGLE(var) asm ("xorl %%gs:%c2, %0\n" \ ++ "roll $9, %0" \ ++ : "=r" (var) \ ++ : "0" (var), \ ++ "i" (offsetof (tcbhead_t, \ ++ pointer_guard))) ++# define PTR_DEMANGLE(var) asm ("rorl $9, %0\n" \ ++ "xorl %%gs:%c2, %0" \ ++ : "=r" (var) \ ++ : "0" (var), \ ++ "i" (offsetof (tcbhead_t, \ ++ pointer_guard))) ++# endif ++#endif ++ ++#endif /* _FREEBSD_I386_SYSDEP_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/ucontext_i.h +@@ -0,0 +1,38 @@ ++/* Offsets and other constants needed in the *context() function ++ implementation. ++ Copyright (C) 2001 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Offsets of the fields in the ucontext_t structure. */ ++#define oSIGMASK 0 ++#define oGS 20 ++#define oFS 24 ++#define oEDI 36 ++#define oESI 40 ++#define oEBP 44 ++#define oEBX 52 ++#define oEDX 56 ++#define oECX 60 ++#define oEAX 64 ++ ++#define oEIP 76 ++#define oESP 88 ++ ++#define oLINK 656 ++#define oSS_SP 660 ++#define oSS_SIZE 664 +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/vfork.S +@@ -0,0 +1,58 @@ ++/* Copyright (C) 1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++/* Clone the calling process, but without copying the whole address space. ++ The calling process is suspended until the new process exits or is ++ replaced by a call to `execve'. Return -1 for errors, 0 to the new process, ++ and the process ID of the new process to the old process. */ ++ ++ENTRY (__vfork) ++ ++ /* Pop the return PC value into ECX. */ ++ popl %ecx ++ cfi_adjust_cfa_offset(-4) ++ ++ /* Perform the system call. */ ++ DO_CALL (vfork, 0) ++ jb L(error) /* Branch forward if it failed. */ ++ ++ /* In the parent process, %edx == 0, %eax == child pid. */ ++ /* In the child process, %edx == 1, %eax == parent pid. */ ++ ++ /* Change %eax to be 0 in the child process. */ ++ decl %edx ++ andl %edx, %eax ++ ++ /* Jump to the return PC. */ ++ jmp *%ecx ++ ++L(error): ++ /* Push back the return PC. */ ++ pushl %ecx ++ cfi_adjust_cfa_offset(4) ++ ++ /* Branch to the error handler, hidden in PSEUDO_END. */ ++ jmp SYSCALL_ERROR_LABEL ++L(pseudo_end): ++ ret ++PSEUDO_END (__vfork) ++libc_hidden_def (__vfork) ++ ++weak_alias (__vfork, vfork) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/if_index.c +@@ -0,0 +1,311 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++typedef int (*if_fn) (void *private, unsigned int index, const char *name); ++ ++/* Iterate through all present interfaces. ++ Call FN once for every interface, returning immediately if FN returns ++ a nonzero value. */ ++static void ++if_iterate (if_fn fn, void *private) ++{ ++ int request[6] = { CTL_NET, PF_ROUTE, 0, 0, NET_RT_IFLIST, 0 }; ++ char *buf; ++ size_t bufsize = 512; ++ char *bufend; ++ char *p; ++ ++ /* Call the kernel function sysctl_iflist() in /usr/src/sys/net/rtsock.c. */ ++ for (;;) ++ { ++ buf = alloca (bufsize); ++ if (__sysctl (request, 6, buf, &bufsize, NULL, 0) >= 0) ++ break; ++ if (errno != ENOMEM) ++ return; ++ bufsize *= 2; ++ } ++ ++ bufend = buf + bufsize; ++ for (p = buf; p < bufend; ) ++ { ++ struct if_msghdr *msg = (struct if_msghdr *) p; ++ ++ if (msg->ifm_version != RTM_VERSION) ++ abort (); ++ ++ switch (msg->ifm_type) ++ { ++ case RTM_IFINFO: ++ if (msg->ifm_addrs & RTA_IFP) ++ { ++ unsigned int index; ++ struct sockaddr_dl *sdl; ++ char namebuf[IFNAMSIZ + 1]; ++ size_t namelen; ++ ++ index = msg->ifm_index; ++ if (index == 0) ++ abort (); ++ ++ /* FIXME: 'struct if_msghdr' contains a 'struct if_data' which in turns ++ contains 'unsigned long' values. Their size therefore depends on ++ the running kernel (32 or 64 bits). This should be fixed in the ++ compat layer of the kernel. Meanwhile just workaround the bug here/ */ ++#if 0 ++ sdl = (struct sockaddr_dl *) (msg + 1); ++#else ++ sdl = (struct sockaddr_dl *) (p + msg->ifm_msglen - sizeof(struct sockaddr_dl) - 2); ++#endif ++ namelen = sdl->sdl_nlen; ++ /* Avoid overflowing namebuf[]. */ ++ if (namelen > IFNAMSIZ) ++ namelen = IFNAMSIZ; ++ memcpy (namebuf, sdl->sdl_data, namelen); ++ namebuf[namelen] = '\0'; ++ ++ /* Call FN now. */ ++ if (fn (private, index, namebuf)) ++ return; ++ } ++ break; ++ ++ case RTM_NEWADDR: ++ break; ++ ++ default: ++ abort (); ++ } ++ ++ p += msg->ifm_msglen; ++ } ++} ++ ++/* ------------------------------------------------------------------------- */ ++ ++struct nametoindex_locals ++ { ++ const char *name; ++ unsigned int index; ++ }; ++ ++static int ++nametoindex_aux (void *private, unsigned int index, const char *name) ++{ ++ struct nametoindex_locals *l = (struct nametoindex_locals *) private; ++ if (strcmp (name, l->name) == 0) ++ { ++ l->index = index; ++ return 1; ++ } ++ return 0; ++} ++ ++/* Return the index of an interface given by name. */ ++unsigned int ++if_nametoindex (const char *ifname) ++{ ++ struct nametoindex_locals l; ++ ++ l.name = ifname; ++ l.index = 0; ++ if_iterate (nametoindex_aux, &l); ++ ++ return l.index; ++} ++libc_hidden_def (if_nametoindex) ++ ++/* ------------------------------------------------------------------------- */ ++ ++struct indextoname_locals ++ { ++ unsigned int index; ++ char *name; ++ char *retval; ++ }; ++ ++static int ++indextoname_aux (void *private, unsigned int index, const char *name) ++{ ++ struct indextoname_locals *l = (struct indextoname_locals *) private; ++ if (index == l->index) ++ { ++ strncpy (l->name, name, IF_NAMESIZE); ++ l->retval = l->name; ++ return 1; ++ } ++ __set_errno (ENXIO); ++ return 0; ++} ++ ++/* Return the name of an interface given by name. */ ++char * ++if_indextoname (unsigned int ifindex, char *ifname) ++{ ++ struct indextoname_locals l; ++ ++ l.index = ifindex; ++ l.name = ifname; ++ l.retval = NULL; ++ if_iterate (indextoname_aux, &l); ++ return l.retval; ++} ++libc_hidden_def (if_indextoname) ++ ++/* ------------------------------------------------------------------------- */ ++ ++struct nameindex_locals ++ { ++ /* Resizable array of 'struct if_nameindex'. */ ++ struct if_nameindex *s_array; ++ size_t s_len; ++ size_t s_allocated; ++ /* Resizable array of char. */ ++ char *c_array; ++ size_t c_len; ++ size_t c_allocated; ++ /* Out-of-memory indicator. */ ++ int oom; ++ }; ++ ++static void ++add_s (struct nameindex_locals *l, unsigned int index, char *name) ++{ ++ if (l->s_len == l->s_allocated) ++ { ++ size_t new_allocated = 2 * l->s_allocated + 1; ++ struct if_nameindex *new_array = ++ (struct if_nameindex *) ++ realloc (l->s_array, new_allocated * sizeof (struct if_nameindex)); ++ if (new_array == NULL) ++ { ++ l->oom = 1; ++ return; ++ } ++ l->s_array = new_array; ++ l->s_allocated = new_allocated; ++ } ++ /* Now l->s_len < l->s_allocated. */ ++ l->s_array[l->s_len].if_index = index; ++ l->s_array[l->s_len].if_name = name; ++ l->s_len++; ++} ++ ++static __inline size_t ++add_c (struct nameindex_locals *l, const char *name) ++{ ++ size_t n = strlen (name) + 1; ++ size_t result_offset; ++ if (l->c_len + n > l->c_allocated) ++ { ++ size_t new_allocated = ++ (l->c_len + n < 2 * l->c_allocated + 1 ++ ? l->c_len + n ++ : 2 * l->c_allocated + 1); ++ char *new_array = (char *) realloc (l->c_array, new_allocated); ++ if (new_array == NULL) ++ { ++ l->oom = 1; ++ return 0; ++ } ++ l->c_array = new_array; ++ l->c_allocated = new_allocated; ++ } ++ /* Now l->c_len + n <= l->c_allocated. */ ++ result_offset = l->c_len; ++ memcpy (l->c_array + l->c_len, name, n); ++ l->c_len += n; ++ return result_offset; ++} ++ ++static int ++nameindex_aux (void *private, unsigned int index, const char *name) ++{ ++ struct nameindex_locals *l = (struct nameindex_locals *) private; ++ ++ size_t name_offset = add_c (l, name); ++ if (!l->oom) ++ { ++ add_s (l, index, (char *) NULL + name_offset); ++ if (!l->oom) ++ return 0; ++ } ++ return 1; ++} ++ ++/* Return an array of 'struct if_nameindex', one for each present ++ interface. */ ++struct if_nameindex * ++if_nameindex (void) ++{ ++ struct nameindex_locals l; ++ ++ l.s_array = NULL; l.s_len = 0; l.s_allocated = 0; ++ l.c_array = NULL; l.c_len = 0; l.c_allocated = 0; ++ l.oom = 0; ++ if_iterate (nameindex_aux, &l); ++ if (!l.oom) ++ { ++ /* Convert all offsets to real pointers. */ ++ struct if_nameindex *p; ++ struct if_nameindex *p_end; ++ ++ for (p = l.s_array, p_end = p + l.s_len; p < p_end; p++) ++ p->if_name = l.c_array + (p->if_name - (char *) NULL); ++ ++ /* Add a terminating entry. */ ++ add_s (&l, 0, NULL); ++ } ++ if (l.oom) ++ { ++ free (l.s_array); ++ free (l.c_array); ++ __set_errno (ENOMEM); ++ return NULL; ++ } ++ return l.s_array; ++} ++libc_hidden_def (if_nameindex) ++ ++/* ------------------------------------------------------------------------- */ ++ ++/* Free an array returned by if_nameindex(). */ ++void ++if_freenameindex (struct if_nameindex *ifn) ++{ ++ if (ifn != NULL) ++ { ++ /* Free c_array. */ ++ free (ifn[0].if_name); ++ /* Free s_array. */ ++ free (ifn); ++ } ++} ++libc_hidden_def (if_freenameindex) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ifaddrs.c +@@ -0,0 +1,362 @@ ++/* $KAME: getifaddrs.c,v 1.9 2001/08/20 02:31:20 itojun Exp $ */ ++ ++/* ++ * Copyright (c) 1995, 1999 ++ * Berkeley Software Design, Inc. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * THIS SOFTWARE IS PROVIDED BY Berkeley Software Design, Inc. ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL Berkeley Software Design, Inc. BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * BSDI getifaddrs.c,v 2.12 2000/02/23 14:51:59 dab Exp ++ */ ++ ++#include ++ ++ /* ++__FBSDID("$FreeBSD: src/lib/libc/net/getifaddrs.c,v 1.6 2002/07/25 08:08:30 ume Exp $"); ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef NET_RT_IFLIST ++#include ++#include ++#include ++#include ++#else ++#error NET_RT_IFLIST is required ++#endif ++ ++#include ++#include ++#include ++#include ++ ++#if !defined(AF_LINK) ++#define SA_LEN(sa) sizeof(struct sockaddr) ++#endif ++ ++#if !defined(SA_LEN) ++#define SA_LEN(sa) (sa)->sa_len ++#endif ++ ++#define SALIGN (sizeof(long) - 1) ++#define SA_RLEN(sa) ((sa)->sa_len ? (((sa)->sa_len + SALIGN) & ~SALIGN) : (SALIGN + 1)) ++ ++#ifndef ALIGNBYTES ++/* ++ * On systems with a routing socket, ALIGNBYTES should match the value ++ * that the kernel uses when building the messages. ++ */ ++#define ALIGNBYTES XXX ++#endif ++#ifndef ALIGN ++#define ALIGN(p) (((u_long)(p) + ALIGNBYTES) &~ ALIGNBYTES) ++#endif ++ ++#define HAVE_IFM_DATA ++#define MAX_SYSCTL_TRY 5 ++ ++int ++getifaddrs(struct ifaddrs **pif) ++{ ++ int icnt = 1; ++ int dcnt = 0; ++ int ncnt = 0; ++#ifdef NET_RT_IFLIST ++ int ntry = 0; ++ int mib[6]; ++ size_t needed; ++ char *buf; ++ char *next; ++ struct ifaddrs *cif = 0; ++ char *p, *p0; ++ struct rt_msghdr *rtm; ++ struct if_msghdr *ifm; ++ struct ifa_msghdr *ifam; ++ struct sockaddr_dl *dl; ++ struct sockaddr *sa; ++ struct ifaddrs *ifa, *ift; ++ u_short idx = 0; ++#else /* NET_RT_IFLIST */ ++#endif /* NET_RT_IFLIST */ ++ int i; ++ size_t len, alen; ++ char *data; ++ char *names; ++ ++#ifdef NET_RT_IFLIST ++ mib[0] = CTL_NET; ++ mib[1] = PF_ROUTE; ++ mib[2] = 0; /* protocol */ ++ mib[3] = 0; /* wildcard address family */ ++ mib[4] = NET_RT_IFLIST; ++ mib[5] = 0; /* no flags */ ++ do { ++ /* ++ * We'll try to get addresses several times in case that ++ * the number of addresses is unexpectedly increased during ++ * the two sysctl calls. This should rarely happen, but we'll ++ * try to do our best for applications that assume success of ++ * this library (which should usually be the case). ++ * Portability note: since FreeBSD does not add margin of ++ * memory at the first sysctl, the possibility of failure on ++ * the second sysctl call is a bit higher. ++ */ ++ ++ if (__sysctl(mib, 6, NULL, &needed, NULL, 0) < 0) ++ return (-1); ++ if ((buf = malloc(needed)) == NULL) ++ return (-1); ++ if (__sysctl(mib, 6, buf, &needed, NULL, 0) < 0) { ++ if (errno != ENOMEM || ++ntry >= MAX_SYSCTL_TRY) { ++ free(buf); ++ return (-1); ++ } ++ free(buf); ++ buf = NULL; ++ } ++ } while (buf == NULL); ++ ++ for (next = buf; next < buf + needed; next += rtm->rtm_msglen) { ++ rtm = (struct rt_msghdr *)(void *)next; ++ if (rtm->rtm_version != RTM_VERSION) ++ continue; ++ switch (rtm->rtm_type) { ++ case RTM_IFINFO: ++ ifm = (struct if_msghdr *)(void *)rtm; ++ if (ifm->ifm_addrs & RTA_IFP) { ++ idx = ifm->ifm_index; ++ ++icnt; ++ dl = (struct sockaddr_dl *)(void *)(ifm + 1); ++ dcnt += SA_RLEN((struct sockaddr *)(void*)dl) + ++ ALIGNBYTES; ++#ifdef HAVE_IFM_DATA ++ dcnt += sizeof(ifm->ifm_data); ++#endif /* HAVE_IFM_DATA */ ++ ncnt += dl->sdl_nlen + 1; ++ } else ++ idx = 0; ++ break; ++ ++ case RTM_NEWADDR: ++ ifam = (struct ifa_msghdr *)(void *)rtm; ++ if (idx && ifam->ifam_index != idx) ++ { ++ errno = EINVAL; /* this cannot happen */ ++ return -1; ++ }; ++#define RTA_MASKS (RTA_NETMASK | RTA_IFA | RTA_BRD) ++ if (idx == 0 || (ifam->ifam_addrs & RTA_MASKS) == 0) ++ break; ++ p = (char *)(void *)(ifam + 1); ++ ++icnt; ++#ifdef HAVE_IFAM_DATA ++ dcnt += sizeof(ifam->ifam_data) + ALIGNBYTES; ++#endif /* HAVE_IFAM_DATA */ ++ /* Scan to look for length of address */ ++ alen = 0; ++ for (p0 = p, i = 0; i < RTAX_MAX; i++) { ++ if ((RTA_MASKS & ifam->ifam_addrs & (1 << i)) ++ == 0) ++ continue; ++ sa = (struct sockaddr *)(void *)p; ++ len = SA_RLEN(sa); ++ if (i == RTAX_IFA) { ++ alen = len; ++ break; ++ } ++ p += len; ++ } ++ for (p = p0, i = 0; i < RTAX_MAX; i++) { ++ if ((RTA_MASKS & ifam->ifam_addrs & (1 << i)) ++ == 0) ++ continue; ++ sa = (struct sockaddr *)(void *)p; ++ len = SA_RLEN(sa); ++ if (i == RTAX_NETMASK && SA_LEN(sa) == 0) ++ dcnt += alen; ++ else ++ dcnt += len; ++ p += len; ++ } ++ break; ++ } ++ } ++#else /* NET_RT_IFLIST */ ++#endif /* NET_RT_IFLIST */ ++ ++ if (icnt + dcnt + ncnt == 1) { ++ *pif = NULL; ++ free(buf); ++ return (0); ++ } ++ data = malloc(sizeof(struct ifaddrs) * icnt + dcnt + ncnt); ++ if (data == NULL) { ++ free(buf); ++ return(-1); ++ } ++ ++ ifa = (struct ifaddrs *)(void *)data; ++ data += sizeof(struct ifaddrs) * icnt; ++ names = data + dcnt; ++ ++ memset(ifa, 0, sizeof(struct ifaddrs) * icnt); ++ ift = ifa; ++ ++#ifdef NET_RT_IFLIST ++ idx = 0; ++ for (next = buf; next < buf + needed; next += rtm->rtm_msglen) { ++ rtm = (struct rt_msghdr *)(void *)next; ++ if (rtm->rtm_version != RTM_VERSION) ++ continue; ++ switch (rtm->rtm_type) { ++ case RTM_IFINFO: ++ ifm = (struct if_msghdr *)(void *)rtm; ++ if (ifm->ifm_addrs & RTA_IFP) { ++ idx = ifm->ifm_index; ++ dl = (struct sockaddr_dl *)(void *)(ifm + 1); ++ ++ cif = ift; ++ ift->ifa_name = names; ++ ift->ifa_flags = (int)ifm->ifm_flags; ++ memcpy(names, dl->sdl_data, ++ (size_t)dl->sdl_nlen); ++ names[dl->sdl_nlen] = 0; ++ names += dl->sdl_nlen + 1; ++ ++ ift->ifa_addr = (struct sockaddr *)(void *)data; ++ memcpy(data, dl, ++ (size_t)SA_LEN((struct sockaddr *) ++ (void *)dl)); ++ data += SA_RLEN((struct sockaddr *)(void *)dl); ++ ++#ifdef HAVE_IFM_DATA ++ /* ifm_data needs to be aligned */ ++ ift->ifa_data = data = (void *)ALIGN(data); ++ memcpy(data, &ifm->ifm_data, sizeof(ifm->ifm_data)); ++ data += sizeof(ifm->ifm_data); ++#else /* HAVE_IFM_DATA */ ++ ift->ifa_data = NULL; ++#endif /* HAVE_IFM_DATA */ ++ ++ ift = (ift->ifa_next = ift + 1); ++ } else ++ idx = 0; ++ break; ++ ++ case RTM_NEWADDR: ++ ifam = (struct ifa_msghdr *)(void *)rtm; ++ if (idx && ifam->ifam_index != idx) ++ { ++ errno = EINVAL; /* this cannot happen */ ++ return -1; ++ }; ++ if (idx == 0 || (ifam->ifam_addrs & RTA_MASKS) == 0) ++ break; ++ ift->ifa_name = cif->ifa_name; ++ ift->ifa_flags = cif->ifa_flags; ++ ift->ifa_data = NULL; ++ p = (char *)(void *)(ifam + 1); ++ /* Scan to look for length of address */ ++ alen = 0; ++ for (p0 = p, i = 0; i < RTAX_MAX; i++) { ++ if ((RTA_MASKS & ifam->ifam_addrs & (1 << i)) ++ == 0) ++ continue; ++ sa = (struct sockaddr *)(void *)p; ++ len = SA_RLEN(sa); ++ if (i == RTAX_IFA) { ++ alen = len; ++ break; ++ } ++ p += len; ++ } ++ for (p = p0, i = 0; i < RTAX_MAX; i++) { ++ if ((RTA_MASKS & ifam->ifam_addrs & (1 << i)) ++ == 0) ++ continue; ++ sa = (struct sockaddr *)(void *)p; ++ len = SA_RLEN(sa); ++ switch (i) { ++ case RTAX_IFA: ++ ift->ifa_addr = ++ (struct sockaddr *)(void *)data; ++ memcpy(data, p, len); ++ data += len; ++ break; ++ ++ case RTAX_NETMASK: ++ ift->ifa_netmask = ++ (struct sockaddr *)(void *)data; ++ if (SA_LEN(sa) == 0) { ++ memset(data, 0, alen); ++ data += alen; ++ break; ++ } ++ memcpy(data, p, len); ++ data += len; ++ break; ++ ++ case RTAX_BRD: ++ ift->ifa_broadaddr = ++ (struct sockaddr *)(void *)data; ++ memcpy(data, p, len); ++ data += len; ++ break; ++ } ++ p += len; ++ } ++ ++#ifdef HAVE_IFAM_DATA ++ /* ifam_data needs to be aligned */ ++ ift->ifa_data = data = (void *)ALIGN(data); ++ memcpy(data, &ifam->ifam_data, sizeof(ifam->ifam_data)); ++ data += sizeof(ifam->ifam_data); ++#endif /* HAVE_IFAM_DATA */ ++ ++ ift = (ift->ifa_next = ift + 1); ++ break; ++ } ++ } ++ ++ free(buf); ++#else /* NET_RT_IFLIST */ ++#endif /* NET_RT_IFLIST */ ++ if (--ift >= ifa) { ++ ift->ifa_next = NULL; ++ *pif = ifa; ++ } else { ++ *pif = NULL; ++ free(ifa); ++ } ++ return (0); ++} ++libc_hidden_def (getifaddrs) ++ ++void ++freeifaddrs(struct ifaddrs *ifp) ++{ ++ ++ free(ifp); ++} ++libc_hidden_def (freeifaddrs) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ifreq.c +@@ -0,0 +1,93 @@ ++/* Copyright (C) 1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++/* The FreeBSD ioctl SIOCGIFCONF returns the list if interfaces as a ++ concatenation of records of different size, each having at least ++ sizeof (struct ifreq) bytes. */ ++ ++ ++void ++__ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd) ++{ ++ int fd = sockfd; ++ struct ifconf ifc; ++ int rq_len; ++ int nifs; ++ char *ifstart; ++ char *ifend; ++ struct ifreq *ifr; ++ /* FreeBSD has many interfaces, many of them are usually down. */ ++# define RQ_IFS 16 ++ /* We have to assume all records are of limited size, so that we know ++ when we can stop enlarging the buffer. */ ++# define RQ_MAXSIZE 256 ++ ++ if (fd < 0) ++ fd = __opensock (); ++ if (fd < 0) ++ { ++ *num_ifs = 0; ++ *ifreqs = NULL; ++ return; ++ } ++ ++ ifc.ifc_buf = NULL; ++ rq_len = RQ_IFS * sizeof (struct ifreq) + RQ_MAXSIZE; ++ for (;;) ++ { ++ ifc.ifc_len = rq_len; ++ ifc.ifc_buf = realloc (ifc.ifc_buf, ifc.ifc_len); ++ if (ifc.ifc_buf == NULL || __ioctl (fd, SIOCGIFCONF, &ifc) < 0) ++ { ++ if (ifc.ifc_buf) ++ free (ifc.ifc_buf); ++ ++ if (fd != sockfd) ++ __close (fd); ++ *num_ifs = 0; ++ *ifreqs = NULL; ++ return; ++ } ++ if (ifc.ifc_len + RQ_MAXSIZE <= rq_len) ++ break; ++ rq_len *= 2; ++ } ++ ++ nifs = 0; ++ ifstart = (char *) ifc.ifc_buf; ++ ifend = ifstart + ifc.ifc_len; ++ for (ifr = (struct ifreq *) ifstart; ++ (char *) ifr < ifend; ++ ifr = __if_nextreq (ifr)) ++ nifs++; ++ ++ if (fd != sockfd) ++ __close (fd); ++ ++ *num_ifs = nifs; ++ *ifreqs = realloc (ifc.ifc_buf, ifc.ifc_len); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/init-first.c +@@ -0,0 +1,135 @@ ++/* Initialization code run first thing by the ELF startup code. ++ Copyright (C) 1995-2004, 2005, 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++extern int __syscall_sigaction (int __sig, const struct sigaction *__act, struct sigaction *__oact) __THROW; ++libc_hidden_proto (__syscall_sigaction) ++ ++/* Set nonzero if we have to be prepared for more then one libc being ++ used in the process. Safe assumption if initializer never runs. */ ++int __libc_multiple_libcs attribute_hidden = 1; ++ ++/* Remember the command line argument and enviroment contents for ++ later calls of initializers for dynamic libraries. */ ++int __libc_argc attribute_hidden; ++char **__libc_argv attribute_hidden; ++ ++ ++void ++__libc_init_first (int argc, char **argv, char **envp) ++{ ++#ifdef SHARED ++ /* For DSOs we do not need __libc_init_first but instead _init. */ ++} ++ ++void ++attribute_hidden ++_init (int argc, char **argv, char **envp) ++{ ++#endif ++#ifdef USE_NONOPTION_FLAGS ++ extern void __getopt_clean_environment (char **); ++#endif ++ ++ __libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up; ++ ++ /* Make sure we don't initialize twice. */ ++ if (!__libc_multiple_libcs) ++ { ++ /* Set the FPU control word to the proper default value if the ++ kernel would use a different value. (In a static program we ++ don't have this information.) */ ++#if 0 ++ /* at least on kFreeBSD set it even if SHARED, ++ fixes "make check" failures like math/test-fpucw.out */ ++#ifdef SHARED ++ if (__fpu_control != GLRO(dl_fpu_control)) ++#endif ++#endif ++ __setfpucw (__fpu_control); ++ } ++ ++ /* By default on kFreeBSD when a call to non existing syscall is ++ made, the program is terminated. As we want to be able to detect ++ missing syscalls and provide a fallback code, we ignore the SIGSYS ++ signal. */ ++ { ++ struct sigaction act; ++ ++ act.sa_handler = SIG_IGN; ++ __sigemptyset (&act.sa_mask); ++ act.sa_flags = 0; ++ ++ INLINE_SYSCALL (sigaction, 3, SIGSYS, &act, NULL); ++ } ++ ++ /* Save the command-line arguments. */ ++ __libc_argc = argc; ++ __libc_argv = argv; ++ __environ = envp; ++ ++#ifndef SHARED ++ __libc_init_secure (); ++ ++ /* First the initialization which normally would be done by the ++ dynamic linker. */ ++ _dl_non_dynamic_init (); ++#endif ++ ++#ifdef VDSO_SETUP ++ VDSO_SETUP (); ++#endif ++ ++ __init_misc (argc, argv, envp); ++ ++#ifdef USE_NONOPTION_FLAGS ++ /* This is a hack to make the special getopt in GNU libc working. */ ++ __getopt_clean_environment (envp); ++#endif ++ ++#ifdef SHARED ++ __libc_global_ctors (); ++#endif ++} ++ ++ ++/* This function is defined here so that if this file ever gets into ++ ld.so we will get a link error. Having this file silently included ++ in ld.so causes disaster, because the _init definition above will ++ cause ld.so to gain an init function, which is not a cool thing. */ ++ ++extern void _dl_start (void) __attribute__ ((noreturn)); ++ ++void ++_dl_start (void) ++{ ++ abort (); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/kenv.h +@@ -0,0 +1,39 @@ ++/*- ++ * Copyright (c) 2002 Maxime Henrion ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * $FreeBSD: src/include/kenv.h,v 1.2.8.1 2009/04/15 03:14:26 kensmith Exp $ ++ */ ++ ++#ifndef _KENV_H_ ++#define _KENV_H 1 ++ ++#include ++#include ++ ++__BEGIN_DECLS ++int kenv(int action, const char *name, char *value, int len); ++__END_DECLS ++ ++#endif /* !_KENV_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/kernel-features.h +@@ -0,0 +1,92 @@ ++/* Set flags signalling availability of kernel features based on given ++ kernel version number. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef __KFREEBSD_KERNEL_VERSION ++/* We assume the worst; all kernels should be supported. */ ++# define __KFREEBSD_KERNEL_VERSION 0 ++#endif ++ ++/* The encoding for __KFREEBSD_KERNEL_VERSION is defined the following ++ way: the major, minor, and subminor all get a byte with the major ++ number being in the highest byte. This means we can do numeric ++ comparisons. ++ ++ In the following we will define certain symbols depending on ++ whether the describes kernel feature is available in the kernel ++ version given by __KFREEBSD_KERNEL_VERSION. We are not always exactly ++ recording the correct versions in which the features were ++ introduced. If somebody cares these values can afterwards be ++ corrected. */ ++ ++/* ++ The used encoding corresponds to the following in elf/dl-load.c: ++ ++ osversion = (abi_note[5] & 0xff) * 65536 ++ + (abi_note[6] & 0xff) * 256 ++ + (abi_note[7] & 0xff); ++ if (abi_note[4] != __ABI_TAG_OS ++ || (GLRO(dl_osversion) && GLRO(dl_osversion) < osversion)) ++ ++ Therefore, the __KFREEBSD_KERNEL_VERSION have different value compared to ++ __FreeBSD_version/__FreeBSD_kernel__version. ++ The transformation is not just prepend 0x to __FreeBSD_kernel_version. ++ ++ For changes see i.e. ++ http://www.freebsd.org/doc/en/books/porters-handbook/freebsd-versions.html ++*/ ++ ++/* Real-time signals introduced in FreeBSD 7.x. */ ++#if __KFREEBSD_KERNEL_VERSION >= 0x70032 ++# define __ASSUME_REALTIME_SIGNALS 1 ++#endif ++ ++/* Use signals #32, #33, #34 for internal linuxthreads communication */ ++#define PTHREAD_SIGBASE 32 ++ ++/* The `ftruncate' syscall was introduced in kFreeBSD 7.0. */ ++#if __KFREEBSD_KERNEL_VERSION >= 0x70032 ++# define __ASSUME_TRUNCATE_SYSCALL 1 ++#endif ++ ++/* The `lseek' syscall was introduced in kFreeBSD 7.0. */ ++#if __KFREEBSD_KERNEL_VERSION >= 0x70032 ++# define __ASSUME_LSEEK_SYSCALL 1 ++#endif ++ ++/* The `mmap' syscall was introduced in kFreeBSD 7.0. */ ++#if __KFREEBSD_KERNEL_VERSION >= 0x70032 ++# define __ASSUME_MMAP_SYSCALL 1 ++#endif ++ ++/* The `pread' and `pwrite' syscalls were introduced in kFreeBSD 7.0. */ ++#if __KFREEBSD_KERNEL_VERSION >= 0x70032 ++# define __ASSUME_PREAD_PWRITE_SYSCALLS 1 ++#endif ++ ++/* The `shm_*' syscalls were introduced in kFreeBSD 8.0 */ ++#if __KFREEBSD_KERNEL_VERSION >= 0x8000C ++# define __ASSUME_SHMFCTS 1 ++#endif ++ ++/* The `*at' syscalls were introduced in kFreeBSD 8.0. */ ++#if __KFREEBSD_KERNEL_VERSION >= 0x8001D ++# define __ASSUME_ATFCTS 1 ++#endif ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/kernel-posix-cpu-timers.h +@@ -0,0 +1,5 @@ ++/* Parameters for the FreeBSD kernel ABI for CPU clocks. */ ++ ++#define CPUCLOCK_WHICH(clock) ((clock) & (clockid_t) CPUCLOCK_CLOCK_MASK) ++#define CPUCLOCK_CLOCK_MASK 7 ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ldsodefs.h +@@ -0,0 +1,39 @@ ++/* Run-time dynamic linker data structures for loaded ELF shared objects. ++ Copyright (C) 2001, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _LDSODEFS_H ++ ++/* Get the real definitions. */ ++#include_next ++ ++/* Now define our stuff. */ ++ ++/* FreeBSD puts some extra information into an auxiliary vector when it ++ execs ELF executables. Note that it uses AT_* values of 10 and 11 ++ to denote something different than AT_NOTELF and AT_UID, but this is ++ not a problem since elf/dl-support.c ignores these AT_* values. */ ++#define HAVE_AUX_VECTOR ++ ++/* Used by static binaries to check the auxiliary vector. */ ++extern void _dl_aux_init (ElfW(auxv_t) *av) internal_function; ++ ++/* Initialization which is normally done by the dynamic linker. */ ++extern void _dl_non_dynamic_init (void) internal_function; ++ ++#endif /* ldsodefs.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linkat.c +@@ -0,0 +1,182 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_linkat (int fd1, const char *path1, int fd2, ++ const char *path2, int flags); ++libc_hidden_proto (__syscall_linkat) ++ ++/* Make a link to FROM named TO but relative paths in TO and FROM are ++ interpreted relative to FROMFD and TOFD respectively. */ ++int ++linkat (fromfd, from, tofd, to, flags) ++ int fromfd; ++ const char *from; ++ int tofd; ++ const char *to; ++ int flags; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result = INLINE_SYSCALL (linkat, 5, fromfd, from, tofd, to, flags); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ /* Without kernel support we cannot handle AT_SYMLINK_FOLLOW. */ ++ if (flags != 0) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ if ((fromfd != AT_FDCWD && from[0] != '/') ++ || (tofd != AT_FDCWD && to[0] != '/')) ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t fromlen, tolen; ++ ++ if ((fromfd < 0) || (tofd < 0)) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ fromlen = strlen (from); ++ tolen = strlen (to); ++ if (__builtin_expect (fromlen == 0, 0) ++ || __builtin_expect (tolen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ if (fromfd != AT_FDCWD && from[0] != '/') ++ { ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = ++ (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fromfd) ++ { ++ char *buf; ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ buf = alloca (strlen (kf->kf_path) + fromlen + 2); ++ strcpy(buf, kf->kf_path); ++ strcat (buf, "/"); ++ strcat (buf, from); ++ from = buf; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ if (tofd != AT_FDCWD && to[0] != '/') ++ { ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = ++ (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == tofd) ++ { ++ char *buf; ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ buf = alloca (strlen (kf->kf_path) + tolen + 2); ++ strcpy(buf, kf->kf_path); ++ strcat (buf, "/"); ++ strcat (buf, to); ++ to = buf; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ } ++ ++ return __link (from, to); ++#endif ++} ++stub_warning(linkat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Implies +@@ -0,0 +1 @@ ++pthread +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Makefile +@@ -0,0 +1,4 @@ ++ifeq ($(subdir),linuxthreads) ++sysdep_routines += register-atfork unregister-atfork ++libpthread-routines += ptw-sigprocmask ptw-ioctl ++endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Versions +@@ -0,0 +1,5 @@ ++libc { ++ GLIBC_2.3.2 { ++ __register_atfork; ++ } ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/allocrtsig.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/local_lim.h +@@ -0,0 +1,48 @@ ++/* Minimum guaranteed maximum values for system limits. FreeBSD version. ++ Copyright (C) 1993-1998, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++/* The number of data keys per process. */ ++#define _POSIX_THREAD_KEYS_MAX 128 ++/* This is the value this implementation supports. */ ++#define PTHREAD_KEYS_MAX 1024 ++ ++/* Controlling the iterations of destructors for thread-specific data. */ ++#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 ++/* Number of iterations this implementation does. */ ++#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS ++ ++/* The number of threads per process. */ ++#define _POSIX_THREAD_THREADS_MAX 64 ++/* This is the value this implementation supports. */ ++#define PTHREAD_THREADS_MAX 1024 ++ ++/* Maximum amount by which a process can descrease its asynchronous I/O ++ priority level. */ ++#define AIO_PRIO_DELTA_MAX 20 ++ ++/* Minimum size for a thread. We are free to choose a reasonable value. */ ++#define PTHREAD_STACK_MIN 16384 ++ ++/* Maximum number of POSIX timers available. */ ++#define TIMER_MAX 256 ++ ++/* Maximum number of timer expiration overruns. */ ++#define DELAYTIMER_MAX 2147483647 +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/posix_opt.h +@@ -0,0 +1,190 @@ ++/* Define POSIX options for FreeBSD. ++ Copyright (C) 1996-1997, 1999, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* ++ * Never include this file directly; use instead. ++ */ ++ ++#ifndef _BITS_POSIX_OPT_H ++#define _BITS_POSIX_OPT_H 1 ++ ++/* Job control is supported. */ ++#define _POSIX_JOB_CONTROL 1 ++ ++/* Processes have a saved set-user-ID and a saved set-group-ID. */ ++#define _POSIX_SAVED_IDS 1 ++ ++/* Priority scheduling is supported. */ ++#define _POSIX_PRIORITY_SCHEDULING 200809L ++ ++/* Synchronizing file data is supported. */ ++#define _POSIX_SYNCHRONIZED_IO 200809L ++ ++/* The fsync function is present. */ ++#define _POSIX_FSYNC 200809L ++ ++/* Mapping of files to memory is supported. */ ++#define _POSIX_MAPPED_FILES 200809L ++ ++/* Locking of all memory is supported. */ ++#define _POSIX_MEMLOCK 200809L ++ ++/* Locking of ranges of memory is supported. */ ++#define _POSIX_MEMLOCK_RANGE 200809L ++ ++/* Setting of memory protections is supported. */ ++#define _POSIX_MEMORY_PROTECTION 200809L ++ ++/* Only root can change owner of file. */ ++#define _POSIX_CHOWN_RESTRICTED 1 ++ ++/* `c_cc' member of 'struct termios' structure can be disabled by ++ using the value _POSIX_VDISABLE. */ ++#define _POSIX_VDISABLE ((unsigned char)'\377') ++ ++/* Filenames are not silently truncated. */ ++#define _POSIX_NO_TRUNC 1 ++/* X/Open realtime support is only partially available. */ ++#define _XOPEN_REALTIME -1 ++ ++/* X/Open realtime thread support is only partially available. */ ++#define _XOPEN_REALTIME_THREADS -1 ++ ++/* Implementation supports `poll' function. */ ++#define _POSIX_POLL 1 ++ ++/* Implementation supports `select' and `pselect' functions. */ ++#define _POSIX_SELECT 1 ++ ++/* XPG4.2 shared memory is supported. */ ++#define _XOPEN_SHM 1 ++ ++/* Tell we have POSIX threads. */ ++#define _POSIX_THREADS 200809L ++ ++/* We have the reentrant functions described in POSIX. */ ++#define _POSIX_REENTRANT_FUNCTIONS 1 ++#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L ++ ++/* We provide priority scheduling for threads. */ ++#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L ++ ++/* We support user-defined stack sizes. */ ++#define _POSIX_THREAD_ATTR_STACKSIZE 200809L ++ ++/* We support user-defined stacks. */ ++#define _POSIX_THREAD_ATTR_STACKADDR 200809L ++ ++/* We support POSIX.1b semaphores, but only the non-shared form for now. */ ++#define _POSIX_SEMAPHORES 200809L ++ ++/* Real-time signals are not available. */ ++#define _POSIX_REALTIME_SIGNALS -1 ++ ++/* We support asynchronous I/O. */ ++#define _POSIX_ASYNCHRONOUS_IO 200809L ++#define _POSIX_ASYNC_IO 1 ++/* Alternative name for Unix98. */ ++#define _LFS_ASYNCHRONOUS_IO 1 ++/* Support for prioritization is not available. */ ++#define _POSIX_PRIORITIZED_IO -1 ++ ++/* The LFS support in asynchronous I/O is also available. */ ++#define _LFS64_ASYNCHRONOUS_IO 1 ++ ++/* The rest of the LFS is also available. */ ++#define _LFS_LARGEFILE 1 ++#define _LFS64_LARGEFILE 1 ++#define _LFS64_STDIO 1 ++ ++/* POSIX shared memory objects are implemented. */ ++#define _POSIX_SHARED_MEMORY_OBJECTS 200809L ++ ++/* CPU-time clocks somewhere supported. */ ++#define _POSIX_CPUTIME 0 ++ ++/* We support somewhere the clock also in threads. */ ++#define _POSIX_THREAD_CPUTIME 0 ++ ++/* GNU libc provides regular expression handling. */ ++#define _POSIX_REGEXP 1 ++ ++/* Reader/Writer locks are available. */ ++#define _POSIX_READER_WRITER_LOCKS 200809L ++ ++/* We have a POSIX shell. */ ++#define _POSIX_SHELL 1 ++ ++/* We support the Timeouts option. */ ++#define _POSIX_TIMEOUTS 200809L ++ ++/* We support spinlocks. */ ++#define _POSIX_SPIN_LOCKS 200809L ++ ++/* The `spawn' function family is supported. */ ++#define _POSIX_SPAWN 200809L ++ ++/* We have POSIX timers. */ ++#define _POSIX_TIMERS 200809L ++ ++/* The barrier functions are available. */ ++#define _POSIX_BARRIERS 200809L ++ ++/* POSIX message queues are not available. */ ++#define _POSIX_MESSAGE_PASSING -1 ++ ++/* Thread process-shared synchronization is not supported. */ ++#define _POSIX_THREAD_PROCESS_SHARED -1 ++ ++/* The monotonic clock is available. */ ++#define _POSIX_MONOTONIC_CLOCK 200809L ++ ++/* The clock selection interfaces are not available. */ ++#define _POSIX_CLOCK_SELECTION -1 ++ ++/* Advisory information interfaces are not available. */ ++#define _POSIX_ADVISORY_INFO -1 ++ ++/* IPv6 support is available. */ ++#define _POSIX_IPV6 200809L ++ ++/* Raw socket support is available. */ ++#define _POSIX_RAW_SOCKETS 200809L ++ ++/* We have at least one terminal. */ ++#define _POSIX2_CHAR_TERM 200809L ++ ++/* Neither process nor thread sporadic server interfaces is available. */ ++#define _POSIX_SPORADIC_SERVER -1 ++#define _POSIX_THREAD_SPORADIC_SERVER -1 ++ ++/* trace.h is not available. */ ++#define _POSIX_TRACE -1 ++#define _POSIX_TRACE_EVENT_FILTER -1 ++#define _POSIX_TRACE_INHERIT -1 ++#define _POSIX_TRACE_LOG -1 ++ ++/* Typed memory objects are not available. */ ++#define _POSIX_TYPED_MEMORY_OBJECTS -1 ++ ++/* No support for priority inheritance or protection. */ ++#define _POSIX_THREAD_PRIO_INHERIT -1 ++#define _POSIX_THREAD_PRIO_PROTECT -1 ++ ++#endif /* bits/posix_opt.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/sigthread.h +@@ -0,0 +1,38 @@ ++/* Signal handling function for threaded programs. ++ Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _BITS_SIGTHREAD_H ++#define _BITS_SIGTHREAD_H 1 ++ ++#if !defined _SIGNAL_H && !defined _PTHREAD_H ++# error "Never include this file directly. Use instead" ++#endif ++ ++/* Functions for handling signals. */ ++ ++/* Modify the signal mask for the calling thread. The arguments have ++ the same meaning as for sigprocmask(2). */ ++extern int pthread_sigmask (int __how, ++ __const __sigset_t *__restrict __newmask, ++ __sigset_t *__restrict __oldmask) __THROW; ++ ++/* Send signal SIGNO to the given thread. */ ++extern int pthread_kill (pthread_t __threadid, int __signo) __THROW; ++ ++#endif /* bits/sigthread.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/typesizes.h +@@ -0,0 +1,66 @@ ++/* bits/typesizes.h -- underlying types for *_t. kFreeBSD version. ++ Copyright (C) 2002, 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _BITS_TYPES_H ++# error "Never include directly; use instead." ++#endif ++ ++#ifndef _BITS_TYPESIZES_H ++#define _BITS_TYPESIZES_H 1 ++ ++/* See for the meaning of these macros. This file exists so ++ that need not vary across different GNU platforms. */ ++ ++#define __DEV_T_TYPE __U32_TYPE ++#define __UID_T_TYPE __U32_TYPE ++#define __GID_T_TYPE __U32_TYPE ++#define __INO_T_TYPE __U32_TYPE ++#define __INO64_T_TYPE __UQUAD_TYPE ++#define __MODE_T_TYPE __U16_TYPE ++#define __NLINK_T_TYPE __U16_TYPE ++#define __OFF_T_TYPE __SQUAD_TYPE ++#define __OFF64_T_TYPE __SQUAD_TYPE ++#define __PID_T_TYPE __S32_TYPE ++#define __RLIM_T_TYPE __SQUAD_TYPE ++#define __RLIM64_T_TYPE __SQUAD_TYPE ++#define __BLKCNT_T_TYPE __SQUAD_TYPE ++#define __BLKCNT64_T_TYPE __SQUAD_TYPE ++#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE ++#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE ++#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE ++#define __FSFILCNT64_T_TYPE __UQUAD_TYPE ++#define __ID_T_TYPE __U32_TYPE ++#define __CLOCK_T_TYPE __S32_TYPE ++#define __TIME_T_TYPE __SLONGWORD_TYPE ++#define __USECONDS_T_TYPE __U32_TYPE ++#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE ++#define __DADDR_T_TYPE __SQUAD_TYPE ++#define __SWBLK_T_TYPE __S32_TYPE ++#define __KEY_T_TYPE __SLONGWORD_TYPE ++#define __CLOCKID_T_TYPE __S32_TYPE ++#define __TIMER_T_TYPE __S32_TYPE ++#define __BLKSIZE_T_TYPE __U32_TYPE ++#define __FSID_T_TYPE union { int __val[2]; int val[2]; } ++#define __SSIZE_T_TYPE __SWORD_TYPE ++ ++/* Number of descriptors that can fit in an `fd_set'. */ ++#define __FD_SETSIZE 1024 ++ ++ ++#endif /* bits/typesizes.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/execve.c +@@ -0,0 +1,2 @@ ++#include ++libc_hidden_proto (__syscall_execve ) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fatal-prepare.h +@@ -0,0 +1,39 @@ ++/* Copyright (C) 2003, 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++/* We have to completely disable cancellation. assert() must not be a ++ cancellation point but the implementation uses write() etc. */ ++#ifdef SHARED ++# include ++# define FATAL_PREPARE \ ++ { \ ++ int (*fp) (int, int *); \ ++ fp = __libc_pthread_functions.ptr_pthread_setcancelstate; \ ++ if (fp != NULL) \ ++ fp (PTHREAD_CANCEL_DISABLE, NULL); \ ++ } ++#else ++# pragma weak pthread_setcancelstate ++# define FATAL_PREPARE \ ++ { \ ++ if (pthread_setcancelstate != NULL) \ ++ pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, NULL); \ ++ } ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fork.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fork.h +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/jmp-unwind.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/lowlevellock.h +@@ -0,0 +1,47 @@ ++/* Copyright (C) 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _LOWLEVELLOCK_H ++#define _LOWLEVELLOCK_H 1 ++ ++#include ++ ++typedef union ++{ ++ volatile void * uv; /* in fact struct umtx from */ ++ volatile int iv; ++ volatile long lv; ++ ++} __rtld_mrlock_t; ++ ++#define UMTX_OP_WAIT 2 /* */ ++#define UMTX_OP_WAKE 3 /* */ ++ ++extern int __syscall__umtx_op(void *, int, long, void*, void*); ++ ++static inline void lll_futex_wake(long *umtx, unsigned int nr_wakeup) ++{ ++ __syscall__umtx_op(umtx, UMTX_OP_WAKE, nr_wakeup, NULL, NULL); ++} ++ ++static inline void lll_futex_wait(long *umtx, unsigned int old_val) ++{ ++ __syscall__umtx_op(umtx, UMTX_OP_WAIT, old_val, NULL, NULL); ++} ++ ++#endif /* lowlevellock.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/pt-sigsuspend.S +@@ -0,0 +1,29 @@ ++/* Internal sigsuspend system call for LinuxThreads. FreeBSD version. ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++#include ++ ++PSEUDO_NOERRNO(__pthread_sigsuspend, sigsuspend, 1) ++ ret_NOERRNO ++PSEUDO_END_NOERRNO(__pthread_sigsuspend) ++ ++PSEUDO(__syscall_sigsuspend, sigsuspend, 1) ++ ret ++PSEUDO_END(__syscall_sigsuspend) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/raise.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/register-atfork.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/smp.h +@@ -0,0 +1,36 @@ ++/* Determine whether the host has multiple processors. FreeBSD version. ++ Copyright (C) 1996, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++/* Test whether the machine has more than one processor. */ ++static inline int ++is_smp_system (void) ++{ ++ /* Fetch sysctl value of "hw.ncpu". */ ++ int request[] = { CTL_HW, HW_NCPU }; ++ int result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ /* Dummy result. */ ++ return 0; ++ ++ return (result > 1); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/unregister-atfork.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/llseek.c +@@ -0,0 +1,6 @@ ++/* We don't need a definition since the lseek64 function is what we need. */ ++/* llseek doesn't have a prototype. Since the second parameter is a ++ 64bit type, this results in wrong behaviour if no prototype is ++ provided. */ ++link_warning (llseek, "\ ++the `llseek' function may be dangerous; use `lseek64' instead.") +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lseek.c +@@ -0,0 +1,59 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern __off_t __syscall_lseek (int __fd, __off_t __offset, int __whence) __THROW; ++libc_hidden_proto (__syscall_lseek) ++extern __off_t __syscall_freebsd6_lseek (int __fd, int __unused1, __off_t __offset, ++ int __whence) __THROW; ++libc_hidden_proto (__syscall_freebsd6_lseek) ++ ++__off_t ++__libc_lseek (int fd, __off_t offset, int whence) ++{ ++ __off_t result; ++ ++ /* First try the new syscall. */ ++ result = INLINE_SYSCALL (lseek, 3, fd, offset, whence); ++ ++#ifndef __ASSUME_LSEEK_SYSCALL ++ if (result == -1 && errno == ENOSYS) ++ /* New syscall not available, us the old one. */ ++ result = INLINE_SYSCALL (freebsd6_lseek, 4, fd, 0, offset, whence); ++#endif ++ ++ return result; ++} ++ ++weak_alias (__libc_lseek, __lseek) ++libc_hidden_def (__lseek) ++weak_alias (__libc_lseek, lseek) ++ ++/* 'lseek64' is the same as 'lseek', because __off64_t == __off_t. */ ++strong_alias (__libc_lseek, __libc_lseek64) ++weak_alias (__libc_lseek64, __lseek64) ++weak_alias (__lseek64, lseek64) ++ ++/* 'llseek' is the same as 'lseek', because __off64_t == __off_t. */ ++strong_alias (__libc_lseek, __llseek) ++weak_alias (__llseek, llseek) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lseek64.c +@@ -0,0 +1 @@ ++/* 'lseek64' is the same as 'lseek', because __off64_t == __off_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lxstat.c +@@ -0,0 +1,49 @@ ++/* lxstat using FreeBSD lstat, nlstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__lxstat (int vers, const char *file, struct stat *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_lstat (CHECK_STRING (file), __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat (&buf16, buf); ++ return result; ++ } ++ else if (__builtin_expect (vers == _STAT_VER_stat, 1)) ++ return __syscall_lstat (CHECK_STRING (file), ++ CHECK_1 ((struct stat16 *) buf)); ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__lxstat) ++ ++weak_alias (__lxstat, _lxstat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lxstat64.c +@@ -0,0 +1,44 @@ ++/* lxstat using FreeBSD lstat, nlstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__lxstat64 (int vers, const char *file, struct stat64 *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_lstat (CHECK_STRING (file), __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat64 (&buf16, buf); ++ return result; ++ } ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__lxstat64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/mkdirat.c +@@ -0,0 +1,127 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write file the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Bosfilen, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_mkdirat (int fd, const char *path, mode_t mode); ++libc_hidden_proto (__syscall_mkdirat) ++ ++/* Create a new direcfilery with permission bits MODE. But interpret ++ relative PATH names relative file the direcfilery associated with FD. */ ++int ++mkdirat (fd, file, mode) ++ int fd; ++ const char *file; ++ mode_t mode; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result = INLINE_SYSCALL (mkdirat, 3, fd, file, mode); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (fd != AT_FDCWD && file[0] != '/') ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t filelen; ++ ++ if (fd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ filelen = strlen (file); ++ if (__builtin_expect (filelen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len + filelen); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, file); ++ file = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ return __mkdir (file, mode); ++#endif ++} ++stub_warning(mkdirat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/mmap.c +@@ -0,0 +1,86 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++extern void *__syscall_mmap (void *__addr, size_t __len, int __prot, ++ int __flags, int __fd, __off_t __offset) __THROW; ++libc_hidden_proto (__syscall_mmap) ++extern void *__syscall_freebsd6_mmap (void *__addr, size_t __len, int __prot, ++ int __flags, int __fd, int __unused1, ++ __off_t __offset) __THROW; ++libc_hidden_proto (__syscall_freebsd6_mmap) ++extern ssize_t __syscall_freebsd6_pread (int __fd, void *__buf, size_t __nbytes, ++ int __unused1, __off_t __offset) __THROW; ++libc_hidden_proto (__syscall_freebsd6_pread) ++ ++void * ++__mmap (void *addr, size_t len, int prot, int flags, int fd, __off_t offset) ++{ ++ void *result; ++ ++ /* Validity checks not done by the kernel. */ ++ if (offset != 0) ++ { ++ int pagesize = __getpagesize (); ++ if ((__builtin_expect (pagesize & (pagesize - 1), 0) ++ ? offset % pagesize ++ : offset & (pagesize - 1))) ++ { ++ __set_errno (EINVAL); ++ return (void *) (-1); ++ } ++ } ++ ++ /* for ANON mapping we must pass -1 in place of fd */ ++ if (flags & MAP_ANON) ++ fd = -1; ++ ++ /* First try the new syscall. */ ++ result = INLINE_SYSCALL (mmap, 6, addr, len, prot, flags, fd, offset); ++ ++#ifndef __ASSUME_MMAP_SYSCALL ++ if (result == (void *) (-1) && errno == ENOSYS) ++ { ++ /* New syscall not available, us the old one. */ ++ result = INLINE_SYSCALL (freebsd6_mmap, 7, addr, len, prot, flags, fd, 0, offset); ++ if (result != (void *) (-1) && fd >= 0 && len > 0) ++ { ++ /* Force an update of the atime. POSIX:2001 mandates that this happens ++ at some time between the mmap() call and the first page-in. Since ++ the FreeBSD 6.0 kernel doesn't update the atime upon a page-in, we ++ do it here. */ ++ char dummy; ++ INLINE_SYSCALL (freebsd6_pread, 5, fd, &dummy, 1, 0, offset); ++ } ++ } ++#endif ++ ++ return result; ++} ++ ++weak_alias (__mmap, mmap) ++ ++/* 'mmap64' is the same as 'mmap', because __off64_t == __off_t. */ ++strong_alias (__mmap, __mmap64) ++weak_alias (__mmap64, mmap64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/mmap64.c +@@ -0,0 +1 @@ ++/* 'mmap64' is the same as 'mmap', because __off64_t == __off_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/munmap.c +@@ -0,0 +1,41 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_munmap (void *__addr, size_t __len) __THROW; ++libc_hidden_proto (__syscall_munmap) ++ ++int ++__munmap (void *addr, size_t len) ++{ ++ int pagesize = __getpagesize (); ++ if ((unsigned long) addr & (pagesize - 1)) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ return INLINE_SYSCALL (munmap, 2, addr, len); ++} ++ ++weak_alias (__munmap, munmap) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/ethernet.h +@@ -0,0 +1,77 @@ ++/* Copyright (C) 1997, 1999, 2001, 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Based on the FreeBSD version of this file. Curiously, that file ++ lacks a copyright in the header. */ ++ ++#ifndef __NET_ETHERNET_H ++#define __NET_ETHERNET_H 1 ++ ++#include ++#include ++#include /* IEEE 802.3 Ethernet constants */ ++ ++__BEGIN_DECLS ++ ++/* This is a name for the 48 bit ethernet address available on many ++ systems. */ ++struct ether_addr ++{ ++ u_int8_t octet[ETH_ALEN]; ++#define ether_addr_octet octet ++} __attribute__ ((__packed__)); ++ ++/* 10Mb/s ethernet header */ ++struct ether_header ++{ ++ u_int8_t ether_dhost[ETH_ALEN]; /* destination eth addr */ ++ u_int8_t ether_shost[ETH_ALEN]; /* source ether addr */ ++ u_int16_t ether_type; /* packet type ID field */ ++} __attribute__ ((__packed__)); ++ ++/* Ethernet protocol ID's */ ++#define ETHERTYPE_PUP 0x0200 /* Xerox PUP */ ++#define ETHERTYPE_IP 0x0800 /* IP */ ++#define ETHERTYPE_ARP 0x0806 /* Address resolution */ ++#define ETHERTYPE_REVARP 0x8035 /* Reverse ARP */ ++ ++#define ETHER_ADDR_LEN ETH_ALEN /* size of ethernet addr */ ++#define ETHER_TYPE_LEN 2 /* bytes in type field */ ++#define ETHER_CRC_LEN 4 /* bytes in CRC field */ ++#define ETHER_HDR_LEN ETH_HLEN /* total octets in header */ ++#define ETHER_MIN_LEN (ETH_ZLEN + ETHER_CRC_LEN) /* min packet length */ ++#define ETHER_MAX_LEN (ETH_FRAME_LEN + ETHER_CRC_LEN) /* max packet length */ ++ ++/* make sure ethenet length is valid */ ++#define ETHER_IS_VALID_LEN(foo) \ ++ ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN) ++ ++/* ++ * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have ++ * (type-ETHERTYPE_TRAIL)*512 bytes of data followed ++ * by an ETHER type (as given above) and then the (variable-length) header. ++ */ ++#define ETHERTYPE_TRAIL 0x1000 /* Trailer packet */ ++#define ETHERTYPE_NTRAILER 16 ++ ++#define ETHERMTU ETH_DATA_LEN ++#define ETHERMIN (ETHER_MIN_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) ++ ++__END_DECLS ++ ++#endif /* net/ethernet.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/if.h +@@ -0,0 +1,436 @@ ++/*- ++ * Copyright (c) 1982, 1986, 1989, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)if.h 8.1 (Berkeley) 6/10/93 ++ * $FreeBSD: src/sys/net/if.h,v 1.108 2007/06/11 20:08:11 andre Exp $ ++ */ ++ ++#ifndef _NET_IF_H_ ++#define _NET_IF_H_ ++ ++#include ++ ++#include ++ ++#include ++#include ++ ++struct ifnet; ++ ++/* ++ * Length of interface external name, including terminating '\0'. ++ * Note: this is the same size as a generic device's external name. ++ */ ++#define IF_NAMESIZE 16 ++#define IFNAMSIZ IF_NAMESIZE ++#define IF_MAXUNIT 0x7fff /* historical value */ ++ ++/* ++ * Structure used to query names of interface cloners. ++ */ ++ ++struct if_clonereq { ++ int ifcr_total; /* total cloners (out) */ ++ int ifcr_count; /* room for this many in user buffer */ ++ char *ifcr_buffer; /* buffer for cloner names */ ++}; ++ ++/* ++ * Structure describing information about an interface ++ * which may be of interest to management entities. ++ */ ++struct if_data { ++ /* generic interface information */ ++ unsigned char ifi_type; /* ethernet, tokenring, etc */ ++ unsigned char ifi_physical; /* e.g., AUI, Thinnet, 10base-T, etc */ ++ unsigned char ifi_addrlen; /* media address length */ ++ unsigned char ifi_hdrlen; /* media header length */ ++ unsigned char ifi_link_state; /* current link state */ ++ unsigned char ifi_spare_char1; /* spare byte */ ++ unsigned char ifi_spare_char2; /* spare byte */ ++ unsigned char ifi_datalen; /* length of this data struct */ ++ unsigned long ifi_mtu; /* maximum transmission unit */ ++ unsigned long ifi_metric; /* routing metric (external only) */ ++ unsigned long ifi_baudrate; /* linespeed */ ++ /* volatile statistics */ ++ unsigned long ifi_ipackets; /* packets received on interface */ ++ unsigned long ifi_ierrors; /* input errors on interface */ ++ unsigned long ifi_opackets; /* packets sent on interface */ ++ unsigned long ifi_oerrors; /* output errors on interface */ ++ unsigned long ifi_collisions; /* collisions on csma interfaces */ ++ unsigned long ifi_ibytes; /* total number of octets received */ ++ unsigned long ifi_obytes; /* total number of octets sent */ ++ unsigned long ifi_imcasts; /* packets received via multicast */ ++ unsigned long ifi_omcasts; /* packets sent via multicast */ ++ unsigned long ifi_iqdrops; /* dropped on input, this interface */ ++ unsigned long ifi_noproto; /* destined for unsupported protocol */ ++ unsigned long ifi_hwassist; /* HW offload capabilities, see IFCAP */ ++ time_t ifi_epoch; /* uptime at attach or stat reset */ ++ struct timeval ifi_lastchange; /* time of last administrative change */ ++}; ++ ++/*- ++ * Interface flags are of two types: network stack owned flags, and driver ++ * owned flags. Historically, these values were stored in the same ifnet ++ * flags field, but with the advent of fine-grained locking, they have been ++ * broken out such that the network stack is responsible for synchronizing ++ * the stack-owned fields, and the device driver the device-owned fields. ++ * Both halves can perform lockless reads of the other half's field, subject ++ * to accepting the involved races. ++ * ++ * Both sets of flags come from the same number space, and should not be ++ * permitted to conflict, as they are exposed to user space via a single ++ * field. ++ * ++ * The following symbols identify read and write requirements for fields: ++ * ++ * (i) if_flags field set by device driver before attach, read-only there ++ * after. ++ * (n) if_flags field written only by the network stack, read by either the ++ * stack or driver. ++ * (d) if_drv_flags field written only by the device driver, read by either ++ * the stack or driver. ++ */ ++#define IFF_UP 0x1 /* (n) interface is up */ ++#define IFF_BROADCAST 0x2 /* (i) broadcast address valid */ ++#define IFF_DEBUG 0x4 /* (n) turn on debugging */ ++#define IFF_LOOPBACK 0x8 /* (i) is a loopback net */ ++#define IFF_POINTOPOINT 0x10 /* (i) is a point-to-point link */ ++#define IFF_SMART 0x20 /* (i) interface manages own routes */ ++#define IFF_DRV_RUNNING 0x40 /* (d) resources allocated */ ++#define IFF_NOARP 0x80 /* (n) no address resolution protocol */ ++#define IFF_PROMISC 0x100 /* (n) receive all packets */ ++#define IFF_ALLMULTI 0x200 /* (n) receive all multicast packets */ ++#define IFF_DRV_OACTIVE 0x400 /* (d) tx hardware queue is full */ ++#define IFF_SIMPLEX 0x800 /* (i) can't hear own transmissions */ ++#define IFF_LINK0 0x1000 /* per link layer defined bit */ ++#define IFF_LINK1 0x2000 /* per link layer defined bit */ ++#define IFF_LINK2 0x4000 /* per link layer defined bit */ ++#define IFF_ALTPHYS IFF_LINK2 /* use alternate physical connection */ ++#define IFF_MULTICAST 0x8000 /* (i) supports multicast */ ++/* 0x10000 */ ++#define IFF_PPROMISC 0x20000 /* (n) user-requested promisc mode */ ++#define IFF_MONITOR 0x40000 /* (n) user-requested monitor mode */ ++#define IFF_STATICARP 0x80000 /* (n) static ARP */ ++#define IFF_NEEDSGIANT 0x100000 /* (i) hold Giant over if_start calls */ ++#define IFF_DYING 0x200000 /* (n) interface is winding down */ ++ ++/* ++ * Old names for driver flags so that user space tools can continue to use ++ * the old (portable) names. ++ */ ++#ifndef _KERNEL ++#define IFF_RUNNING IFF_DRV_RUNNING ++#define IFF_OACTIVE IFF_DRV_OACTIVE ++#endif ++ ++/* flags set internally only: */ ++#define IFF_CANTCHANGE \ ++ (IFF_BROADCAST|IFF_POINTOPOINT|IFF_DRV_RUNNING|IFF_DRV_OACTIVE|\ ++ IFF_SIMPLEX|IFF_MULTICAST|IFF_ALLMULTI|IFF_SMART|IFF_PROMISC) ++ ++/* ++ * Values for if_link_state. ++ */ ++#define LINK_STATE_UNKNOWN 0 /* link invalid/unknown */ ++#define LINK_STATE_DOWN 1 /* link is down */ ++#define LINK_STATE_UP 2 /* link is up */ ++ ++/* ++ * Some convenience macros used for setting ifi_baudrate. ++ * XXX 1000 vs. 1024? --thorpej@netbsd.org ++ */ ++#define IF_Kbps(x) ((x) * 1000) /* kilobits/sec. */ ++#define IF_Mbps(x) (IF_Kbps((x) * 1000)) /* megabits/sec. */ ++#define IF_Gbps(x) (IF_Mbps((x) * 1000)) /* gigabits/sec. */ ++ ++/* ++ * Capabilities that interfaces can advertise. ++ * ++ * struct ifnet.if_capabilities ++ * contains the optional features & capabilities a particular interface ++ * supports (not only the driver but also the detected hw revision). ++ * Capabilities are defined by IFCAP_* below. ++ * struct ifnet.if_capenable ++ * contains the enabled (either by default or through ifconfig) optional ++ * features & capabilities on this interface. ++ * Capabilities are defined by IFCAP_* below. ++ * struct if_data.ifi_hwassist in mbuf CSUM_ flag form, controlled by above ++ * contains the enabled optional feature & capabilites that can be used ++ * individually per packet and are specified in the mbuf pkthdr.csum_flags ++ * field. IFCAP_* and CSUM_* do not match one to one and CSUM_* may be ++ * more detailed or differenciated than IFCAP_*. ++ * Hwassist features are defined CSUM_* in sys/mbuf.h ++ */ ++#define IFCAP_RXCSUM 0x00001 /* can offload checksum on RX */ ++#define IFCAP_TXCSUM 0x00002 /* can offload checksum on TX */ ++#define IFCAP_NETCONS 0x00004 /* can be a network console */ ++#define IFCAP_VLAN_MTU 0x00008 /* VLAN-compatible MTU */ ++#define IFCAP_VLAN_HWTAGGING 0x00010 /* hardware VLAN tag support */ ++#define IFCAP_JUMBO_MTU 0x00020 /* 9000 byte MTU supported */ ++#define IFCAP_POLLING 0x00040 /* driver supports polling */ ++#define IFCAP_VLAN_HWCSUM 0x00080 /* can do IFCAP_HWCSUM on VLANs */ ++#define IFCAP_TSO4 0x00100 /* can do TCP Segmentation Offload */ ++#define IFCAP_TSO6 0x00200 /* can do TCP6 Segmentation Offload */ ++#define IFCAP_LRO 0x00400 /* can do Large Receive Offload */ ++#define IFCAP_WOL_UCAST 0x00800 /* wake on any unicast frame */ ++#define IFCAP_WOL_MCAST 0x01000 /* wake on any multicast frame */ ++#define IFCAP_WOL_MAGIC 0x02000 /* wake on any Magic Packet */ ++#define IFCAP_TOE4 0x04000 /* interface can offload TCP */ ++#define IFCAP_TOE6 0x08000 /* interface can offload TCP6 */ ++#define IFCAP_VLAN_HWFILTER 0x10000 /* interface hw can filter vlan tag */ ++#define IFCAP_POLLING_NOCOUNT 0x20000 /* polling ticks cannot be fragmented */ ++ ++#define IFCAP_HWCSUM (IFCAP_RXCSUM | IFCAP_TXCSUM) ++#define IFCAP_TSO (IFCAP_TSO4 | IFCAP_TSO6) ++#define IFCAP_WOL (IFCAP_WOL_UCAST | IFCAP_WOL_MCAST | IFCAP_WOL_MAGIC) ++#define IFCAP_TOE (IFCAP_TOE4 | IFCAP_TOE6) ++ ++#define IFQ_MAXLEN 50 ++#define IFNET_SLOWHZ 1 /* granularity is 1 second */ ++ ++/* ++ * Message format for use in obtaining information about interfaces ++ * from getkerninfo and the routing socket ++ */ ++struct if_msghdr { ++ unsigned short ifm_msglen; /* to skip over non-understood messages */ ++ unsigned char ifm_version; /* future binary compatibility */ ++ unsigned char ifm_type; /* message type */ ++ int ifm_addrs; /* like rtm_addrs */ ++ int ifm_flags; /* value of if_flags */ ++ unsigned short ifm_index; /* index for associated ifp */ ++ struct if_data ifm_data;/* statistics and other data about if */ ++}; ++ ++/* ++ * Message format for use in obtaining information about interface addresses ++ * from getkerninfo and the routing socket ++ */ ++struct ifa_msghdr { ++ unsigned short ifam_msglen; /* to skip over non-understood messages */ ++ unsigned char ifam_version; /* future binary compatibility */ ++ unsigned char ifam_type; /* message type */ ++ int ifam_addrs; /* like rtm_addrs */ ++ int ifam_flags; /* value of ifa_flags */ ++ unsigned short ifam_index; /* index for associated ifp */ ++ int ifam_metric; /* value of ifa_metric */ ++}; ++ ++/* ++ * Message format for use in obtaining information about multicast addresses ++ * from the routing socket ++ */ ++struct ifma_msghdr { ++ unsigned short ifmam_msglen; /* to skip over non-understood messages */ ++ unsigned char ifmam_version; /* future binary compatibility */ ++ unsigned char ifmam_type; /* message type */ ++ int ifmam_addrs; /* like rtm_addrs */ ++ int ifmam_flags; /* value of ifa_flags */ ++ unsigned short ifmam_index; /* index for associated ifp */ ++}; ++ ++/* ++ * Message format announcing the arrival or departure of a network interface. ++ */ ++struct if_announcemsghdr { ++ unsigned short ifan_msglen; /* to skip over non-understood messages */ ++ unsigned char ifan_version; /* future binary compatibility */ ++ unsigned char ifan_type; /* message type */ ++ unsigned short ifan_index; /* index for associated ifp */ ++ char ifan_name[IFNAMSIZ]; /* if name, e.g. "en0" */ ++ unsigned short ifan_what; /* what type of announcement */ ++}; ++ ++#define IFAN_ARRIVAL 0 /* interface arrival */ ++#define IFAN_DEPARTURE 1 /* interface departure */ ++ ++/* ++ * Interface request structure used for socket ++ * ioctl's. All interface ioctl's must have parameter ++ * definitions which begin with ifr_name. The ++ * remainder may be interface specific. ++ */ ++struct ifreq { ++ char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */ ++ union { ++ struct sockaddr ifru_addr; ++ struct sockaddr ifru_dstaddr; ++ struct sockaddr ifru_broadaddr; ++ struct sockaddr ifru_netmask; ++ short ifru_flags[2]; ++ short ifru_index; ++ int ifru_jid; ++ int ifru_metric; ++ int ifru_mtu; ++ int ifru_phys; ++ int ifru_media; ++ char * ifru_data; ++ int ifru_cap[2]; ++ } ifr_ifru; ++#define ifr_addr ifr_ifru.ifru_addr /* address */ ++#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */ ++#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */ ++#define ifr_netmask ifr_ifru.ifru_netmask /* interface net mask */ ++#define ifr_flags ifr_ifru.ifru_flags[0] /* flags (low 16 bits) */ ++#define ifr_flagshigh ifr_ifru.ifru_flags[1] /* flags (high 16 bits) */ ++#define ifr_jid ifr_ifru.ifru_jid /* jail/vnet */ ++#define ifr_metric ifr_ifru.ifru_metric /* metric */ ++#define ifr_mtu ifr_ifru.ifru_mtu /* mtu */ ++#define ifr_phys ifr_ifru.ifru_phys /* physical wire */ ++#define ifr_media ifr_ifru.ifru_media /* physical media */ ++#define ifr_data ifr_ifru.ifru_data /* for use by interface */ ++#define ifr_reqcap ifr_ifru.ifru_cap[0] /* requested capabilities */ ++#define ifr_curcap ifr_ifru.ifru_cap[1] /* current capabilities */ ++#define ifr_index ifr_ifru.ifru_index /* interface index */ ++}; ++ ++#define _SIZEOF_ADDR_IFREQ(ifr) \ ++ ((ifr).ifr_addr.sa_len > sizeof(struct sockaddr) ? \ ++ (sizeof(struct ifreq) - sizeof(struct sockaddr) + \ ++ (ifr).ifr_addr.sa_len) : sizeof(struct ifreq)) ++ ++struct ifaliasreq { ++ char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */ ++ struct sockaddr ifra_addr; ++ struct sockaddr ifra_broadaddr; ++ struct sockaddr ifra_mask; ++}; ++ ++struct ifmediareq { ++ char ifm_name[IFNAMSIZ]; /* if name, e.g. "en0" */ ++ int ifm_current; /* current media options */ ++ int ifm_mask; /* don't care mask */ ++ int ifm_status; /* media status */ ++ int ifm_active; /* active options */ ++ int ifm_count; /* # entries in ifm_ulist array */ ++ int *ifm_ulist; /* media words */ ++}; ++ ++struct ifdrv { ++ char ifd_name[IFNAMSIZ]; /* if name, e.g. "en0" */ ++ unsigned long ifd_cmd; ++ size_t ifd_len; ++ void *ifd_data; ++}; ++ ++/* ++ * Structure used to retrieve aux status data from interfaces. ++ * Kernel suppliers to this interface should respect the formatting ++ * needed by ifconfig(8): each line starts with a TAB and ends with ++ * a newline. The canonical example to copy and paste is in if_tun.c. ++ */ ++ ++#define IFSTATMAX 800 /* 10 lines of text */ ++struct ifstat { ++ char ifs_name[IFNAMSIZ]; /* if name, e.g. "en0" */ ++ char ascii[IFSTATMAX + 1]; ++}; ++ ++/* ++ * Structure used in SIOCGIFCONF request. ++ * Used to retrieve interface configuration ++ * for machine (useful for programs which ++ * must know all networks accessible). ++ */ ++struct ifconf { ++ int ifc_len; /* size of associated buffer */ ++ union { ++ char *ifcu_buf; ++ struct ifreq *ifcu_req; ++ } ifc_ifcu; ++#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */ ++#define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */ ++}; ++ ++#if defined (__amd64__) || defined (COMPAT_32BIT) ++struct ifconf32 { ++ int ifc_len; /* size of associated buffer */ ++ union { ++ unsigned int ifcu_buf; ++ unsigned int ifcu_req; ++ } ifc_ifcu; ++}; ++#endif ++ ++/* ++ * interface groups ++ */ ++ ++#define IFG_ALL "all" /* group contains all interfaces */ ++/* XXX: will we implement this? */ ++#define IFG_EGRESS "egress" /* if(s) default route(s) point to */ ++ ++struct ifg_req { ++ union { ++ char ifgrqu_group[IFNAMSIZ]; ++ char ifgrqu_member[IFNAMSIZ]; ++ } ifgrq_ifgrqu; ++#define ifgrq_group ifgrq_ifgrqu.ifgrqu_group ++#define ifgrq_member ifgrq_ifgrqu.ifgrqu_member ++}; ++ ++/* ++ * Used to lookup groups for an interface ++ */ ++struct ifgroupreq { ++ char ifgr_name[IFNAMSIZ]; ++ unsigned int ifgr_len; ++ union { ++ char ifgru_group[IFNAMSIZ]; ++ struct ifg_req *ifgru_groups; ++ } ifgr_ifgru; ++#define ifgr_group ifgr_ifgru.ifgru_group ++#define ifgr_groups ifgr_ifgru.ifgru_groups ++}; ++ ++/* ++ * Structure for SIOC[AGD]LIFADDR ++ */ ++struct if_laddrreq { ++ char iflr_name[IFNAMSIZ]; ++ unsigned int flags; ++#define IFLR_PREFIX 0x8000 /* in: prefix given out: kernel fills id */ ++ unsigned int prefixlen; /* in/out */ ++ struct sockaddr_storage addr; /* in/out */ ++ struct sockaddr_storage dstaddr; /* out */ ++}; ++ ++struct if_nameindex { ++ unsigned int if_index; /* 1, 2, ... */ ++ char *if_name; /* null terminated name: "le0", ... */ ++}; ++ ++__BEGIN_DECLS ++void if_freenameindex(struct if_nameindex *); ++char *if_indextoname(unsigned int, char *); ++struct if_nameindex *if_nameindex(void); ++unsigned int if_nametoindex(const char *); ++__END_DECLS ++ ++#endif /* !_NET_IF_H_ */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/if_ether.h +@@ -0,0 +1,104 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _NET_IF_ETHER_H ++#define _NET_IF_ETHER_H 1 ++ ++/* ++ * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble ++ * and FCS/CRC (frame check sequence). ++ */ ++ ++#define ETH_ALEN 6 /* Octets in one ethernet addr */ ++#define ETH_HLEN 14 /* Total octets in header. */ ++#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */ ++#define ETH_DATA_LEN 1500 /* Max. octets in payload */ ++#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */ ++ ++/* ++ * These are the defined Ethernet Protocol ID's. ++ */ ++ ++#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */ ++#define ETH_P_PUP 0x0200 /* Xerox PUP packet */ ++#define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */ ++#define ETH_P_IP 0x0800 /* Internet Protocol packet */ ++#define ETH_P_X25 0x0805 /* CCITT X.25 */ ++#define ETH_P_ARP 0x0806 /* Address Resolution packet */ ++#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */ ++#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */ ++#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */ ++#define ETH_P_DEC 0x6000 /* DEC Assigned proto */ ++#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ ++#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */ ++#define ETH_P_DNA_RT 0x6003 /* DEC DNA Routing */ ++#define ETH_P_LAT 0x6004 /* DEC LAT */ ++#define ETH_P_DIAG 0x6005 /* DEC Diagnostics */ ++#define ETH_P_CUST 0x6006 /* DEC Customer use */ ++#define ETH_P_SCA 0x6007 /* DEC Systems Comms Arch */ ++#define ETH_P_RARP 0x8035 /* Reverse Addr Res packet */ ++#define ETH_P_ATALK 0x809B /* Appletalk DDP */ ++#define ETH_P_AARP 0x80F3 /* Appletalk AARP */ ++#define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */ ++#define ETH_P_IPX 0x8137 /* IPX over DIX */ ++#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */ ++#define ETH_P_WCCP 0x883E /* Web-cache coordination protocol ++ * defined in draft-wilson-wrec-wccp-v2-00.txt */ ++#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */ ++#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */ ++#define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */ ++#define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */ ++#define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */ ++#define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport ++ * over Ethernet ++ */ ++#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */ ++ ++/* ++ * Non DIX types. Won't clash for 1500 types. ++ */ ++ ++#define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */ ++#define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */ ++#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */ ++#define ETH_P_802_2 0x0004 /* 802.2 frames */ ++#define ETH_P_SNAP 0x0005 /* Internal only */ ++#define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */ ++#define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/ ++#define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */ ++#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ ++#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ ++#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ ++#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */ ++#define ETH_P_CONTROL 0x0016 /* Card specific control frames */ ++#define ETH_P_IRDA 0x0017 /* Linux-IrDA */ ++#define ETH_P_ECONET 0x0018 /* Acorn Econet */ ++#define ETH_P_HDLC 0x0019 /* HDLC frames */ ++#define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-) */ ++ ++/* ++ * This is an Ethernet frame header. ++ */ ++ ++struct ethhdr { ++ unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ ++ unsigned char h_source[ETH_ALEN]; /* source ether addr */ ++ unsigned short h_proto; /* packet type ID field */ ++} __attribute__((packed)); ++ ++#endif /* net/if_ether.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/icmp6.h +@@ -0,0 +1,525 @@ ++/* Copyright (C) 1991-1997,2000,2006,2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _NETINET_ICMP6_H ++#define _NETINET_ICMP6_H 1 ++ ++#include ++#include ++#include ++#include ++ ++#define ICMP6_FILTER 18 ++ ++#define ICMP6_FILTER_BLOCK 1 ++#define ICMP6_FILTER_PASS 2 ++#define ICMP6_FILTER_BLOCKOTHERS 3 ++#define ICMP6_FILTER_PASSONLY 4 ++ ++#define ICMPV6_PLD_MAXLEN 1232 /* IPV6_MMTU - sizeof(struct ip6_hdr) ++ - sizeof(struct icmp6_hdr) */ ++ ++struct icmp6_filter ++ { ++ uint32_t icmp6_filt[8]; ++ } __attribute__ ((__packed__)); ++ ++struct icmp6_hdr ++ { ++ uint8_t icmp6_type; /* type field */ ++ uint8_t icmp6_code; /* code field */ ++ uint16_t icmp6_cksum; /* checksum field */ ++ union ++ { ++ uint32_t icmp6_un_data32[1]; /* type-specific field */ ++ uint16_t icmp6_un_data16[2]; /* type-specific field */ ++ uint8_t icmp6_un_data8[4]; /* type-specific field */ ++ } icmp6_dataun; ++ } __attribute__ ((__packed__)); ++ ++#define icmp6_data32 icmp6_dataun.icmp6_un_data32 ++#define icmp6_data16 icmp6_dataun.icmp6_un_data16 ++#define icmp6_data8 icmp6_dataun.icmp6_un_data8 ++#define icmp6_pptr icmp6_data32[0] /* parameter prob */ ++#define icmp6_mtu icmp6_data32[0] /* packet too big */ ++#define icmp6_id icmp6_data16[0] /* echo request/reply */ ++#define icmp6_seq icmp6_data16[1] /* echo request/reply */ ++#define icmp6_maxdelay icmp6_data16[0] /* mcast group membership */ ++ ++#define ICMP6_DST_UNREACH 1 ++#define ICMP6_PACKET_TOO_BIG 2 ++#define ICMP6_TIME_EXCEEDED 3 ++#define ICMP6_PARAM_PROB 4 ++ ++#define ICMP6_INFOMSG_MASK 0x80 /* all informational messages */ ++ ++#define ICMP6_NI_SUBJ_IPV6 0 /* Query Subject is an IPv6 address */ ++#define ICMP6_NI_SUBJ_FQDN 1 /* Query Subject is a Domain name */ ++#define ICMP6_NI_SUBJ_IPV4 2 /* Query Subject is an IPv4 address */ ++ ++#define ICMP6_NI_SUCCESS 0 /* node information successful reply */ ++#define ICMP6_NI_REFUSED 1 /* node information request is refused */ ++#define ICMP6_NI_UNKNOWN 2 /* unknown Qtype */ ++ ++#define ICMP6_ECHO_REQUEST 128 ++#define ICMP6_ECHO_REPLY 129 ++#define MLD_LISTENER_QUERY 130 ++#define MLD_LISTENER_REPORT 131 ++#define MLD_LISTENER_DONE 132 ++#define MLD_LISTENER_REDUCTION MLD_LISTENER_DONE ++ ++/* RFC2292 decls */ ++#define ICMP6_MEMBERSHIP_QUERY 130 /* group membership query */ ++#define ICMP6_MEMBERSHIP_REPORT 131 /* group membership report */ ++#define ICMP6_MEMBERSHIP_REDUCTION 132 /* group membership termination */ ++/* the followings are for backward compatibility to old KAME apps. */ ++#define MLD6_LISTENER_QUERY MLD_LISTENER_QUERY ++#define MLD6_LISTENER_REPORT MLD_LISTENER_REPORT ++#define MLD6_LISTENER_DONE MLD_LISTENER_DONE ++ ++ ++#define ICMP6_DST_UNREACH_NOROUTE 0 /* no route to destination */ ++#define ICMP6_DST_UNREACH_ADMIN 1 /* communication with destination */ ++ /* administratively prohibited */ ++#define ICMP6_DST_UNREACH_BEYONDSCOPE 2 /* beyond scope of source address */ ++#define ICMP6_DST_UNREACH_ADDR 3 /* address unreachable */ ++#define ICMP6_DST_UNREACH_NOPORT 4 /* bad port */ ++ ++#define ICMP6_TIME_EXCEED_TRANSIT 0 /* Hop Limit == 0 in transit */ ++#define ICMP6_TIME_EXCEED_REASSEMBLY 1 /* Reassembly time out */ ++ ++#define ICMP6_PARAMPROB_HEADER 0 /* erroneous header field */ ++#define ICMP6_PARAMPROB_NEXTHEADER 1 /* unrecognized Next Header */ ++#define ICMP6_PARAMPROB_OPTION 2 /* unrecognized IPv6 option */ ++ ++#define ICMP6_FILTER_WILLPASS(type, filterp) \ ++ ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0) ++ ++#define ICMP6_FILTER_WILLBLOCK(type, filterp) \ ++ ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0) ++ ++#define ICMP6_FILTER_SETPASS(type, filterp) \ ++ ((((filterp)->icmp6_filt[(type) >> 5]) |= (1 << ((type) & 31)))) ++ ++#define ICMP6_FILTER_SETBLOCK(type, filterp) \ ++ ((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31)))) ++ ++#define ICMP6_FILTER_SETPASSALL(filterp) \ ++ memset (filterp, 0xFF, sizeof (struct icmp6_filter)); ++ ++#define ICMP6_FILTER_SETBLOCKALL(filterp) \ ++ memset (filterp, 0, sizeof (struct icmp6_filter)); ++ ++#define ND_ROUTER_SOLICIT 133 ++#define ND_ROUTER_ADVERT 134 ++#define ND_NEIGHBOR_SOLICIT 135 ++#define ND_NEIGHBOR_ADVERT 136 ++#define ND_REDIRECT 137 ++ ++struct nd_router_solicit /* router solicitation */ ++ { ++ struct icmp6_hdr nd_rs_hdr; ++ /* could be followed by options */ ++ } __attribute__ ((__packed__)); ++ ++#define nd_rs_type nd_rs_hdr.icmp6_type ++#define nd_rs_code nd_rs_hdr.icmp6_code ++#define nd_rs_cksum nd_rs_hdr.icmp6_cksum ++#define nd_rs_reserved nd_rs_hdr.icmp6_data32[0] ++ ++struct nd_router_advert /* router advertisement */ ++ { ++ struct icmp6_hdr nd_ra_hdr; ++ uint32_t nd_ra_reachable; /* reachable time */ ++ uint32_t nd_ra_retransmit; /* retransmit timer */ ++ /* could be followed by options */ ++ } __attribute__ ((__packed__)); ++ ++#define nd_ra_type nd_ra_hdr.icmp6_type ++#define nd_ra_code nd_ra_hdr.icmp6_code ++#define nd_ra_cksum nd_ra_hdr.icmp6_cksum ++#define nd_ra_curhoplimit nd_ra_hdr.icmp6_data8[0] ++#define nd_ra_flags_reserved nd_ra_hdr.icmp6_data8[1] ++#define ND_RA_FLAG_MANAGED 0x80 ++#define ND_RA_FLAG_OTHER 0x40 ++#define ND_RA_FLAG_HOME_AGENT 0x20 ++#define nd_ra_router_lifetime nd_ra_hdr.icmp6_data16[1] ++ ++struct nd_neighbor_solicit /* neighbor solicitation */ ++ { ++ struct icmp6_hdr nd_ns_hdr; ++ struct in6_addr nd_ns_target; /* target address */ ++ /* could be followed by options */ ++ } __attribute__ ((__packed__)); ++ ++#define nd_ns_type nd_ns_hdr.icmp6_type ++#define nd_ns_code nd_ns_hdr.icmp6_code ++#define nd_ns_cksum nd_ns_hdr.icmp6_cksum ++#define nd_ns_reserved nd_ns_hdr.icmp6_data32[0] ++ ++struct nd_neighbor_advert /* neighbor advertisement */ ++ { ++ struct icmp6_hdr nd_na_hdr; ++ struct in6_addr nd_na_target; /* target address */ ++ /* could be followed by options */ ++ } __attribute__ ((__packed__)); ++ ++#define nd_na_type nd_na_hdr.icmp6_type ++#define nd_na_code nd_na_hdr.icmp6_code ++#define nd_na_cksum nd_na_hdr.icmp6_cksum ++#define nd_na_flags_reserved nd_na_hdr.icmp6_data32[0] ++#if BYTE_ORDER == BIG_ENDIAN ++#define ND_NA_FLAG_ROUTER 0x80000000 ++#define ND_NA_FLAG_SOLICITED 0x40000000 ++#define ND_NA_FLAG_OVERRIDE 0x20000000 ++#else /* BYTE_ORDER == LITTLE_ENDIAN */ ++#define ND_NA_FLAG_ROUTER 0x00000080 ++#define ND_NA_FLAG_SOLICITED 0x00000040 ++#define ND_NA_FLAG_OVERRIDE 0x00000020 ++#endif ++ ++struct nd_redirect /* redirect */ ++ { ++ struct icmp6_hdr nd_rd_hdr; ++ struct in6_addr nd_rd_target; /* target address */ ++ struct in6_addr nd_rd_dst; /* destination address */ ++ /* could be followed by options */ ++ } __attribute__ ((__packed__));; ++ ++#define nd_rd_type nd_rd_hdr.icmp6_type ++#define nd_rd_code nd_rd_hdr.icmp6_code ++#define nd_rd_cksum nd_rd_hdr.icmp6_cksum ++#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0] ++ ++struct nd_opt_hdr /* Neighbor discovery option header */ ++ { ++ uint8_t nd_opt_type; ++ uint8_t nd_opt_len; /* in units of 8 octets */ ++ /* followed by option specific data */ ++ } __attribute__ ((__packed__)); ++ ++#define ND_OPT_SOURCE_LINKADDR 1 ++#define ND_OPT_TARGET_LINKADDR 2 ++#define ND_OPT_PREFIX_INFORMATION 3 ++#define ND_OPT_REDIRECTED_HEADER 4 ++#define ND_OPT_MTU 5 ++#define ND_OPT_RTR_ADV_INTERVAL 7 ++#define ND_OPT_HOME_AGENT_INFO 8 ++ ++struct nd_opt_prefix_info /* prefix information */ ++ { ++ uint8_t nd_opt_pi_type; ++ uint8_t nd_opt_pi_len; ++ uint8_t nd_opt_pi_prefix_len; ++ uint8_t nd_opt_pi_flags_reserved; ++ uint32_t nd_opt_pi_valid_time; ++ uint32_t nd_opt_pi_preferred_time; ++ uint32_t nd_opt_pi_reserved2; ++ struct in6_addr nd_opt_pi_prefix; ++ } __attribute__ ((__packed__)); ++ ++#define ND_OPT_PI_FLAG_ONLINK 0x80 ++#define ND_OPT_PI_FLAG_AUTO 0x40 ++#define ND_OPT_PI_FLAG_RADDR 0x20 ++ ++struct nd_opt_rd_hdr /* redirected header */ ++ { ++ uint8_t nd_opt_rh_type; ++ uint8_t nd_opt_rh_len; ++ uint16_t nd_opt_rh_reserved1; ++ uint32_t nd_opt_rh_reserved2; ++ /* followed by IP header and data */ ++ } __attribute__ ((__packed__)); ++ ++struct nd_opt_mtu /* MTU option */ ++ { ++ uint8_t nd_opt_mtu_type; ++ uint8_t nd_opt_mtu_len; ++ uint16_t nd_opt_mtu_reserved; ++ uint32_t nd_opt_mtu_mtu; ++ } __attribute__ ((__packed__)); ++ ++struct mld_hdr ++ { ++ struct icmp6_hdr mld_icmp6_hdr; ++ struct in6_addr mld_addr; /* multicast address */ ++ } __attribute__ ((__packed__)); ++ ++#define mld_type mld_icmp6_hdr.icmp6_type ++#define mld_code mld_icmp6_hdr.icmp6_code ++#define mld_cksum mld_icmp6_hdr.icmp6_cksum ++#define mld_maxdelay mld_icmp6_hdr.icmp6_data16[0] ++#define mld_reserved mld_icmp6_hdr.icmp6_data16[1] ++ ++/* definitions to provide backward compatibility to old KAME applications */ ++#define mld6_hdr mld_hdr ++#define mld6_type mld_type ++#define mld6_code mld_code ++#define mld6_cksum mld_cksum ++#define mld6_maxdelay mld_maxdelay ++#define mld6_reserved mld_reserved ++#define mld6_addr mld_addr ++ ++#define ICMP6_ROUTER_RENUMBERING 138 ++ ++#define ICMP6_ROUTER_RENUMBERING_COMMAND 0 /* rr command */ ++#define ICMP6_ROUTER_RENUMBERING_RESULT 1 /* rr result */ ++#define ICMP6_ROUTER_RENUMBERING_SEQNUM_RESET 255 /* rr seq num reset */ ++ ++struct icmp6_router_renum /* router renumbering header */ ++ { ++ struct icmp6_hdr rr_hdr; ++ uint8_t rr_segnum; ++ uint8_t rr_flags; ++ uint16_t rr_maxdelay; ++ uint32_t rr_reserved; ++ } __attribute__ ((__packed__)); ++ ++#define rr_type rr_hdr.icmp6_type ++#define rr_code rr_hdr.icmp6_code ++#define rr_cksum rr_hdr.icmp6_cksum ++#define rr_seqnum rr_hdr.icmp6_data32[0] ++ ++/* Router renumbering flags */ ++#define ICMP6_RR_FLAGS_TEST 0x80 ++#define ICMP6_RR_FLAGS_REQRESULT 0x40 ++#define ICMP6_RR_FLAGS_FORCEAPPLY 0x20 ++#define ICMP6_RR_FLAGS_SPECSITE 0x10 ++#define ICMP6_RR_FLAGS_PREVDONE 0x08 ++ ++#define ICMP6_WRUREQUEST 139 /* who are you request */ ++#define ICMP6_WRUREPLY 140 /* who are you reply */ ++#define ICMP6_FQDN_QUERY 139 /* FQDN query */ ++#define ICMP6_FQDN_REPLY 140 /* FQDN reply */ ++#define ICMP6_NI_QUERY 139 /* node information request */ ++#define ICMP6_NI_REPLY 140 /* node information reply */ ++ ++struct rr_pco_match /* match prefix part */ ++ { ++ uint8_t rpm_code; ++ uint8_t rpm_len; ++ uint8_t rpm_ordinal; ++ uint8_t rpm_matchlen; ++ uint8_t rpm_minlen; ++ uint8_t rpm_maxlen; ++ uint16_t rpm_reserved; ++ struct in6_addr rpm_prefix; ++ } __attribute__ ((__packed__)); ++ ++/* PCO code values */ ++#define RPM_PCO_ADD 1 ++#define RPM_PCO_CHANGE 2 ++#define RPM_PCO_SETGLOBAL 3 ++#define RPM_PCO_MAX 4 ++ ++struct rr_pco_use /* use prefix part */ ++ { ++ uint8_t rpu_uselen; ++ uint8_t rpu_keeplen; ++ uint8_t rpu_ramask; ++ uint8_t rpu_raflags; ++ uint32_t rpu_vltime; ++ uint32_t rpu_pltime; ++ uint32_t rpu_flags; ++ struct in6_addr rpu_prefix; ++ } __attribute__ ((__packed__)); ++ ++#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK 0x80 ++#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO 0x40 ++ ++#if BYTE_ORDER == BIG_ENDIAN ++# define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80000000 ++# define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40000000 ++#elif BYTE_ORDER == LITTLE_ENDIAN ++# define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80 ++# define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40 ++#endif ++ ++struct rr_result /* router renumbering result message */ ++ { ++ uint16_t rrr_flags; ++ uint8_t rrr_ordinal; ++ uint8_t rrr_matchedlen; ++ uint32_t rrr_ifid; ++ struct in6_addr rrr_prefix; ++ } __attribute__ ((__packed__)); ++ ++#if BYTE_ORDER == BIG_ENDIAN ++# define ICMP6_RR_RESULT_FLAGS_OOB 0x0002 ++# define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001 ++#elif BYTE_ORDER == LITTLE_ENDIAN ++# define ICMP6_RR_RESULT_FLAGS_OOB 0x0200 ++# define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100 ++#endif ++ ++/* Mobile IPv6 extension: Advertisement Interval. */ ++struct nd_opt_adv_interval ++ { ++ uint8_t nd_opt_adv_interval_type; ++ uint8_t nd_opt_adv_interval_len; ++ uint16_t nd_opt_adv_interval_reserved; ++ uint32_t nd_opt_adv_interval_ival; ++ }; ++ ++/* Mobile IPv6 extension: Home Agent Info. */ ++struct nd_opt_home_agent_info ++ { ++ uint8_t nd_opt_home_agent_info_type; ++ uint8_t nd_opt_home_agent_info_len; ++ uint16_t nd_opt_home_agent_info_reserved; ++ uint16_t nd_opt_home_agent_info_preference; ++ uint16_t nd_opt_home_agent_info_lifetime; ++ }; ++ ++/*- ++ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. Neither the name of the project nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++/*- ++ * Copyright (c) 1982, 1986, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)ip_icmp.h 8.1 (Berkeley) 6/10/93 ++ */ ++ ++/* ++ * IP6 route structure ++ */ ++ ++struct route_in6 { ++ struct rtentry *ro_rt; ++ struct llentry *ro_lle; ++ struct sockaddr_in6 ro_dst; ++}; ++ ++/* ++ * Variables related to this implementation ++ * of the internet control message protocol version 6. ++ */ ++struct icmp6errstat { ++ u_quad_t icp6errs_dst_unreach_noroute; ++ u_quad_t icp6errs_dst_unreach_admin; ++ u_quad_t icp6errs_dst_unreach_beyondscope; ++ u_quad_t icp6errs_dst_unreach_addr; ++ u_quad_t icp6errs_dst_unreach_noport; ++ u_quad_t icp6errs_packet_too_big; ++ u_quad_t icp6errs_time_exceed_transit; ++ u_quad_t icp6errs_time_exceed_reassembly; ++ u_quad_t icp6errs_paramprob_header; ++ u_quad_t icp6errs_paramprob_nextheader; ++ u_quad_t icp6errs_paramprob_option; ++ u_quad_t icp6errs_redirect; /* we regard redirect as an error here */ ++ u_quad_t icp6errs_unknown; ++}; ++ ++struct icmp6stat { ++/* statistics related to icmp6 packets generated */ ++ u_quad_t icp6s_error; /* # of calls to icmp6_error */ ++ u_quad_t icp6s_canterror; /* no error 'cuz old was icmp */ ++ u_quad_t icp6s_toofreq; /* no error 'cuz rate limitation */ ++ u_quad_t icp6s_outhist[256]; ++/* statistics related to input message processed */ ++ u_quad_t icp6s_badcode; /* icmp6_code out of range */ ++ u_quad_t icp6s_tooshort; /* packet < sizeof(struct icmp6_hdr) */ ++ u_quad_t icp6s_checksum; /* bad checksum */ ++ u_quad_t icp6s_badlen; /* calculated bound mismatch */ ++ /* ++ * number of responses: this member is inherited from netinet code, but ++ * for netinet6 code, it is already available in icp6s_outhist[]. ++ */ ++ u_quad_t icp6s_reflect; ++ u_quad_t icp6s_inhist[256]; ++ u_quad_t icp6s_nd_toomanyopt; /* too many ND options */ ++ struct icmp6errstat icp6s_outerrhist; ++#define icp6s_odst_unreach_noroute \ ++ icp6s_outerrhist.icp6errs_dst_unreach_noroute ++#define icp6s_odst_unreach_admin icp6s_outerrhist.icp6errs_dst_unreach_admin ++#define icp6s_odst_unreach_beyondscope \ ++ icp6s_outerrhist.icp6errs_dst_unreach_beyondscope ++#define icp6s_odst_unreach_addr icp6s_outerrhist.icp6errs_dst_unreach_addr ++#define icp6s_odst_unreach_noport icp6s_outerrhist.icp6errs_dst_unreach_noport ++#define icp6s_opacket_too_big icp6s_outerrhist.icp6errs_packet_too_big ++#define icp6s_otime_exceed_transit \ ++ icp6s_outerrhist.icp6errs_time_exceed_transit ++#define icp6s_otime_exceed_reassembly \ ++ icp6s_outerrhist.icp6errs_time_exceed_reassembly ++#define icp6s_oparamprob_header icp6s_outerrhist.icp6errs_paramprob_header ++#define icp6s_oparamprob_nextheader \ ++ icp6s_outerrhist.icp6errs_paramprob_nextheader ++#define icp6s_oparamprob_option icp6s_outerrhist.icp6errs_paramprob_option ++#define icp6s_oredirect icp6s_outerrhist.icp6errs_redirect ++#define icp6s_ounknown icp6s_outerrhist.icp6errs_unknown ++ u_quad_t icp6s_pmtuchg; /* path MTU changes */ ++ u_quad_t icp6s_nd_badopt; /* bad ND options */ ++ u_quad_t icp6s_badns; /* bad neighbor solicitation */ ++ u_quad_t icp6s_badna; /* bad neighbor advertisement */ ++ u_quad_t icp6s_badrs; /* bad router advertisement */ ++ u_quad_t icp6s_badra; /* bad router advertisement */ ++ u_quad_t icp6s_badredirect; /* bad redirect message */ ++}; ++ ++#endif /* netinet/icmpv6.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/if_ether.h +@@ -0,0 +1,138 @@ ++/* Copyright (C) 1996, 1997, 1999, 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef __NETINET_IF_ETHER_H ++ ++#define __NETINET_IF_ETHER_H 1 ++#include ++#include ++ ++#include ++ ++#ifdef __USE_BSD ++/* ++ * Copyright (c) 1982, 1986, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)if_ether.h 8.3 (Berkeley) 5/2/95 ++ * $FreeBSD$ ++ */ ++ ++#include ++#include ++#include ++ ++__BEGIN_DECLS ++/* ++ * Ethernet Address Resolution Protocol. ++ * ++ * See RFC 826 for protocol description. Structure below is adapted ++ * to resolving internet addresses. Field names used correspond to ++ * RFC 826. ++ */ ++struct ether_arp { ++ struct arphdr ea_hdr; /* fixed-size header */ ++ u_int8_t arp_sha[ETH_ALEN]; /* sender hardware address */ ++ u_int8_t arp_spa[4]; /* sender protocol address */ ++ u_int8_t arp_tha[ETH_ALEN]; /* target hardware address */ ++ u_int8_t arp_tpa[4]; /* target protocol address */ ++}; ++#define arp_hrd ea_hdr.ar_hrd ++#define arp_pro ea_hdr.ar_pro ++#define arp_hln ea_hdr.ar_hln ++#define arp_pln ea_hdr.ar_pln ++#define arp_op ea_hdr.ar_op ++ ++struct sockaddr_inarp { ++ __SOCKADDR_COMMON (sin_); ++ in_port_t sin_port; /* Port number. */ ++ struct in_addr sin_addr; /* Internet address. */ ++ struct in_addr sin_srcaddr; ++ unsigned short sin_tos; ++ unsigned short sin_other; ++#define SIN_PROXY 1 ++}; ++ ++/* ++ * IP and ethernet specific routing flags ++ */ ++#define RTF_USETRAILERS RTF_PROTO1 /* use trailers */ ++#define RTF_ANNOUNCE RTF_PROTO2 /* announce new arp entry */ ++ ++/* ++ * Macro to map an IP multicast address to an Ethernet multicast address. ++ * The high-order 25 bits of the Ethernet address are statically assigned, ++ * and the low-order 23 bits are taken from the low end of the IP address. ++ */ ++#define ETHER_MAP_IP_MULTICAST(ipaddr, enaddr) \ ++ /* struct in_addr *ipaddr; */ \ ++ /* u_char enaddr[ETH_ALEN]; */ \ ++{ \ ++ (enaddr)[0] = 0x01; \ ++ (enaddr)[1] = 0x00; \ ++ (enaddr)[2] = 0x5e; \ ++ (enaddr)[3] = ((u_int8_t *)ipaddr)[1] & 0x7f; \ ++ (enaddr)[4] = ((u_int8_t *)ipaddr)[2]; \ ++ (enaddr)[5] = ((u_int8_t *)ipaddr)[3]; \ ++} ++ ++/* ++ * Macro to map an IP6 multicast address to an Ethernet multicast address. ++ * The high-order 16 bits of the Ethernet address are statically assigned, ++ * and the low-order 32 bits are taken from the low end of the IP6 address. ++ */ ++#define ETHER_MAP_IPV6_MULTICAST(ip6addr, enaddr) \ ++/* struct in6_addr *ip6addr; */ \ ++/* u_char enaddr[ETH_ALEN]; */ \ ++{ \ ++ (enaddr)[0] = 0x33; \ ++ (enaddr)[1] = 0x33; \ ++ (enaddr)[2] = ((u_int8_t *)ip6addr)[12]; \ ++ (enaddr)[3] = ((u_int8_t *)ip6addr)[13]; \ ++ (enaddr)[4] = ((u_int8_t *)ip6addr)[14]; \ ++ (enaddr)[5] = ((u_int8_t *)ip6addr)[15]; \ ++} ++ ++__END_DECLS ++#endif /* __USE_BSD */ ++ ++#endif /* netinet/if_ether.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/ip_icmp.h +@@ -0,0 +1,296 @@ ++/* Copyright (C) 1991-1993, 1995-1997, 1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef __NETINET_IP_ICMP_H ++#define __NETINET_IP_ICMP_H 1 ++ ++#include ++#include ++ ++__BEGIN_DECLS ++ ++struct icmphdr ++{ ++ u_int8_t type; /* message type */ ++ u_int8_t code; /* type sub-code */ ++ u_int16_t checksum; ++ union ++ { ++ struct ++ { ++ u_int16_t id; ++ u_int16_t sequence; ++ } echo; /* echo datagram */ ++ u_int32_t gateway; /* gateway address */ ++ struct ++ { ++ u_int16_t __unused; ++ u_int16_t mtu; ++ } frag; /* path mtu discovery */ ++ } un; ++}; ++ ++#define ICMP_ECHOREPLY 0 /* Echo Reply */ ++#define ICMP_DEST_UNREACH 3 /* Destination Unreachable */ ++#define ICMP_SOURCE_QUENCH 4 /* Source Quench */ ++#define ICMP_REDIRECT 5 /* Redirect (change route) */ ++#define ICMP_ECHO 8 /* Echo Request */ ++#define ICMP_TIME_EXCEEDED 11 /* Time Exceeded */ ++#define ICMP_PARAMETERPROB 12 /* Parameter Problem */ ++#define ICMP_TIMESTAMP 13 /* Timestamp Request */ ++#define ICMP_TIMESTAMPREPLY 14 /* Timestamp Reply */ ++#define ICMP_INFO_REQUEST 15 /* Information Request */ ++#define ICMP_INFO_REPLY 16 /* Information Reply */ ++#define ICMP_ADDRESS 17 /* Address Mask Request */ ++#define ICMP_ADDRESSREPLY 18 /* Address Mask Reply */ ++#define NR_ICMP_TYPES 18 ++ ++ ++/* Codes for UNREACH. */ ++#define ICMP_NET_UNREACH 0 /* Network Unreachable */ ++#define ICMP_HOST_UNREACH 1 /* Host Unreachable */ ++#define ICMP_PROT_UNREACH 2 /* Protocol Unreachable */ ++#define ICMP_PORT_UNREACH 3 /* Port Unreachable */ ++#define ICMP_FRAG_NEEDED 4 /* Fragmentation Needed/DF set */ ++#define ICMP_SR_FAILED 5 /* Source Route failed */ ++#define ICMP_NET_UNKNOWN 6 ++#define ICMP_HOST_UNKNOWN 7 ++#define ICMP_HOST_ISOLATED 8 ++#define ICMP_NET_ANO 9 ++#define ICMP_HOST_ANO 10 ++#define ICMP_NET_UNR_TOS 11 ++#define ICMP_HOST_UNR_TOS 12 ++#define ICMP_PKT_FILTERED 13 /* Packet filtered */ ++#define ICMP_PREC_VIOLATION 14 /* Precedence violation */ ++#define ICMP_PREC_CUTOFF 15 /* Precedence cut off */ ++#define NR_ICMP_UNREACH 15 /* instead of hardcoding immediate value */ ++ ++/* Codes for REDIRECT. */ ++#define ICMP_REDIR_NET 0 /* Redirect Net */ ++#define ICMP_REDIR_HOST 1 /* Redirect Host */ ++#define ICMP_REDIR_NETTOS 2 /* Redirect Net for TOS */ ++#define ICMP_REDIR_HOSTTOS 3 /* Redirect Host for TOS */ ++ ++/* Codes for TIME_EXCEEDED. */ ++#define ICMP_EXC_TTL 0 /* TTL count exceeded */ ++#define ICMP_EXC_FRAGTIME 1 /* Fragment Reass time exceeded */ ++ ++ ++#ifdef __USE_BSD ++/* ++ * Copyright (c) 1982, 1986, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)ip_icmp.h 8.1 (Berkeley) 6/10/93 ++ */ ++ ++#include ++#include ++ ++/* ++ * Internal of an ICMP Router Advertisement ++ */ ++struct icmp_ra_addr ++{ ++ u_int32_t ira_addr; ++ u_int32_t ira_preference; ++}; ++ ++struct icmp ++{ ++ u_int8_t icmp_type; /* type of message, see below */ ++ u_int8_t icmp_code; /* type sub code */ ++ u_int16_t icmp_cksum; /* ones complement checksum of struct */ ++ union ++ { ++ u_char ih_pptr; /* ICMP_PARAMPROB */ ++ struct in_addr ih_gwaddr; /* gateway address */ ++ struct ih_idseq /* echo datagram */ ++ { ++ u_int16_t icd_id; ++ u_int16_t icd_seq; ++ } ih_idseq; ++ u_int32_t ih_void; ++ ++ /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */ ++ struct ih_pmtu ++ { ++ u_int16_t ipm_void; ++ u_int16_t ipm_nextmtu; ++ } ih_pmtu; ++ ++ struct ih_rtradv ++ { ++ u_int8_t irt_num_addrs; ++ u_int8_t irt_wpa; ++ u_int16_t irt_lifetime; ++ } ih_rtradv; ++ } icmp_hun; ++#define icmp_pptr icmp_hun.ih_pptr ++#define icmp_gwaddr icmp_hun.ih_gwaddr ++#define icmp_id icmp_hun.ih_idseq.icd_id ++#define icmp_seq icmp_hun.ih_idseq.icd_seq ++#define icmp_void icmp_hun.ih_void ++#define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void ++#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu ++#define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs ++#define icmp_wpa icmp_hun.ih_rtradv.irt_wpa ++#define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime ++ union ++ { ++ struct ++ { ++ u_int32_t its_otime; ++ u_int32_t its_rtime; ++ u_int32_t its_ttime; ++ } id_ts; ++ struct ++ { ++ struct ip idi_ip; ++ /* options and then 64 bits of data */ ++ } id_ip; ++ struct icmp_ra_addr id_radv; ++ u_int32_t id_mask; ++ u_int8_t id_data[1]; ++ } icmp_dun; ++#define icmp_otime icmp_dun.id_ts.its_otime ++#define icmp_rtime icmp_dun.id_ts.its_rtime ++#define icmp_ttime icmp_dun.id_ts.its_ttime ++#define icmp_ip icmp_dun.id_ip.idi_ip ++#define icmp_radv icmp_dun.id_radv ++#define icmp_mask icmp_dun.id_mask ++#define icmp_data icmp_dun.id_data ++}; ++ ++/* ++ * Lower bounds on packet lengths for various types. ++ * For the error advice packets must first insure that the ++ * packet is large enough to contain the returned ip header. ++ * Only then can we do the check to see if 64 bits of packet ++ * data have been returned, since we need to check the returned ++ * ip header length. ++ */ ++#define ICMP_MINLEN 8 /* abs minimum */ ++#define ICMP_TSLEN (8 + 3 * sizeof (n_time)) /* timestamp */ ++#define ICMP_MASKLEN 12 /* address mask */ ++#define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8) /* min */ ++#ifndef _IP_VHL ++#define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8) ++ /* N.B.: must separately check that ip_hl >= 5 */ ++#else ++#define ICMP_ADVLEN(p) (8 + (IP_VHL_HL((p)->icmp_ip.ip_vhl) << 2) + 8) ++ /* N.B.: must separately check that header length >= 5 */ ++#endif ++ ++/* ++ * Definition of type and code field values. ++ */ ++#define ICMP_ECHOREPLY 0 /* echo reply */ ++#define ICMP_UNREACH 3 /* dest unreachable, codes: */ ++#define ICMP_UNREACH_NET 0 /* bad net */ ++#define ICMP_UNREACH_HOST 1 /* bad host */ ++#define ICMP_UNREACH_PROTOCOL 2 /* bad protocol */ ++#define ICMP_UNREACH_PORT 3 /* bad port */ ++#define ICMP_UNREACH_NEEDFRAG 4 /* IP_DF caused drop */ ++#define ICMP_UNREACH_SRCFAIL 5 /* src route failed */ ++#define ICMP_UNREACH_NET_UNKNOWN 6 /* unknown net */ ++#define ICMP_UNREACH_HOST_UNKNOWN 7 /* unknown host */ ++#define ICMP_UNREACH_ISOLATED 8 /* src host isolated */ ++#define ICMP_UNREACH_NET_PROHIB 9 /* prohibited access */ ++#define ICMP_UNREACH_HOST_PROHIB 10 /* ditto */ ++#define ICMP_UNREACH_TOSNET 11 /* bad tos for net */ ++#define ICMP_UNREACH_TOSHOST 12 /* bad tos for host */ ++#define ICMP_UNREACH_FILTER_PROHIB 13 /* admin prohib */ ++#define ICMP_UNREACH_HOST_PRECEDENCE 14 /* host prec vio. */ ++#define ICMP_UNREACH_PRECEDENCE_CUTOFF 15 /* prec cutoff */ ++#define ICMP_SOURCEQUENCH 4 /* packet lost, slow down */ ++#define ICMP_REDIRECT 5 /* shorter route, codes: */ ++#define ICMP_REDIRECT_NET 0 /* for network */ ++#define ICMP_REDIRECT_HOST 1 /* for host */ ++#define ICMP_REDIRECT_TOSNET 2 /* for tos and net */ ++#define ICMP_REDIRECT_TOSHOST 3 /* for tos and host */ ++#define ICMP_ALTHOSTADDR 6 /* alternate host address */ ++#define ICMP_ECHO 8 /* echo service */ ++#define ICMP_ROUTERADVERT 9 /* router advertisement */ ++#define ICMP_ROUTERADVERT_NORMAL 0 /* normal advertisement */ ++#define ICMP_ROUTERADVERT_NOROUTE_COMMON 16 /* selective routing */ ++#define ICMP_ROUTERSOLICIT 10 /* router solicitation */ ++#define ICMP_TIMXCEED 11 /* time exceeded, code: */ ++#define ICMP_TIMXCEED_INTRANS 0 /* ttl==0 in transit */ ++#define ICMP_TIMXCEED_REASS 1 /* ttl==0 in reass */ ++#define ICMP_PARAMPROB 12 /* ip header bad */ ++#define ICMP_PARAMPROB_ERRATPTR 0 /* error at param ptr */ ++#define ICMP_PARAMPROB_OPTABSENT 1 /* req. opt. absent */ ++#define ICMP_PARAMPROB_LENGTH 2 /* bad length */ ++#define ICMP_TSTAMP 13 /* timestamp request */ ++#define ICMP_TSTAMPREPLY 14 /* timestamp reply */ ++#define ICMP_IREQ 15 /* information request */ ++#define ICMP_IREQREPLY 16 /* information reply */ ++#define ICMP_MASKREQ 17 /* address mask request */ ++#define ICMP_MASKREPLY 18 /* address mask reply */ ++#define ICMP_TRACEROUTE 30 /* traceroute */ ++#define ICMP_DATACONVERR 31 /* data conversion error */ ++#define ICMP_MOBILE_REDIRECT 32 /* mobile host redirect */ ++#define ICMP_IPV6_WHEREAREYOU 33 /* IPv6 where-are-you */ ++#define ICMP_IPV6_IAMHERE 34 /* IPv6 i-am-here */ ++#define ICMP_MOBILE_REGREQUEST 35 /* mobile registration req */ ++#define ICMP_MOBILE_REGREPLY 36 /* mobile registration reply */ ++#define ICMP_SKIP 39 /* SKIP */ ++#define ICMP_PHOTURIS 40 /* Photuris */ ++#define ICMP_PHOTURIS_UNKNOWN_INDEX 1 /* unknown sec index */ ++#define ICMP_PHOTURIS_AUTH_FAILED 2 /* auth failed */ ++#define ICMP_PHOTURIS_DECRYPT_FAILED 3 /* decrypt failed */ ++ ++#define ICMP_MAXTYPE 40 ++ ++#define ICMP_INFOTYPE(type) \ ++ ((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \ ++ (type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || \ ++ (type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \ ++ (type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \ ++ (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY) ++ ++#endif /* __USE_BSD */ ++ ++__END_DECLS ++ ++#endif /* netinet/ip_icmp.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/tcp.h +@@ -0,0 +1,267 @@ ++/* netinet/tcp.h ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* ++ * Copyright (c) 1982, 1986, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)tcp.h 8.1 (Berkeley) 6/10/93 ++ */ ++ ++#ifndef _NETINET_TCP_H ++#define _NETINET_TCP_H 1 ++ ++#include ++#include ++ ++/* ++ * User-settable options (used with setsockopt). ++ */ ++#define TCP_NODELAY 1 /* Don't delay send to coalesce packets */ ++#define TCP_MAXSEG 2 /* Set maximum segment size */ ++#define TCP_NOPUSH 4 /* Don't push last block of write */ ++#define TCP_NOOPT 8 /* Don't use TCP options */ ++#define TCP_MD5SIG 16 /* use MD5 digests (RFC2385) */ ++#define TCP_INFO 32 /* retrieve tcp_info structure */ ++#define TCP_CONGESTION 64 /* get/set congestion control algorithm */ ++ ++#ifdef __USE_MISC ++# include ++ ++typedef u_int32_t tcp_seq; ++typedef u_int32_t tcp_cc; /* connection count, per RFC 1644 */ ++ ++/* Miscellaneous constants */ ++#define MAX_SACK_BLKS 6 /* Max # SACK blocks stored at receiver side */ ++#define TCP_MAX_SACK 4 /* MAX # SACKs sent in any segment */ ++ ++# ifdef __FAVOR_BSD ++/* ++ * TCP header. ++ * Per RFC 793, September, 1981. ++ */ ++struct tcphdr ++ { ++ u_int16_t th_sport; /* source port */ ++ u_int16_t th_dport; /* destination port */ ++ tcp_seq th_seq; /* sequence number */ ++ tcp_seq th_ack; /* acknowledgement number */ ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++ u_int8_t th_x2:4; /* (unused) */ ++ u_int8_t th_off:4; /* data offset */ ++# endif ++# if __BYTE_ORDER == __BIG_ENDIAN ++ u_int8_t th_off:4; /* data offset */ ++ u_int8_t th_x2:4; /* (unused) */ ++# endif ++ u_int8_t th_flags; ++# define TH_FIN 0x01 ++# define TH_SYN 0x02 ++# define TH_RST 0x04 ++# define TH_PUSH 0x08 ++# define TH_ACK 0x10 ++# define TH_URG 0x20 ++ u_int16_t th_win; /* window */ ++ u_int16_t th_sum; /* checksum */ ++ u_int16_t th_urp; /* urgent pointer */ ++}; ++ ++# else /* !__FAVOR_BSD */ ++struct tcphdr ++ { ++ u_int16_t source; ++ u_int16_t dest; ++ u_int32_t seq; ++ u_int32_t ack_seq; ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++ u_int16_t res1:4; ++ u_int16_t doff:4; ++ u_int16_t fin:1; ++ u_int16_t syn:1; ++ u_int16_t rst:1; ++ u_int16_t psh:1; ++ u_int16_t ack:1; ++ u_int16_t urg:1; ++ u_int16_t res2:2; ++# elif __BYTE_ORDER == __BIG_ENDIAN ++ u_int16_t doff:4; ++ u_int16_t res1:4; ++ u_int16_t res2:2; ++ u_int16_t urg:1; ++ u_int16_t ack:1; ++ u_int16_t psh:1; ++ u_int16_t rst:1; ++ u_int16_t syn:1; ++ u_int16_t fin:1; ++# else ++# error "Adjust your defines" ++# endif ++ u_int16_t window; ++ u_int16_t check; ++ u_int16_t urg_ptr; ++}; ++# endif /* __FAVOR_BSD */ ++ ++enum ++{ ++ TCP_ESTABLISHED = 1, ++ TCP_SYN_SENT, ++ TCP_SYN_RECV, ++ TCP_FIN_WAIT1, ++ TCP_FIN_WAIT2, ++ TCP_TIME_WAIT, ++ TCP_CLOSE, ++ TCP_CLOSE_WAIT, ++ TCP_LAST_ACK, ++ TCP_LISTEN, ++ TCP_CLOSING /* now a valid state */ ++}; ++ ++# define TCPOPT_EOL 0 ++# define TCPOPT_NOP 1 ++# define TCPOPT_MAXSEG 2 ++# define TCPOLEN_MAXSEG 4 ++# define TCPOPT_WINDOW 3 ++# define TCPOLEN_WINDOW 3 ++# define TCPOPT_SACK_PERMITTED 4 /* Experimental */ ++# define TCPOLEN_SACK_PERMITTED 2 ++# define TCPOPT_SACK 5 /* Experimental */ ++# define TCPOPT_TIMESTAMP 8 ++# define TCPOLEN_TIMESTAMP 10 ++# define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2) /* appendix A */ ++# define TCPOPT_TSTAMP_HDR \ ++ (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP) ++#define TCPOPT_CC 11 /* CC options: RFC-1644 */ ++#define TCPOPT_CCNEW 12 ++#define TCPOPT_CCECHO 13 ++#define TCPOLEN_CC 6 ++#define TCPOLEN_CC_APPA (TCPOLEN_CC+2) ++#define TCPOPT_CC_HDR(ccopt) \ ++ (TCPOPT_NOP<<24|TCPOPT_NOP<<16|(ccopt)<<8|TCPOLEN_CC) ++ ++/* ++ * Default maximum segment size for TCP. ++ * With an IP MSS of 576, this is 536, ++ * but 512 is probably more convenient. ++ * This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)). ++ */ ++# define TCP_MSS 512 ++ ++/* ++ * Default maximum segment size for TCP6. ++ * With an IP MSS of 1280, this is 1220, ++ * but 1024 is probably more convenient. ++ * This should be defined as MIN(1024, IP6_MSS - sizeof (struct tcpip6hdr)). ++ */ ++# define TCP6_MSS 1024 ++ ++# define TCP_MAXWIN 65535 /* largest value for (unscaled) window */ ++# define TTCP_CLIENT_SND_WND 4096 /* default send window for T/TCP client */ ++ ++# define TCP_MAX_WINSHIFT 14 /* maximum window shift */ ++ ++#define TCP_MAXBURST 4 /* maximum segments in a burst */ ++ ++#define TCP_MAXHLEN (0xf<<2) /* max length of header in bytes */ ++#define TCP_MAXOLEN (TCP_MAXHLEN - sizeof (struct tcphdr)) ++ /* max space left for options */ ++ ++# define SOL_TCP 6 /* TCP level */ ++ ++ ++# define TCPI_OPT_TIMESTAMPS 1 ++# define TCPI_OPT_SACK 2 ++# define TCPI_OPT_WSCALE 4 ++# define TCPI_OPT_ECN 8 ++ ++/* Values for tcpi_state. */ ++enum tcp_ca_state ++{ ++ TCP_CA_Open = 0, ++ TCP_CA_Disorder = 1, ++ TCP_CA_CWR = 2, ++ TCP_CA_Recovery = 3, ++ TCP_CA_Loss = 4 ++}; ++ ++struct tcp_info ++{ ++ u_int8_t tcpi_state; ++ u_int8_t tcpi_ca_state; ++ u_int8_t tcpi_retransmits; ++ u_int8_t tcpi_probes; ++ u_int8_t tcpi_backoff; ++ u_int8_t tcpi_options; ++ u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; ++ ++ u_int32_t tcpi_rto; ++ u_int32_t tcpi_ato; ++ u_int32_t tcpi_snd_mss; ++ u_int32_t tcpi_rcv_mss; ++ ++ u_int32_t tcpi_unacked; ++ u_int32_t tcpi_sacked; ++ u_int32_t tcpi_lost; ++ u_int32_t tcpi_retrans; ++ u_int32_t tcpi_fackets; ++ ++ /* Times. */ ++ u_int32_t tcpi_last_data_sent; ++ u_int32_t tcpi_last_ack_sent; /* Not remembered, sorry. */ ++ u_int32_t tcpi_last_data_recv; ++ u_int32_t tcpi_last_ack_recv; ++ ++ /* Metrics. */ ++ u_int32_t tcpi_pmtu; ++ u_int32_t tcpi_rcv_ssthresh; ++ u_int32_t tcpi_rtt; ++ u_int32_t tcpi_rttvar; ++ u_int32_t tcpi_snd_ssthresh; ++ u_int32_t tcpi_snd_cwnd; ++ u_int32_t tcpi_advmss; ++ u_int32_t tcpi_reordering; ++}; ++ ++#endif /* Misc. */ ++ ++#endif /* netinet/tcp.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/nfs/nfs.h +@@ -0,0 +1,3 @@ ++#include ++#include ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/not-cancel.h +@@ -0,0 +1,91 @@ ++/* Uncancelable versions of cancelable interfaces. kFreeBSD version. ++ Copyright (C) 2003, 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , 2003. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* Uncancelable open. */ ++#define open_not_cancel(name, flags, mode) \ ++ INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode)) ++#define open_not_cancel_2(name, flags) \ ++ INLINE_SYSCALL (open, 2, (const char *) (name), (flags)) ++ ++/* Uncancelable openat. */ ++#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt ++extern int __openat_nocancel (int fd, const char *fname, int oflag, ++ mode_t mode) attribute_hidden; ++extern int __openat64_nocancel (int fd, const char *fname, int oflag, ++ mode_t mode) attribute_hidden; ++#else ++# define __openat_nocancel(fd, fname, oflag, mode) \ ++ openat (fd, fname, oflag, mode) ++# define __openat64_nocancel(fd, fname, oflag, mode) \ ++ openat64 (fd, fname, oflag, mode) ++#endif ++ ++#define openat_not_cancel(fd, fname, oflag, mode) \ ++ __openat_nocancel (fd, fname, oflag, mode) ++#define openat_not_cancel_3(fd, fname, oflag) \ ++ __openat_nocancel (fd, fname, oflag, 0) ++#define openat64_not_cancel(fd, fname, oflag, mode) \ ++ __openat64_nocancel (fd, fname, oflag, mode) ++#define openat64_not_cancel_3(fd, fname, oflag) \ ++ __openat64_nocancel (fd, fname, oflag, 0) ++ ++/* Uncancelable close. */ ++#define close_not_cancel(fd) \ ++ INLINE_SYSCALL (close, 1, fd) ++ ++#define close_not_cancel_no_status(fd) \ ++ (void) ({ INTERNAL_SYSCALL_DECL (err); \ ++ INTERNAL_SYSCALL (close, err, 1, (fd)); }) ++ ++/* Uncancelable read. */ ++#define read_not_cancel(fd, buf, n) \ ++ INLINE_SYSCALL (read, 3, (fd), (buf), (n)) ++ ++/* Uncancelable write. */ ++#define write_not_cancel(fd, buf, n) \ ++ INLINE_SYSCALL (write, 3, (fd), (buf), (n)) ++ ++/* Uncancelable writev. */ ++#define writev_not_cancel_no_status(fd, iov, n) \ ++ (void) ({ INTERNAL_SYSCALL_DECL (err); \ ++ INTERNAL_SYSCALL (writev, err, 3, (fd), (iov), (n)); }) ++ ++/* Uncancelable fcntl. */ ++#define fcntl_not_cancel(fd, cmd, val) \ ++ __fcntl_nocancel (fd, cmd, val) ++ ++/* Uncancelable waitpid. */ ++# define waitpid_not_cancel(pid, stat_loc, options) \ ++ INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL) ++ ++/* Uncancelable pause. */ ++# define pause_not_cancel() \ ++ __pause_nocancel () ++ ++/* Uncancelable nanosleep. */ ++# define nanosleep_not_cancel(requested_time, remaining) \ ++ INLINE_SYSCALL (nanosleep, 2, requested_time, remaining) ++ ++/* Uncancelable sigsuspend. */ ++#define sigsuspend_not_cancel(set) \ ++ INLINE_SYSCALL (sigsuspend, 1, set) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/nptl/Implies +@@ -0,0 +1 @@ ++pthread +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/nptl/bits/local_lim.h +@@ -0,0 +1,48 @@ ++/* Minimum guaranteed maximum values for system limits. FreeBSD version. ++ Copyright (C) 1993-1998, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++/* The number of data keys per process. */ ++#define _POSIX_THREAD_KEYS_MAX 128 ++/* This is the value this implementation supports. */ ++#define PTHREAD_KEYS_MAX 1024 ++ ++/* Controlling the iterations of destructors for thread-specific data. */ ++#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 ++/* Number of iterations this implementation does. */ ++#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS ++ ++/* The number of threads per process. */ ++#define _POSIX_THREAD_THREADS_MAX 64 ++/* This is the value this implementation supports. */ ++#define PTHREAD_THREADS_MAX 1024 ++ ++/* Maximum amount by which a process can descrease its asynchronous I/O ++ priority level. */ ++#define AIO_PRIO_DELTA_MAX 20 ++ ++/* Minimum size for a thread. We are free to choose a reasonable value. */ ++#define PTHREAD_STACK_MIN 16384 ++ ++/* Maximum number of POSIX timers available. */ ++#define TIMER_MAX 256 ++ ++/* Maximum number of timer expiration overruns. */ ++#define DELAYTIMER_MAX 2147483647 +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/nptl/bits/posix_opt.h +@@ -0,0 +1,190 @@ ++/* Define POSIX options for FreeBSD. ++ Copyright (C) 1996-1997, 1999, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* ++ * Never include this file directly; use instead. ++ */ ++ ++#ifndef _BITS_POSIX_OPT_H ++#define _BITS_POSIX_OPT_H 1 ++ ++/* Job control is supported. */ ++#define _POSIX_JOB_CONTROL 1 ++ ++/* Processes have a saved set-user-ID and a saved set-group-ID. */ ++#define _POSIX_SAVED_IDS 1 ++ ++/* Priority scheduling is supported. */ ++#define _POSIX_PRIORITY_SCHEDULING 200809L ++ ++/* Synchronizing file data is supported. */ ++#define _POSIX_SYNCHRONIZED_IO 200809L ++ ++/* The fsync function is present. */ ++#define _POSIX_FSYNC 200809L ++ ++/* Mapping of files to memory is supported. */ ++#define _POSIX_MAPPED_FILES 200809L ++ ++/* Locking of all memory is supported. */ ++#define _POSIX_MEMLOCK 200809L ++ ++/* Locking of ranges of memory is supported. */ ++#define _POSIX_MEMLOCK_RANGE 200809L ++ ++/* Setting of memory protections is supported. */ ++#define _POSIX_MEMORY_PROTECTION 200809L ++ ++/* Only root can change owner of file. */ ++#define _POSIX_CHOWN_RESTRICTED 1 ++ ++/* `c_cc' member of 'struct termios' structure can be disabled by ++ using the value _POSIX_VDISABLE. */ ++#define _POSIX_VDISABLE ((unsigned char)'\377') ++ ++/* Filenames are not silently truncated. */ ++#define _POSIX_NO_TRUNC 1 ++/* X/Open realtime support is only partially available. */ ++#define _XOPEN_REALTIME -1 ++ ++/* X/Open realtime thread support is only partially available. */ ++#define _XOPEN_REALTIME_THREADS -1 ++ ++/* Implementation supports `poll' function. */ ++#define _POSIX_POLL 1 ++ ++/* Implementation supports `select' and `pselect' functions. */ ++#define _POSIX_SELECT 1 ++ ++/* XPG4.2 shared memory is supported. */ ++#define _XOPEN_SHM 1 ++ ++/* Tell we have POSIX threads. */ ++#define _POSIX_THREADS 200809L ++ ++/* We have the reentrant functions described in POSIX. */ ++#define _POSIX_REENTRANT_FUNCTIONS 1 ++#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L ++ ++/* We provide priority scheduling for threads. */ ++#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L ++ ++/* We support user-defined stack sizes. */ ++#define _POSIX_THREAD_ATTR_STACKSIZE 200809L ++ ++/* We support user-defined stacks. */ ++#define _POSIX_THREAD_ATTR_STACKADDR 200809L ++ ++/* We support POSIX.1b semaphores, but only the non-shared form for now. */ ++#define _POSIX_SEMAPHORES 200809L ++ ++/* Real-time signals are not available. */ ++#define _POSIX_REALTIME_SIGNALS -1 ++ ++/* We support asynchronous I/O. */ ++#define _POSIX_ASYNCHRONOUS_IO 200809L ++#define _POSIX_ASYNC_IO 1 ++/* Alternative name for Unix98. */ ++#define _LFS_ASYNCHRONOUS_IO 1 ++/* Support for prioritization is not available. */ ++#define _POSIX_PRIORITIZED_IO -1 ++ ++/* The LFS support in asynchronous I/O is also available. */ ++#define _LFS64_ASYNCHRONOUS_IO 1 ++ ++/* The rest of the LFS is also available. */ ++#define _LFS_LARGEFILE 1 ++#define _LFS64_LARGEFILE 1 ++#define _LFS64_STDIO 1 ++ ++/* POSIX shared memory objects are implemented. */ ++#define _POSIX_SHARED_MEMORY_OBJECTS 200809L ++ ++/* CPU-time clocks somewhere supported. */ ++#define _POSIX_CPUTIME 0 ++ ++/* We support somewhere the clock also in threads. */ ++#define _POSIX_THREAD_CPUTIME 0 ++ ++/* GNU libc provides regular expression handling. */ ++#define _POSIX_REGEXP 1 ++ ++/* Reader/Writer locks are available. */ ++#define _POSIX_READER_WRITER_LOCKS 200809L ++ ++/* We have a POSIX shell. */ ++#define _POSIX_SHELL 1 ++ ++/* We support the Timeouts option. */ ++#define _POSIX_TIMEOUTS 200809L ++ ++/* We support spinlocks. */ ++#define _POSIX_SPIN_LOCKS 200809L ++ ++/* The `spawn' function family is supported. */ ++#define _POSIX_SPAWN 200809L ++ ++/* We have POSIX timers. */ ++#define _POSIX_TIMERS 200809L ++ ++/* The barrier functions are available. */ ++#define _POSIX_BARRIERS 200809L ++ ++/* POSIX message queues are not available. */ ++#define _POSIX_MESSAGE_PASSING -1 ++ ++/* Thread process-shared synchronization is not supported. */ ++#define _POSIX_THREAD_PROCESS_SHARED -1 ++ ++/* The monotonic clock is available. */ ++#define _POSIX_MONOTONIC_CLOCK 200809L ++ ++/* The clock selection interfaces are not available. */ ++#define _POSIX_CLOCK_SELECTION -1 ++ ++/* Advisory information interfaces are not available. */ ++#define _POSIX_ADVISORY_INFO -1 ++ ++/* IPv6 support is available. */ ++#define _POSIX_IPV6 200809L ++ ++/* Raw socket support is available. */ ++#define _POSIX_RAW_SOCKETS 200809L ++ ++/* We have at least one terminal. */ ++#define _POSIX2_CHAR_TERM 200809L ++ ++/* Neither process nor thread sporadic server interfaces is available. */ ++#define _POSIX_SPORADIC_SERVER -1 ++#define _POSIX_THREAD_SPORADIC_SERVER -1 ++ ++/* trace.h is not available. */ ++#define _POSIX_TRACE -1 ++#define _POSIX_TRACE_EVENT_FILTER -1 ++#define _POSIX_TRACE_INHERIT -1 ++#define _POSIX_TRACE_LOG -1 ++ ++/* Typed memory objects are not available. */ ++#define _POSIX_TYPED_MEMORY_OBJECTS -1 ++ ++/* No support for priority inheritance or protection. */ ++#define _POSIX_THREAD_PRIO_INHERIT -1 ++#define _POSIX_THREAD_PRIO_PROTECT -1 ++ ++#endif /* bits/posix_opt.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ntp_gettime.c +@@ -0,0 +1,62 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#ifndef ntptimeval ++#define ntptimeval ntptimeval4 ++#endif ++ ++int ++ntp_gettime (struct ntptimeval *ntv) ++{ ++ /* Fetch sysctl value of "kern.ntp_pll.gettime". */ ++ /* The 'struct ntptimeval' has grown in size. */ ++ union ++ { ++ struct ntptimeval3 tv3; ++ struct ntptimeval4 tv4; ++ } tv; ++ size_t size = sizeof (tv); ++ int request[2] = { CTL_KERN, KERN_NTP_PLL }; ++ ++ if (__sysctl (request, 2, &tv, &size, NULL, 0) >= 0) ++ { ++ if (size == sizeof (struct ntptimeval3)) ++ { ++ if (ntv) ++ { ++ ntv->time = tv.tv3.time; ++ ntv->maxerror = tv.tv3.maxerror; ++ ntv->esterror = tv.tv3.esterror; ++ ntv->tai = 0; ++ ntv->time_state = tv.tv3.time_state; ++ } ++ return tv.tv3.time_state; ++ } ++ if (size == sizeof (struct ntptimeval4)) ++ { ++ if (ntv) ++ *ntv = tv.tv4; ++ return tv.tv4.time_state; ++ } ++ } ++ return TIME_ERROR; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/open.c +@@ -0,0 +1,63 @@ ++/* Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++__libc_open (const char *file, int oflag, ...) ++{ ++ int mode = 0; ++ int fd; ++ ++ if (oflag & O_CREAT) ++ { ++ va_list arg; ++ va_start (arg, oflag); ++ mode = va_arg (arg, int); ++ va_end (arg); ++ } ++ ++ if (SINGLE_THREAD_P) ++ { ++ fd = INLINE_SYSCALL (open, 3, file, oflag, mode); ++ } ++ else ++ { ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ fd = INLINE_SYSCALL (open, 3, file, oflag, mode); ++ LIBC_CANCEL_RESET (oldtype); ++ } ++ return fd; ++} ++libc_hidden_def (__libc_open) ++ ++weak_alias (__libc_open, __open) ++libc_hidden_weak (__open) ++ ++weak_alias (__libc_open, open) ++ ++strong_alias (__libc_open, __libc_open64) ++weak_alias (__libc_open64, __open64) ++weak_alias (__libc_open64, open64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/open64.c +@@ -0,0 +1,2 @@ ++/* 'open64' is the same as 'open', because __off64_t == __off_t and ++ O_LARGEFILE == 0. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/open_2.c +@@ -0,0 +1,2 @@ ++#include ++strong_alias (__open_2, __open64_2) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/openat.c +@@ -0,0 +1,191 @@ ++/* Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_openat (int fd, const char *path, int flag, mode_t mode); ++libc_hidden_proto (__syscall_openat) ++ ++# ifndef __ASSUME_ATFCTS ++int __have_atfcts = 0; ++#endif ++ ++/* Open FILE with access OFLAG. Interpret relative paths relative to ++ the directory associated with FD. If OFLAG includes O_CREAT, a ++ third argument is the file protection. */ ++int ++__openat_nocancel (fd, file, oflag, mode) ++ int fd; ++ const char *file; ++ int oflag; ++ mode_t mode; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result = INLINE_SYSCALL (openat, 4, fd, file, oflag, mode); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (fd != AT_FDCWD && file[0] != '/') ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t filelen; ++ ++ if (fd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ filelen = strlen (file); ++ if (__builtin_expect (filelen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len + filelen); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, file); ++ file = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ } ++ return INLINE_SYSCALL (open, 3, file, oflag, mode); ++#endif ++} ++ ++strong_alias (__openat_nocancel, __openat64_nocancel) ++ ++/* Open FILE with access OFLAG. Interpret relative paths relative to ++ the directory associated with FD. If OFLAG includes O_CREAT, a ++ third argument is the file protection. */ ++int ++__openat (fd, file, oflag) ++ int fd; ++ const char *file; ++ int oflag; ++{ ++ int mode = 0; ++ int result; ++ ++ if (oflag & O_CREAT) ++ { ++ va_list arg; ++ va_start (arg, oflag); ++ mode = va_arg (arg, int); ++ va_end (arg); ++ } ++ ++ if (SINGLE_THREAD_P) ++ return __openat_nocancel(fd, file, oflag, mode); ++ else ++ { ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ result = __openat_nocancel(fd, file, oflag, mode); ++ LIBC_CANCEL_RESET (oldtype); ++ } ++ return result; ++} ++ ++libc_hidden_def (__openat) ++weak_alias (__openat, openat) ++ ++/* 'openat64' is the same as 'openat', because __off64_t == __off_t. */ ++strong_alias (__openat, __openat64) ++libc_hidden_def (__openat64) ++weak_alias (__openat64, openat64) ++ ++int ++__openat_2 (fd, file, oflag) ++ int fd; ++ const char *file; ++ int oflag; ++{ ++ if (oflag & O_CREAT) ++ __fortify_fail ("invalid openat call: O_CREAT without mode"); ++ ++ return __openat (fd, file, oflag); ++} ++ ++strong_alias (__openat_2, __openat64_2) ++stub_warning(openat) ++stub_warning(openat64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/openat64.c +@@ -0,0 +1,2 @@ ++/* 'openat64' is the same as 'openat', because __off64_t == __off_t and ++ O_LARGEFILE == 0. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/paths.h +@@ -0,0 +1,74 @@ ++/* ++ * Copyright (c) 1989, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)paths.h 8.1 (Berkeley) 6/2/93 ++ */ ++ ++#ifndef _PATHS_H_ ++#define _PATHS_H_ ++ ++/* Default search path. */ ++#define _PATH_DEFPATH "/usr/bin:/bin" ++/* All standard utilities path. */ ++#define _PATH_STDPATH \ ++ "/usr/bin:/bin:/usr/sbin:/sbin" ++ ++#define _PATH_BSHELL "/bin/sh" ++#define _PATH_CONSOLE "/dev/console" ++#define _PATH_CSHELL "/bin/csh" ++#define _PATH_DEVDB "/var/run/dev.db" ++#define _PATH_DEVNULL "/dev/null" ++#define _PATH_DRUM "/dev/drum" ++#define _PATH_KLOG "/dev/klog" ++#define _PATH_KMEM "/dev/kmem" ++#define _PATH_LASTLOG "/var/log/lastlog" ++#define _PATH_MAILDIR "/var/mail" ++#define _PATH_MAN "/usr/share/man" ++#define _PATH_MEM "/dev/mem" ++#define _PATH_MNTTAB "/etc/fstab" ++#define _PATH_MOUNTED "/etc/mtab" ++#define _PATH_NOLOGIN "/etc/nologin" ++#define _PATH_PRESERVE "/var/lib" ++#define _PATH_RWHODIR "/var/spool/rwho" ++#define _PATH_SENDMAIL "/usr/sbin/sendmail" ++#define _PATH_SHADOW "/etc/shadow" ++#define _PATH_SHELLS "/etc/shells" ++#define _PATH_TTY "/dev/tty" ++#define _PATH_UNIX "/kernel" ++#define _PATH_UTMP "/var/run/utmp" ++#define _PATH_VI "/usr/bin/vi" ++#define _PATH_WTMP "/var/log/wtmp" ++ ++/* Provide trailing slash, since mostly used for building pathnames. */ ++#define _PATH_DEV "/dev/" ++#define _PATH_TMP "/tmp/" ++#define _PATH_VARDB "/var/lib/misc/" ++#define _PATH_VARRUN "/var/run/" ++#define _PATH_VARTMP "/var/tmp/" ++ ++#endif /* !_PATHS_H_ */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pread.c +@@ -0,0 +1,69 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++extern ssize_t __syscall_pread (int __fd, void *__buf, size_t __nbytes, ++ __off_t __offset) __THROW; ++libc_hidden_proto(__syscall_pread) ++extern ssize_t __syscall_freebsd6_pread (int __fd, void *__buf, size_t __nbytes, ++ int __unused1, __off_t __offset) __THROW; ++libc_hidden_proto(__syscall_freebsd6_pread) ++ ++ssize_t ++__libc_pread (int fd, void *buf, size_t nbytes, __off_t offset) ++{ ++ ssize_t result; ++ ++ if (SINGLE_THREAD_P) ++ { ++ ++ /* First try the new syscall. */ ++ result = INLINE_SYSCALL (pread, 4, fd, buf, nbytes, offset); ++#ifndef __ASSUME_PREAD_PWRITE_SYSCALLS ++ if (result == -1 && errno == ENOSYS) ++ /* New syscall not available, us the old one. */ ++ result = INLINE_SYSCALL (freebsd6_pread, 5, fd, buf, nbytes, 0, offset); ++#endif ++ return result; ++ } ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ /* First try the new syscall. */ ++ result = INLINE_SYSCALL (pread, 4, fd, buf, nbytes, offset); ++#ifndef __ASSUME_PREAD_PWRITE_SYSCALLS ++ if (result == -1 && errno == ENOSYS) ++ /* New syscall not available, us the old one. */ ++ result = INLINE_SYSCALL (freebsd6_pread, 5, fd, buf, nbytes, 0, offset); ++#endif ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++} ++ ++strong_alias (__libc_pread, __pread) ++weak_alias (__pread, pread) ++ ++/* 'pread64' is the same as 'pread', because __off64_t == __off_t. */ ++strong_alias (__libc_pread, __libc_pread64) ++weak_alias (__libc_pread64, __pread64) ++weak_alias (__libc_pread64, pread64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pread64.c +@@ -0,0 +1 @@ ++/* 'pread64' is the same as 'pread', because __off64_t == __off_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/preadv64.c +@@ -0,0 +1 @@ ++/* 'preadv64' is the same as 'preadv', because __off64_t == __off_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/prof-freq.c +@@ -0,0 +1,47 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++struct clockinfo ++{ ++ int hz; /* Clock frequency. */ ++ int tick; /* Microseconds per hz tick, = 1000000 / hz. */ ++ int tickadj; /* Clock skew rate for adjtime(). */ ++ int stathz; /* Statistics clock frequency. */ ++ int profhz; /* Profiling clock frequency. */ ++}; ++ ++int ++__profile_frequency (void) ++{ ++ /* Fetch the "kern.clockrate" sysctl value. */ ++ int request[2] = { CTL_KERN, KERN_CLOCKRATE }; ++ struct clockinfo result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ /* Dummy result. */ ++ return 1; ++ ++ /* Yes, hz, not profhz. On i386, the value is 100, not 1024. */ ++ return result.hz; ++} ++libc_hidden_def (__profile_frequency) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ptsname.c +@@ -0,0 +1,104 @@ ++/* Copyright (C) 1998, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++/* Static buffer for `ptsname'. */ ++static char buffer[sizeof (_PATH_TTY) + 2]; ++ ++ ++/* Return the pathname of the pseudo terminal slave associated with ++ the master FD is open on, or NULL on errors. ++ The returned storage is good until the next call to this function. */ ++char * ++ptsname (int fd) ++{ ++ return __ptsname_r (fd, buffer, sizeof (buffer)) != 0 ? NULL : buffer; ++} ++ ++/* The are declared in getpt.c. */ ++extern const char __libc_ptyname1[] attribute_hidden; ++extern const char __libc_ptyname2[] attribute_hidden; ++ ++ ++/* Store at most BUFLEN characters of the pathname of the slave pseudo ++ terminal associated with the master FD is open on in BUF. ++ Return 0 on success, otherwise an error number. */ ++int ++__ptsname_r (int fd, char *buf, size_t buflen) ++{ ++ int saved_errno = errno; ++ struct stat64 st; ++ char *p; ++ ++ if (buf == NULL) ++ { ++ __set_errno (EINVAL); ++ return EINVAL; ++ } ++ ++ /* Don't call isatty (fd) - it usually fails with errno = EAGAIN. */ ++ ++ if (__fxstat64 (_STAT_VER, fd, &st) < 0) ++ return errno; ++ ++ /* Check if FD really is a master pseudo terminal. */ ++ if (!(S_ISCHR (st.st_mode))) ++ { ++ __set_errno (ENOTTY); ++ return ENOTTY; ++ } ++ ++ if (buflen < sizeof (_PATH_TTY) + 2) ++ { ++ __set_errno (ERANGE); ++ return ERANGE; ++ } ++ ++ /* Construct the slave's pathname. */ ++ /* instead of strlen(_PATH_DEV) we use (sizeof (_PATH_DEV) - 1) */ ++ p = __mempcpy (buf, _PATH_DEV, sizeof (_PATH_DEV) - 1); ++ buflen -= (sizeof (_PATH_DEV) - 1); ++ if(__sysctlbyname("kern.devname", p, &buflen, &st.st_rdev, sizeof (st.st_rdev)) < 0) ++ return errno; ++ p[0] = 't'; ++ ++ if (__xstat64 (_STAT_VER, buf, &st) < 0) ++ return errno; ++ ++ /* Check if the pathname we're about to return might be ++ slave pseudo terminal of the given master pseudo terminal. */ ++ if (!(S_ISCHR (st.st_mode))) ++ { ++ /* This really is a configuration problem. */ ++ __set_errno (ENOTTY); ++ return ENOTTY; ++ } ++ ++ __set_errno (saved_errno); ++ return 0; ++} ++weak_alias (__ptsname_r, ptsname_r) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pwrite.c +@@ -0,0 +1,68 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++extern ssize_t __syscall_pwrite (int __fd, const void *__buf, size_t __nbytes, ++ __off_t __offset) __THROW; ++libc_hidden_proto(__syscall_pwrite) ++extern ssize_t __syscall_freebsd6_pwrite (int __fd, const void *__buf, size_t __nbytes, ++ int __unused1, __off_t __offset) __THROW; ++libc_hidden_proto(__syscall_freebsd6_pwrite) ++ ++ssize_t ++__libc_pwrite (int fd, const void *buf, size_t nbytes, __off_t offset) ++{ ++ ssize_t result; ++ ++ if (SINGLE_THREAD_P) ++ { ++ /* First try the new syscall. */ ++ result = INLINE_SYSCALL (pwrite, 4, fd, buf, nbytes, offset); ++#ifndef __ASSUME_PREAD_PWRITE_SYSCALLS ++ if (result == -1 && errno == ENOSYS) ++ /* New syscall not available, us the old one. */ ++ result = INLINE_SYSCALL (freebsd6_pwrite, 5, fd, buf, nbytes, 0, offset); ++#endif ++ return result; ++ } ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ /* First try the new syscall. */ ++ result = INLINE_SYSCALL (pwrite, 4, fd, buf, nbytes, offset); ++#ifndef __ASSUME_PREAD_PWRITE_SYSCALLS ++ if (result == -1 && errno == ENOSYS) ++ /* New syscall not available, us the old one. */ ++ result = INLINE_SYSCALL (freebsd6_pwrite, 5, fd, buf, nbytes, 0, offset); ++#endif ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++} ++ ++strong_alias (__libc_pwrite, __pwrite) ++weak_alias (__pwrite, pwrite) ++ ++/* 'pwrite64' is the same as 'pwrite', because __off64_t == __off_t. */ ++strong_alias (__libc_pwrite, __libc_pwrite64) ++weak_alias (__libc_pwrite64, __pwrite64) ++weak_alias (__libc_pwrite64, pwrite64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pwrite64.c +@@ -0,0 +1 @@ ++/* 'pwrite64' is the same as 'pwrite', because __off64_t == __off_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pwritev64.c +@@ -0,0 +1 @@ ++/* 'pwritev64' is the same as 'pwritev', because __off64_t == __off_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir.c +@@ -0,0 +1,11 @@ ++/* 'readdir64' is the same as 'readdir', because ++ struct dirent64 == struct dirent. */ ++ ++#define readdir64 __no_readdir64_decl ++#define __readdir64 __no___readdir64_decl ++#include ++#undef __readdir64 ++#undef readdir64 ++ ++strong_alias (__readdir, __readdir64) ++weak_alias (__readdir64, readdir64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir64.c +@@ -0,0 +1,2 @@ ++/* 'readdir64' is the same as 'readdir', because ++ struct dirent64 == struct dirent. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir64_r.c +@@ -0,0 +1,2 @@ ++/* 'readdir64_r' is the same as 'readdir_r', because ++ struct dirent64 == struct dirent. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir_r.c +@@ -0,0 +1,11 @@ ++/* 'readdir64_r' is the same as 'readdir_r', because ++ struct dirent64 == struct dirent. */ ++ ++#define readdir64_r __no_readdir64_r_decl ++#define __readdir64_r __no___readdir64_r_decl ++#include ++#undef __readdir64_r ++#undef readdir64_r ++ ++strong_alias (__readdir_r, __readdir64_r) ++weak_alias (__readdir64_r, readdir64_r) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readlinkat.c +@@ -0,0 +1,131 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_readlinkat (int fd, const char *path, char *buf, ++ size_t bufsize); ++libc_hidden_proto (__syscall_readlinkat) ++ ++/* Read the contents of the symbolic link PATH relative to FD into no ++ more than LEN bytes of BUF. */ ++ssize_t ++readlinkat (fd, path, buf, len) ++ int fd; ++ const char *path; ++ char *buf; ++ size_t len; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result = INLINE_SYSCALL (readlinkat, 4, fd, path, buf, len); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (fd != AT_FDCWD && path[0] != '/') ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t pathlen; ++ ++ if (fd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ pathlen = strlen (path); ++ if (__builtin_expect (pathlen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len + pathlen); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, path); ++ path = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ return __readlink (path, buf, len); ++#endif ++} ++ ++libc_hidden_def (readlinkat) ++stub_warning(readlinkat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readonly-area.c +@@ -0,0 +1,96 @@ ++/* Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "libio/libioP.h" ++ ++/* Return 1 if the whole area PTR .. PTR+SIZE is not writable. ++ Return -1 if it is writable. */ ++ ++int ++__readonly_area (const char *ptr, size_t size) ++{ ++ const void *ptr_end = ptr + size; ++ ++ int mib[4]; ++ size_t kve_len = 0; ++ char *kve_buf, *kve_bufp; ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_VMMAP; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kve_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return 1; ++ } ++ ++ kve_buf = alloca (kve_len); ++ if (__sysctl (mib, 4, kve_buf, &kve_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return 1; ++ } ++ ++ kve_bufp = kve_buf; ++ while (kve_bufp < kve_buf + kve_len) ++ { ++ struct kinfo_vmentry *kve = (struct kinfo_vmentry *) (uintptr_t) kve_bufp; ++ kve_bufp += kve->kve_structsize; ++ ++ uintptr_t from = kve->kve_start; ++ uintptr_t to = kve->kve_end; ++ ++ if (from < (uintptr_t) ptr_end && to > (uintptr_t) ptr) ++ { ++ /* Found an entry that at least partially covers the area. */ ++ if (!(kve->kve_protection & KVME_PROT_READ) ++ || (kve->kve_protection & KVME_PROT_WRITE)) ++ break; ++ ++ if (from <= (uintptr_t) ptr && to >= (uintptr_t) ptr_end) ++ { ++ size = 0; ++ break; ++ } ++ else if (from <= (uintptr_t) ptr) ++ size -= to - (uintptr_t) ptr; ++ else if (to >= (uintptr_t) ptr_end) ++ size -= (uintptr_t) ptr_end - from; ++ else ++ size -= to - from; ++ ++ if (!size) ++ break; ++ } ++ } ++ ++ /* If the whole area between ptr and ptr_end is covered by read-only ++ VMAs, return 1. Otherwise return -1. */ ++ return size == 0 ? 1 : -1; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readv.c +@@ -0,0 +1,57 @@ ++/* readv for FreeBSD. ++ Copyright (C) 1997-1998, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++extern ssize_t __syscall_readv (int, __const struct iovec *__unbounded, int); ++libc_hidden_proto(__syscall_readv) ++ ++static ssize_t __atomic_readv_replacement (int, __const struct iovec *, ++ int) internal_function; ++ ++ssize_t ++__libc_readv (int fd, const struct iovec *vector, int count) ++{ ++ if (count <= UIO_MAXIOV) ++ { ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (readv, 3, fd, CHECK_N (vector, count), count); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ssize_t result = INLINE_SYSCALL (readv, 3, fd, CHECK_N (vector, count), count); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++ ++ } ++ else ++ return __atomic_readv_replacement (fd, vector, count); ++} ++strong_alias (__libc_readv, __readv) ++weak_alias (__libc_readv, readv) ++ ++#define __libc_readv static internal_function __atomic_readv_replacement ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/recv.c +@@ -0,0 +1,41 @@ ++/* Copyright (C) 2001-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++/* The real syscall's name. See sysdeps/unix/inet/syscalls.list. */ ++#define __syscall_recvfrom __libc_recvfrom ++ssize_t __libc_recvfrom(int s, void *buf, size_t len, int flags, ++ struct sockaddr *from, socklen_t *fromlen); ++libc_hidden_proto (__libc_recvfrom) ++ ++/* Read N bytes into BUF from socket FD. ++ Return the number of bytes read or -1 for error. */ ++ ++ssize_t ++__libc_recv (int fd, void *buf, size_t n, int flags) ++{ ++ return INLINE_SYSCALL (recvfrom, 6, fd, buf, n, flags, NULL, NULL); ++} ++ ++weak_alias (__libc_recv, __recv) ++weak_alias (__libc_recv, recv) ++ ++LIBC_CANCEL_HANDLED (); /* in __libc_recvfrom */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/remove.c +@@ -0,0 +1,40 @@ ++/* ANSI C `remove' function to delete a file or directory. POSIX.1 version. ++ Copyright (C) 1995,96,97,2002,2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++int ++remove (file) ++ const char *file; ++{ ++ /* First try to unlink since this is more frequently the necessary action. */ ++ if (__unlink (file) != 0 ++ /* If it is indeed a directory... */ ++ /* Linux returns EISDIR, POSIX mandates EPERM */ ++ && (((errno != EISDIR) && (errno != EPERM)) ++ /* ...try to remove it. */ ++ || __rmdir (file) != 0)) ++ /* Cannot remove the object for whatever reason. */ ++ return -1; ++ ++ return 0; ++} ++libc_hidden_def (remove) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/renameat.c +@@ -0,0 +1,175 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++libc_hidden_proto (rename) ++ ++extern int __syscall_renameat (int oldfd, const char *old, int newfd, ++ const char *new); ++libc_hidden_proto (__syscall_renameat) ++ ++/* Rename the file OLD relative to OLDFD to NEW relative to NEWFD. */ ++int renameat (oldfd, old, newfd, new) ++ int oldfd; ++ const char *old; ++ int newfd; ++ const char *new; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result = INLINE_SYSCALL (renameat, 4, oldfd, old, newfd, new); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if ((oldfd != AT_FDCWD && old[0] != '/') ++ || (newfd != AT_FDCWD && new[0] != '/')) ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t old_filelen, new_filelen; ++ ++ if ((oldfd < 0) || (newfd < 0)) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ old_filelen = strlen (old); ++ new_filelen = strlen (new); ++ if (__builtin_expect (old_filelen == 0, 0) ++ || __builtin_expect (new_filelen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ if (oldfd != AT_FDCWD && old[0] != '/') ++ { ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = ++ (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == oldfd) ++ { ++ char *buf; ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ buf = alloca (strlen (kf->kf_path) + old_filelen + 2); ++ strcpy(buf, kf->kf_path); ++ strcat (buf, "/"); ++ strcat (buf, old); ++ old = buf; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ if (newfd != AT_FDCWD && new[0] != '/') ++ { ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = ++ (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == newfd) ++ { ++ char *buf; ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ buf = alloca (strlen (kf->kf_path) + new_filelen + 2); ++ strcpy(buf, kf->kf_path); ++ strcat (buf, "/"); ++ strcat (buf, new); ++ new = buf; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ } ++ ++#define __rename rename /* there is no __rename */ ++ return __rename (old, new); ++#endif ++} ++stub_warning(renameat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/rtld-lowlevel.h +@@ -0,0 +1,131 @@ ++/* Definitions for lowlevel handling in ld.so, FreeBSD variant ++ Copyright (C) 2006-2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _RTLD_LOWLEVEL_H ++#define _RTLD_LOWLEVEL_H 1 ++ ++#include ++#include ++ ++/* Special multi-reader lock used in ld.so. */ ++#define __RTLD_MRLOCK_WRITER 1 ++#define __RTLD_MRLOCK_RWAIT 2 ++#define __RTLD_MRLOCK_WWAIT 4 ++#define __RTLD_MRLOCK_RBITS \ ++ ~(__RTLD_MRLOCK_WRITER | __RTLD_MRLOCK_RWAIT | __RTLD_MRLOCK_WWAIT) ++#define __RTLD_MRLOCK_INC 8 ++#define __RTLD_MRLOCK_TRIES 5 ++ ++#define __rtld_mrlock_define(CLASS,NAME) \ ++ CLASS __rtld_mrlock_t NAME; ++ ++ ++#define _RTLD_MRLOCK_INITIALIZER 0 ++#define __rtld_mrlock_initialize(NAME) \ ++ (void) ((NAME).lv = 0) ++ ++ ++#define __rtld_mrlock_lock(lock) \ ++ do { \ ++ __label__ out; \ ++ while (1) \ ++ { \ ++ int oldval; \ ++ for (int tries = 0; tries < __RTLD_MRLOCK_TRIES; ++tries) \ ++ { \ ++ oldval = (lock).iv; \ ++ while (__builtin_expect ((oldval \ ++ & (__RTLD_MRLOCK_WRITER \ ++ | __RTLD_MRLOCK_WWAIT)) \ ++ == 0, 1)) \ ++ { \ ++ int newval = ((oldval & __RTLD_MRLOCK_RBITS) \ ++ + __RTLD_MRLOCK_INC); \ ++ int ret = atomic_compare_and_exchange_val_acq (&(lock.iv), \ ++ newval, \ ++ oldval); \ ++ if (__builtin_expect (ret == oldval, 1)) \ ++ goto out; \ ++ oldval = ret; \ ++ } \ ++ atomic_delay (); \ ++ } \ ++ if ((oldval & __RTLD_MRLOCK_RWAIT) == 0) \ ++ { \ ++ atomic_or (&(lock.iv), __RTLD_MRLOCK_RWAIT); \ ++ oldval |= __RTLD_MRLOCK_RWAIT; \ ++ } \ ++ lll_futex_wait (&(lock), oldval); \ ++ } \ ++ out:; \ ++ } while (0) ++ ++ ++#define __rtld_mrlock_unlock(lock) \ ++ do { \ ++ int oldval = atomic_exchange_and_add (&(lock.iv), -__RTLD_MRLOCK_INC); \ ++ if (__builtin_expect ((oldval \ ++ & (__RTLD_MRLOCK_RBITS | __RTLD_MRLOCK_WWAIT)) \ ++ == (__RTLD_MRLOCK_INC | __RTLD_MRLOCK_WWAIT), 0)) \ ++ /* We have to wake all threads since there might be some queued \ ++ readers already. */ \ ++ lll_futex_wake (&(lock), 0x7fffffff); \ ++ } while (0) ++ ++ ++/* There can only ever be one thread trying to get the exclusive lock. */ ++#define __rtld_mrlock_change(lock) \ ++ do { \ ++ __label__ out; \ ++ while (1) \ ++ { \ ++ int oldval; \ ++ for (int tries = 0; tries < __RTLD_MRLOCK_TRIES; ++tries) \ ++ { \ ++ oldval = lock.iv; \ ++ while (__builtin_expect ((oldval & __RTLD_MRLOCK_RBITS) == 0, 1)) \ ++ { \ ++ int newval = ((oldval & __RTLD_MRLOCK_RWAIT) \ ++ + __RTLD_MRLOCK_WRITER); \ ++ int ret = atomic_compare_and_exchange_val_acq (&(lock.iv), \ ++ newval, \ ++ oldval); \ ++ if (__builtin_expect (ret == oldval, 1)) \ ++ goto out; \ ++ oldval = ret; \ ++ } \ ++ atomic_delay (); \ ++ } \ ++ atomic_or (&(lock.iv), __RTLD_MRLOCK_WWAIT); \ ++ oldval |= __RTLD_MRLOCK_WWAIT; \ ++ lll_futex_wait (&(lock), oldval); \ ++ } \ ++ out:; \ ++ } while (0) ++ ++ ++#define __rtld_mrlock_done(lock) \ ++ do { \ ++ int oldval = atomic_exchange_and_add (&(lock.iv), -__RTLD_MRLOCK_WRITER); \ ++ if (__builtin_expect ((oldval & __RTLD_MRLOCK_RWAIT) != 0, 0)) \ ++ lll_futex_wake (&(lock), 0x7fffffff); \ ++ } while (0) ++ ++ ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sa_len.c +@@ -0,0 +1,44 @@ ++/* Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++int ++__libc_sa_len (sa_family_t af) ++{ ++ switch (af) ++ { ++ case AF_APPLETALK: ++ return sizeof (struct sockaddr_at); ++ case AF_INET: ++ return sizeof (struct sockaddr_in); ++ case AF_INET6: ++ return sizeof (struct sockaddr_in6); ++ case AF_IPX: ++ return sizeof (struct sockaddr_ipx); ++ case AF_LOCAL: ++ return sizeof (struct sockaddr_un); ++ } ++ return 0; ++} ++INTDEF(__libc_sa_len) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sbrk.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sched_getaffinity.c +@@ -0,0 +1,64 @@ ++/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* From */ ++#define CPU_LEVEL_WHICH 3 /* Actual mask/id for which. */ ++#define CPU_WHICH_PID 2 /* Specifies a process id. */ ++ ++extern int __syscall_cpuset_getaffinity(int level, int which, int64_t id, ++ size_t setsize, cpu_set_t *mask); ++libc_hidden_proto(__syscall_cpuset_getaffinity) ++ ++int ++__libc_sched_getaffinity (pid_t pid, size_t cpusetsize, cpu_set_t *cpuset) ++{ ++ int res; ++ ++ if (pid == 0) ++ { ++ pid = __getpid(); ++ } ++ ++ if (cpusetsize > sizeof(cpu_set_t)) ++ { ++ /* Clean the rest of the memory the kernel won't do. */ ++ memset ((char *) cpuset + sizeof(cpu_set_t), '\0', cpusetsize - sizeof(cpu_set_t)); ++ ++ cpusetsize = sizeof(cpu_set_t); ++ } ++ ++ res = INLINE_SYSCALL (cpuset_getaffinity, 5, CPU_LEVEL_WHICH, ++ CPU_WHICH_PID, pid, cpusetsize, cpuset); ++ ++ if (errno == ERANGE) ++ { ++ __set_errno(EINVAL); ++ } ++ ++ return res; ++} ++ ++strong_alias (__libc_sched_getaffinity, __sched_getaffinity) ++weak_alias (__sched_getaffinity, sched_getaffinity) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sched_getp.c +@@ -0,0 +1,45 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++/* Retrieve scheduling parameters for a particular process. */ ++int ++__sched_getparam (pid_t pid, struct sched_param *param) ++{ ++ /* kFreeBSD return bogus values for SYS_sched_param (see PR kern/76485); ++ fortunately the same information can be retrieved through the rtprio() ++ system call. */ ++ struct rtprio rtp; ++ ++ if (__rtprio (RTP_LOOKUP, pid, &rtp) >= 0) ++ { ++ if (RTP_PRIO_IS_REALTIME (rtp.type)) ++ param->sched_priority = RTP_PRIO_MAX - rtp.prio; ++ else ++ param->sched_priority = 0; ++ } ++ ++ return 0; ++} ++ ++weak_alias (__sched_getparam, sched_getparam) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sched_setaffinity.c +@@ -0,0 +1,57 @@ ++/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* From */ ++#define CPU_LEVEL_WHICH 3 /* Actual mask/id for which. */ ++#define CPU_WHICH_PID 2 /* Specifies a process id. */ ++ ++extern int __syscall_cpuset_setaffinity(int level, int which, int64_t id, ++ size_t setsize, const cpu_set_t *mask); ++libc_hidden_proto(__syscall_cpuset_setaffinity) ++ ++int ++__libc_sched_setaffinity (pid_t pid, size_t cpusetsize, const cpu_set_t *cpuset) ++{ ++ int res; ++ ++ if (pid == 0) ++ { ++ pid = __getpid(); ++ } ++ ++ ++ res = INLINE_SYSCALL (cpuset_setaffinity, 5, CPU_LEVEL_WHICH, ++ CPU_WHICH_PID, pid, cpusetsize, cpuset); ++ ++ if (errno == ERANGE || errno == EDEADLK) ++ { ++ __set_errno(EINVAL); ++ } ++ ++ return res; ++} ++ ++strong_alias (__libc_sched_setaffinity, __sched_setaffinity) ++weak_alias (__sched_setaffinity, sched_setaffinity) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/seekdir.c +@@ -0,0 +1,2 @@ ++/* Avoid , which doesn't pass the testsuite. */ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/semctl.c +@@ -0,0 +1,87 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Robert Millan ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/*- ++ * Copyright (c) 2002 Doug Rabson ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ */ ++ ++#include ++#include ++#include /* va_list */ ++#include /* NULL */ ++#include ++ ++/* union semun from FreeBSD */ ++/* ++ * semctl's arg parameter structure ++ */ ++union semun ++{ ++ int val; /* value for SETVAL */ ++ struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */ ++ unsigned short *array; /* array for GETALL & SETALL */ ++}; ++ ++int __syscall(int number, ...); ++ ++int ++semctl (int semid, int semnum, int cmd, ...) ++{ ++ va_list ap; ++ union semun semun; ++ union semun *semun_ptr; ++ ++ va_start (ap, cmd); ++ if (cmd == IPC_SET || cmd == IPC_STAT || cmd == GETALL ++ || cmd == SETVAL || cmd == SETALL) ++ { ++ semun = va_arg (ap, union semun); ++ semun_ptr = &semun; ++ } ++ else ++ { ++ semun_ptr = NULL; ++ } ++ va_end (ap); ++ ++ return __syscall (SYS_semctl, semid, semnum, cmd, semun_ptr); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/send.c +@@ -0,0 +1,47 @@ ++/* Copyright (C) 2001-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern ssize_t __syscall_sendto (int fd, __const __ptr_t buf, ++ size_t n, int flags, ++ __CONST_SOCKADDR_ARG addr, ++ socklen_t addrlen); ++libc_hidden_proto (__syscall_sendto) ++ ++/* Send N bytes of BUF to socket FD. ++ Return the number of bytes sent or -1. */ ++ ++ssize_t ++__libc_send (int fd, const void *buf, size_t n, int flags) ++{ ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (sendto, 6, fd, buf, n, flags, NULL, 0); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ int result = INLINE_SYSCALL (sendto, 6, fd, buf, n, flags, NULL, 0); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++} ++ ++weak_alias (__libc_send, __send) ++libc_hidden_weak (__send) ++ ++weak_alias (__send, send) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sendto.c +@@ -0,0 +1,70 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++/* According to POSIX.1-2004 the len argument specifies the length of ++ the sockaddr structure pointed to by the addrarg argument. However ++ the FreeBSD kernel waits the actual length of the address stored ++ there. The code below emulate this behaviour. */ ++ ++extern int __libc_sa_len (sa_family_t __af); ++extern int __libc_sa_len_internal (sa_family_t __af); ++ ++extern ssize_t __syscall_sendto (int fd, __const void * buf, ++ size_t n, int flags, ++ __CONST_SOCKADDR_ARG addr, ++ socklen_t addrlen); ++libc_hidden_proto (__syscall_sendto) ++ ++/* Send N bytes of BUF on socket FD to peer at address ADDR (which is ++ * ADDR_LEN bytes long). Returns the number sent, or -1 for errors. */ ++ ++ ++ssize_t ++__libc_sendto (int fd, __const void * buf, size_t n, int flags, ++ __CONST_SOCKADDR_ARG addr, socklen_t addrlen) ++{ ++ socklen_t new_addrlen; ++ ++#ifndef NOT_IN_libc ++ new_addrlen = INTUSE(__libc_sa_len) ((addr.__sockaddr__)->sa_family); ++#else ++ new_addrlen = __libc_sa_len ((addr.__sockaddr__)->sa_family); ++#endif ++ ++ /* Only allow a smaller size, otherwise it could lead to ++ stack corruption */ ++ if (new_addrlen < addrlen) ++ addrlen = new_addrlen; ++ ++ /* We pass 6 arguments. */ ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (sendto, 6, fd, buf, n, flags, addr, addrlen); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ int result = INLINE_SYSCALL (sendto, 6, fd, buf, n, flags, addr, addrlen); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++} ++ ++weak_alias (__libc_sendto, __sendto) ++weak_alias (__libc_sendto, sendto) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/setdomain.c +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* Set the name of the current domain to NAME, which is LEN bytes long ++ (excluding a possible trailing NUL byte). This call is restricted to ++ the super-user. */ ++ ++int ++setdomainname (const char *name, size_t len) ++{ ++ /* Set the "kern.domainname" sysctl value. */ ++ int request[2] = { CTL_KERN, KERN_NISDOMAINNAME }; ++ ++ if (__sysctl (request, 2, NULL, NULL, (void *) name, len) < 0) ++ return -1; ++ ++ return 0; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sethostid.c +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* Set the current machine's Internet number to ID. ++ This call is restricted to the super-user. */ ++ ++int ++sethostid (long int id) ++{ ++ /* Set the "kern.hostid" sysctl value. */ ++ int value = id; ++ int request[2] = { CTL_KERN, KERN_HOSTID }; ++ ++ if (__sysctl (request, 2, NULL, NULL, &value, sizeof (value)) < 0) ++ return -1; ++ ++ return 0; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sethostname.c +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* Set the name of the current host to NAME, which is LEN bytes long ++ (excluding a possible trailing NUL byte). This call is restricted to ++ the super-user. */ ++ ++int ++sethostname (const char *name, size_t len) ++{ ++ /* Set the "kern.hostname" sysctl value. */ ++ int request[2] = { CTL_KERN, KERN_HOSTNAME }; ++ ++ if (__sysctl (request, 2, NULL, NULL, (void *) name, len) < 0) ++ return -1; ++ ++ return 0; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/setlogin.c +@@ -0,0 +1,34 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* Defined in getlogin_r.c. */ ++extern char *__getlogin_cache; ++ ++extern int __syscall_setlogin (const char *__name); ++ ++int ++setlogin (const char *name) ++{ ++ /* FIXME: Not multithread-safe. */ ++ __getlogin_cache = NULL; ++ return INLINE_SYSCALL (setlogin, 1, name); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/setrlimit64.c +@@ -0,0 +1 @@ ++/* 'setrlimit64' is the same as 'setrlimit', because __rlim64_t == __rlim_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/shm_open.c +@@ -0,0 +1,65 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_shm_open (const char *path, int flags, mode_t mode); ++libc_hidden_proto (__syscall_shm_open); ++ ++/* Open shared memory object. */ ++int ++shm_open (const char *name, int oflag, mode_t mode) ++{ ++ /* First try the new syscall. */ ++ int fd = INLINE_SYSCALL (shm_open, 3, name, oflag, mode); ++ ++#ifndef __ASSUME_POSIXSHM_SYSCALL ++ /* New syscall not available, use fallback code. */ ++ if (fd == -1 && errno == ENOSYS) ++ { ++ struct stat stab; ++ ++ if ((oflag & O_ACCMODE) == O_WRONLY) ++ return (EINVAL); ++ ++ fd = __open (name, oflag, mode); ++ if (fd != -1) ++ { ++ if (__fstat (fd, &stab) != 0 || !S_ISREG (stab.st_mode)) ++ { ++ __close (fd); ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ if (__fcntl (fd, F_SETFL, (int) FPOSIXSHM) != 0) ++ { ++ __close (fd); ++ return -1; ++ } ++ } ++ } ++#endif ++ ++ return fd; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/shm_unlink.c +@@ -0,0 +1,48 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_shm_unlink (const char *name); ++libc_hidden_proto (__syscall_shm_unlink) ++ ++libc_hidden_proto (__unlink) ++ ++/* Unlink a shared memory object. */ ++int ++shm_unlink (const char *name) ++{ ++ /* First try the new syscall. */ ++ int result = INLINE_SYSCALL (shm_unlink, 1, name); ++ ++#ifndef __ASSUME_POSIXSHM_SYSCALL ++ /* New syscall not available, simply unlink the file. */ ++ if (result == -1 && errno == ENOSYS) ++# ifdef NOT_IN_libc ++ return unlink (name); ++# else ++ return __unlink (name); ++# endif ++#endif ++ ++ return result; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigaction.c +@@ -0,0 +1,47 @@ ++/* Copyright (C) 1991,1995,1996,1997,2002,2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_sigaction (int __sig, const struct sigaction *__act, struct sigaction *__oact) __THROW; ++libc_hidden_proto (__syscall_sigaction) ++ ++int ++__libc_sigaction (sig, act, oact) ++ int sig; ++ const struct sigaction *act; ++ struct sigaction *oact; ++{ ++ if (sig <= 0 || sig >= NSIG) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ return INLINE_SYSCALL (sigaction, 3, sig, act, oact); ++} ++libc_hidden_def (__libc_sigaction) ++ ++#ifndef LIBC_SIGACTION ++weak_alias (__libc_sigaction, __sigaction) ++libc_hidden_weak (__sigaction) ++weak_alias (__libc_sigaction, sigaction) ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigreturn.c +@@ -0,0 +1,3 @@ ++/* The sigreturn syscall cannot be explicitly called on FreeBSD, only ++ implicitly by returning from a signal handler. */ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigset-cvt-mask.h +@@ -0,0 +1,36 @@ ++/* Convert between lowlevel sigmask and libc representation of sigset_t. ++ FreeBSD version. ++ Copyright (C) 1998, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++static inline int __attribute__ ((unused)) ++sigset_set_old_mask (sigset_t *set, int mask) ++{ ++ set->__sigbits[0] = (unsigned int) mask; ++ set->__sigbits[1] = 0; ++ set->__sigbits[2] = 0; ++ set->__sigbits[3] = 0; ++ ++ return 0; ++} ++ ++static inline int __attribute__ ((unused)) ++sigset_get_old_mask (const sigset_t *set) ++{ ++ return (unsigned int) set->__sigbits[0]; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigstack.c +@@ -0,0 +1,3 @@ ++/* We can reuse the Linux implementation with some tricks. */ ++#define __NR_sigaltstack 1 ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sleep.c +@@ -0,0 +1,44 @@ ++/* Implementation of the POSIX sleep function using nanosleep. ++ Copyright (C) 1996-1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++/* The default implementation of sleep() in sysdeps/posix/sleep.c, based on ++ SIGALRM, does not mix well with threads. Therefore we use the nanosleep() ++ system call. */ ++unsigned int ++__sleep (unsigned int seconds) ++{ ++ struct timespec ts = { tv_sec: seconds, tv_nsec: 0 }; ++ int ret; ++ ++ /* This is not necessary but some buggy programs depend on this. */ ++ if (seconds == 0) ++ return 0; ++ ++ ret = __nanosleep (&ts, &ts); ++ ++ if (ret == 0) ++ return 0; ++ ++ /* Round remaining time. */ ++ return (unsigned int) ts.tv_sec + (ts.tv_nsec >= 500000000L); ++} ++ ++weak_alias (__sleep, sleep) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/stat16conv.c +@@ -0,0 +1,84 @@ ++/* Convert between different 'struct stat' formats. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_fhstat (const fhandle_t *fhp, struct stat16 *buf); ++extern int __syscall_fstat (int, struct stat16 *__unbounded); ++extern int __syscall_lstat (const char *__unbounded, struct stat16 *__unbounded); ++extern int __syscall_stat (const char *__unbounded, struct stat16 *__unbounded); ++libc_hidden_proto (__syscall_fhstat) ++libc_hidden_proto (__syscall_fstat) ++libc_hidden_proto (__syscall_lstat) ++libc_hidden_proto (__syscall_stat) ++ ++/* Convert a 'struct stat16' to 'struct stat'. */ ++static inline void ++stat16_to_stat (const struct stat16 *p16, struct stat *q) ++{ ++ q->st_dev = p16->st_dev; ++ q->st_ino = p16->st_ino; ++ q->st_mode = p16->st_mode; ++ q->__pad_mode = 0; ++ q->st_nlink = p16->st_nlink; ++ q->__pad_nlink = 0; ++ q->st_uid = p16->st_uid; ++ q->st_gid = p16->st_gid; ++ q->st_rdev = p16->st_rdev; ++ q->st_atim = p16->st_atimespec; ++ q->st_mtim = p16->st_mtimespec; ++ q->st_ctim = p16->st_ctimespec; ++ q->st_size = p16->st_size; ++ q->st_blocks = p16->st_blocks; ++ q->st_blksize = p16->st_blksize; ++ q->st_flags = p16->st_flags; ++ q->st_gen = p16->st_gen; ++#if 0 ++ memcpy (q->__unused1, p16->__unused2, sizeof (p16->__unused2)); ++#endif ++} ++ ++/* Convert a 'struct stat16' to 'struct stat64'. */ ++static inline void ++stat16_to_stat64 (const struct stat16 *p16, struct stat64 *q) ++{ ++ q->st_dev = p16->st_dev; ++ q->st_ino = p16->st_ino; ++ q->st_mode = p16->st_mode; ++ q->__pad_mode = 0; ++ q->st_nlink = p16->st_nlink; ++ q->__pad_nlink = 0; ++ q->st_uid = p16->st_uid; ++ q->st_gid = p16->st_gid; ++ q->st_rdev = p16->st_rdev; ++ q->st_atim = p16->st_atimespec; ++ q->st_mtim = p16->st_mtimespec; ++ q->st_ctim = p16->st_ctimespec; ++ q->st_size = p16->st_size; ++ q->st_blocks = p16->st_blocks; ++ q->st_blksize = p16->st_blksize; ++ q->st_flags = p16->st_flags; ++ q->st_gen = p16->st_gen; ++#if 0 ++ memcpy (q->__unused1, p16->__unused2, sizeof (p16->__unused2)); ++#endif ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfs.c +@@ -0,0 +1,40 @@ ++/* Return information about the filesystem on which FILE resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FILE resides. */ ++int ++__statfs (const char *file, struct statfs *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_statfs (file, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statvfs'. */ ++ statfs5_to_statfs (&kbuf, buf); ++ ++ return 0; ++} ++libc_hidden_def (__statfs) ++weak_alias (__statfs, statfs) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfs64.c +@@ -0,0 +1,37 @@ ++/* Return information about the filesystem on which FILE resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FILE resides. */ ++int ++statfs64 (const char *file, struct statfs64 *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_statfs (file, &kbuf) < 0) ++ return -1; ++ ++ statfs5_to_statfs64 (&kbuf, buf); ++ ++ return 0; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfsconv.c +@@ -0,0 +1,203 @@ ++/* Convert between different 'struct statfs' and 'struct statvfs' formats. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* ++ * filesystem statistics ++ */ ++ ++#define MFSNAMELEN 16 /* length of type name including null */ ++#define MNAMELEN 88 /* size of on/from name bufs */ ++ ++struct statfs_fbsd5 { ++ uint32_t f_version; /* structure version number */ ++ uint32_t f_type; /* type of filesystem */ ++ uint64_t f_flags; /* copy of mount exported flags */ ++ uint64_t f_bsize; /* filesystem fragment size */ ++ uint64_t f_iosize; /* optimal transfer block size */ ++ uint64_t f_blocks; /* total data blocks in filesystem */ ++ uint64_t f_bfree; /* free blocks in filesystem */ ++ int64_t f_bavail; /* free blocks avail to non-superuser */ ++ uint64_t f_files; /* total file nodes in filesystem */ ++ int64_t f_ffree; /* free nodes avail to non-superuser */ ++ uint64_t f_syncwrites; /* count of sync writes since mount */ ++ uint64_t f_asyncwrites; /* count of async writes since mount */ ++ uint64_t f_syncreads; /* count of sync reads since mount */ ++ uint64_t f_asyncreads; /* count of async reads since mount */ ++ uint64_t f_spare[10]; /* unused spare */ ++ uint32_t f_namemax; /* maximum filename length */ ++ __uid_t f_owner; /* user that mounted the filesystem */ ++ __fsid_t f_fsid; /* filesystem id */ ++ char f_charspare[80]; /* spare string space */ ++ char f_fstypename[MFSNAMELEN]; /* filesystem type name */ ++ char f_mntfromname[MNAMELEN]; /* mounted filesystem */ ++ char f_mntonname[MNAMELEN]; /* directory on which mounted */ ++}; ++ ++extern int __syscall_getfsstat(struct statfs_fbsd5 *buf, long bufsize, int flags); ++extern int __syscall_statfs(const char *path, struct statfs_fbsd5 *buf); ++extern int __syscall_fstatfs(int fd, struct statfs_fbsd5 *buf); ++extern int __syscall_fhstatfs(const struct fhandle *u_fhp, struct statfs_fbsd5 *buf); ++ ++ ++/* ++ * Convert a FreeBSD 5.x format statfs structure to an glibc format statfs structure. ++ */ ++ ++static inline void ++statfs5_to_statfs(const struct statfs_fbsd5 *pk, struct statfs *p32) ++{ ++ memset(p32, 0, sizeof(*p32)); ++ ++ p32->f_version = pk->f_version; ++ p32->f_bsize = MIN(pk->f_bsize, ULONG_MAX); ++ p32->f_iosize = MIN(pk->f_iosize, ULONG_MAX); ++ ++ p32->f_blocks = MIN(pk->f_blocks, ULONG_MAX); ++ p32->f_bfree = MIN(pk->f_bfree, ULONG_MAX); ++ p32->f_bavail = MIN(pk->f_bavail, ULONG_MAX); ++ p32->f_files = MIN(pk->f_files, ULONG_MAX); ++ p32->f_ffree = MIN(pk->f_ffree, ULONG_MAX); ++ ++ p32->f_fsid = pk->f_fsid; ++ p32->f_owner = pk->f_owner; ++ p32->f_type = pk->f_type; ++ p32->f_flags = pk->f_flags; ++ ++ p32->f_syncwrites = MIN(pk->f_syncwrites, ULONG_MAX); ++ p32->f_asyncwrites = MIN(pk->f_asyncwrites, ULONG_MAX); ++ p32->f_syncreads = MIN(pk->f_syncreads, ULONG_MAX); ++ p32->f_asyncreads = MIN(pk->f_asyncreads, ULONG_MAX); ++ ++ p32->f_namemax = MIN(pk->f_namemax, USHRT_MAX); ++ ++ memcpy(p32->f_fstypename, pk->f_fstypename, sizeof (p32->f_fstypename)); ++ memcpy(p32->f_mntonname, pk->f_mntonname, sizeof (p32->f_mntonname)); ++ memcpy(p32->f_mntfromname,pk->f_mntfromname,sizeof (p32->f_mntfromname)); ++} ++ ++ ++/* ++ * Convert a FreeBSD 5.x format statfs structure to an glibc format statfs64 structure. ++ */ ++ ++static inline void ++statfs5_to_statfs64(const struct statfs_fbsd5 *pk, struct statfs64 *p64) ++{ ++ memset(p64, 0, sizeof(*p64)); ++ ++ p64->f_version = pk->f_version; ++ p64->f_bsize = MIN(pk->f_bsize, ULONG_MAX); ++ p64->f_iosize = MIN(pk->f_iosize, ULONG_MAX); ++ ++ p64->f_blocks = pk->f_blocks; ++ p64->f_bfree = pk->f_bfree; ++ p64->f_bavail = pk->f_bavail; ++ p64->f_files = pk->f_files; ++ p64->f_ffree = pk->f_ffree; ++ ++ p64->f_fsid = pk->f_fsid; ++ p64->f_owner = pk->f_owner; ++ p64->f_type = pk->f_type; ++ p64->f_flags = pk->f_flags; ++ ++ p64->f_syncwrites = MIN(pk->f_syncwrites, ULONG_MAX); ++ p64->f_asyncwrites = MIN(pk->f_asyncwrites, ULONG_MAX); ++ p64->f_syncreads = MIN(pk->f_syncreads, ULONG_MAX); ++ p64->f_asyncreads = MIN(pk->f_asyncreads, ULONG_MAX); ++ ++ p64->f_namemax = MIN(pk->f_namemax, USHRT_MAX); ++ ++ memcpy(p64->f_fstypename, pk->f_fstypename, sizeof (p64->f_fstypename)); ++ memcpy(p64->f_mntonname, pk->f_mntonname, sizeof (p64->f_mntonname)); ++ memcpy(p64->f_mntfromname,pk->f_mntfromname,sizeof (p64->f_mntfromname)); ++} ++ ++ ++/* ++ * Convert a FreeBSD 5.x format statfs structure to an glibc format statvfs structure. ++ */ ++ ++static inline void ++statfs5_to_statvfs (const struct statfs_fbsd5 *pk, struct statvfs *p32) ++{ ++ /* FIXME: What is the difference between f_bsize and f_frsize ? */ ++ p32->f_bsize = MIN(pk->f_bsize, ULONG_MAX); ++ p32->f_frsize = MIN(pk->f_bsize, ULONG_MAX); ++ ++ p32->f_blocks = MIN(pk->f_blocks, ULONG_MAX); ++ p32->f_bfree = MIN(pk->f_bfree, ULONG_MAX); ++ p32->f_bavail = MIN(pk->f_bavail, ULONG_MAX); ++ p32->f_files = MIN(pk->f_files, ULONG_MAX); ++ p32->f_ffree = MIN(pk->f_ffree, ULONG_MAX); ++ p32->f_favail = MIN(pk->f_ffree, ULONG_MAX); /* Hmm. May be filesystem dependent. */ ++ ++ memcpy(&(p32->f_fsid), &(pk->f_fsid), sizeof(__fsid_t)); ++ ++ p32->f_flag = ++ (pk->f_flags & MNT_RDONLY ? ST_RDONLY : 0) ++ | (pk->f_flags & MNT_NOSUID ? ST_NOSUID : 0) ++ | (pk->f_flags & MNT_NODEV ? ST_NODEV : 0) ++ | (pk->f_flags & MNT_NOEXEC ? ST_NOEXEC : 0) ++ | (pk->f_flags & MNT_SYNCHRONOUS ? ST_SYNCHRONOUS : 0); ++ p32->f_namemax = pk->f_namemax; ++ ++ memset (p32->f_spare, '\0', sizeof (p32->f_spare)); ++} ++ ++ ++/* ++ * Convert a FreeBSD 5.x format statfs structure to an glibc format statvfs64 structure. ++ */ ++ ++static inline void ++statfs5_to_statvfs64 (const struct statfs_fbsd5 *pk, struct statvfs64 *p64) ++{ ++ /* FIXME: What is the difference between f_bsize and f_frsize ? */ ++ p64->f_bsize = MIN(pk->f_bsize, ULONG_MAX); ++ p64->f_frsize = MIN(pk->f_bsize, ULONG_MAX); ++ ++ p64->f_blocks = pk->f_blocks; ++ p64->f_bfree = pk->f_bfree; ++ p64->f_bavail = pk->f_bavail; ++ p64->f_files = pk->f_files; ++ p64->f_ffree = pk->f_ffree; ++ p64->f_favail = pk->f_ffree; /* Hmm. May be filesystem dependent. */ ++ ++ memcpy(&(p64->f_fsid), &(pk->f_fsid), sizeof(__fsid_t)); ++ ++ p64->f_flag = ++ (pk->f_flags & MNT_RDONLY ? ST_RDONLY : 0) ++ | (pk->f_flags & MNT_NOSUID ? ST_NOSUID : 0) ++ | (pk->f_flags & MNT_NODEV ? ST_NODEV : 0) ++ | (pk->f_flags & MNT_NOEXEC ? ST_NOEXEC : 0) ++ | (pk->f_flags & MNT_SYNCHRONOUS ? ST_SYNCHRONOUS : 0); ++ p64->f_namemax = pk->f_namemax; ++ ++ memset (p64->f_spare, '\0', sizeof (p64->f_spare)); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statvfs.c +@@ -0,0 +1,40 @@ ++/* Return information about the filesystem on which FILE resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FILE resides. */ ++int ++statvfs (const char *file, struct statvfs *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_statfs (file, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statvfs'. */ ++ statfs5_to_statvfs (&kbuf, buf); ++ ++ return 0; ++} ++libc_hidden_weak (statvfs) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statvfs64.c +@@ -0,0 +1,41 @@ ++/* Return information about the filesystem on which FILE resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FILE resides. */ ++int ++__statvfs64 (const char *file, struct statvfs64 *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_statfs (file, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statvfs64'. */ ++ statfs5_to_statvfs64 (&kbuf, buf); ++ ++ return 0; ++} ++ ++weak_alias (__statvfs64, statvfs64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/stty.c +@@ -0,0 +1,2 @@ ++/* use stub only variant */ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/symlinkat.c +@@ -0,0 +1,127 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_symlinkat (const char *path1, int fd, ++ const char *path2); ++libc_hidden_proto (__syscall_symlinkat) ++ ++/* Make a symbolic link to FROM named TO relative to TOFD. */ ++int ++symlinkat (from, tofd, to) ++ const char *from; ++ int tofd; ++ const char *to; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result = INLINE_SYSCALL (symlinkat, 3, from, tofd, to); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (tofd != AT_FDCWD && to[0] != '/') ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t tolen; ++ ++ if (tofd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ tolen = strlen (to); ++ if (__builtin_expect (tolen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len + tolen); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == tofd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, to); ++ to = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ return __symlink (from, to); ++#endif ++} ++stub_warning(symlinkat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/kd.h +@@ -0,0 +1,25 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_KD_H ++#define _SYS_KD_H 1 ++ ++#include ++#include ++ ++#endif /* sys/kd.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/mount.h +@@ -0,0 +1,436 @@ ++/* Header file for handling mounted filesystems. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_MOUNT_H ++#define _SYS_MOUNT_H 1 ++ ++#include ++ ++/* Retrieving the list of mounted filesystems. */ ++ ++#include ++#include ++#include ++#include ++ ++/* ++ * File identifier. ++ * These are unique per filesystem on a single machine. ++ */ ++#define MAXFIDSZ 16 ++ ++struct fid { ++ u_short fid_len; /* length of data in bytes */ ++ u_short fid_reserved; /* force longword alignment */ ++ char fid_data[MAXFIDSZ]; /* data (variable length) */ ++}; ++ ++/* ++ * filesystem statistics ++ */ ++#define MFSNAMELEN 16 /* length of type name including null */ ++#define MNAMELEN 88 /* size of on/from name bufs */ ++#define STATFS_VERSION 0x20030518 /* current version number */ ++ ++ ++/* ++ * User specifiable flags. ++ */ ++#define MNT_RDONLY 0x00000001 /* read only filesystem */ ++#define MNT_SYNCHRONOUS 0x00000002 /* filesystem written synchronously */ ++#define MNT_NOEXEC 0x00000004 /* can't exec from filesystem */ ++#define MNT_NOSUID 0x00000008 /* don't honor setuid bits on fs */ ++#define MNT_NODEV 0x00000010 /* don't interpret special files */ ++#define MNT_UNION 0x00000020 /* union with underlying filesystem */ ++#define MNT_ASYNC 0x00000040 /* filesystem written asynchronously */ ++#define MNT_SUIDDIR 0x00100000 /* special handling of SUID on dirs */ ++#define MNT_SOFTDEP 0x00200000 /* soft updates being done */ ++#define MNT_NOSYMFOLLOW 0x00400000 /* do not follow symlinks */ ++#define MNT_GJOURNAL 0x02000000 /* GEOM journal support enabled */ ++#define MNT_JAILDEVFS 0x02000000 /* jail-friendly DEVFS behaviour */ ++#define MNT_MULTILABEL 0x04000000 /* MAC support for individual objects */ ++#define MNT_ACLS 0x08000000 /* ACL support enabled */ ++#define MNT_NOATIME 0x10000000 /* disable update of file access time */ ++#define MNT_NOCLUSTERR 0x40000000 /* disable cluster read */ ++#define MNT_NOCLUSTERW 0x80000000 /* disable cluster write */ ++ ++/* ++ * NFS export related mount flags. ++ */ ++#define MNT_EXRDONLY 0x00000080 /* exported read only */ ++#define MNT_EXPORTED 0x00000100 /* filesystem is exported */ ++#define MNT_DEFEXPORTED 0x00000200 /* exported to the world */ ++#define MNT_EXPORTANON 0x00000400 /* use anon uid mapping for everyone */ ++#define MNT_EXKERB 0x00000800 /* exported with Kerberos uid mapping */ ++#define MNT_EXPUBLIC 0x20000000 /* public export (WebNFS) */ ++ ++/* ++ * Flags set by internal operations, ++ * but visible to the user. ++ * XXX some of these are not quite right.. (I've never seen the root flag set) ++ */ ++#define MNT_LOCAL 0x00001000 /* filesystem is stored locally */ ++#define MNT_QUOTA 0x00002000 /* quotas are enabled on filesystem */ ++#define MNT_ROOTFS 0x00004000 /* identifies the root filesystem */ ++#define MNT_USER 0x00008000 /* mounted by a user */ ++#define MNT_IGNORE 0x00800000 /* do not show entry in df */ ++ ++/* ++ * Mask of flags that are visible to statfs(). ++ * XXX I think that this could now become (~(MNT_CMDFLAGS)) ++ * but the 'mount' program may need changing to handle this. ++ */ ++#define MNT_VISFLAGMASK (MNT_RDONLY | MNT_SYNCHRONOUS | MNT_NOEXEC | \ ++ MNT_NOSUID | MNT_NODEV | MNT_UNION | \ ++ MNT_ASYNC | MNT_EXRDONLY | MNT_EXPORTED | \ ++ MNT_DEFEXPORTED | MNT_EXPORTANON| MNT_EXKERB | \ ++ MNT_LOCAL | MNT_USER | MNT_QUOTA | \ ++ MNT_ROOTFS | MNT_NOATIME | MNT_NOCLUSTERR| \ ++ MNT_NOCLUSTERW | MNT_SUIDDIR | MNT_SOFTDEP | \ ++ MNT_IGNORE | MNT_EXPUBLIC | MNT_NOSYMFOLLOW | \ ++ MNT_JAILDEVFS | MNT_MULTILABEL | MNT_ACLS) ++ ++/* Mask of flags that can be updated. */ ++#define MNT_UPDATEMASK (MNT_NOSUID | MNT_NOEXEC | MNT_NODEV | \ ++ MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | \ ++ MNT_NOATIME | \ ++ MNT_NOSYMFOLLOW | MNT_IGNORE | MNT_JAILDEVFS | \ ++ MNT_NOCLUSTERR | MNT_NOCLUSTERW | MNT_SUIDDIR | \ ++ MNT_ACLS | MNT_USER) ++ ++/* ++ * External filesystem command modifier flags. ++ * Unmount can use the MNT_FORCE flag. ++ * XXX These are not STATES and really should be somewhere else. ++ */ ++#define MNT_UPDATE 0x00010000 /* not a real mount, just an update */ ++#define MNT_DELEXPORT 0x00020000 /* delete export host lists */ ++#define MNT_RELOAD 0x00040000 /* reload filesystem data */ ++#define MNT_FORCE 0x00080000 /* force unmount or readonly change */ ++#define MNT_SNAPSHOT 0x01000000 /* snapshot the filesystem */ ++#define MNT_BYFSID 0x08000000 /* specify filesystem by ID. */ ++#define MNT_CMDFLAGS (MNT_UPDATE | MNT_DELEXPORT | MNT_RELOAD | \ ++ MNT_FORCE | MNT_SNAPSHOT | MNT_BYFSID) ++/* ++ * Internal filesystem control flags stored in mnt_kern_flag. ++ * ++ * MNTK_UNMOUNT locks the mount entry so that name lookup cannot proceed ++ * past the mount point. This keeps the subtree stable during mounts ++ * and unmounts. ++ * ++ * MNTK_UNMOUNTF permits filesystems to detect a forced unmount while ++ * dounmount() is still waiting to lock the mountpoint. This allows ++ * the filesystem to cancel operations that might otherwise deadlock ++ * with the unmount attempt (used by NFS). ++ */ ++#define MNTK_UNMOUNTF 0x00000001 /* forced unmount in progress */ ++#define MNTK_ASYNC 0x00000002 /* filtered async flag */ ++#define MNTK_SOFTDEP 0x00000004 /* async disabled by softdep */ ++#define MNTK_NOINSMNTQ 0x00000008 /* insmntque is not allowed */ ++#define MNTK_UNMOUNT 0x01000000 /* unmount in progress */ ++#define MNTK_MWAIT 0x02000000 /* waiting for unmount to finish */ ++#define MNTK_WANTRDWR 0x04000000 /* upgrade to read/write requested */ ++#define MNTK_SUSPEND2 0x04000000 /* block secondary writes */ ++#define MNTK_SUSPEND 0x08000000 /* request write suspension */ ++#define MNTK_SUSPENDED 0x10000000 /* write operations are suspended */ ++#define MNTK_MPSAFE 0x20000000 /* Filesystem is MPSAFE. */ ++#define MNTK_NOKNOTE 0x80000000 /* Don't send KNOTEs from VOP hooks */ ++#define MNTK_LOOKUP_SHARED 0x40000000 /* FS supports shared lock lookups */ ++ ++/* ++ * Sysctl CTL_VFS definitions. ++ * ++ * Second level identifier specifies which filesystem. Second level ++ * identifier VFS_VFSCONF returns information about all filesystems. ++ * Second level identifier VFS_GENERIC is non-terminal. ++ */ ++#define VFS_VFSCONF 0 /* get configured filesystems */ ++#define VFS_GENERIC 0 /* generic filesystem information */ ++/* ++ * Third level identifiers for VFS_GENERIC are given below; third ++ * level identifiers for specific filesystems are given in their ++ * mount specific header files. ++ */ ++#define VFS_MAXTYPENUM 1 /* int: highest defined filesystem type */ ++#define VFS_CONF 2 /* struct: vfsconf for filesystem given ++ as next argument */ ++ ++/* ++ * Flags for various system call interfaces. ++ * ++ * waitfor flags to vfs_sync() and getfsstat() ++ */ ++#define MNT_WAIT 1 /* synchronously wait for I/O to complete */ ++#define MNT_NOWAIT 2 /* start all I/O, but do not wait for it */ ++#define MNT_LAZY 3 /* push data not written by filesystem syncer */ ++#define MNT_SUSPEND 4 /* Suspend file system after sync */ ++ ++/* ++ * Generic file handle ++ */ ++struct fhandle { ++ fsid_t fh_fsid; /* Filesystem id of mount point */ ++ struct fid fh_fid; /* Filesys specific id */ ++}; ++typedef struct fhandle fhandle_t; ++ ++/* ++ * Export arguments for local filesystem mount calls. ++ */ ++struct export_args { ++ int ex_flags; /* export related flags */ ++ uid_t ex_root; /* mapping for root uid */ ++ struct xucred ex_anon; /* mapping for anonymous user */ ++ struct sockaddr *ex_addr; /* net address to which exported */ ++ u_char ex_addrlen; /* and the net address length */ ++ struct sockaddr *ex_mask; /* mask of valid bits in saddr */ ++ u_char ex_masklen; /* and the smask length */ ++ char *ex_indexfile; /* index file for WebNFS URLs */ ++}; ++ ++/* ++ * Structure holding information for a publicly exported filesystem ++ * (WebNFS). Currently the specs allow just for one such filesystem. ++ */ ++struct nfs_public { ++ int np_valid; /* Do we hold valid information */ ++ fhandle_t np_handle; /* Filehandle for pub fs (internal) */ ++ struct mount *np_mount; /* Mountpoint of exported fs */ ++ char *np_index; /* Index file */ ++}; ++ ++/* ++ * Filesystem configuration information. One of these exists for each ++ * type of filesystem supported by the kernel. These are searched at ++ * mount time to identify the requested filesystem. ++ * ++ * XXX: Never change the first two arguments! ++ */ ++struct vfsconf { ++ u_int vfc_version; /* ABI version number */ ++ char vfc_name[MFSNAMELEN]; /* filesystem type name */ ++ struct vfsops *vfc_vfsops; /* filesystem operations vector */ ++ int vfc_typenum; /* historic filesystem type number */ ++ int vfc_refcount; /* number mounted of this type */ ++ int vfc_flags; /* permanent flags */ ++ struct vfsoptdecl *vfc_opts; /* mount options */ ++ TAILQ_ENTRY(vfsconf) vfc_list; /* list of vfscons */ ++}; ++ ++/* Userland version of the struct vfsconf. */ ++struct xvfsconf { ++ struct vfsops *vfc_vfsops; /* filesystem operations vector */ ++ char vfc_name[MFSNAMELEN]; /* filesystem type name */ ++ int vfc_typenum; /* historic filesystem type number */ ++ int vfc_refcount; /* number mounted of this type */ ++ int vfc_flags; /* permanent flags */ ++ struct vfsconf *vfc_next; /* next in list */ ++}; ++ ++#ifndef BURN_BRIDGES ++struct ovfsconf { ++ void *vfc_vfsops; ++ char vfc_name[32]; ++ int vfc_index; ++ int vfc_refcount; ++ int vfc_flags; ++}; ++#endif ++ ++/* ++ * NB: these flags refer to IMPLEMENTATION properties, not properties of ++ * any actual mounts; i.e., it does not make sense to change the flags. ++ */ ++#define VFCF_STATIC 0x00010000 /* statically compiled into kernel */ ++#define VFCF_NETWORK 0x00020000 /* may get data over the network */ ++#define VFCF_READONLY 0x00040000 /* writes are not implemented */ ++#define VFCF_SYNTHETIC 0x00080000 /* data does not represent real files */ ++#define VFCF_LOOPBACK 0x00100000 /* aliases some other mounted FS */ ++#define VFCF_UNICODE 0x00200000 /* stores file names as Unicode*/ ++#define VFCF_JAIL 0x00400000 /* can be mounted from within a jail */ ++ ++typedef u_int32_t fsctlop_t; ++ ++struct vfsidctl { ++ int vc_vers; /* should be VFSIDCTL_VERS1 (below) */ ++ fsid_t vc_fsid; /* fsid to operate on. */ ++ char vc_fstypename[MFSNAMELEN]; ++ /* type of fs 'nfs' or '*' */ ++ fsctlop_t vc_op; /* operation VFS_CTL_* (below) */ ++ void *vc_ptr; /* pointer to data structure. */ ++ size_t vc_len; /* sizeof said structure. */ ++ u_int32_t vc_spare[12]; /* spare (must be zero). */ ++}; ++ ++/* vfsidctl API version. */ ++#define VFS_CTL_VERS1 0x01 ++ ++/* ++ * New style VFS sysctls, do not reuse/conflict with the namespace for ++ * private sysctls. ++ * All "global" sysctl ops have the 33rd bit set: ++ * 0x...1.... ++ * Private sysctl ops should have the 33rd bit unset. ++ */ ++#define VFS_CTL_QUERY 0x00010001 /* anything wrong? (vfsquery) */ ++#define VFS_CTL_TIMEO 0x00010002 /* set timeout for vfs notification */ ++#define VFS_CTL_NOLOCKS 0x00010003 /* disable file locking */ ++ ++struct vfsquery { ++ u_int32_t vq_flags; ++ u_int32_t vq_spare[31]; ++}; ++ ++/* vfsquery flags */ ++#define VQ_NOTRESP 0x0001 /* server down */ ++#define VQ_NEEDAUTH 0x0002 /* server bad auth */ ++#define VQ_LOWDISK 0x0004 /* we're low on space */ ++#define VQ_MOUNT 0x0008 /* new filesystem arrived */ ++#define VQ_UNMOUNT 0x0010 /* filesystem has left */ ++#define VQ_DEAD 0x0020 /* filesystem is dead, needs force unmount */ ++#define VQ_ASSIST 0x0040 /* filesystem needs assistance from external ++ program */ ++#define VQ_NOTRESPLOCK 0x0080 /* server lockd down */ ++#define VQ_FLAG0100 0x0100 /* placeholder */ ++#define VQ_FLAG0200 0x0200 /* placeholder */ ++#define VQ_FLAG0400 0x0400 /* placeholder */ ++#define VQ_FLAG0800 0x0800 /* placeholder */ ++#define VQ_FLAG1000 0x1000 /* placeholder */ ++#define VQ_FLAG2000 0x2000 /* placeholder */ ++#define VQ_FLAG4000 0x4000 /* placeholder */ ++#define VQ_FLAG8000 0x8000 /* placeholder */ ++ ++ ++struct iovec; ++struct uio; ++ ++__BEGIN_DECLS ++ ++/* Mounting and unmounting filesystems. */ ++int mount(const char *, const char *, int, void *); ++int nmount(struct iovec *, unsigned int, int); ++int unmount(const char *, int); ++ ++/* C library stuff */ ++int getvfsbyname(const char *, struct xvfsconf *); ++ ++/* getfsstat() appears in BSD 4.4. A variant of this API is found on OSF/1, ++ but on that system the user also needs to include . */ ++ ++#ifndef __USE_FILE_OFFSET64 ++extern int getfsstat (struct statfs *__buf, long __bufsize, ++ int __flags) __THROW; ++#else ++# ifdef __REDIRECT ++extern int __REDIRECT (getfsstat, ++ (struct statfs *__buf, long __bufsize, int __flags), ++ getfsstat64); ++# else ++# define getfsstat getfsstat64 ++# endif ++#endif ++#ifdef __USE_LARGEFILE64 ++extern int getfsstat64 (struct statfs64 *__buf, long __bufsize, ++ int __flags) __THROW; ++#endif ++ ++#ifdef _LIBC ++extern int __getfsstat (struct statfs *__buf, long __bufsize, int __flags); ++extern int __getfsstat64 (struct statfs64 *__buf, long __bufsize, int __flags); ++#endif ++ ++/* getmntinfo() appears in BSD 4.4. */ ++ ++#ifndef __USE_FILE_OFFSET64 ++extern int getmntinfo (struct statfs **__mntbufp, int __flags) __THROW; ++#else ++# ifdef __REDIRECT ++extern int __REDIRECT (getmntinfo, ++ (struct statfs **__mntbufp, int __flags), ++ getmntinfo64); ++# else ++# define getmntinfo getmntinfo64 ++# endif ++#endif ++#ifdef __USE_LARGEFILE64 ++extern int getmntinfo64 (struct statfs64 **__mntbufp, int __flags) __THROW; ++#endif ++ ++#ifdef _LIBC ++extern int __getmntinfo (struct statfs **__mntbufp, int __flags); ++#endif ++ ++__END_DECLS ++ ++ ++/* Opening files on specified mounted filesystems. ++ These system calls are reserved to the superuser, for security reasons. */ ++ ++__BEGIN_DECLS ++ ++/* Return in *FHP the file handle corresponding to the file or directory ++ PATH. */ ++extern int getfh (__const char *__path, fhandle_t *__fhp) __THROW; ++ ++/* Return in *FHP the file handle corresponding to the file or directory ++ PATH. */ ++extern int lgetfh (__const char *__path, fhandle_t *__fhp) __THROW; ++ ++/* Open a file handle *FHP, using the open() like FLAGS. Return the ++ new file descriptor. */ ++extern int fhopen (__const fhandle_t *__fhp, int __flags) __THROW; ++ ++/* Get file attributes for the file whose handle is *FHP, and return them ++ in *BUF. Like fhopen + fstat + close. */ ++#ifndef __USE_FILE_OFFSET64 ++extern int fhstat (__const fhandle_t *__fhp, struct stat *__buf) __THROW; ++#else ++# ifdef __REDIRECT ++extern int __REDIRECT (fhstat, ++ (__const fhandle_t *__fhp, struct stat *__buf), ++ fhstat64); ++# else ++# define fhstat fhstat64 ++# endif ++#endif ++#ifdef __USE_LARGEFILE64 ++extern int fhstat64 (__const fhandle_t *__fhp, struct stat64 *__buf) __THROW; ++#endif ++ ++/* Return information about the filesystem on which the file resides whose ++ handle is *FHP. Like fhopen + fstatfs + close. */ ++#ifndef __USE_FILE_OFFSET64 ++extern int fhstatfs (__const fhandle_t *__fhp, struct statfs *__buf) __THROW; ++#else ++# ifdef __REDIRECT ++extern int __REDIRECT (fhstatfs, ++ (__const fhandle_t *__fhp, struct statfs *__buf), ++ fhstatfs64); ++# else ++# define fhstatfs fhstatfs64 ++# endif ++#endif ++#ifdef __USE_LARGEFILE64 ++extern int fhstatfs64 (__const fhandle_t *__fhp, ++ struct statfs64 *__buf) __THROW; ++#endif ++ ++__END_DECLS ++ ++#endif /* _SYS_MOUNT_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/param.h +@@ -0,0 +1,238 @@ ++/* Copyright (C) 1995,1996,1997,2000,2001,2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_PARAM_H ++#define _SYS_PARAM_H 1 ++ ++#include ++#include ++ ++#ifndef NULL ++#define NULL 0 ++#endif ++ ++/* ++ * __FreeBSD_version numbers are documented in the Porter's Handbook. ++ * If you bump the version for any reason, you should update the documentation ++ * there. ++ * Currently this lives here: ++ * ++ * doc/en_US.ISO8859-1/books/porters-handbook/book.sgml ++ * ++ * scheme is: <0 if release branch, otherwise 1>xx ++ */ ++#include ++ ++/* Some inet code expects that this file defines the 'u_int32_t' type. */ ++#include ++#include ++ ++/* ++ * Machine-independent constants (some used in following include files). ++ * Redefined constants are from POSIX 1003.1 limits file. ++ * ++ * MAXCOMLEN should be >= sizeof(ac_comm) (see ) ++ * MAXLOGNAME should be == UT_NAMESIZE+1 (see ) ++ */ ++ ++#define MAXCOMLEN 19 /* max command name remembered */ ++#define MAXINTERP 32 /* max interpreter file name length */ ++#define MAXLOGNAME 17 /* max login name length (incl. NUL) */ ++#define MAXUPRC CHILD_MAX /* max simultaneous processes */ ++#define NCARGS ARG_MAX /* max bytes for an exec function */ ++#define NGROUPS NGROUPS_MAX /* max number groups */ ++#define NOGROUP 65535 /* marker for empty group set member */ ++#define MAXHOSTNAMELEN 256 /* max hostname size */ ++#define SPECNAMELEN 63 /* max length of devicename */ ++#define TTY_NAME_MAX SPECNAMELEN ++ ++/* BSD names for some values. */ ++ ++#define NBBY CHAR_BIT ++#ifndef NGROUPS ++# define NGROUPS NGROUPS_MAX ++#endif ++#define MAXSYMLINKS 32 ++#define CANBSIZ MAX_CANON ++#define NCARGS ARG_MAX ++#define MAXPATHLEN PATH_MAX ++ ++/* The following is not really correct but it is a value we used for a ++ long time and which seems to be usable. People should not use NOFILE ++ anyway. */ ++#define NOFILE OPEN_MAX ++ ++/* Bit map related macros. */ ++#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY)) ++#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) ++#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY))) ++#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) ++ ++/* Macros for counting and rounding. */ ++#ifndef howmany ++# define howmany(x, y) (((x) + ((y) - 1)) / (y)) ++#endif ++#ifdef __GNUC__ ++# define roundup(x, y) (__builtin_constant_p (y) && powerof2 (y) \ ++ ? (((x) + (y) - 1) & ~((y) - 1)) \ ++ : ((((x) + ((y) - 1)) / (y)) * (y))) ++#else ++# define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) ++#endif ++#define powerof2(x) ((((x) - 1) & (x)) == 0) ++ ++/* Macros for min/max. */ ++#define MIN(a,b) (((a)<(b))?(a):(b)) ++#define MAX(a,b) (((a)>(b))?(a):(b)) ++ ++/* Machine type dependent parameters. */ ++#include ++ ++#ifndef DEV_BSHIFT ++#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */ ++#endif ++#define DEV_BSIZE (1<>PAGE_SHIFT) ++#endif ++ ++/* ++ * btodb() is messy and perhaps slow because `bytes' may be an off_t. We ++ * want to shift an unsigned type to avoid sign extension and we don't ++ * want to widen `bytes' unnecessarily. Assume that the result fits in ++ * a daddr_t. ++ */ ++#ifndef btodb ++#define btodb(bytes) /* calculates (bytes / DEV_BSIZE) */ \ ++ (sizeof (bytes) > sizeof(long) \ ++ ? (daddr_t)((unsigned long long)(bytes) >> DEV_BSHIFT) \ ++ : (daddr_t)((unsigned long)(bytes) >> DEV_BSHIFT)) ++#endif ++ ++#ifndef dbtob ++#define dbtob(db) /* calculates (db * DEV_BSIZE) */ \ ++ ((off_t)(db) << DEV_BSHIFT) ++#endif ++ ++#endif /* _NO_NAMESPACE_POLLUTION */ ++ ++#define PRIMASK 0x0ff ++#define PCATCH 0x100 /* OR'd with pri for tsleep to check signals */ ++#define PDROP 0x200 /* OR'd with pri to stop re-entry of interlock mutex */ ++ ++#define NBPW sizeof(int) /* number of bytes per word (integer) */ ++ ++#define CMASK 022 /* default file mask: S_IWGRP|S_IWOTH */ ++ ++#define NODEV (dev_t)(-1) /* non-existent device */ ++ ++#define CBLOCK 128 /* Clist block size, must be a power of 2. */ ++#define CBQSIZE (CBLOCK/NBBY) /* Quote bytes/cblock - can do better. */ ++ /* Data chars/clist. */ ++#define CBSIZE (CBLOCK - sizeof(struct cblock *) - CBQSIZE) ++#define CROUND (CBLOCK - 1) /* Clist rounding. */ ++ ++/* ++ * File system parameters and macros. ++ * ++ * MAXBSIZE - Filesystems are made out of blocks of at most MAXBSIZE bytes ++ * per block. MAXBSIZE may be made larger without effecting ++ * any existing filesystems as long as it does not exceed MAXPHYS, ++ * and may be made smaller at the risk of not being able to use ++ * filesystems which require a block size exceeding MAXBSIZE. ++ * ++ * BKVASIZE - Nominal buffer space per buffer, in bytes. BKVASIZE is the ++ * minimum KVM memory reservation the kernel is willing to make. ++ * Filesystems can of course request smaller chunks. Actual ++ * backing memory uses a chunk size of a page (PAGE_SIZE). ++ * ++ * If you make BKVASIZE too small you risk seriously fragmenting ++ * the buffer KVM map which may slow things down a bit. If you ++ * make it too big the kernel will not be able to optimally use ++ * the KVM memory reserved for the buffer cache and will wind ++ * up with too-few buffers. ++ * ++ * The default is 16384, roughly 2x the block size used by a ++ * normal UFS filesystem. ++ */ ++#define MAXBSIZE 65536 /* must be power of 2 */ ++#define BKVASIZE 16384 /* must be power of 2 */ ++#define BKVAMASK (BKVASIZE-1) ++ ++/* ++ * Scale factor for scaled integers used to count %cpu time and load avgs. ++ * ++ * The number of CPU `tick's that map to a unique `%age' can be expressed ++ * by the formula (1 / (2 ^ (FSHIFT - 11))). The maximum load average that ++ * can be calculated (assuming 32 bits) can be closely approximated using ++ * the formula (2 ^ (2 * (16 - FSHIFT))) for (FSHIFT < 15). ++ * ++ * For the scheduler to maintain a 1:1 mapping of CPU `tick' to `%age', ++ * FSHIFT must be at least 11; this gives us a maximum load avg of ~1024. ++ */ ++#define FSHIFT 11 /* bits to right of fixed binary point */ ++#define FSCALE (1<> (PAGE_SHIFT - DEV_BSHIFT)) ++ ++#define ctodb(db) /* calculates pages to devblks */ \ ++ ((db) << (PAGE_SHIFT - DEV_BSHIFT)) ++ ++#endif /* _SYS_PARAM_H_ */ ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ptrace.h +@@ -0,0 +1,113 @@ ++/*- ++ * Copyright (c) 1984, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)ptrace.h 8.2 (Berkeley) 1/4/94 ++ * $FreeBSD: src/sys/sys/ptrace.h,v 1.28.10.1.2.1 2009/10/25 01:10:29 kensmith Exp $ ++ */ ++ ++#ifndef _SYS_PTRACE_H ++#define _SYS_PTRACE_H 1 ++ ++#include ++#include ++ ++__BEGIN_DECLS ++ ++#define PT_TRACE_ME 0 /* child declares it's being traced */ ++#define PT_READ_I 1 /* read word in child's I space */ ++#define PT_READ_D 2 /* read word in child's D space */ ++/* was PT_READ_U 3 * read word in child's user structure */ ++#define PT_WRITE_I 4 /* write word in child's I space */ ++#define PT_WRITE_D 5 /* write word in child's D space */ ++/* was PT_WRITE_U 6 * write word in child's user structure */ ++#define PT_CONTINUE 7 /* continue the child */ ++#define PT_KILL 8 /* kill the child process */ ++#define PT_STEP 9 /* single step the child */ ++ ++#define PT_ATTACH 10 /* trace some running process */ ++#define PT_DETACH 11 /* stop tracing a process */ ++#define PT_IO 12 /* do I/O to/from stopped process. */ ++ ++#if 0 /* our threading libray is different */ ++#define PT_LWPINFO 13 /* Info about the LWP that stopped. */ ++#define PT_GETNUMLWPS 14 /* get total number of threads */ ++#define PT_GETLWPLIST 15 /* get thread list */ ++#endif ++ ++#define PT_CLEARSTEP 16 /* turn off single step */ ++#define PT_SETSTEP 17 /* turn on single step */ ++#define PT_SUSPEND 18 /* suspend a thread */ ++#define PT_RESUME 19 /* resume a thread */ ++ ++#define PT_TO_SCE 20 ++#define PT_TO_SCX 21 ++#define PT_SYSCALL 22 ++ ++#define PT_GETREGS 33 /* get general-purpose registers */ ++#define PT_SETREGS 34 /* set general-purpose registers */ ++#define PT_GETFPREGS 35 /* get floating-point registers */ ++#define PT_SETFPREGS 36 /* set floating-point registers */ ++#define PT_GETDBREGS 37 /* get debugging registers */ ++#define PT_SETDBREGS 38 /* set debugging registers */ ++#define PT_FIRSTMACH 64 /* for machine-specific requests */ ++ ++struct ptrace_io_desc { ++ int piod_op; /* I/O operation */ ++ void *piod_offs; /* child offset */ ++ void *piod_addr; /* parent offset */ ++ size_t piod_len; /* request length */ ++}; ++ ++/* ++ * Operations in piod_op. ++ */ ++#define PIOD_READ_D 1 /* Read from D space */ ++#define PIOD_WRITE_D 2 /* Write to D space */ ++#define PIOD_READ_I 3 /* Read from I space */ ++#define PIOD_WRITE_I 4 /* Write to I space */ ++ ++#if 0 ++/* Argument structure for PT_LWPINFO. */ ++struct ptrace_lwpinfo { ++ lwpid_t pl_lwpid; /* LWP described. */ ++ int pl_event; /* Event that stopped the LWP. */ ++#define PL_EVENT_NONE 0 ++#define PL_EVENT_SIGNAL 1 ++ int pl_flags; /* LWP flags. */ ++#define PL_FLAG_SA 0x01 /* M:N thread */ ++#define PL_FLAG_BOUND 0x02 /* M:N bound thread */ ++ sigset_t pl_sigmask; /* LWP signal mask */ ++ sigset_t pl_siglist; /* LWP pending signal */ ++}; ++#endif ++ ++extern int ptrace(int _request, pid_t _pid, caddr_t _addr, int _data) __THROW; ++ ++__END_DECLS ++ ++#endif /* _SYS_PTRACE_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/reboot.h +@@ -0,0 +1,81 @@ ++/*- ++ * Copyright (c) 1982, 1986, 1988, 1993, 1994 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)reboot.h 8.3 (Berkeley) 12/13/94 ++ * $FreeBSD: src/sys/sys/reboot.h,v 1.26.18.1 2008/11/25 02:59:29 kensmith Exp $ ++ */ ++ ++#ifndef _SYS_REBOOT_H_ ++#define _SYS_REBOOT_H_ 1 ++ ++#include ++ ++/* ++ * Arguments to reboot system call. These are passed to ++ * the boot program and on to init. ++ */ ++#define RB_AUTOBOOT 0 /* flags for system auto-booting itself */ ++ ++#define RB_ASKNAME 0x001 /* ask for file name to reboot from */ ++#define RB_SINGLE 0x002 /* reboot to single user only */ ++#define RB_NOSYNC 0x004 /* dont sync before reboot */ ++#define RB_HALT 0x008 /* don't reboot, just halt */ ++#define RB_INITNAME 0x010 /* name given for /etc/init (unused) */ ++#define RB_DFLTROOT 0x020 /* use compiled-in rootdev */ ++#define RB_KDB 0x040 /* give control to kernel debugger */ ++#define RB_RDONLY 0x080 /* mount root fs read-only */ ++#define RB_DUMP 0x100 /* dump kernel memory before reboot */ ++#define RB_MINIROOT 0x200 /* mini-root present in memory at boot time */ ++#define RB_VERBOSE 0x800 /* print all potentially useful info */ ++#define RB_SERIAL 0x1000 /* use serial port as console */ ++#define RB_CDROM 0x2000 /* use cdrom as root */ ++#define RB_POWEROFF 0x4000 /* turn the power off if possible */ ++#define RB_GDB 0x8000 /* use GDB remote debugger instead of DDB */ ++#define RB_MUTE 0x10000 /* start up with the console muted */ ++#define RB_SELFTEST 0x20000 /* don't complete the boot; do selftest */ ++#define RB_RESERVED1 0x40000 /* reserved for internal use of boot blocks */ ++#define RB_RESERVED2 0x80000 /* reserved for internal use of boot blocks */ ++#define RB_PAUSE 0x100000 /* pause after each output line during probe */ ++#define RB_MULTIPLE 0x20000000 /* use multiple consoles */ ++ ++#define RB_BOOTINFO 0x80000000 /* have `struct bootinfo *' arg */ ++ ++/* ++ * Compatibility with Linux ++ */ ++#define RB_HALT_SYSTEM RB_HALT ++#define RB_POWER_OFF RB_POWEROFF ++ ++__BEGIN_DECLS ++ ++/* Reboot or halt the system. */ ++extern int reboot (int __howto) __THROW; ++ ++__END_DECLS ++ ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/rfork.h +@@ -0,0 +1,91 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* ++ * Copyright (c) 1989, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)unistd.h 8.2 (Berkeley) 1/7/94 ++ * $FreeBSD: src/sys/sys/unistd.h,v 1.22.2.1 2000/03/18 23:20:12 jasone Exp $ ++ */ ++ ++#ifndef _SYS_RFORK_H ++#define _SYS_RFORK_H ++ ++#include ++ ++/* ++ * rfork() options. ++ * ++ * XXX currently, operations without RFPROC set are not supported. ++ */ ++#define RFNAMEG (1<<0) /* UNIMPL new plan9 `name space' */ ++#define RFENVG (1<<1) /* UNIMPL copy plan9 `env space' */ ++#define RFFDG (1<<2) /* copy fd table */ ++#define RFNOTEG (1<<3) /* UNIMPL create new plan9 `note group' */ ++#define RFPROC (1<<4) /* change child (else changes curproc) */ ++#define RFMEM (1<<5) /* share `address space' */ ++#define RFNOWAIT (1<<6) /* parent need not wait() on child */ ++#define RFCNAMEG (1<<10) /* UNIMPL zero plan9 `name space' */ ++#define RFCENVG (1<<11) /* UNIMPL zero plan9 `env space' */ ++#define RFCFDG (1<<12) /* zero fd table */ ++#define RFTHREAD (1<<13) /* enable kernel thread support */ ++#define RFSIGSHARE (1<<14) /* share signal handlers */ ++#define RFLINUXTHPN (1<<16) /* do linux clone exit parent notification */ ++#define RFPPWAIT (1<<31) /* parent sleeps until child exits (vfork) */ ++ ++#define RFTHPNSHIFT 24 /* reserve bits 24-30 */ ++#define RFTHPNMASK 0x7F /* for compatibility with linuxthreads/clone() */ ++ /* allow to specify "clone exit parent notification" signal */ ++#define RFTHPNSIGNUM(flags) (((flags) >> RFTHPNSHIFT) & RFTHPNMASK) ++ ++__BEGIN_DECLS ++ ++extern int rfork (int __flags) __THROW; ++ ++#ifdef _LIBC ++extern int __rfork (int __flags); ++#endif ++ ++__END_DECLS ++ ++#endif /* _SYS_RFORK_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/socketvar.h +@@ -0,0 +1,189 @@ ++/* This header is used on many systems but for GNU we have ++ almost everything defined in the standard header. */ ++ ++#include ++ ++/*- ++ * Copyright (c) 1982, 1986, 1990, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)socketvar.h 8.3 (Berkeley) 2/19/95 ++ * ++ * $FreeBSD: src/sys/sys/socketvar.h,v 1.171.2.1.2.1 2009/10/25 01:10:29 kensmith Exp $ ++ */ ++ ++#ifndef _SYS_SOCKETVAR_H_ ++#define _SYS_SOCKETVAR_H_ ++ ++#include /* for TAILQ macros */ ++#include /* for struct selinfo */ ++#include ++#include ++#include ++ ++struct socket; ++struct vnet; ++ ++struct xsockbuf { ++ u_int sb_cc; ++ u_int sb_hiwat; ++ u_int sb_mbcnt; ++ u_int sb_mcnt; ++ u_int sb_ccnt; ++ u_int sb_mbmax; ++ int sb_lowat; ++ int sb_timeo; ++ short sb_flags; ++}; ++ ++/* ++ * Variables for socket buffering. ++ */ ++struct sockbuf { ++ struct selinfo sb_sel; /* process selecting read/write */ ++ struct mtx sb_mtx; /* sockbuf lock */ ++ struct sx sb_sx; /* prevent I/O interlacing */ ++ short sb_state; /* (c/d) socket state on sockbuf */ ++#define sb_startzero sb_mb ++ struct mbuf *sb_mb; /* (c/d) the mbuf chain */ ++ struct mbuf *sb_mbtail; /* (c/d) the last mbuf in the chain */ ++ struct mbuf *sb_lastrecord; /* (c/d) first mbuf of last ++ * record in socket buffer */ ++ struct mbuf *sb_sndptr; /* (c/d) pointer into mbuf chain */ ++ u_int sb_sndptroff; /* (c/d) byte offset of ptr into chain */ ++ u_int sb_cc; /* (c/d) actual chars in buffer */ ++ u_int sb_hiwat; /* (c/d) max actual char count */ ++ u_int sb_mbcnt; /* (c/d) chars of mbufs used */ ++ u_int sb_mcnt; /* (c/d) number of mbufs in buffer */ ++ u_int sb_ccnt; /* (c/d) number of clusters in buffer */ ++ u_int sb_mbmax; /* (c/d) max chars of mbufs to use */ ++ u_int sb_ctl; /* (c/d) non-data chars in buffer */ ++ int sb_lowat; /* (c/d) low water mark */ ++ int sb_timeo; /* (c/d) timeout for read/write */ ++ short sb_flags; /* (c/d) flags, see below */ ++ int (*sb_upcall)(struct socket *, void *, int); /* (c/d) */ ++ void *sb_upcallarg; /* (c/d) */ ++}; ++ ++ ++/* ++ * Kernel structure per socket. ++ * Contains send and receive buffer queues, ++ * handle on protocol and pointer to protocol ++ * private data and error information. ++ */ ++typedef u_quad_t so_gen_t; ++ ++ ++/*- ++ * Locking key to struct socket: ++ * (a) constant after allocation, no locking required. ++ * (b) locked by SOCK_LOCK(so). ++ * (c) locked by SOCKBUF_LOCK(&so->so_rcv). ++ * (d) locked by SOCKBUF_LOCK(&so->so_snd). ++ * (e) locked by ACCEPT_LOCK(). ++ * (f) not locked since integer reads/writes are atomic. ++ * (g) used only as a sleep/wakeup address, no value. ++ * (h) locked by global mutex so_global_mtx. ++ */ ++struct socket { ++ int so_count; /* (b) reference count */ ++ short so_type; /* (a) generic type, see socket.h */ ++ short so_options; /* from socket call, see socket.h */ ++ short so_linger; /* time to linger while closing */ ++ short so_state; /* (b) internal state flags SS_* */ ++ int so_qstate; /* (e) internal state flags SQ_* */ ++ void *so_pcb; /* protocol control block */ ++ struct vnet *so_vnet; /* network stack instance */ ++ struct protosw *so_proto; /* (a) protocol handle */ ++/* ++ * Variables for connection queuing. ++ * Socket where accepts occur is so_head in all subsidiary sockets. ++ * If so_head is 0, socket is not related to an accept. ++ * For head socket so_incomp queues partially completed connections, ++ * while so_comp is a queue of connections ready to be accepted. ++ * If a connection is aborted and it has so_head set, then ++ * it has to be pulled out of either so_incomp or so_comp. ++ * We allow connections to queue up based on current queue lengths ++ * and limit on number of queued connections for this socket. ++ */ ++ struct socket *so_head; /* (e) back pointer to listen socket */ ++ TAILQ_HEAD(, socket) so_incomp; /* (e) queue of partial unaccepted connections */ ++ TAILQ_HEAD(, socket) so_comp; /* (e) queue of complete unaccepted connections */ ++ TAILQ_ENTRY(socket) so_list; /* (e) list of unaccepted connections */ ++ u_short so_qlen; /* (e) number of unaccepted connections */ ++ u_short so_incqlen; /* (e) number of unaccepted incomplete ++ connections */ ++ u_short so_qlimit; /* (e) max number queued connections */ ++ short so_timeo; /* (g) connection timeout */ ++ u_short so_error; /* (f) error affecting connection */ ++ struct sigio *so_sigio; /* [sg] information for async I/O or ++ out of band data (SIGURG) */ ++ u_long so_oobmark; /* (c) chars to oob mark */ ++ TAILQ_HEAD(, aiocblist) so_aiojobq; /* AIO ops waiting on socket */ ++ ++ struct sockbuf so_rcv, so_snd; ++ ++ struct ucred *so_cred; /* (a) user credentials */ ++ struct label *so_label; /* (b) MAC label for socket */ ++ struct label *so_peerlabel; /* (b) cached MAC label for peer */ ++ /* NB: generation count must not be first. */ ++ so_gen_t so_gencnt; /* (h) generation count */ ++ void *so_emuldata; /* (b) private data for emulators */ ++ struct so_accf { ++ struct accept_filter *so_accept_filter; ++ void *so_accept_filter_arg; /* saved filter args */ ++ char *so_accept_filter_str; /* saved user args */ ++ } *so_accf; ++ int so_fibnum; /* routing domain for this socket */ ++}; ++ ++/* ++ * Externalized form of struct socket used by the sysctl(3) interface. ++ */ ++struct xsocket { ++ size_t xso_len; /* length of this structure */ ++ struct socket *xso_so; /* makes a convenient handle sometimes */ ++ short so_type; ++ short so_options; ++ short so_linger; ++ short so_state; ++ caddr_t so_pcb; /* another convenient handle */ ++ int xso_protocol; ++ int xso_family; ++ u_short so_qlen; ++ u_short so_incqlen; ++ u_short so_qlimit; ++ short so_timeo; ++ u_short so_error; ++ pid_t so_pgid; ++ u_long so_oobmark; ++ struct xsockbuf so_rcv, so_snd; ++ uid_t so_uid; /* XXX */ ++}; ++ ++#endif /* !_SYS_SOCKETVAR_H_ */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/swap.h +@@ -0,0 +1,37 @@ ++/* Calls to enable swapping on specified locations. FreeBSD version. ++ Copyright (C) 1996-1997, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef __SYS_SWAP_H ++ ++#define __SYS_SWAP_H 1 ++#include ++ ++ ++__BEGIN_DECLS ++ ++/* Make the block special device PATH available to the system for swapping. ++ This call is restricted to the super-user. */ ++extern int swapon (__const char *__path) __THROW; ++ ++/* Stop using block special device PATH for swapping. */ ++extern int swapoff (__const char *__path) __THROW; ++ ++__END_DECLS ++ ++#endif /* sys/swap.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/syscall.h +@@ -0,0 +1,446 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYSCALL_H ++#define _SYSCALL_H 1 ++ ++#define SYS_syscall 0 ++#define SYS_exit 1 ++#define SYS_fork 2 ++#define SYS_read 3 ++#define SYS_write 4 ++#define SYS_open 5 ++#define SYS_close 6 ++#define SYS_wait4 7 ++ /* 8 is old creat */ ++#define SYS_link 9 ++#define SYS_unlink 10 ++ /* 11 is obsolete execv */ ++#define SYS_chdir 12 ++#define SYS_fchdir 13 ++#define SYS_mknod 14 ++#define SYS_chmod 15 ++#define SYS_chown 16 ++#define SYS_obreak 17 ++#define SYS_freebsd4_getfsstat 18 ++ /* 19 is old lseek */ ++#define SYS_getpid 20 ++#define SYS_mount 21 ++#define SYS_unmount 22 ++#define SYS_setuid 23 ++#define SYS_getuid 24 ++#define SYS_geteuid 25 ++#define SYS_ptrace 26 ++#define SYS_recvmsg 27 ++#define SYS_sendmsg 28 ++#define SYS_recvfrom 29 ++#define SYS_accept 30 ++#define SYS_getpeername 31 ++#define SYS_getsockname 32 ++#define SYS_access 33 ++#define SYS_chflags 34 ++#define SYS_fchflags 35 ++#define SYS_sync 36 ++#define SYS_kill 37 ++ /* 38 is old stat */ ++#define SYS_getppid 39 ++ /* 40 is old lstat */ ++#define SYS_dup 41 ++#define SYS_pipe 42 ++#define SYS_getegid 43 ++#define SYS_profil 44 ++#define SYS_ktrace 45 ++ /* 46 is old sigaction */ ++#define SYS_getgid 47 ++ /* 48 is old sigprocmask */ ++#define SYS_getlogin 49 ++#define SYS_setlogin 50 ++#define SYS_acct 51 ++ /* 52 is old sigpending */ ++#define SYS_sigaltstack 53 ++#define SYS_ioctl 54 ++#define SYS_reboot 55 ++#define SYS_revoke 56 ++#define SYS_symlink 57 ++#define SYS_readlink 58 ++#define SYS_execve 59 ++#define SYS_umask 60 ++#define SYS_chroot 61 ++ /* 62 is old fstat */ ++ /* 63 is old getkerninfo */ ++ /* 64 is old getpagesize */ ++#define SYS_msync 65 ++#define SYS_vfork 66 ++ /* 67 is obsolete vread */ ++ /* 68 is obsolete vwrite */ ++#define SYS_sbrk 69 ++#define SYS_sstk 70 ++ /* 71 is old mmap */ ++#define SYS_vadvise 72 ++#define SYS_munmap 73 ++#define SYS_mprotect 74 ++#define SYS_madvise 75 ++ /* 76 is obsolete vhangup */ ++ /* 77 is obsolete vlimit */ ++#define SYS_mincore 78 ++#define SYS_getgroups 79 ++#define SYS_setgroups 80 ++#define SYS_getpgrp 81 ++#define SYS_setpgid 82 ++#define SYS_setitimer 83 ++ /* 84 is old wait */ ++#define SYS_swapon 85 ++#define SYS_getitimer 86 ++ /* 87 is old gethostname */ ++ /* 88 is old sethostname */ ++#define SYS_getdtablesize 89 ++#define SYS_dup2 90 ++#define SYS_fcntl 92 ++#define SYS_select 93 ++#define SYS_fsync 95 ++#define SYS_setpriority 96 ++#define SYS_socket 97 ++#define SYS_connect 98 ++ /* 99 is old accept */ ++#define SYS_getpriority 100 ++ /* 101 is old send */ ++ /* 102 is old recv */ ++ /* 103 is old sigreturn */ ++#define SYS_bind 104 ++#define SYS_setsockopt 105 ++#define SYS_listen 106 ++ /* 107 is obsolete vtimes */ ++ /* 108 is old sigvec */ ++ /* 109 is old sigblock */ ++ /* 110 is old sigsetmask */ ++ /* 111 is old sigsuspend */ ++ /* 112 is old sigstack */ ++ /* 113 is old recvmsg */ ++ /* 114 is old sendmsg */ ++ /* 115 is obsolete vtrace */ ++#define SYS_gettimeofday 116 ++#define SYS_getrusage 117 ++#define SYS_getsockopt 118 ++#define SYS_readv 120 ++#define SYS_writev 121 ++#define SYS_settimeofday 122 ++#define SYS_fchown 123 ++#define SYS_fchmod 124 ++ /* 125 is old recvfrom */ ++#define SYS_setreuid 126 ++#define SYS_setregid 127 ++#define SYS_rename 128 ++ /* 129 is old truncate */ ++ /* 130 is old ftruncate */ ++#define SYS_flock 131 ++#define SYS_mkfifo 132 ++#define SYS_sendto 133 ++#define SYS_shutdown 134 ++#define SYS_socketpair 135 ++#define SYS_mkdir 136 ++#define SYS_rmdir 137 ++#define SYS_utimes 138 ++ /* 139 is obsolete 4.2 sigreturn */ ++#define SYS_adjtime 140 ++ /* 141 is old getpeername */ ++ /* 142 is old gethostid */ ++ /* 143 is old sethostid */ ++ /* 144 is old getrlimit */ ++ /* 145 is old setrlimit */ ++ /* 146 is old killpg */ ++#define SYS_setsid 147 ++#define SYS_quotactl 148 ++ /* 149 is old quota */ ++ /* 150 is old getsockname */ ++#define SYS_nfssvc 155 ++ /* 156 is old getdirentries */ ++#define SYS_freebsd4_statfs 157 ++#define SYS_freebsd4_fstatfs 158 ++#define SYS_lgetfh 160 ++#define SYS_getfh 161 ++#define SYS_freebsd4_getdomainname 162 ++#define SYS_freebsd4_setdomainname 163 ++#define SYS_freebsd4_uname 164 ++#define SYS_sysarch 165 ++#define SYS_rtprio 166 ++#define SYS_semsys 169 ++#define SYS_msgsys 170 ++#define SYS_shmsys 171 ++#define SYS_freebsd6_pread 173 ++#define SYS_freebsd6_pwrite 174 ++#define SYS_ntp_adjtime 176 ++#define SYS_setgid 181 ++#define SYS_setegid 182 ++#define SYS_seteuid 183 ++#define SYS_stat 188 ++#define SYS_fstat 189 ++#define SYS_lstat 190 ++#define SYS_pathconf 191 ++#define SYS_fpathconf 192 ++#define SYS_getrlimit 194 ++#define SYS_setrlimit 195 ++#define SYS_getdirentries 196 ++#define SYS_freebsd6_mmap 197 ++#define SYS___syscall 198 ++#define SYS_freebsd6_lseek 199 ++#define SYS_freebsd6_truncate 200 ++#define SYS_freebsd6_ftruncate 201 ++#define SYS_sysctl 202 ++#define SYS_mlock 203 ++#define SYS_munlock 204 ++#define SYS_undelete 205 ++#define SYS_futimes 206 ++#define SYS_getpgid 207 ++#define SYS_poll 209 ++#define SYS_semctl 220 ++#define SYS_semget 221 ++#define SYS_semop 222 ++#define SYS_msgctl 224 ++#define SYS_msgget 225 ++#define SYS_msgsnd 226 ++#define SYS_msgrcv 227 ++#define SYS_shmat 228 ++#define SYS_shmctl 229 ++#define SYS_shmdt 230 ++#define SYS_shmget 231 ++#define SYS_clock_gettime 232 ++#define SYS_clock_settime 233 ++#define SYS_clock_getres 234 ++#define SYS_ktimer_create 235 ++#define SYS_ktimer_delete 236 ++#define SYS_ktimer_settime 237 ++#define SYS_ktimer_gettime 238 ++#define SYS_ktimer_getoverrun 239 ++#define SYS_nanosleep 240 ++#define SYS_ntp_gettime 248 ++#define SYS_minherit 250 ++#define SYS_rfork 251 ++#define SYS_openbsd_poll 252 ++#define SYS_issetugid 253 ++#define SYS_lchown 254 ++#define SYS_aio_read 255 ++#define SYS_aio_write 256 ++#define SYS_lio_listio 257 ++#define SYS_getdents 272 ++#define SYS_lchmod 274 ++#define SYS_netbsd_lchown 275 ++#define SYS_lutimes 276 ++#define SYS_netbsd_msync 277 ++#define SYS_nstat 278 ++#define SYS_nfstat 279 ++#define SYS_nlstat 280 ++#define SYS_preadv 289 ++#define SYS_pwritev 290 ++#define SYS_freebsd4_fhstatfs 297 ++#define SYS_fhopen 298 ++#define SYS_fhstat 299 ++#define SYS_modnext 300 ++#define SYS_modstat 301 ++#define SYS_modfnext 302 ++#define SYS_modfind 303 ++#define SYS_kldload 304 ++#define SYS_kldunload 305 ++#define SYS_kldfind 306 ++#define SYS_kldnext 307 ++#define SYS_kldstat 308 ++#define SYS_kldfirstmod 309 ++#define SYS_getsid 310 ++#define SYS_setresuid 311 ++#define SYS_setresgid 312 ++ /* 313 is obsolete signanosleep */ ++#define SYS_aio_return 314 ++#define SYS_aio_suspend 315 ++#define SYS_aio_cancel 316 ++#define SYS_aio_error 317 ++#define SYS_oaio_read 318 ++#define SYS_oaio_write 319 ++#define SYS_olio_listio 320 ++#define SYS_yield 321 ++ /* 322 is obsolete thr_sleep */ ++ /* 323 is obsolete thr_wakeup */ ++#define SYS_mlockall 324 ++#define SYS_munlockall 325 ++#define SYS_getcwd 326 ++#define SYS_sched_setparam 327 ++#define SYS_sched_getparam 328 ++#define SYS_sched_setscheduler 329 ++#define SYS_sched_getscheduler 330 ++#define SYS_sched_yield 331 ++#define SYS_sched_get_priority_max 332 ++#define SYS_sched_get_priority_min 333 ++#define SYS_sched_rr_get_interval 334 ++#define SYS_utrace 335 ++#define SYS_freebsd4_sendfile 336 ++#define SYS_kldsym 337 ++#define SYS_jail 338 ++#define SYS_sigprocmask 340 ++#define SYS_sigsuspend 341 ++#define SYS_freebsd4_sigaction 342 ++#define SYS_sigpending 343 ++#define SYS_freebsd4_sigreturn 344 ++#define SYS_sigtimedwait 345 ++#define SYS_sigwaitinfo 346 ++#define SYS_acl_get_file 347 ++#define SYS_acl_set_file 348 ++#define SYS_acl_get_fd 349 ++#define SYS_acl_set_fd 350 ++#define SYS_acl_delete_file 351 ++#define SYS_acl_delete_fd 352 ++#define SYS_acl_aclcheck_file 353 ++#define SYS_acl_aclcheck_fd 354 ++#define SYS_extattrctl 355 ++#define SYS_extattr_set_file 356 ++#define SYS_extattr_get_file 357 ++#define SYS_extattr_delete_file 358 ++#define SYS_aio_waitcomplete 359 ++#define SYS_getresuid 360 ++#define SYS_getresgid 361 ++#define SYS_kqueue 362 ++#define SYS_kevent 363 ++#define SYS_extattr_set_fd 371 ++#define SYS_extattr_get_fd 372 ++#define SYS_extattr_delete_fd 373 ++#define SYS_setugid 374 ++#define SYS_nfsclnt 375 ++#define SYS_eaccess 376 ++#define SYS_nmount 378 ++#define SYS_kse_exit 379 ++#define SYS_kse_wakeup 380 ++#define SYS_kse_create 381 ++#define SYS_kse_thr_interrupt 382 ++#define SYS_kse_release 383 ++#define SYS_mac_get_proc 384 ++#define SYS_mac_set_proc 385 ++#define SYS_mac_get_fd 386 ++#define SYS_mac_get_file 387 ++#define SYS_mac_set_fd 388 ++#define SYS_mac_set_file 389 ++#define SYS_kenv 390 ++#define SYS_lchflags 391 ++#define SYS_uuidgen 392 ++#define SYS_sendfile 393 ++#define SYS_mac_syscall 394 ++#define SYS_getfsstat 395 ++#define SYS_statfs 396 ++#define SYS_fstatfs 397 ++#define SYS_fhstatfs 398 ++#define SYS_ksem_close 400 ++#define SYS_ksem_post 401 ++#define SYS_ksem_wait 402 ++#define SYS_ksem_trywait 403 ++#define SYS_ksem_init 404 ++#define SYS_ksem_open 405 ++#define SYS_ksem_unlink 406 ++#define SYS_ksem_getvalue 407 ++#define SYS_ksem_destroy 408 ++#define SYS_mac_get_pid 409 ++#define SYS_mac_get_link 410 ++#define SYS_mac_set_link 411 ++#define SYS_extattr_set_link 412 ++#define SYS_extattr_get_link 413 ++#define SYS_extattr_delete_link 414 ++#define SYS_mac_execve 415 ++#define SYS_sigaction 416 ++#define SYS_sigreturn 417 ++#define SYS_getcontext 421 ++#define SYS_setcontext 422 ++#define SYS_swapcontext 423 ++#define SYS_swapoff 424 ++#define SYS_acl_get_link 425 ++#define SYS_acl_set_link 426 ++#define SYS_acl_delete_link 427 ++#define SYS_acl_aclcheck_link 428 ++#define SYS_sigwait 429 ++#define SYS_thr_create 430 ++#define SYS_thr_exit 431 ++#define SYS_thr_self 432 ++#define SYS_thr_kill 433 ++#define SYS__umtx_lock 434 ++#define SYS__umtx_unlock 435 ++#define SYS_jail_attach 436 ++#define SYS_extattr_list_fd 437 ++#define SYS_extattr_list_file 438 ++#define SYS_extattr_list_link 439 ++#define SYS_kse_switchin 440 ++#define SYS_ksem_timedwait 441 ++#define SYS_thr_suspend 442 ++#define SYS_thr_wake 443 ++#define SYS_kldunloadf 444 ++#define SYS_audit 445 ++#define SYS_auditon 446 ++#define SYS_getauid 447 ++#define SYS_setauid 448 ++#define SYS_getaudit 449 ++#define SYS_setaudit 450 ++#define SYS_getaudit_addr 451 ++#define SYS_setaudit_addr 452 ++#define SYS_auditctl 453 ++#define SYS__umtx_op 454 ++#define SYS_thr_new 455 ++#define SYS_sigqueue 456 ++#define SYS_kmq_open 457 ++#define SYS_kmq_setattr 458 ++#define SYS_kmq_timedreceive 459 ++#define SYS_kmq_timedsend 460 ++#define SYS_kmq_notify 461 ++#define SYS_kmq_unlink 462 ++#define SYS_abort2 463 ++#define SYS_thr_set_name 464 ++#define SYS_aio_fsync 465 ++#define SYS_rtprio_thread 466 ++#define SYS_sctp_peeloff 471 ++#define SYS_sctp_generic_sendmsg 472 ++#define SYS_sctp_generic_sendmsg_iov 473 ++#define SYS_sctp_generic_recvmsg 474 ++#define SYS_pread 475 ++#define SYS_pwrite 476 ++#define SYS_mmap 477 ++#define SYS_lseek 478 ++#define SYS_truncate 479 ++#define SYS_ftruncate 480 ++#define SYS_thr_kill2 481 ++#define SYS_shm_open 482 ++#define SYS_shm_unlink 483 ++#define SYS_cpuset 484 ++#define SYS_cpuset_setid 485 ++#define SYS_cpuset_getid 486 ++#define SYS_cpuset_getaffinity 487 ++#define SYS_cpuset_setaffinity 488 ++#define SYS_faccessat 489 ++#define SYS_fchmodat 490 ++#define SYS_fchownat 491 ++#define SYS_fexecve 492 ++#define SYS_fstatat 493 ++#define SYS_futimesat 494 ++#define SYS_linkat 495 ++#define SYS_mkdirat 496 ++#define SYS_mkfifoat 497 ++#define SYS_mknodat 498 ++#define SYS_openat 499 ++#define SYS_readlinkat 500 ++#define SYS_renameat 501 ++#define SYS_symlinkat 502 ++#define SYS_unlinkat 503 ++#define SYS_posix_openpt 504 ++#define SYS_gssd_syscall 505 ++#define SYS_jail_get 506 ++#define SYS_jail_set 507 ++#define SYS_jail_remove 508 ++#define SYS_MAXSYSCALL 509 ++ ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/sysmacros.h +@@ -0,0 +1,36 @@ ++/* Definitions of macros to access `dev_t' values. FreeBSD version. ++ Copyright (C) 1996-1997, 1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_SYSMACROS_H ++#define _SYS_SYSMACROS_H 1 ++ ++/* For compatibility we provide alternative names. ++ ++ The problem here is that compilers other than GCC probably don't ++ have the `long long' type and so `dev_t' is actually an array. */ ++#define major(dev) ((int)(((unsigned int) (dev) >> 8) & 0xff)) ++#define minor(dev) ((int)((dev) & 0xffff00ff)) ++#define makedev(major, minor) (((major) << 8) | (minor)) ++ ++/* Access the functions with their new names. */ ++#define gnu_dev_major(dev) major (dev) ++#define gnu_dev_minor(dev) minor (dev) ++#define gnu_dev_makedev(maj, min) makedev (maj, min) ++ ++#endif /* sys/sysmacros.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ttydefaults.h +@@ -0,0 +1,97 @@ ++/*- ++ * Copyright (c) 1982, 1986, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * (c) UNIX System Laboratories, Inc. ++ * All or some portions of this file are derived from material licensed ++ * to the University of California by American Telephone and Telegraph ++ * Co. or Unix System Laboratories, Inc. and are reproduced herein with ++ * the permission of UNIX System Laboratories, Inc. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94 ++ */ ++ ++/* ++ * System wide defaults for terminal state. FreeBSD version. ++ */ ++#ifndef _SYS_TTYDEFAULTS_H_ ++#define _SYS_TTYDEFAULTS_H_ ++ ++/* ++ * Defaults on "first" open. ++ */ ++#define TTYDEF_IFLAG (BRKINT | ICRNL | IMAXBEL | IXON | IXANY) ++#define TTYDEF_OFLAG (OPOST | ONLCR) ++#define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL) ++#define TTYDEF_CFLAG (CREAD | CS8 | HUPCL) ++#define TTYDEF_SPEED (B9600) ++ ++/* ++ * Control Character Defaults ++ */ ++#define CTRL(x) (x&037) ++#define CEOF CTRL('d') ++#ifdef _POSIX_VDISABLE ++# define CEOL _POSIX_VDISABLE ++#else ++# define CEOL ((unsigned char)'\377') /* XXX avoid _POSIX_VDISABLE */ ++#endif ++#define CERASE 0177 ++#define CERASE2 CTRL('h') ++#define CINTR CTRL('c') ++#define CSTATUS CTRL('t') ++#define CKILL CTRL('u') ++#define CMIN 1 ++#define CQUIT 034 /* FS, ^\ */ ++#define CSUSP CTRL('z') ++#define CTIME 0 ++#define CDSUSP CTRL('y') ++#define CSTART CTRL('q') ++#define CSTOP CTRL('s') ++#define CLNEXT CTRL('v') ++#define CDISCARD CTRL('o') ++#define CWERASE CTRL('w') ++#define CREPRINT CTRL('r') ++#define CEOT CEOF ++/* compat */ ++#define CBRK CEOL ++#define CRPRNT CREPRINT ++#define CFLUSH CDISCARD ++ ++/* PROTECTED INCLUSION ENDS HERE */ ++#endif /* !_SYS_TTYDEFAULTS_H_ */ ++ ++/* ++ * #define TTYDEFCHARS to include an array of default control characters. ++ */ ++#ifdef TTYDEFCHARS ++cc_t ttydefchars[NCCS] = { ++ CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT, ++ CERASE2, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT, ++ CDISCARD, CMIN, CTIME, CSTATUS, _POSIX_VDISABLE ++}; ++#undef TTYDEFCHARS ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ucontext.h +@@ -0,0 +1,48 @@ ++/* Data structures for user-level context switching. Generic version. ++ Copyright (C) 1997-1999, 2001-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* This file's definitions suffice for any platform where all ++ the machine-specific state is described in `struct sigcontext'. */ ++ ++#ifndef _SYS_UCONTEXT_H ++#define _SYS_UCONTEXT_H 1 ++ ++#include ++#include ++ ++/* We need the signal context definitions even if they are not used ++ included in . */ ++#include ++ ++/* This include file defines the type 'mcontext_t'. */ ++#include ++ ++/* Userlevel context. */ ++typedef struct ucontext ++ { ++ __sigset_t uc_sigmask; ++ mcontext_t uc_mcontext; ++ struct ucontext *uc_link; ++ stack_t uc_stack; ++ int uc_flags; ++#define UCF_SWAPPED 0x00000001 /* Used by swapcontext(3). */ ++ int __unused1[4]; ++ } ucontext_t; ++ ++#endif /* sys/ucontext.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/syscalls-inline.h +@@ -0,0 +1,59 @@ ++/* prototypes of generally used "inline syscalls" ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef KFREEBSD_INLINE_SYSCALLS_H ++#define KFREEBSD_INLINE_SYSCALLS_H ++ ++#include ++#define __need_sigset_t ++#include ++ ++#include ++ ++struct iovec; ++struct rusage; ++struct timespec; ++ ++int __syscall_open(const char *path, int flags, ...); ++int __syscall_close(int fd); ++libc_hidden_proto (__syscall_open) ++libc_hidden_proto (__syscall_close) ++ ++ssize_t __syscall_read(int fd, void *buf, size_t nbyte); ++ssize_t __syscall_write(int fd, const void *buf, size_t nbyte); ++ssize_t __syscall_writev(int fd, const struct iovec *iovp, int iovcnt); ++libc_hidden_proto (__syscall_read) ++libc_hidden_proto (__syscall_write) ++libc_hidden_proto (__syscall_writev) ++ ++ssize_t __syscall_readlink(const char *path, char *buf, size_t bufsiz); ++libc_hidden_proto (__syscall_readlink) ++ ++int __syscall_fcntl(int fd, int cmd, ...); ++int __syscall_fork(void); ++int __syscall_wait4(int pid, int *status, int options, struct rusage *rusage); ++int __syscall_sigsuspend (const sigset_t *set); ++int __syscall_nanosleep (const struct timespec *requested_time, struct timespec *remaining); ++libc_hidden_proto (__syscall_fcntl) ++libc_hidden_proto (__syscall_fork) ++libc_hidden_proto (__syscall_wait4) ++libc_hidden_proto (__syscall_sigsuspend) ++libc_hidden_proto (__syscall_nanosleep) ++ ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/syscalls.list +@@ -0,0 +1,186 @@ ++# File name Caller Syscall name # args Strong name Weak names ++sys_access - access i:si __syscall_access ++acl_aclcheck_fd - acl_aclcheck_fd i:iip __acl_aclcheck_fd ++acl_aclcheck_file - acl_aclcheck_file i:sip __acl_aclcheck_file ++acl_delete_fd - acl_delete_fd i:ii __acl_delete_fd ++acl_delete_file - acl_delete_file i:si __acl_delete_file ++acl_get_fd - acl_get_fd i:iip __acl_get_fd ++acl_get_file - acl_get_file i:sip __acl_get_file ++acl_set_fd - acl_set_fd i:iip __acl_set_fd ++acl_set_file - acl_set_file i:sip __acl_set_file ++sys_aio_cancel - aio_cancel i:ip __syscall_aio_cancel ++sys_aio_error - aio_error i:p __syscall_aio_error ++sys_aio_read - aio_read i:p __syscall_aio_read ++sys_aio_return - aio_return i:p __syscall_aio_return ++sys_aio_suspend - aio_suspend i:bnP __syscall_aio_suspend ++sys_aio_waitcomplete - aio_waitcomplete i:pp __syscall_aio_waitcomplete ++sys_aio_write - aio_write i:p __syscall_aio_write ++sys_clock_getres - clock_getres i:ip __syscall_clock_getres ++sys_clock_gettime - clock_gettime i:ip __syscall_clock_gettime ++sys_clock_settime - clock_settime i:ip __syscall_clock_settime ++sys_execve - execve i:ppp __syscall_execve ++extattrctl - extattrctl i:sisI extattrctl ++extattr_delete_file - extattr_delete_file i:ss extattr_delete_file ++extattr_get_file - extattr_get_file i:ssbn extattr_get_file ++extattr_set_file - extattr_set_file i:ssbn extattr_set_file ++fhopen - fhopen i:pi fhopen ++sys_fork - fork i: __syscall_fork fork ++sys_fhstat - fhstat i:pp __syscall_fhstat ++sys_getfsstat - getfsstat i:pii __syscall_getfsstat ++sys_statfs - statfs i:sp __syscall_statfs ++sys_fstatfs - fstatfs i:ip __syscall_fstatfs ++sys_fhstatfs - fhstatfs i:pp __syscall_fhstatfs ++sys_fstat - fstat i:ip __syscall_fstat ++sys_ftruncate - ftruncate i:ii __syscall_ftruncate ++sys_freebsd6_ftruncate - freebsd6_ftruncate i:iii __syscall_freebsd6_ftruncate ++futimes - futimes i:ip __futimes futimes ++sys_getcwd - getcwd i:bn __syscall_getcwd ++sys_getdents - getdents i:ibn __syscall_getdents ++sys_getdirentries - getdirentries i:ibnP __syscall_getdirentries ++getfh - getfh i:sp getfh ++sys_getlogin - getlogin i:bn __syscall_getlogin ++getpgid - getpgid i:i __getpgid __getpgid_internal getpgid ++getpgrp - getpgrp i: getpgrp ++getresgid - getresgid i:ppp getresgid ++getresuid - getresuid i:ppp getresuid ++getrlimit - getrlimit i:ip __getrlimit getrlimit getrlimit64 ++getsid - getsid i:i getsid ++issetugid - issetugid i: issetugid ++jail - jail i:p jail ++kenv - kenv i:issi kenv ++kldfind - kldfind i:s kldfind ++kldfirstmod - kldfirstmod i:i kldfirstmod ++kldload - kldload i:s kldload ++kldnext - kldnext i:i kldnext ++kldstat - kldstat i:ip kldstat ++kldsym - kldsym i:iip kldsym ++kldunload - kldunload i:i kldunload ++kldunloadf - kldunloadf i:ii kldunloadf ++ktrace - ktrace i:siii ktrace ++lchflags - lchflags i:si lchflags ++lchmod - lchmod i:si __lchmod lchmod ++lchown - lchown i:sii __lchown lchown ++sys_lio_listio - lio_listio i:ibnP __syscall_lio_listio ++sys_lseek - lseek i:iii __syscall_lseek ++sys_freebsd6_lseek - freebsd6_lseek i:iiii __syscall_freebsd6_lseek ++sys_lstat - lstat i:sp __syscall_lstat ++lutimes - lutimes i:sp __lutimes lutimes ++posix_madvise - madvise i:pii posix_madvise ++minherit - minherit i:aii minherit ++mincore - mincore i:anV mincore ++mlock - mlock i:bn mlock ++mlockall - mlockall i:i mlockall ++mkfifo - mkfifo i:si __mkfifo mkfifo ++sys_mknod - mknod i:sii __syscall_mknod ++sys_mmap - mmap b:aniiii __syscall_mmap ++sys_freebsd6_mmap - freebsd6_mmap b:aniiiii __syscall_freebsd6_mmap ++sys_munmap - munmap i:pi __syscall_munmap ++modfind - modfind i:s modfind ++modfnext - modfnext i:i modfnext ++modnext - modnext i:i modnext ++modstat - modstat i:ip modstat ++mount - mount i:ssiP mount ++msgctl - msgctl i:iip msgctl ++msgget - msgget i:ii msgget ++msgrcv - msgrcv Ci:ibnii __libc_msgrcv msgrcv ++msgsnd - msgsnd Ci:ibni __libc_msgsnd msgsnd ++munlock - munlock i:ai munlock ++munlockall - munlockall i: munlockall ++nanosleep - nanosleep Ci:pp __libc_nanosleep __nanosleep nanosleep ++nmount - nmount i:pii nmount ++sys_nfstat - nfstat i:ip __syscall_nfstat ++sys_nlstat - nlstat i:sp __syscall_nlstat ++sys_nstat - nstat i:sp __syscall_nstat ++ntp_adjtime - ntp_adjtime i:p ntp_adjtime ++obreak - obreak i:a __syscall_obreak ++sys_open - open i:siv __syscall_open ++poll - poll Ci:pii __poll poll ++sys_pread - pread i:ibni __syscall_pread ++sys_freebsd6_pread - freebsd6_pread i:ibnii __syscall_freebsd6_pread ++sys_pwrite - pwrite i:ibni __syscall_pwrite ++sys_freebsd6_pwrite - freebsd6_pwrite i:ibnii __syscall_freebsd6_pwrite ++preadv - preadv Ci:ipii __preadv preadv __preadv64 preadv64 ++pwritev - pwritev Ci:ipii __pwritev pwritev __pwritev64 pwritev64 ++quotactl - quotactl i:siip quotactl ++sys_readv - readv i:ipi __syscall_readv ++rfork - rfork i:i __rfork rfork ++rtprio - rtprio i:iip __rtprio rtprio ++sched_gets - sched_getscheduler i:i __sched_getscheduler sched_getscheduler ++sched_primax - sched_get_priority_max i:i __sched_get_priority_max sched_get_priority_max ++sched_primin - sched_get_priority_min i:i __sched_get_priority_min sched_get_priority_min ++sched_rr_gi - sched_rr_get_interval i:ip __sched_rr_get_interval sched_rr_get_interval ++sched_setp - sched_setparam i:ip __sched_setparam sched_setparam ++sched_sets - sched_setscheduler i:iip __sched_setscheduler sched_setscheduler ++sched_yield - sched_yield i: __sched_yield sched_yield ++semget - semget i:iii semget ++semop - semop i:ipi semop ++bsd_sendfile - sendfile i:iiiippi bsd_sendfile ++setegid - setegid i:i setegid ++seteuid - seteuid i:i seteuid ++setgid - setgid i:i __setgid setgid ++sys_setlogin - setlogin i:s __syscall_setlogin ++setpgid - setpgid i:ii __setpgid setpgid ++setresgid - setresgid i:iii setresgid ++setresuid - setresuid i:iii setresuid ++setrlimit - setrlimit i:ip __setrlimit setrlimit setrlimit64 ++setsid - setsid i: __setsid setsid ++setuid - setuid i:i __setuid setuid ++shmat - shmat i:iai shmat ++shmctl - shmctl i:iip shmctl ++shmdt - shmdt i:a shmdt ++shmget - shmget i:iii shmget ++sys_sigaction - sigaction i:ipp __syscall_sigaction ++sigpending - sigpending i:p sigpending ++sigprocmask - sigprocmask i:iPP __sigprocmask sigprocmask ++sigsuspend - sigsuspend Ci:p __sigsuspend sigsuspend ++sigwaitinfo - sigwaitinfo Ci:pp __sigwaitinfo sigwaitinfo ++sigtimedwait - sigtimedwait Ci:ppP __sigtimedwait sigtimedwait ++sigqueue - sigqueue i:iii __sigqueue sigqueue ++sys_stat - stat i:sp __syscall_stat ++sysarch - sysarch i:ip __sysarch sysarch ++sysctl - sysctl i:pibNbn __sysctl sysctl ++sys_truncate - truncate i:sii __syscall_truncate ++sys_freebsd6_truncate - freebsd6_truncate i:si __syscall_freebsd6_truncate ++undelete - undelete i:s undelete ++unmount - unmount i:si unmount ++utrace - utrace i:bn utrace ++sys_writev - writev i:ipi __syscall_writev ++yield - yield i: __syscall_yield ++wait4 - wait4 i:iWiP __syscall_wait4 __wait4 wait4 ++sys_close - close i:i __syscall_close ++sys_fcntl - fcntl i:iiF __syscall_fcntl ++sys_write - write i:ibn __syscall_write ++sys_read - read i:ibn __syscall_read ++sys_connect - connect i:ipi __syscall_connect ++sys_bind - bind i:ipi __syscall_bind ++sys_sendto - sendto i:ibnibn __syscall_sendto ++sys_nanosleep EXTRA nanosleep i:pp __syscall_nanosleep ++sys_sigsuspend EXTRA sigsuspend i:p __syscall_sigsuspend ++swapcontext - swapcontext i:pp __swapcontext swapcontext ++swapon - swapon i:s swapon ++swapoff - swapoff i:s swapoff ++getcontext - getcontext i:p __getcontext getcontext ++setcontext - setcontext i:p __setcontext setcontext ++kqueue EXTRA kqueue i: __kqueue kqueue ++kevent EXTRA kevent i:ipipip __kevent kevent ++sys_umtx - _umtx_op i:piipp __syscall__umtx_op ++sys_cpuset_getaffinity - cpuset_getaffinity i:iiiip __syscall_cpuset_getaffinity ++sys_cpuset_setaffinity - cpuset_setaffinity i:iiiip __syscall_cpuset_setaffinity ++sys_faccessat - faccessat i:isii __syscall_faccessat ++sys_fchmodat - fchmodat i:isii __syscall_fchmodat ++sys_fchownat - fchownat i:isiii __syscall_fchownat ++sys_fexecve - fexecve i:ipp __syscall_fexecve ++sys_fstatat - fstatat i:ispi __syscall_fstatat ++sys_futimesat - futimesat i:isp __syscall_futimesat ++sys_linkat - linkat i:isisi __syscall_linkat ++sys_mkdirat - mkdirat i:isi __syscall_mkdirat ++sys_mkfifoat - mkfifoat i:isi __syscall_mkfifoat ++sys_mknodat - mknodat i:isii __syscall_mknodat ++sys_openat - openat i:isii __syscall_openat ++sys_readlinkat - readlinkat i:issi __syscall_readlinkat ++sys_renameat - renameat i:isis __syscall_renameat ++sys_symlinkat - symlinkat i:sis __syscall_symlinkat ++sys_unlinkat - unlinkat i:isi __syscall_unlinkat ++sys_shm_open - shm_open i:sii __syscall_shm_open ++sys_shm_unlink - shm_unlink i:s __syscall_shm_unlink ++readlink - readlink i:spi __syscall_readlink __readlink readlink +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/syscalls.list.orig +@@ -0,0 +1,185 @@ ++# File name Caller Syscall name # args Strong name Weak names ++sys_access - access i:si __syscall_access ++acl_aclcheck_fd - acl_aclcheck_fd i:iip __acl_aclcheck_fd ++acl_aclcheck_file - acl_aclcheck_file i:sip __acl_aclcheck_file ++acl_delete_fd - acl_delete_fd i:ii __acl_delete_fd ++acl_delete_file - acl_delete_file i:si __acl_delete_file ++acl_get_fd - acl_get_fd i:iip __acl_get_fd ++acl_get_file - acl_get_file i:sip __acl_get_file ++acl_set_fd - acl_set_fd i:iip __acl_set_fd ++acl_set_file - acl_set_file i:sip __acl_set_file ++sys_aio_cancel - aio_cancel i:ip __syscall_aio_cancel ++sys_aio_error - aio_error i:p __syscall_aio_error ++sys_aio_read - aio_read i:p __syscall_aio_read ++sys_aio_return - aio_return i:p __syscall_aio_return ++sys_aio_suspend - aio_suspend i:bnP __syscall_aio_suspend ++sys_aio_waitcomplete - aio_waitcomplete i:pp __syscall_aio_waitcomplete ++sys_aio_write - aio_write i:p __syscall_aio_write ++sys_clock_getres - clock_getres i:ip __syscall_clock_getres ++sys_clock_gettime - clock_gettime i:ip __syscall_clock_gettime ++sys_clock_settime - clock_settime i:ip __syscall_clock_settime ++sys_execve - execve i:ppp __syscall_execve ++extattrctl - extattrctl i:sisI extattrctl ++extattr_delete_file - extattr_delete_file i:ss extattr_delete_file ++extattr_get_file - extattr_get_file i:ssbn extattr_get_file ++extattr_set_file - extattr_set_file i:ssbn extattr_set_file ++fhopen - fhopen i:pi fhopen ++sys_fork - fork i: __syscall_fork fork ++sys_fhstat - fhstat i:pp __syscall_fhstat ++sys_getfsstat - getfsstat i:pii __syscall_getfsstat ++sys_statfs - statfs i:sp __syscall_statfs ++sys_fstatfs - fstatfs i:ip __syscall_fstatfs ++sys_fhstatfs - fhstatfs i:pp __syscall_fhstatfs ++sys_fstat - fstat i:ip __syscall_fstat ++sys_ftruncate - ftruncate i:ii __syscall_ftruncate ++sys_freebsd6_ftruncate - freebsd6_ftruncate i:iii __syscall_freebsd6_ftruncate ++futimes - futimes i:ip __futimes futimes ++sys_getcwd - getcwd i:bn __syscall_getcwd ++sys_getdents - getdents i:ibn __syscall_getdents ++sys_getdirentries - getdirentries i:ibnP __syscall_getdirentries ++getfh - getfh i:sp getfh ++sys_getlogin - getlogin i:bn __syscall_getlogin ++getpgid - getpgid i:i __getpgid __getpgid_internal getpgid ++getpgrp - getpgrp i: getpgrp ++getresgid - getresgid i:ppp getresgid ++getresuid - getresuid i:ppp getresuid ++getrlimit - getrlimit i:ip __getrlimit getrlimit getrlimit64 ++getsid - getsid i:i getsid ++issetugid - issetugid i: issetugid ++jail - jail i:p jail ++kenv - kenv i:issi kenv ++kldfind - kldfind i:s kldfind ++kldfirstmod - kldfirstmod i:i kldfirstmod ++kldload - kldload i:s kldload ++kldnext - kldnext i:i kldnext ++kldstat - kldstat i:ip kldstat ++kldsym - kldsym i:iip kldsym ++kldunload - kldunload i:i kldunload ++kldunloadf - kldunloadf i:ii kldunloadf ++ktrace - ktrace i:siii ktrace ++lchmod - lchmod i:si __lchmod lchmod ++lchown - lchown i:sii __lchown lchown ++sys_lio_listio - lio_listio i:ibnP __syscall_lio_listio ++sys_lseek - lseek i:iii __syscall_lseek ++sys_freebsd6_lseek - freebsd6_lseek i:iiii __syscall_freebsd6_lseek ++sys_lstat - lstat i:sp __syscall_lstat ++lutimes - lutimes i:sp __lutimes lutimes ++posix_madvise - madvise i:pii posix_madvise ++minherit - minherit i:aii minherit ++mincore - mincore i:anV mincore ++mlock - mlock i:bn mlock ++mlockall - mlockall i:i mlockall ++mkfifo - mkfifo i:si __mkfifo mkfifo ++sys_mknod - mknod i:sii __syscall_mknod ++sys_mmap - mmap b:aniiii __syscall_mmap ++sys_freebsd6_mmap - freebsd6_mmap b:aniiiii __syscall_freebsd6_mmap ++sys_munmap - munmap i:pi __syscall_munmap ++modfind - modfind i:s modfind ++modfnext - modfnext i:i modfnext ++modnext - modnext i:i modnext ++modstat - modstat i:ip modstat ++mount - mount i:ssiP mount ++msgctl - msgctl i:iip msgctl ++msgget - msgget i:ii msgget ++msgrcv - msgrcv Ci:ibnii __libc_msgrcv msgrcv ++msgsnd - msgsnd Ci:ibni __libc_msgsnd msgsnd ++munlock - munlock i:ai munlock ++munlockall - munlockall i: munlockall ++nanosleep - nanosleep Ci:pp __libc_nanosleep __nanosleep nanosleep ++nmount - nmount i:pii nmount ++sys_nfstat - nfstat i:ip __syscall_nfstat ++sys_nlstat - nlstat i:sp __syscall_nlstat ++sys_nstat - nstat i:sp __syscall_nstat ++ntp_adjtime - ntp_adjtime i:p ntp_adjtime ++obreak - obreak i:a __syscall_obreak ++sys_open - open i:siv __syscall_open ++poll - poll Ci:pii __poll poll ++sys_pread - pread i:ibni __syscall_pread ++sys_freebsd6_pread - freebsd6_pread i:ibnii __syscall_freebsd6_pread ++sys_pwrite - pwrite i:ibni __syscall_pwrite ++sys_freebsd6_pwrite - freebsd6_pwrite i:ibnii __syscall_freebsd6_pwrite ++preadv - preadv Ci:ipii __preadv preadv __preadv64 preadv64 ++pwritev - pwritev Ci:ipii __pwritev pwritev __pwritev64 pwritev64 ++quotactl - quotactl i:siip quotactl ++sys_readv - readv i:ipi __syscall_readv ++rfork - rfork i:i __rfork rfork ++rtprio - rtprio i:iip __rtprio rtprio ++sched_gets - sched_getscheduler i:i __sched_getscheduler sched_getscheduler ++sched_primax - sched_get_priority_max i:i __sched_get_priority_max sched_get_priority_max ++sched_primin - sched_get_priority_min i:i __sched_get_priority_min sched_get_priority_min ++sched_rr_gi - sched_rr_get_interval i:ip __sched_rr_get_interval sched_rr_get_interval ++sched_setp - sched_setparam i:ip __sched_setparam sched_setparam ++sched_sets - sched_setscheduler i:iip __sched_setscheduler sched_setscheduler ++sched_yield - sched_yield i: __sched_yield sched_yield ++semget - semget i:iii semget ++semop - semop i:ipi semop ++bsd_sendfile - sendfile i:iiiippi bsd_sendfile ++setegid - setegid i:i setegid ++seteuid - seteuid i:i seteuid ++setgid - setgid i:i __setgid setgid ++sys_setlogin - setlogin i:s __syscall_setlogin ++setpgid - setpgid i:ii __setpgid setpgid ++setresgid - setresgid i:iii setresgid ++setresuid - setresuid i:iii setresuid ++setrlimit - setrlimit i:ip __setrlimit setrlimit setrlimit64 ++setsid - setsid i: __setsid setsid ++setuid - setuid i:i __setuid setuid ++shmat - shmat i:iai shmat ++shmctl - shmctl i:iip shmctl ++shmdt - shmdt i:a shmdt ++shmget - shmget i:iii shmget ++sys_sigaction - sigaction i:ipp __syscall_sigaction ++sigpending - sigpending i:p sigpending ++sigprocmask - sigprocmask i:iPP __sigprocmask sigprocmask ++sigsuspend - sigsuspend Ci:p __sigsuspend sigsuspend ++sigwaitinfo - sigwaitinfo Ci:pp __sigwaitinfo sigwaitinfo ++sigtimedwait - sigtimedwait Ci:ppP __sigtimedwait sigtimedwait ++sigqueue - sigqueue i:iii __sigqueue sigqueue ++sys_stat - stat i:sp __syscall_stat ++sysarch - sysarch i:ip __sysarch sysarch ++sysctl - sysctl i:pibNbn __sysctl sysctl ++sys_truncate - truncate i:sii __syscall_truncate ++sys_freebsd6_truncate - freebsd6_truncate i:si __syscall_freebsd6_truncate ++undelete - undelete i:s undelete ++unmount - unmount i:si unmount ++utrace - utrace i:bn utrace ++sys_writev - writev i:ipi __syscall_writev ++yield - yield i: __syscall_yield ++wait4 - wait4 i:iWiP __syscall_wait4 __wait4 wait4 ++sys_close - close i:i __syscall_close ++sys_fcntl - fcntl i:iiF __syscall_fcntl ++sys_write - write i:ibn __syscall_write ++sys_read - read i:ibn __syscall_read ++sys_connect - connect i:ipi __syscall_connect ++sys_bind - bind i:ipi __syscall_bind ++sys_sendto - sendto i:ibnibn __syscall_sendto ++sys_nanosleep EXTRA nanosleep i:pp __syscall_nanosleep ++sys_sigsuspend EXTRA sigsuspend i:p __syscall_sigsuspend ++swapcontext - swapcontext i:pp __swapcontext swapcontext ++swapon - swapon i:s swapon ++swapoff - swapoff i:s swapoff ++getcontext - getcontext i:p __getcontext getcontext ++setcontext - setcontext i:p __setcontext setcontext ++kqueue EXTRA kqueue i: __kqueue kqueue ++kevent EXTRA kevent i:ipipip __kevent kevent ++sys_umtx - _umtx_op i:piipp __syscall__umtx_op ++sys_cpuset_getaffinity - cpuset_getaffinity i:iiiip __syscall_cpuset_getaffinity ++sys_cpuset_setaffinity - cpuset_setaffinity i:iiiip __syscall_cpuset_setaffinity ++sys_faccessat - faccessat i:isii __syscall_faccessat ++sys_fchmodat - fchmodat i:isii __syscall_fchmodat ++sys_fchownat - fchownat i:isiii __syscall_fchownat ++sys_fexecve - fexecve i:ipp __syscall_fexecve ++sys_fstatat - fstatat i:ispi __syscall_fstatat ++sys_futimesat - futimesat i:isp __syscall_futimesat ++sys_linkat - linkat i:isisi __syscall_linkat ++sys_mkdirat - mkdirat i:isi __syscall_mkdirat ++sys_mkfifoat - mkfifoat i:isi __syscall_mkfifoat ++sys_mknodat - mknodat i:isii __syscall_mknodat ++sys_openat - openat i:isii __syscall_openat ++sys_readlinkat - readlinkat i:issi __syscall_readlinkat ++sys_renameat - renameat i:isis __syscall_renameat ++sys_symlinkat - symlinkat i:sis __syscall_symlinkat ++sys_unlinkat - unlinkat i:isi __syscall_unlinkat ++sys_shm_open - shm_open i:sii __syscall_shm_open ++sys_shm_unlink - shm_unlink i:s __syscall_shm_unlink ++readlink - readlink i:spi __syscall_readlink __readlink readlink +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sysconf.c +@@ -0,0 +1,69 @@ ++/* Get file-specific information about a file. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static long int posix_sysconf (int name); ++ ++/* Get the value of the system variable NAME. */ ++long int ++__sysconf (int name) ++{ ++ int request[2]; ++ int value; ++ size_t len = sizeof(value); ++ ++ switch(name) ++ { ++ case _SC_CPUTIME: ++ case _SC_THREAD_CPUTIME: ++#if HP_TIMING_AVAIL ++ // XXX We can add here test for machines which cannot support a ++ // XXX usable TSC. ++ return 200809L; ++#else ++ return -1; ++#endif ++ case _SC_NGROUPS_MAX: ++ request[0] = CTL_KERN; ++ request[1] = KERN_NGROUPS; ++ if (__sysctl(request, 2, &value, &len, NULL, 0) == -1) ++ return NGROUPS_MAX; ++ return (long)value; ++ case _SC_ARG_MAX: ++ request[0] = CTL_KERN; ++ request[1] = KERN_ARGMAX; ++ if (__sysctl(request, 2, &value, &len, NULL, 0) == -1) ++ return ARG_MAX; ++ return (long)value; ++ } ++ return posix_sysconf (name); ++} ++ ++/* Now the POSIX version. */ ++#undef __sysconf ++#define __sysconf static posix_sysconf ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sysctlbyname.c +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* Read or write system parameters. */ ++int ++__sysctlbyname (const char *name, void *oldval, size_t *oldlenp, void *newval, size_t newlen) ++{ ++ int request[CTL_MAXNAME+2]; ++ size_t requestlen = CTL_MAXNAME+2; ++ ++ if (__sysctlnametomib(name, request, &requestlen) < 0) ++ return -1; ++ ++ /* Now call sysctl using the binary encoded request. */ ++ return __sysctl (request, requestlen, ++ oldval, oldlenp, newval, newlen); ++} ++ ++weak_alias (__sysctlbyname, sysctlbyname) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sysctlnametomib.c +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++int ++__sysctlnametomib (const char *name, int *mibp, size_t *sizep) ++{ ++ /* Convert the string NAME to a binary encoded request. The kernel ++ contains a routine for doing this, called "name2oid". But the way ++ to call it is a little bit strange. */ ++ int name2oid_request[2] = { 0, 3 }; ++ int retval; ++ ++ *sizep *= sizeof (int); ++ retval = __sysctl (name2oid_request, 2, mibp, sizep, (void *) name, strlen (name)); ++ *sizep /= sizeof (int); ++ return retval; ++} ++ ++weak_alias (__sysctlnametomib, sysctlnametomib) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/tcdrain.c +@@ -0,0 +1,41 @@ ++/* Copyright (C) 1995, 1996, 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Wait for pending output to be written on FD. */ ++int ++__libc_tcdrain (int fd) ++{ ++ if (SINGLE_THREAD_P) ++ return __ioctl (fd, TIOCDRAIN); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ++ int result = __ioctl (fd, TIOCDRAIN); ++ ++ LIBC_CANCEL_RESET (oldtype); ++ ++ return result; ++} ++weak_alias (__libc_tcdrain, tcdrain) ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/tcflow.c +@@ -0,0 +1,4 @@ ++/* just use internal functions */ ++#define tcgetattr __tcgetattr ++#define write __write ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/telldir.c +@@ -0,0 +1,2 @@ ++/* Avoid , which doesn't pass the testsuite. */ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/testrtsig.h +@@ -0,0 +1,44 @@ ++/* Test whether RT signals are really available. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#include ++ ++static int ++kernel_has_rtsig (void) ++{ ++#if __ASSUME_REALTIME_SIGNALS ++ return 1; ++#else ++ ++ int request[2] = { CTL_KERN, KERN_OSRELDATE}; ++ size_t len; ++ int val; ++ ++ len = sizeof (val); ++ if (__sysctl (request, 2, &val, &len, NULL, 0) < 0) ++ return 0; ++ if ( val < 700050) /* FreeBSD 7.0 is 700055 */ ++ return 0; ++ return 1; ++#endif ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/truncate.c +@@ -0,0 +1,52 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_truncate (const char *__file, __off_t __length) __THROW; ++libc_hidden_proto (__syscall_truncate) ++extern int __syscall_freebsd6_truncate (const char *__file, int __unused1, ++ __off_t __length) __THROW; ++libc_hidden_proto (__syscall_freebsd6_truncate) ++ ++int ++__truncate (const char *file, __off_t length) ++{ ++ int result; ++ ++ /* First try the new syscall. */ ++ result = INLINE_SYSCALL (truncate, 2, file, length); ++ ++#ifndef __ASSUME_TRUNCATE_SYSCALL ++ if (result == -1 && errno == ENOSYS) ++ /* New syscall not available, us the old one. */ ++ result = INLINE_SYSCALL (freebsd6_truncate, 3, file, 0, length); ++#endif ++ ++ return result; ++} ++ ++weak_alias (__truncate, truncate) ++ ++/* 'truncate64' is the same as 'truncate', because __off64_t == __off_t. */ ++strong_alias (__truncate, __truncate64) ++weak_alias (__truncate64, truncate64) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/truncate64.c +@@ -0,0 +1 @@ ++/* 'truncate64' is the same as 'truncate', because __off64_t == __off_t. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ttyname.c +@@ -0,0 +1,67 @@ ++/* Copyright (C) 1991,92,93,96,97,98,2000,2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Static buffer in `ttyname'. */ ++libc_freeres_ptr (static char *ttyname_buf); ++ ++static const char dev[] = "/dev"; ++ ++/* Return the pathname of the terminal FD is open on, or NULL on errors. ++ The returned storage is good only until the next call to this function. */ ++char * ++ttyname (fd) ++ int fd; ++{ ++ static size_t buflen; ++ struct fiodgname_arg fgn; ++ ++ if (!__isatty (fd)) ++ return NULL; ++ ++ if (buflen == 0) ++ { ++ buflen = 4095; ++ ttyname_buf = (char *) malloc (buflen + 1); ++ if (ttyname_buf == NULL) ++ { ++ buflen = 0; ++ return NULL; ++ } ++ } ++ ++ /* Prepare the result buffer. */ ++ memcpy (ttyname_buf, dev, sizeof (dev) - 1); ++ ttyname_buf[sizeof (dev) - 1] = '/'; ++ ++ fgn.buf = ttyname_buf + sizeof (dev); ++ fgn.len = buflen - sizeof (dev); ++ ++ if (__ioctl(fd, FIODGNAME, &fgn) == -1) ++ { ++ return NULL; ++ } ++ ++ return ttyname_buf; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ttyname_r.c +@@ -0,0 +1,77 @@ ++/* Copyright (C) 1991,92,93,95,96,97,98,2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static const char dev[] = "/dev"; ++ ++/* Store at most BUFLEN character of the pathname of the terminal FD is ++ open on in BUF. Return 0 on success, otherwise an error number. */ ++int ++__ttyname_r (fd, buf, buflen) ++ int fd; ++ char *buf; ++ size_t buflen; ++{ ++ int ret; ++ struct fiodgname_arg fgn; ++ ++ /* Test for the absolute minimal size. This makes life easier inside ++ the loop. */ ++ if (!buf) ++ { ++ __set_errno (EINVAL); ++ return EINVAL; ++ } ++ ++ if (buflen < (int) (sizeof (dev) + 1)) ++ { ++ __set_errno (ERANGE); ++ return ERANGE; ++ } ++ ++ if (!__isatty (fd)) ++ { ++ __set_errno (ENOTTY); ++ return ENOTTY; ++ } ++ ++ /* Prepare the result buffer. */ ++ memcpy (buf, dev, sizeof (dev) - 1); ++ buf[sizeof (dev) - 1] = '/'; ++ ++ fgn.buf = buf + sizeof (dev); ++ fgn.len = buflen - sizeof (dev); ++ ++ ret = __ioctl(fd, FIODGNAME, &fgn); ++ if (ret == -1) ++ { ++ __set_errno (EBADF); ++ return EBADF; ++ } ++ ++ return 0; ++} ++ ++weak_alias (__ttyname_r, ttyname_r) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ulimit.c +@@ -0,0 +1,2 @@ ++/* just use linux variant */ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/uname.c +@@ -0,0 +1,110 @@ ++/* Copyright (C) 2002, 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible . ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#define SYSNAME "GNU/kFreeBSD" ++#define SYSNAME_LEN 13 ++ ++/* Check for bounds in pre-processor */ ++#if SYSNAME_LEN > _UTSNAME_SYSNAME_LENGTH ++#error ++#endif ++ ++/* Put information about the system in NAME. */ ++int ++__uname (struct utsname *name) ++{ ++ int request[2] = { CTL_KERN }; ++ size_t len; ++ ++ /* Fill sysname: "uname -s". */ ++ strcpy (name->sysname, SYSNAME); ++ ++ /* Fill nodename: "uname -n". Fetch sysctl "kern.hostname". */ ++ request[1] = KERN_HOSTNAME; ++ len = sizeof (name->nodename); ++ if (__sysctl (request, 2, name->nodename, &len, NULL, 0) >= 0) ++ { ++ if (len < sizeof (name->nodename)) ++ name->nodename[len] = '\0'; ++ } ++ ++ /* Fill release: "uname -r". Fetch sysctl "kern.osrelease". */ ++ request[1] = KERN_OSRELEASE; ++ len = sizeof (name->release); ++ if (__sysctl (request, 2, name->release, &len, NULL, 0) >= 0) ++ { ++ if (len < sizeof (name->release)) ++ name->release[len] = '\0'; ++ } ++ ++ /* Fill version: "uname -v". Fetch sysctl "kern.version". */ ++ request[1] = KERN_VERSION; ++ len = sizeof (name->version); ++ if (__sysctl (request, 2, name->version, &len, NULL, 0) >= 0) ++ { ++ if (len < sizeof (name->version)) ++ name->version[len] = '\0'; ++ } ++ ++ /* Remove trailing whitespace. Turn non-trailing whitespace to ++ spaces. */ ++ { ++ char *p0 = name->version; ++ char *p = p0 + __strnlen (p0, sizeof (name->version)); ++ ++ while (p > p0 && (p[-1] == '\t' || p[-1] == '\n' || p[-1] == ' ')) ++ *--p = '\0'; ++ ++ while (p > p0) ++ { ++ --p; ++ if (*p == '\t' || *p == '\n') ++ *p = ' '; ++ } ++ } ++ ++#ifdef __x86_64__ ++ /* Check for bounds in pre-processor */ ++# if 7 > _UTSNAME_MACHINE_LENGTH ++# error ++# endif ++ /* Pristine FreeBSD kernel would return "amd64". Avoid that. */ ++ strcpy (name->machine, "x86_64"); ++#else ++ /* Fill machine: "uname -m". Fetch sysctl "hw.machine". */ ++ request[0] = CTL_HW; ++ request[1] = HW_MACHINE; ++ len = sizeof (name->machine); ++ if (__sysctl (request, 2, name->machine, &len, NULL, 0) >= 0) ++ { ++ if (len < sizeof (name->machine)) ++ name->machine[len] = '\0'; ++ } ++#endif ++ ++ return 0; ++} ++libc_hidden_def (__uname) ++weak_alias (__uname, uname) ++libc_hidden_def (uname) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/unlinkat.c +@@ -0,0 +1,136 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_unlinkat (int fd, const char *file, int flag); ++libc_hidden_proto (__syscall_unlinkat) ++ ++libc_hidden_proto (__unlink) ++ ++/* Remove the link named NAME. */ ++int ++unlinkat (fd, file, flag) ++ int fd; ++ const char *file; ++ int flag; ++{ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result = INLINE_SYSCALL (unlinkat, 3, fd, file, flag); ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (flag & ~AT_REMOVEDIR) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ if (fd != AT_FDCWD && file[0] != '/') ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t filelen; ++ ++ if (fd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ filelen = strlen (file); ++ if (__builtin_expect (filelen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len + filelen); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, file); ++ file = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ if (flag & AT_REMOVEDIR) ++ return __rmdir (file); ++ else ++ return __unlink (file); ++#endif ++} ++stub_warning(unlinkat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/unlockpt.c +@@ -0,0 +1,45 @@ ++/* Copyright (C) 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++ ++int ++__unlockpt (int fd) ++{ ++ struct stat64 st; ++ ++ /* there is no need/way to do unlocking of slave pseudo-terminal device, ++ just check whether fd might be valid master pseudo-terminal device */ ++ ++ if (__fxstat64 (_STAT_VER, fd, &st) < 0) ++ return -1; ++ ++ if (!(S_ISCHR (st.st_mode))) ++ { ++ __set_errno (ENOTTY); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++weak_alias (__unlockpt, unlockpt) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/usleep.c +@@ -0,0 +1,50 @@ ++/* Implementation of the BSD usleep function using nanosleep. ++ Copyright (C) 1996-1997, 1999, 2001-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++int ++usleep (useconds_t useconds) ++{ ++ unsigned int sec; ++ unsigned int usec; ++ struct timespec ts; ++ ++ /* POSIX:2001 says that useconds >= 1000000 is invalid; nevertheless let's ++ be forgiving. */ ++ if (__builtin_expect (useconds < 1000000, 1)) ++ { ++ sec = 0; ++ usec = useconds; ++ } ++ else ++ { ++ sec = useconds / 1000000; ++ usec = useconds % 1000000; ++ } ++ ++ ts.tv_sec = sec; ++ ts.tv_nsec = usec * 1000; /* Multiply as 32-bit integers. */ ++ ++ /* Note the usleep() is a cancellation point. But since we call ++ nanosleep() which itself is a cancellation point we do not have ++ to do anything here. */ ++ return __nanosleep (&ts, NULL); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ustat.c +@@ -0,0 +1,66 @@ ++/* Return info on filesystem. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++ustat (dev_t dev, struct ustat *ubuf) ++{ ++ int mntcount; ++ struct statfs *mntlist; ++ ++ /* Search for the device among the f_mntfromname fields of all mounted ++ filesystems. */ ++ mntcount = __getmntinfo (&mntlist, 0); ++ if (mntcount == 0 && errno != 0) ++ return -1; ++ if (mntcount > 0) ++ { ++ int i; ++ ++ for (i = 0; i < mntcount; i++) ++ { ++ struct statfs *mnt = &mntlist[i]; ++ struct stat statbuf; ++ ++ if ((__strnlen (mnt->f_mntfromname, sizeof (mnt->f_mntfromname)) ++ < sizeof (mnt->f_mntfromname)) ++ && __xstat (_STAT_VER, mnt->f_mntfromname, &statbuf) >= 0 ++ && S_ISBLK (statbuf.st_mode) ++ && statbuf.st_rdev == dev) ++ { ++ /* Found the device. Now produce the result. */ ++ memset (ubuf, '\0', sizeof (struct ustat)); ++ ubuf->f_tfree = mnt->f_bfree; ++ ubuf->f_tinode = mnt->f_ffree; ++ return 0; ++ } ++ } ++ } ++ ++ /* DEV is not among the mounted devices. */ ++ __set_errno (EINVAL); ++ return -1; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/Makefile +@@ -0,0 +1,6 @@ ++# Additional functions: ++ ++ifeq ($(subdir),login) ++# For . ++sysdep_routines += utmpconv ++endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/bits/utmp.h +@@ -0,0 +1,50 @@ ++/* The `struct utmp' type, describing entries in the utmp file. For FreeBSD. ++ Copyright (C) 1993, 1996-1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _UTMP_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++#include ++ ++ ++#define UT_NAMESIZE 16 ++#define UT_LINESIZE 8 ++#define UT_HOSTSIZE 16 ++ ++ ++struct lastlog ++ { ++ time_t ll_time; ++ char ll_line[UT_LINESIZE]; ++ char ll_host[UT_HOSTSIZE]; ++ }; ++ ++struct utmp ++ { ++ char ut_line[UT_LINESIZE]; ++ char ut_user[UT_NAMESIZE]; ++#define ut_name ut_user ++ char ut_host[UT_HOSTSIZE]; ++ __time_t ut_time; ++ }; ++ ++ ++#define _HAVE_UT_HOST 1 /* We have the ut_host field. */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutmp.c +@@ -0,0 +1,31 @@ ++/* Copyright (C) 1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern int __utmpx_to_utmp (const struct utmpx *, struct utmp *); ++ ++/* Copy the information in UTMPX to UTMP. */ ++void ++getutmp (const struct utmpx *utmpx, struct utmp *utmp) ++{ ++ if (__utmpx_to_utmp (utmpx, utmp) < 0) ++ memset (utmp, '\0', sizeof (struct utmp)); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutmpx.c +@@ -0,0 +1,31 @@ ++/* Copyright (C) 1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern int __utmp_to_utmpx (const struct utmp *, struct utmpx *); ++ ++/* Copy the information in UTMP to UTMPX. */ ++void ++getutmpx (const struct utmp *utmp, struct utmpx *utmpx) ++{ ++ if (__utmp_to_utmpx (utmp, utmpx) < 0) ++ memset (utmpx, '\0', sizeof (struct utmpx)); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxent.c +@@ -0,0 +1,46 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern int __utmp_to_utmpx (const struct utmp *, struct utmpx *); ++ ++/* Static buffer to store the result. */ ++static struct utmpx buffer; ++ ++struct utmpx * ++__getutxent (void) ++{ ++ for (;;) ++ { ++ struct utmp *tmp = __getutent (); ++ ++ if (tmp == NULL) ++ return NULL; ++ ++ if (__utmp_to_utmpx (tmp, &buffer) >= 0) ++ return &buffer; ++ ++ /* Skip entries that cannot be converted to utmpx. */ ++ } ++} ++ ++weak_alias (__getutxent, getutxent) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxid.c +@@ -0,0 +1,68 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern struct utmpx *__getutxent (void); ++ ++struct utmpx * ++getutxid (const struct utmpx *id) ++{ ++ switch (id->ut_type) ++ { ++ case INIT_PROCESS: ++ case LOGIN_PROCESS: ++ case USER_PROCESS: ++ case DEAD_PROCESS: ++ for (;;) ++ { ++ struct utmpx *next = __getutxent (); ++ ++ if (next == NULL) ++ return NULL; ++ ++ switch (next->ut_type) ++ { ++ case INIT_PROCESS: ++ case LOGIN_PROCESS: ++ case USER_PROCESS: ++ case DEAD_PROCESS: ++ if (strncmp (next->ut_id, id->ut_id, sizeof (id->ut_id)) == 0) ++ return next; ++ break; ++ default: ++ break; ++ } ++ } ++ ++ default: ++ for (;;) ++ { ++ struct utmpx *next = __getutxent (); ++ ++ if (next == NULL) ++ return NULL; ++ ++ if (next->ut_type == id->ut_type) ++ return next; ++ } ++ } ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxline.c +@@ -0,0 +1,40 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern struct utmpx *__getutxent (void); ++ ++struct utmpx * ++getutxline (const struct utmpx *line) ++{ ++ for (;;) ++ { ++ struct utmpx *next = __getutxent (); ++ ++ if (next == NULL) ++ return NULL; ++ ++ if ((next->ut_type == LOGIN_PROCESS || next->ut_type == USER_PROCESS) ++ && strncmp (next->ut_line, line->ut_line, __UT_LINESIZE) == 0) ++ return next; ++ } ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/pututxline.c +@@ -0,0 +1,50 @@ ++/* Copyright (C) 1998, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __utmp_to_utmpx (const struct utmp *, struct utmpx *); ++extern int __utmpx_to_utmp (const struct utmpx *, struct utmp *); ++ ++/* Static buffer to store the result. */ ++static struct utmpx buffer; ++ ++struct utmpx * ++pututxline (const struct utmpx *utmpx) ++{ ++ struct utmp tmp; ++ ++ if (__utmpx_to_utmp (utmpx, &tmp) >= 0) ++ { ++ struct utmp *tmpres = __pututline (&tmp); ++ ++ if (tmpres != NULL) ++ { ++ if (__utmp_to_utmpx (tmpres, &buffer) >= 0) ++ return &buffer; ++ ++ /* Hmm. We wrote a 'struct utmp' that we cannot convert back ++ to 'struct utmpx'. Shouldn't happen that often. */ ++ return NULL; ++ } ++ } ++ return NULL; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/updwtmpx.c +@@ -0,0 +1,31 @@ ++/* Copyright (C) 1998, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++extern int __utmpx_to_utmp (const struct utmpx *, struct utmp *); ++ ++void ++updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx) ++{ ++ struct utmp tmp; ++ ++ if (__utmpx_to_utmp (utmpx, &tmp) >= 0) ++ __updwtmp (wtmpx_file, &tmp); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmp-equal.h +@@ -0,0 +1,50 @@ ++/* Copyright (C) 1996-1999,2000-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include ++ ++/* Test whether two entries match. */ ++static int ++__utmp_equal (const struct utmp *entry, const struct utmp *match) ++{ ++ /* This implementation is consistent with the __utmp_to_utmpx function. */ ++ return ++ (!((entry->ut_line[0] == '\0' && entry->ut_name[0] == '\0' ++ && entry->ut_host[0] == '\0') ++ || ((entry->ut_line[0] == '~' || entry->ut_line[0] == '{' ++ || entry->ut_line[0] == '|') ++ && entry->ut_line[1] == '\0')) ++ && ++ !((match->ut_line[0] == '\0' && match->ut_name[0] == '\0' ++ && match->ut_host[0] == '\0') ++ || ((match->ut_line[0] == '~' || match->ut_line[0] == '{' ++ || match->ut_line[0] == '|') ++ && match->ut_line[1] == '\0')) ++ && ++#if _HAVE_UT_ID - 0 ++ (entry->ut_id[0] && match->ut_id[0] ++ ? strncmp (entry->ut_id, match->ut_id, sizeof match->ut_id) == 0 ++ : strncmp (entry->ut_line, match->ut_line, sizeof match->ut_line) == 0) ++#else ++ strncmp (entry->ut_line, match->ut_line, sizeof match->ut_line) == 0 ++#endif ++ ); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmp_file.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmpconv.c +@@ -0,0 +1,227 @@ ++/* Convert between 'struct utmp' and 'struct utmx'. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* We reuse the 'struct utmp' file format also for 'struct utmpx' records. ++ The mapping from 'struct utmp' to 'struct utmpx' is injective; the ++ reverse mapping succeeds only when common conventions are respected. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Compare two 'struct utmpx' records. */ ++int ++__utmpx_equal (const struct utmpx *u1, const struct utmpx *u2) ++{ ++ return (u1->ut_type == u2->ut_type) ++ && (u1->ut_pid == u2->ut_pid) ++ && (strncmp (u1->ut_line, u2->ut_line, __UT_LINESIZE) == 0) ++ && (strncmp (u1->ut_id, u2->ut_id, sizeof (u1->ut_id)) == 0) ++ && (strncmp (u1->ut_user, u2->ut_user, __UT_NAMESIZE) == 0) ++ && (strncmp (u1->ut_host, u2->ut_host, __UT_HOSTSIZE) == 0) ++ && (u1->ut_exit.e_termination == u2->ut_exit.e_termination) ++ && (u1->ut_exit.e_exit == u2->ut_exit.e_exit) ++ && (u1->ut_session == u2->ut_session) ++ && (u1->ut_tv.tv_sec == u2->ut_tv.tv_sec) ++ && (u1->ut_tv.tv_usec == u2->ut_tv.tv_usec) ++ && (memcmp (u1->ut_addr_v6, u2->ut_addr_v6, sizeof (u1->ut_addr_v6)) ++ == 0); ++} ++ ++int ++__utmp_to_utmpx (const struct utmp *u, struct utmpx *ux) ++{ ++ memset (ux, '\0', sizeof (struct utmpx)); ++ ++ if (u->ut_line[0] == '\0' && u->ut_name[0] == '\0' && u->ut_host[0] == '\0') ++ { ++ ux->ut_type = EMPTY; ++ } ++ else ++ { ++ if (u->ut_line[0] == '~' && u->ut_line[1] == '\0') ++ { ++ if (strncmp (u->ut_name, "runlevel", UT_NAMESIZE) == 0) ++ ux->ut_type = RUN_LVL; ++ else if (strncmp (u->ut_name, "reboot", UT_NAMESIZE) == 0) ++ ux->ut_type = BOOT_TIME; ++ else if (strncmp (u->ut_name, "acct", UT_NAMESIZE) == 0) ++ ux->ut_type = ACCOUNTING; ++ else ++ return -1; ++ } ++ else if (u->ut_line[0] == '{' && u->ut_line[1] == '\0') ++ { ++ if (strncmp (u->ut_name, "date", UT_NAMESIZE) == 0) ++ ux->ut_type = NEW_TIME; ++ else ++ return -1; ++ } ++ else if (u->ut_line[0] == '|' && u->ut_line[1] == '\0') ++ { ++ if (strncmp (u->ut_name, "date", UT_NAMESIZE) == 0) ++ ux->ut_type = OLD_TIME; ++ else ++ return -1; ++ } ++ else ++ { ++ if (strncmp (u->ut_name, "INIT", UT_NAMESIZE) == 0) ++ ux->ut_type = INIT_PROCESS; ++ else if (strncmp (u->ut_name, "LOGIN", UT_NAMESIZE) == 0) ++ ux->ut_type = LOGIN_PROCESS; ++ else if (strncmp (u->ut_name, "", UT_NAMESIZE) == 0) ++ ux->ut_type = DEAD_PROCESS; ++ else ++ ux->ut_type = USER_PROCESS; ++ ++ if (ux->ut_type == LOGIN_PROCESS || ux->ut_type == USER_PROCESS) ++ strncpy (ux->ut_user, u->ut_name, UT_NAMESIZE); ++ ++ if (strncmp (u->ut_line, "tty", 3) == 0) ++ { ++ strncpy (ux->ut_line, u->ut_line, UT_LINESIZE); ++ strncpy (ux->ut_id, u->ut_line + 3, sizeof (ux->ut_id)); ++ } ++ else ++ { ++ strncpy (ux->ut_id, u->ut_line, sizeof (ux->ut_id)); ++ } ++ } ++ ++ strncpy (ux->ut_host, u->ut_host, UT_HOSTSIZE); ++ ++ /* Hack: Recover the ut_pid from the hidden place after the host. */ ++ if (__strnlen (u->ut_host, UT_HOSTSIZE) < UT_HOSTSIZE - 2) ++ { ++ const char *hidden = u->ut_host + strlen (u->ut_host) + 1; ++ ++ if (hidden[0] != '\0') ++ { ++ size_t n = UT_HOSTSIZE - strlen (u->ut_host) - 1; ++ char buf[UT_HOSTSIZE]; ++ unsigned long pid; ++ char *endp; ++ ++ strncpy (buf, hidden, n); ++ buf[n] = '\0'; ++ ++ pid = strtoul (buf, &endp, 10); ++ if (endp != buf && *endp == '\0') ++ ux->ut_pid = pid; ++ } ++ } ++ ++ ux->ut_tv.tv_sec = u->ut_time; ++ ux->ut_tv.tv_usec = 0; ++ } ++ ++ return 0; ++} ++ ++int ++__utmpx_to_utmp (const struct utmpx *ux, struct utmp *u) ++{ ++ char buf[10+1]; ++ ++ switch (ux->ut_type) ++ { ++ case EMPTY: ++ strncpy (u->ut_line, "", UT_LINESIZE); ++ strncpy (u->ut_name, "", UT_NAMESIZE); ++ strncpy (u->ut_host, "", UT_HOSTSIZE); ++ break; ++ ++ case RUN_LVL: ++ strncpy (u->ut_line, "~", UT_LINESIZE); ++ strncpy (u->ut_name, "runlevel", UT_NAMESIZE); ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ case BOOT_TIME: ++ strncpy (u->ut_line, "~", UT_LINESIZE); ++ strncpy (u->ut_name, "reboot", UT_NAMESIZE); ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ case NEW_TIME: ++ strncpy (u->ut_line, "{", UT_LINESIZE); ++ strncpy (u->ut_name, "date", UT_NAMESIZE); ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ case OLD_TIME: ++ strncpy (u->ut_line, "|", UT_LINESIZE); ++ strncpy (u->ut_name, "date", UT_NAMESIZE); ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ case INIT_PROCESS: ++ case LOGIN_PROCESS: ++ case USER_PROCESS: ++ case DEAD_PROCESS: ++ if (ux->ut_line[0] != '\0') ++ strncpy (u->ut_line, ux->ut_line, UT_LINESIZE); ++ else ++ strncpy (u->ut_line, ux->ut_id, sizeof (ux->ut_id)); ++ switch (ux->ut_type) ++ { ++ case INIT_PROCESS: ++ strncpy (u->ut_name, "INIT", UT_NAMESIZE); ++ break; ++ case LOGIN_PROCESS: ++ strncpy (u->ut_name, "LOGIN", UT_NAMESIZE); ++ break; ++ case USER_PROCESS: ++ strncpy (u->ut_name, ux->ut_user, UT_NAMESIZE); ++ break; ++ case DEAD_PROCESS: ++ strncpy (u->ut_name, "", UT_NAMESIZE); ++ break; ++ } ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ case ACCOUNTING: ++ strncpy (u->ut_line, "~", UT_LINESIZE); ++ strncpy (u->ut_name, "acct", UT_NAMESIZE); ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ default: ++ return -1; ++ } ++ ++ u->ut_time = ux->ut_tv.tv_sec; ++ ++ /* Hack: Put the ut_pid at a hidden place where there is likely room. */ ++ if (ux->ut_pid != 0) ++ { ++ size_t room = UT_HOSTSIZE - strlen (u->ut_host) - 1; ++ ++ sprintf (buf, "%lu", (unsigned long) ux->ut_pid); ++ if (strlen (buf) <= room) ++ strncpy (u->ut_host + strlen (u->ut_host) + 1, buf, room); ++ } ++ ++ return 0; ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-utmpx/utmp_file.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/wait.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/wait3.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/waitpid.c +@@ -0,0 +1,56 @@ ++/* Copyright (C) 1991,95,96,97,2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Wait for a child matching PID to die. ++ If PID is greater than 0, match any process whose process ID is PID. ++ If PID is (pid_t) -1, match any process. ++ If PID is (pid_t) 0, match any process with the ++ same process group as the current process. ++ If PID is less than -1, match any process whose ++ process group is the absolute value of PID. ++ If the WNOHANG bit is set in OPTIONS, and that child ++ is not already dead, return (pid_t) 0. If successful, ++ return PID and store the dead child's status in STAT_LOC. ++ Return (pid_t) -1 for errors. If the WUNTRACED bit is set in OPTIONS, ++ return status for stopped children; otherwise don't. */ ++pid_t ++__libc_waitpid (pid_t pid, int *stat_loc, int options) ++{ ++ if (SINGLE_THREAD_P) ++ { ++ return INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL); ++ } ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ++ int result = INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL); ++ ++ LIBC_CANCEL_RESET (oldtype); ++ ++ return result; ++} ++ ++weak_alias (__libc_waitpid, __waitpid) ++libc_hidden_weak (__waitpid) ++weak_alias (__libc_waitpid, waitpid) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/writev.c +@@ -0,0 +1,57 @@ ++/* writev for FreeBSD. ++ Copyright (C) 1997-1998, 2000, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++extern ssize_t __syscall_writev (int, const struct iovec *__unbounded, int); ++ ++static ssize_t __atomic_writev_replacement (int, const struct iovec *, ++ int) internal_function; ++ ++ssize_t ++__libc_writev (int fd, const struct iovec *vector, int count) ++{ ++ if (count <= UIO_MAXIOV) ++ { ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (writev, 3, fd, CHECK_N (vector, count), count); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ssize_t result = INLINE_SYSCALL (writev, 3, fd, CHECK_N (vector, count), count); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++ ++ } ++ else ++ return __atomic_writev_replacement (fd, vector, count); ++} ++strong_alias (__libc_writev, __writev) ++weak_alias (__libc_writev, writev) ++ ++#define __libc_writev static internal_function __atomic_writev_replacement ++#include ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/Makefile +@@ -0,0 +1,17 @@ ++32bit-predefine = __i386__ ++64bit-predefine = __x86_64__ ++ ++# Additional header files to be installed in $prefix/include: ++ ++ifeq ($(subdir),misc) ++sysdep_headers += \ ++ sys/io.h \ ++ sys/perm.h ++endif ++ ++# Additional functions, and particular system calls: ++ ++ifeq ($(subdir),misc) ++# For and . ++sysdep_routines += iopl ioperm ++endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/Versions +@@ -0,0 +1,8 @@ ++libc { ++ GLIBC_2.3.4 { ++ iopl; ++ } ++ GLIBC_2.10 { ++ ioperm; ++ } ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/____longjmp_chk.S +@@ -0,0 +1,7 @@ ++/* Jump to the position specified by ENV, causing the ++ setjmp call there to return VAL, or 1 if VAL is 0. ++ void __longjmp (__jmp_buf env, int val). */ ++ ++#warning longjmp_chk unimplemented ++#define __longjmp ____longjmp_chk ++#include<__longjmp.S> +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/mcontext.h +@@ -0,0 +1,167 @@ ++/* Machine-dependent processor state structure for FreeBSD. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. x86_64 version. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++/*- ++ * Copyright (c) 2003 Peter Wemm ++ * Copyright (c) 1999 Marcel Moolenaar ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer ++ * in this position and unchanged. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ * ++ * based on $FreeBSD: src/sys/amd64/include/ucontext.h,v 1.18 2003/11/08 04:39:22 peter Exp $ ++ */ ++ ++#ifdef __i386__ ++ ++/* Whole processor state. */ ++typedef struct ++ { ++ /* ++ * The first 20 fields must match the definition of ++ * sigcontext. So that we can support sigcontext ++ * and ucontext_t at the same time. ++ */ ++ ++ int mc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* Segment registers. */ ++ int mc_gs; ++ int mc_fs; ++ int mc_es; ++ int mc_ds; ++ ++ /* "General" registers. These members are in the order that the i386 ++ `pusha' and `popa' instructions use (`popa' ignores %esp). */ ++ int mc_edi; ++ int mc_esi; ++ int mc_ebp; ++ int mc_isp; /* Not used; sc_esp is used instead. */ ++ int mc_ebx; ++ int mc_edx; ++ int mc_ecx; ++ int mc_eax; ++ ++ int mc_trapno; ++ int mc_err; ++ ++ int mc_eip; /* Instruction pointer. */ ++ int mc_cs; /* Code segment register. */ ++ ++ int mc_efl; /* Processor flags. */ ++ ++ int mc_esp; /* This stack pointer is used. */ ++ int mc_ss; /* Stack segment register. */ ++ ++ int mc_len; /* sizeof(mcontext_t) */ ++#define _MC_FPFMT_NODEV 0x10000 /* device not present or configured */ ++#define _MC_FPFMT_387 0x10001 ++#define _MC_FPFMT_XMM 0x10002 ++ int mc_fpformat; ++#define _MC_FPOWNED_NONE 0x20000 /* FP state not used */ ++#define _MC_FPOWNED_FPU 0x20001 /* FP state came from FPU */ ++#define _MC_FPOWNED_PCB 0x20002 /* FP state came from PCB */ ++ int mc_ownedfp; ++ int mc_spare1[1]; /* align next field to 16 bytes */ ++ /* ++ * See for the internals of mc_fpstate[]. ++ */ ++ int mc_fpstate[128] __attribute__((aligned(16))); ++ int mc_spare2[8]; ++ } mcontext_t; ++ ++#else ++ ++/* Whole processor state. */ ++typedef struct ++ { ++ /* ++ * The first 20 fields must match the definition of ++ * sigcontext. So that we can support sigcontext ++ * and ucontext_t at the same time. ++ */ ++ long mc_onstack; /* XXX - sigcontext compat. */ ++ long mc_rdi; /* machine state (struct trapframe) */ ++ long mc_rsi; ++ long mc_rdx; ++ long mc_rcx; ++ long mc_r8; ++ long mc_r9; ++ long mc_rax; ++ long mc_rbx; ++ long mc_rbp; ++ long mc_r10; ++ long mc_r11; ++ long mc_r12; ++ long mc_r13; ++ long mc_r14; ++ long mc_r15; ++ long mc_trapno; ++ long mc_addr; ++ long mc_flags; ++ long mc_err; ++ long mc_rip; ++ long mc_cs; ++ long mc_rflags; ++ long mc_rsp; ++ long mc_ss; ++ ++ long mc_len; /* sizeof(mcontext_t) */ ++#define _MC_FPFMT_NODEV 0x10000 /* device not present or configured */ ++#define _MC_FPFMT_XMM 0x10002 ++ long mc_fpformat; ++#define _MC_FPOWNED_NONE 0x20000 /* FP state not used */ ++#define _MC_FPOWNED_FPU 0x20001 /* FP state came from FPU */ ++#define _MC_FPOWNED_PCB 0x20002 /* FP state came from PCB */ ++ long mc_ownedfp; ++ /* ++ * See for the internals of mc_fpstate[]. ++ */ ++ long mc_fpstate[64] __attribute__((aligned(16))); ++ long mc_spare[8]; ++} mcontext_t; ++ ++#endif ++ ++/* Traditional BSD names for some members. */ ++#define mc_eflags mc_efl +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/sigcontext.h +@@ -0,0 +1,147 @@ ++/* Machine-dependent signal context structure for FreeBSD. i386 version. ++ Copyright (C) 1991-1992,1994,1997,2001-2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++#ifndef _BITS_SIGCONTEXT_H ++#define _BITS_SIGCONTEXT_H 1 ++ ++#ifdef __i386__ ++ ++/* State of this thread when the signal was taken. ++ The unions below are for compatibility with Linux (whose sigcontext ++ components don't have sc_ prefix) */ ++__extension__ struct sigcontext ++ { ++ __sigset_t sc_mask; /* Blocked signals to restore. */ ++ int sc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* Segment registers. */ ++ union { int sc_gs; int gs; }; ++ union { int sc_fs; int fs; }; ++ union { int sc_es; int es; }; ++ union { int sc_ds; int ds; }; ++ ++ /* "General" registers. These members are in the order that the i386 ++ `pusha' and `popa' instructions use (`popa' ignores %esp). */ ++ union { int sc_edi; int edi; }; ++ union { int sc_esi; int esi; }; ++ union { int sc_ebp; int ebp; }; ++ union { int sc_isp; int isp; }; /* Not used; sc_esp is used instead. */ ++ union { int sc_ebx; int ebx; }; ++ union { int sc_edx; int edx; }; ++ union { int sc_ecx; int ecx; }; ++ union { int sc_eax; int eax; }; ++ ++ union { int sc_trapno; int trapno; }; ++ union { int sc_err; int err; }; ++ ++ union { int sc_eip; int eip; }; /* Instruction pointer. */ ++ union { int sc_cs; int cs; }; /* Code segment register. */ ++ ++ union { int sc_efl; int eflags; }; /* Processor flags. */ ++ ++ union { int sc_esp; int esp; }; /* This stack pointer is used. */ ++ union { int sc_ss; int ss; }; /* Stack segment register. */ ++ ++ int sc_len; /* sizeof(mcontext_t) */ ++ /* ++ * XXX - See and for ++ * the following fields. ++ */ ++ int sc_fpformat; ++ int sc_ownedfp; ++ int sc_spare1[1]; ++ int sc_fpstate[128] __attribute__((aligned(16))); ++ int sc_spare2[8]; ++ }; ++ ++/* Traditional BSD names for some members. */ ++#define sc_sp sc_esp /* Stack pointer. */ ++#define sc_fp sc_ebp /* Frame pointer. */ ++#define sc_pc sc_eip /* Process counter. */ ++#define sc_ps sc_efl ++#define sc_eflags sc_efl ++ ++#if 1 /* FIXME: These need verification. */ ++ ++/* Codes for SIGILL. */ ++#define ILL_PRIVIN_FAULT 1 ++#define ILL_ALIGN_FAULT 14 ++#define ILL_FPOP_FAULT 24 ++ ++/* Codes for SIGBUS. */ ++#define BUS_PAGE_FAULT 12 ++#define BUS_SEGNP_FAULT 26 ++#define BUS_STK_FAULT 27 ++#define BUS_SEGM_FAULT 29 ++ ++#endif ++ ++#else ++ ++__extension__ struct sigcontext ++ { ++ __sigset_t sc_mask; /* Blocked signals to restore. */ ++ long sc_onstack; /* Nonzero if running on sigstack. */ ++ union { long sc_rdi; long rdi;}; ++ union { long sc_rsi; long rsi;}; ++ union { long sc_rdx; long rdx;}; ++ union { long sc_rcx; long rcx;}; ++ union { long sc_r8; long r8;}; ++ union { long sc_r9; long r9;}; ++ union { long sc_rax; long rax;}; ++ union { long sc_rbx; long rbx;}; ++ union { long sc_rbp; long rbp;}; ++ union { long sc_r10; long r10;}; ++ union { long sc_r11; long r11;}; ++ union { long sc_r12; long r12;}; ++ union { long sc_r13; long r13;}; ++ union { long sc_r14; long r14;}; ++ union { long sc_r15; long r15;}; ++ union { long sc_trapno; long trapno;}; ++ union { long sc_addr; long addr;}; ++ union { long sc_flags; long flags;}; ++ union { long sc_err; long err;}; ++ union { long sc_rip; long rip;}; ++ union { long sc_cs; long cs;}; ++ union { long sc_rflags; long rflags;}; ++ union { long sc_rsp; long rsp;}; ++ union { long sc_ss; long ss;}; ++ long sc_len; /* sizeof(mcontext_t) */ ++ /* ++ * XXX - See and for ++ * the following fields. ++ */ ++ long sc_fpformat; ++ long sc_ownedfp; ++ long sc_fpstate[64] __attribute__((aligned(16))); ++ long sc_spare[8]; ++ }; ++ ++/* Traditional BSD names for some members. */ ++#define sc_sp sc_rsp /* Stack pointer. */ ++#define sc_fp sc_rbp /* Frame pointer. */ ++#define sc_pc sc_rip /* Process counter. */ ++ ++#endif ++ ++#endif /* _BITS_SIGCONTEXT_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-cache.h +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-machine.h +@@ -0,0 +1,137 @@ ++/* Machine-dependent ELF dynamic relocation inline functions. FreeBSD/amd64 version. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include_next ++ ++#undef RTLD_START ++ ++/* Initial entry point code for the dynamic linker. ++ The C function `_dl_start' is the real entry point; ++ its return value is the user program's entry point. */ ++#define RTLD_START asm ("\n\ ++.text\n\ ++ .align 16\n\ ++.globl _start\n\ ++# we dont use it: .globl _dl_start_user\n\ ++_start:\n\ ++ # align stack.\n\ ++ andq $-16, %rsp\n\ ++ # save argument pointer.\n\ ++ movq %rdi, %r13\n\ ++ call _dl_start\n\ ++# we dont use it: _dl_start_user:\n\ ++ # Save the user entry point address in %r12.\n\ ++ movq %rax, %r12\n\ ++ # See if we were run as a command with the executable file\n\ ++ # name as an extra leading argument.\n\ ++ movl _dl_skip_args(%rip), %eax\n\ ++ # get the original argument count.\n\ ++ movq 0(%r13), %rdx\n\ ++ # Adjust the pointer to skip _dl_skip_args words.\n\ ++ leaq (%r13,%rax,8), %r13\n\ ++ # Subtract _dl_skip_args from argc.\n\ ++ subl %eax, %edx\n\ ++ # Put argc on adjusted place\n\ ++ movq %rdx, 0(%r13)\n\ ++ # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\ ++ # argc -> rsi\n\ ++ movq %rdx, %rsi\n\ ++ # _dl_loaded -> rdi\n\ ++ movq _rtld_local(%rip), %rdi\n\ ++ # env -> rcx\n\ ++ leaq 16(%r13,%rdx,8), %rcx\n\ ++ # argv -> rdx\n\ ++ leaq 8(%r13), %rdx\n\ ++ # Clear %rbp to mark outermost frame obviously even for constructors.\n\ ++ xorl %ebp, %ebp\n\ ++ # Call the function to run the initializers.\n\ ++ call _dl_init_internal@PLT\n\ ++ # Pass our finalizer function to the user in %rdx, as per ELF ABI draft.\n\ ++ leaq _dl_fini(%rip), %rdx\n\ ++ # And make sure %rdi points to argc stored on the stack.\n\ ++ movq %r13, %rdi\n\ ++ # Pass finalizer function also in %rsi, as per C calling convention.\n\ ++ movq %rdx, %rsi\n\ ++ # Jump to the user's entry point.\n\ ++ jmp *%r12\n\ ++.previous\n\ ++"); ++ ++#if 0 ++Under FreeBSD: ++#define AT_EXECPATH 15 /* Path to the executable. */ ++ ++Under Linux: ++#define AT_PLATFORM 15 /* String identifying platform. */ ++ ++Filled entries from kernel: ++ ++ if (args->execfd != -1) ++ AUXARGS_ENTRY(pos, AT_EXECFD, args->execfd); ++ AUXARGS_ENTRY(pos, AT_PHDR, args->phdr); ++ AUXARGS_ENTRY(pos, AT_PHENT, args->phent); ++ AUXARGS_ENTRY(pos, AT_PHNUM, args->phnum); ++ AUXARGS_ENTRY(pos, AT_PAGESZ, args->pagesz); ++ AUXARGS_ENTRY(pos, AT_FLAGS, args->flags); ++ AUXARGS_ENTRY(pos, AT_ENTRY, args->entry); ++ AUXARGS_ENTRY(pos, AT_BASE, args->base); ++ if (imgp->execpathp != 0) ++ AUXARGS_ENTRY(pos, AT_EXECPATH, imgp->execpathp); ++ AUXARGS_ENTRY(pos, AT_NULL, 0); ++ ++#endif ++ ++#undef DL_PLATFORM_INIT ++#define DL_PLATFORM_INIT dl_platform_kfreebsd_x86_64_init () ++ ++#ifndef _DL_MACHINE_KFREEBSD ++#define _DL_MACHINE_KFREEBSD ++ ++static inline void cpuid(long op, long *rax, long *rdx) ++{ ++ __asm__( ++ "push %%rbx\n\t" ++ "cpuid\n\t" ++ "pop %%rbx\n\t" ++ : "=a" (*rax), ++ "=d" (*rdx) ++ : "0" (op) ++ : "rcx" ++ ); ++} ++ ++extern const char *_self_program_name_from_auxv attribute_hidden; ++ ++ ++static inline void __attribute__ ((unused)) ++dl_platform_kfreebsd_x86_64_init (void) ++{ ++ /* we don't have reasonable AT_PLATFORM from kernel ++ use cpuid to guess AT_HWCAP */ ++ ++ long val, hwcap; ++ ++ cpuid(1, &val, &hwcap); ++ GLRO(dl_hwcap) = hwcap; ++ _self_program_name_from_auxv = GLRO(dl_platform); ++ GLRO(dl_platform) = ELF_MACHINE_NAME; ++} ++ ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-procinfo.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-procinfo.h +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/elf/start.S +@@ -0,0 +1,143 @@ ++/* Startup code for FreeBSD/amd64 ABI. ++ Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Andreas Jaeger , 2001. ++ FreeBSD modification by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* This is the canonical entry point, usually the first thing in the text ++ segment. The SVR4/i386 ABI (pages 3-31, 3-32) says that when the entry ++ point runs, most registers' values are unspecified, except for a few. ++ Blindly applied on amd64: ++ ++ %rdx Contains a function pointer to be registered with `atexit'. ++ This is how the dynamic linker arranges to have DT_FINI ++ functions called for shared libraries that have been loaded ++ before this code runs. ++ ++ %rsp The stack contains the arguments and environment: ++ 0(%rsp) argc ++ 8(%rsp) argv[0] ++ ... ++ (8*argc)(%rsp) NULL ++ (8*(argc+1))(%rsp) envp[0] ++ ... ++ NULL ++ ++ But on amd64 %rsp also have to be 16-byte aligned, ++ standard C calling convention already passes arguments in registers. ++ ++ FreeBSD uses %edi as pointer to arguments and environment, %rsp is passed aligned. ++ On entry from kernel, %rsp=%rdi or %rsp=%rdi-8, ++ on entry from ld.so, glibc might set up it slightly differently. ++ ++ On FreeBSD, we use %rsi for passing function pointer to rtld_fini(). ++ On entry from FreeBSD kernel, %rsi is cleared, %rdx is not cleared, ++ on entry from ld.so, glibc sets both %rsi and %rdx to point to rtld_fini(). ++ ++ Used interface (via %rdi, %rsi) is equal to standard C calling interface for ++ ++ void _start(void *arg, void *rtld_fini()); ++ ++*/ ++ ++#include "bp-sym.h" ++ ++ .text ++ .globl _start ++ .type _start,@function ++_start: ++ /* Clear the frame pointer. The ABI suggests this be done, to mark ++ the outermost frame obviously. */ ++ xorl %ebp, %ebp /* zero extending clears whole rbp */ ++ ++ /* Extract the arguments as encoded on the stack and set up ++ the arguments for __libc_start_main (int (*main) (int, char **, char **), ++ int argc, char *argv, ++ void (*init) (void), void (*fini) (void), ++ void (*rtld_fini) (void), void *stack_end). ++ The arguments are passed via registers and on the stack: ++ main: %rdi ++ argc: %rsi ++ argv: %rdx ++ init: %rcx ++ fini: %r8 ++ rtld_fini: %r9 ++ stack_end: stack. */ ++ ++ movq %rsi, %r9 /* Address of the shared library termination ++ function. */ ++ movq 0(%rdi), %rsi /* argument count. */ ++ leaq 8(%rdi), %rdx /* argv starts just at above argc. */ ++ ++ /* Align the stack to a 16 byte boundary to follow the ABI. */ ++ andq $~15, %rsp ++ ++ pushq %rax /* Push garbage because we push 8 more bytes. */ ++ ++ /* Provide the highest stack address to the user code (for stacks ++ which grow downwards). */ ++ pushq %rsp ++ ++#ifdef SHARED ++ /* Pass address of our own entry points to .fini and .init. */ ++ movq __libc_csu_fini@GOTPCREL(%rip), %r8 ++ movq __libc_csu_init@GOTPCREL(%rip), %rcx ++ ++ movq BP_SYM (main)@GOTPCREL(%rip), %rdi ++ ++ /* Call the user's main function, and exit with its value. ++ But let the libc call main. */ ++ call BP_SYM (__libc_start_main)@PLT ++#else ++ /* Pass address of our own entry points to .fini and .init. */ ++ movq $__libc_csu_fini, %r8 ++ movq $__libc_csu_init, %rcx ++ ++ movq $BP_SYM (main), %rdi ++ ++ /* Call the user's main function, and exit with its value. ++ But let the libc call main. */ ++ call BP_SYM (__libc_start_main) ++#endif ++ ++ hlt /* Crash if somehow `exit' does return. */ ++ ++/* Define a symbol for the first piece of initialized data. */ ++ .data ++ .globl __data_start ++__data_start: ++ .long 0 ++ .weak data_start ++ data_start = __data_start +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/get_clockfreq.c +@@ -0,0 +1 @@ ++#include "../i386/get_clockfreq.c" +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/getcontext.S +@@ -0,0 +1,38 @@ ++/* Save current context. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++.text ++ENTRY(__getcontext) ++ clc ++ movq 0(%rsp), %rsi /* save the return PC value */ ++ ++ DO_CALL (getcontext, 1) ++ jb SYSCALL_ERROR_LABEL ++ ++ addq $8, %rsp /* remove stale return address */ ++ jmp *%rsi ++ ++L(pseudo_end): ++ ret ++ ++PSEUDO_END(__getcontext) ++ ++weak_alias(__getcontext, getcontext) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ioperm.c +@@ -0,0 +1,32 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++int ++ioperm (unsigned long int from, unsigned long int num, int turn_on) ++{ ++ struct i386_ioperm_args args; ++ ++ args.start = from; ++ args.length = num; ++ args.enable = turn_on; ++ ++ return __sysarch (I386_SET_IOPERM, &args); ++} +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/iopl.c +@@ -0,0 +1 @@ ++#include "../i386/iopl.c" +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldconfig.h +@@ -0,0 +1,39 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++#define SYSDEP_KNOWN_INTERPRETER_NAMES \ ++ { "/lib/ld.so.1", FLAG_ELF_LIBC6 }, \ ++ { "/lib/ld-kfreebsd-x86-64.so.1", FLAG_ELF_LIBC6 }, \ ++ { "/lib64/ld-kfreebsd-x86-64.so.1", FLAG_ELF_LIBC6 }, \ ++ { "/libexec/ld-elf.so.1", FLAG_ELF_LIBC5 }, ++ ++#define SYSDEP_KNOWN_LIBRARY_NAMES \ ++ { "libc.so.0.1", FLAG_ELF_LIBC6 }, \ ++ { "libm.so.1", FLAG_ELF_LIBC6 }, \ ++ { "libc.so.4", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.4", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.5", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.5", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.6", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.6", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.7", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.7", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.8", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.8", FLAG_ELF_LIBC5 }, +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldd-rewrite.sed +@@ -0,0 +1,3 @@ ++/LD_TRACE_LOADED_OBJECTS=1/a\ ++add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out" ++s_^\(RTLDLIST=\)\(.*lib\)\(\|64\)\(/[^/]*\)\(-kfreebsd-x86-64\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\4\6 \264\4\5\6"_ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/Makefile +@@ -0,0 +1,4 @@ ++ifeq ($(subdir),linuxthreads) ++CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions \ ++ -fno-asynchronous-unwind-tables $(fno-unit-at-a-time) ++endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/asm/prctl.h +@@ -0,0 +1 @@ ++/* placeholder to make linuxthreads/sysdeps/x86_64/pt-machine.h happy */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/pt-machine.h +@@ -0,0 +1,51 @@ ++/* Machine-dependent pthreads configuration and inline functions. ++ x86-64 FreeBSD version. ++ Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _FREEBSD_PT_MACHINE_H ++#define _FREEBSD_PT_MACHINE_H 1 ++ ++/* ++ almost all parts are common with linux version ++ */ ++ ++#include ++ ++#ifndef __ASSEMBLER__ ++ ++/* and only one FreeBSD specifics */ ++ ++#include ++ ++/* Initialize the thread-unique value. */ ++ ++#undef INIT_THREAD_SELF ++#define INIT_THREAD_SELF(descr, nr) \ ++{ \ ++ long tmp; \ ++ tmp = (long) descr; \ ++ if (sysarch(AMD64_SET_FSBASE, &tmp) != 0) \ ++ { \ ++ abort(); \ ++ } \ ++} ++ ++#endif /* !__ASSEMBLER__ */ ++ ++#endif /* pt-machine.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/sysdep-cancel.h +@@ -0,0 +1,145 @@ ++/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Jakub Jelinek , 2002. ++ Modification for FreeBSD contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#ifndef __ASSEMBLER__ ++# include ++#endif ++ ++/* Syscalls with more than 6 arguments are not supported here. */ ++ ++#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt ++ ++# undef PSEUDO ++# define PSEUDO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ SINGLE_THREAD_P; \ ++ jne L(pseudo_cancel); \ ++ DO_CALL (syscall_name, args); \ ++ jb SYSCALL_ERROR_LABEL; \ ++ ret; \ ++ L(pseudo_cancel): \ ++ /* Save registers that might get destroyed. */ \ ++ SAVESTK_##args \ ++ PUSHARGS_##args \ ++ CENABLE \ ++ /* Restore registers. */ \ ++ POPARGS_##args \ ++ RESTSTK_##args \ ++ /* The return value from CENABLE is argument for CDISABLE. */ \ ++ movq %rax, (%rsp); \ ++ movl $SYS_ify (syscall_name), %eax; \ ++ syscall; \ ++ popq %rdi; cfi_adjust_cfa_offset(-8); \ ++ pushfq; cfi_adjust_cfa_offset(8); \ ++ /* Save %rax since it's the return/error code from the syscall. */ \ ++ movq %rax, 8(%rsp); \ ++ CDISABLE \ ++ popfq; cfi_adjust_cfa_offset(-8); \ ++ /* fetch the error code from the syscall. */ \ ++ popq %rax; cfi_adjust_cfa_offset(-8); \ ++ /* adjust rsp, do not change flags */ \ ++ popq %rdx; cfi_adjust_cfa_offset(-8); \ ++ jb SYSCALL_ERROR_LABEL; \ ++ L(pseudo_end): ++ ++# define PUSHARGS_0 /* Nothing. */ ++# define PUSHARGS_1 PUSHARGS_0 movq %rdi, 8(%rsp); ++# define PUSHARGS_2 PUSHARGS_1 movq %rsi, 16(%rsp); ++# define PUSHARGS_3 PUSHARGS_2 movq %rdx, 24(%rsp); ++# define PUSHARGS_4 PUSHARGS_3 movq %rcx, 32(%rsp); ++# define PUSHARGS_5 PUSHARGS_4 movq %r8, 40(%rsp); ++# define PUSHARGS_6 PUSHARGS_5 movq %r9, 48(%rsp); ++ ++# define POPARGS_0 /* Nothing. */ ++# define POPARGS_1 POPARGS_0 movq 8(%rsp), %rdi; ++# define POPARGS_2 POPARGS_1 movq 16(%rsp), %rsi; ++# define POPARGS_3 POPARGS_2 movq 24(%rsp), %rdx; ++# define POPARGS_4 POPARGS_3 movq 32(%rsp), %r10; ++# define POPARGS_5 POPARGS_4 movq 40(%rsp), %r8; ++# define POPARGS_6 POPARGS_5 movq 48(%rsp), %r9; ++ ++/* We always have to align the stack before calling a function. */ ++# define SAVESTK_0 subq $24, %rsp;cfi_adjust_cfa_offset(24); ++# define SAVESTK_1 SAVESTK_0 ++# define SAVESTK_2 SAVESTK_1 ++# define SAVESTK_3 subq $40, %rsp;cfi_adjust_cfa_offset(40); ++# define SAVESTK_4 SAVESTK_3 ++# define SAVESTK_5 subq $56, %rsp;cfi_adjust_cfa_offset(56); ++# define SAVESTK_6 SAVESTK_5 ++ ++# define RESTSTK_0 /* Nothing. */ ++# define RESTSTK_1 RESTSTK_0 ++# define RESTSTK_2 RESTSTK_1 ++# define RESTSTK_3 addq $16, %rsp;cfi_adjust_cfa_offset(-16); ++# define RESTSTK_4 RESTSTK_3 ++# define RESTSTK_5 addq $32, %rsp;cfi_adjust_cfa_offset(-32); ++# define RESTSTK_6 RESTSTK_5 ++ ++# ifdef IS_IN_libpthread ++# define CENABLE call __pthread_enable_asynccancel; ++# define CDISABLE call __pthread_disable_asynccancel; ++# define __local_multiple_threads __pthread_multiple_threads ++# elif !defined NOT_IN_libc ++# define CENABLE call __libc_enable_asynccancel; ++# define CDISABLE call __libc_disable_asynccancel; ++# define __local_multiple_threads __libc_multiple_threads ++# else ++# define CENABLE call __librt_enable_asynccancel@plt; ++# define CDISABLE call __librt_disable_asynccancel@plt; ++# endif ++ ++# if defined IS_IN_libpthread || !defined NOT_IN_libc ++# ifndef __ASSEMBLER__ ++extern int __local_multiple_threads attribute_hidden; ++# define SINGLE_THREAD_P \ ++ __builtin_expect (__local_multiple_threads == 0, 1) ++# else ++# define SINGLE_THREAD_P cmpl $0, __local_multiple_threads(%rip) ++# endif ++ ++# else ++ ++# ifndef __ASSEMBLER__ ++# define SINGLE_THREAD_P \ ++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ ++ p_header.data.multiple_threads) == 0, 1) ++# else ++# define SINGLE_THREAD_P cmpl $0, %fs:MULTIPLE_THREADS_OFFSET ++# endif ++ ++# endif ++ ++#elif !defined __ASSEMBLER__ ++ ++/* This code should never be used but we define it anyhow. */ ++# define SINGLE_THREAD_P (1) ++# define NO_CANCELLATION 1 ++ ++#endif ++ ++#ifndef __ASSEMBLER__ ++# define RTLD_SINGLE_THREAD_P \ ++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ ++ p_header.data.multiple_threads) == 0, 1) ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/tls.h +@@ -0,0 +1,62 @@ ++/* Definitions for thread-local data handling. linuxthreads/x86-64 version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Modification for FreeBSD by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _FREEBSD_TLS_H ++#define _FREEBSD_TLS_H ++ ++#include ++ ++#ifdef HAVE_TLS_SUPPORT ++ ++# ifndef __ASSEMBLER__ ++ ++#include ++#include ++ ++/* Code to initially initialize the thread pointer. This might need ++ special attention since 'errno' is not yet available and if the ++ operation can cause a failure 'errno' must not be touched. */ ++ ++# undef TLS_INIT_TP ++# define TLS_INIT_TP(descr, secondcall) \ ++ ({ \ ++ void *_descr = (descr); \ ++ tcbhead_t *head = _descr; \ ++ long int _result; \ ++ \ ++ head->tcb = _descr; \ ++ /* For now the thread descriptor is at the same address. */ \ ++ head->self = _descr; \ ++ \ ++ asm volatile ("syscall" \ ++ : "=a" (_result) \ ++ : "0" ((unsigned long int) SYS_sysarch), \ ++ "D" ((unsigned long int) AMD64_SET_FSBASE), \ ++ "S" (&_descr) \ ++ : "memory", "cc", "cx", "dx", "r8", "r9", "r10", "r11"); \ ++ \ ++ _result ? "cannot set %fs base address for thread-local storage" : 0; \ ++ }) ++ ++ ++# endif /* HAVE_TLS_SUPPORT */ ++#endif /* __ASSEMBLER__ */ ++ ++#endif /* tls.h */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/makecontext.S +@@ -0,0 +1,146 @@ ++/* makecontext() for FreeBSD/amd64. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* ++ void makecontext(ucontext_t *ucp, void *func(), int argc, ...); ++ ++ ++ input parameters: ++ ++ rdi ucp ++ rsi func ++ edx argc ++ rcx arg1 -> ucp.rdi ++ r8 arg2 -> ucp.rsi ++ r9 arg3 -> ucp.rdx ++ 8(%rsp) arg4 -> ucp.rcx ++ 16(%rsp) arg5 -> ucp.r8 ++ 24(%rsp) arg6 -> ucp.r9 ++ i*8+24(%rsp) arg(6+i)-> future stack ++ ++*/ ++ ++ENTRY(__makecontext) ++ ++ /* Compute the address of the stack. ++ The information comes from us_stack element. */ ++ movq oSS_SP(%rdi), %rax ++ addq oSS_SIZE(%rdi), %rax ++ ++ /* Put start addr into ucp */ ++ movq %rsi, oRIP(%rdi) ++ ++ /* properly align future stack */ ++ andq $-16, %rax ++ subq $8, %rax ++ ++ /* Put the next context into preserved ucp.rbx ++ (from the uc_link element). */ ++ movq oLINK(%rdi), %rsi ++ movq %rsi, oRBX(%rdi) ++ ++ /* save future registers arguments */ ++ ++ orl %edx, %edx ++ jz L(param_done) ++ ++ decl %edx ++ movq %rcx, oRDI(%rdi) ++ jz L(param_done) ++ ++ decl %edx ++ movq %r8, oRSI(%rdi) ++ jz L(param_done) ++ ++ decl %edx ++ movq %r9, oRDX(%rdi) ++ jz L(param_done) ++ ++ movq 8(%rsp), %rsi ++ decl %edx ++ movq %rsi, oRCX(%rdi) ++ jz L(param_done) ++ ++ movq 16(%rsp), %rcx ++ decl %edx ++ movq %rcx, oR8(%rdi) ++ jz L(param_done) ++ ++ movq 24(%rsp), %rsi ++ decl %edx ++ movq %rsi, oR9(%rdi) ++ jz L(param_done) ++ ++ /* we have to copy some arguments also on the future stack */ ++ movl %edx, %ecx ++ negq %rdx ++ leaq -16(%rax,%rdx,8), %rax /* we a litle bit waste stack space */ ++ orq $8, %rax ++ ++1: movq 24(%rsp,%rcx,8), %rsi ++ movq %rsi,(%rax,%rcx,8) ++ loop 1b ++ ++L(param_done): ++ ++ /* Store the future stack pointer and chain helper code. */ ++ leaq L(exitcode)(%rip), %rdx ++ movq %rax, oRSP(%rdi) ++ movq %rdx, (%rax) ++ ++ /* 'makecontext' returns no value. */ ++ ret ++ ++/***************************************************************************/ ++ ++ /* This is the helper code which gets called if a function which ++ is registered with 'makecontext' returns. In this case we ++ have to install the context listed in the uc_link element of ++ the context 'makecontext' manipulated at the time of the ++ 'makecontext' call. If the pointer is NULL the process must ++ terminate. */ ++ ++L(exitcode): ++ /* we don't bother with extra arguments left on the stack ++ - more than 6 arguments is rare ++ - setcontext changes stacks immediately ++ - exit will call _exit in near future ++ */ ++ ++ testq %rbx, %rbx /* If it is zero exit. */ ++ jz 2f ++ ++ movq %rbx, %rdi ++ call JUMPTARGET(__setcontext) ++ /* If this returns (which can happen if the syscall fails) we'll ++ exit the program with the return error value (-1). */ ++ ++2: movq %rax, %rdi ++ call HIDDEN_JUMPTARGET(exit) ++ /* The 'exit' call should never return. In case it does cause ++ the process to terminate. */ ++ hlt ++END(__makecontext) ++ ++weak_alias(__makecontext, makecontext) ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/pipe.S +@@ -0,0 +1,32 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++.text ++ENTRY (__pipe) ++ DO_CALL (pipe, 1) ++ jb SYSCALL_ERROR_LABEL ++ movl %eax, 0(%rdi) ++ movl %edx, 4(%rdi) ++ xorl %eax, %eax ++L(pseudo_end): ++ ret ++PSEUDO_END (__pipe) ++libc_hidden_def (__pipe) ++weak_alias (__pipe, pipe) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/readelflib.c +@@ -0,0 +1,62 @@ ++/* Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Andreas Jaeger , 1999 and ++ Jakub Jelinek , 1999. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++int process_elf32_file (const char *file_name, const char *lib, int *flag, ++ unsigned int *osversion, char **soname, ++ void *file_contents, size_t file_length); ++int process_elf64_file (const char *file_name, const char *lib, int *flag, ++ unsigned int *osversion, char **soname, ++ void *file_contents, size_t file_length); ++ ++/* Returns 0 if everything is ok, != 0 in case of error. */ ++int ++process_elf_file (const char *file_name, const char *lib, int *flag, ++ unsigned int *osversion, char **soname, void *file_contents, ++ size_t file_length) ++{ ++ ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents; ++ int ret; ++ ++ if (elf_header->e_ident [EI_CLASS] == ELFCLASS32) ++ return process_elf32_file (file_name, lib, flag, osversion, soname, ++ file_contents, file_length); ++ else ++ { ++ ret = process_elf64_file (file_name, lib, flag, osversion, soname, ++ file_contents, file_length); ++ /* x86-64 64bit libraries are always LIBC6. */ ++ if (!ret) ++ *flag = FLAG_X8664_LIB64|FLAG_ELF_LIBC6; ++ return ret; ++ } ++} ++ ++#undef __ELF_NATIVE_CLASS ++#undef process_elf_file ++#define process_elf_file process_elf32_file ++#define __ELF_NATIVE_CLASS 32 ++#include "elf/readelflib.c" ++ ++#undef __ELF_NATIVE_CLASS ++#undef process_elf_file ++#define process_elf_file process_elf64_file ++#define __ELF_NATIVE_CLASS 64 ++#include "elf/readelflib.c" +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/rfork.S +@@ -0,0 +1,44 @@ ++/* Copyright (C) 1991-1992, 1994-1995, 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++.text; ++ENTRY (__rfork) ++ /* save the return PC value into RSI */ ++ movq 0(%rsp), %rsi; ++ DO_CALL (rfork, 1) ++ jb SYSCALL_ERROR_LABEL; ++ /* R1 is now 0 for the parent and 1 for the child. Decrement it to ++ make it -1 (all bits set) for the parent, and 0 (no bits set) ++ for the child. Then AND it with R0, so the parent gets ++ R0&-1==R0, and the child gets R0&0==0. */ ++ decq %rdx ++ andq %rdx, %rax ++ ++ popq %rdx ++ cfi_adjust_cfa_offset(-8) ++ ++ jmp *%rsi ++ ++L(pseudo_end): ++ ret ++PSEUDO_END (__rfork) ++ ++weak_alias (__rfork, rfork) ++ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sigcontextinfo.h +@@ -0,0 +1,35 @@ ++/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* ++native FreeBSD: ++ sighandler(int signum, int code, struct sigcontext * sg, void * fault_ip) ++posix like: ++ sighandler(int signum, siginfo_t * si, struct sigcontext * sg, void * fault_ip) ++*/ ++ ++#define SIGCONTEXT long _code, struct sigcontext * _sg, void * ++#define SIGCONTEXT_EXTRA_ARGS _code, _sg, ++ ++/* really, really, rest of glibc expects that struct sigcontext is the last argument */ ++#define GET_PC(ctx) ((void *) (_sg)->sc_rip) ++#define GET_FRAME(ctx) ((void *) (_sg)->sc_rbp) ++#define GET_STACK(ctx) ((void *) (_sg)->sc_rsp) ++ ++#define CALL_SIGHANDLER(handler, signo, ctx) \ ++ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/start_thread.S +@@ -0,0 +1,196 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ Modification for amd64 contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* __start_thread (flags, stack, func, arg) ++ calls __rfork (flags), and in the child sets the stack pointer and then ++ calls _exit (func (arg)). ++ It cannot be done in portable C. */ ++ ++/* ++ The parameters are passed in registers: ++ rdi: flags for rfork ++ rsi: child_stack ++ rdx: func ++ rcx: arg ++*/ ++ ++#include ++#include ++ ++#define SIG_SETMASK 3 ++ ++/* There is a window of a few instructions, right after the rfork ++ system call, where the handling of a signal would write garbage ++ into the stack shared by the parent and the child (assuming ++ RFMEM is set in flags). To solve this: 1. We block all signals ++ around the rfork system call and unblock them afterwards in ++ the parent and in the child (but only after changing the stack ++ pointer). 2. The child accesses only values passed in registers ++ and on its own stack. This way, if the parent is scheduled to ++ run first, and handles a signal, it will not affect the child; ++ and if the child runs first, and handles a signal, it will use ++ the child's stack and not affect the parent. ++*/ ++ ++ .text ++ENTRY (__start_thread) ++ ++ /* Insert the argument onto the new aligned stack. */ ++ andq $-16,%rsi ++ subq $16,%rsi ++ movq %rcx,8(%rsi) ++ ++ /* Save the function pointer. It will be popped off in the child */ ++ movq %rdx,0(%rsi) ++ ++ testq $32, %rdi /* flags & RFMEM */ ++ jnz L(complex) ++ ++ /* Do the system call. */ ++ movl $SYS_ify(rfork),%eax ++ /* End FDE now, because in the child the unwind info will be ++ wrong. */ ++ cfi_endproc; ++ syscall /* rdi and rsi are extra preserved */ ++ ++ jb SYSCALL_ERROR_LABEL ++ ++ testq %rdx,%rdx /* 0 for the parent and 1 for the child */ ++ jz L(pseudo_end) /* just return in parent */ ++ ++L(thread_start): ++ ++ /* set up stack */ ++ movq %rsi, %rsp ++ ++ /* Clear the frame pointer. The ABI suggests this be done, to mark ++ the outermost frame obviously. */ ++ xorl %ebp, %ebp ++ ++L(thread_start2): ++ ++ /* Set up arguments for the function call. */ ++ popq %rax /* Function to call. */ ++ popq %rdi /* Argument. */ ++ call *%rax ++ ++ /* Call exit with return value from function call. */ ++ movq %rax, %rdi ++ call HIDDEN_JUMPTARGET (_exit) ++ ++ ++/****************************************************************************************************** ++ * ++ * and now the complex one ... ++ * ++ ******************************************************************************************************/ ++ ++L(complex): ++ ++ subq $32, %rsp ++ ++ /* save arguments - flags and stack */ ++ movq %rdi,0(%rsp) ++ movq %rsi,8(%rsp) ++ ++ /* Block all signals. */ ++ orq $-1, %rax ++ movq %rax, 16(%rsp) ++ movq %rax, 24(%rsp) ++ ++ leaq 16(%rsp), %rsi ++ movl $SIG_SETMASK, %edi ++ movq %rsi,%rdx ++ DO_CALL (sigprocmask, 3) ++ jb L(error) ++ ++ /* restore arguments - flags and stack */ ++ movq 0(%rsp),%rdi ++ movq 8(%rsp),%rsi ++ ++ /* Copy mask info into the child's stack. */ ++ ++ subq $16,%rsi ++ movq 16(%rsp),%rcx ++ movq 24(%rsp),%rdx ++ movq %rcx, 0(%rsi) ++ movq %rdx, 8(%rsi) ++ ++ /* Perform the rfork system call. */ ++ DO_CALL (rfork, 1) ++ jb L(error_unmask) ++ ++ /* %rdx is now 0 for the parent and 1 for the child. */ ++ testq %rdx, %rdx ++ jnz L(child) ++ ++ /* Save the child pid, currently in %rax. */ ++ movq %rax, 0(%rsp) ++ ++ /* Restore the previous signal mask. */ ++ movl $SIG_SETMASK, %edi ++ leaq 16(%rsp), %rsi ++ xorl %edx,%edx ++ DO_CALL (sigprocmask, 3) ++ ++ /* Return the child pid, saved on stack. */ ++ movq 0(%rsp), %rax ++ addq $32, %rsp ++L(pseudo_end): ++ ret ++ ++L(error_unmask): ++ ++ /* Save the error code, currently in %rax. */ ++ movq %rax, 0(%rsp) ++ ++ /* Restore the previous signal mask. */ ++ movq $SIG_SETMASK, %rdi ++ leaq 16(%rsp), %rsi ++ xorl %edx,%edx ++ DO_CALL (sigprocmask, 3) ++ ++ /* load saved error code */ ++ movq 0(%rsp), %rax ++ ++L(error): ++ addq $32, %rsp ++ jmp SYSCALL_ERROR_LABEL ++ ++L(child):/* Here we are in the child thread. */ ++ ++ /* set up stack */ ++ movq %rsi, %rsp ++ ++ /* Clear the frame pointer. The ABI suggests this be done, to mark ++ the outermost frame obviously. */ ++ xorl %ebp, %ebp ++ ++ /* Restore the previous signal mask. */ ++ movq $SIG_SETMASK, %rdi ++ xorl %edx,%edx ++ DO_CALL (sigprocmask, 3) ++ ++ addq $16, %rsp ++ jmp L(thread_start2) ++ ++ cfi_startproc; ++ ++PSEUDO_END (__start_thread) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/swapcontext.S +@@ -0,0 +1,32 @@ ++/* swap current context. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++.text ++ENTRY(__swapcontext) ++ clc ++ DO_CALL (swapcontext, 2) ++ jb SYSCALL_ERROR_LABEL ++L(pseudo_end): ++ ret ++ ++PSEUDO_END(__swapcontext) ++ ++weak_alias(__swapcontext, swapcontext) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys/io.h +@@ -0,0 +1,180 @@ ++/* Copyright (C) 1996, 2000, 2002, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_IO_H ++#define _SYS_IO_H 1 ++ ++#include ++ ++__BEGIN_DECLS ++ ++/* If TURN_ON is TRUE, request for permission to do direct i/o on the ++ port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O ++ permission off for that range. This call requires root privileges. ++ ++ Portability note: not all kFreeBSD platforms support this call. Most ++ platforms based on the PC I/O architecture probably will, however. */ ++extern int ioperm (unsigned long int __from, unsigned long int __num, ++ int __turn_on) __THROW; ++ ++/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to ++ access any I/O port is granted. This call requires root ++ privileges. */ ++extern int iopl (int __level) __THROW; ++ ++#if defined __GNUC__ && __GNUC__ >= 2 ++ ++static __inline unsigned char ++inb (unsigned short int port) ++{ ++ unsigned char _v; ++ ++ __asm__ __volatile__ ("inb %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned char ++inb_p (unsigned short int port) ++{ ++ unsigned char _v; ++ ++ __asm__ __volatile__ ("inb %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned short int ++inw (unsigned short int port) ++{ ++ unsigned short _v; ++ ++ __asm__ __volatile__ ("inw %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned short int ++inw_p (unsigned short int port) ++{ ++ unsigned short int _v; ++ ++ __asm__ __volatile__ ("inw %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned int ++inl (unsigned short int port) ++{ ++ unsigned int _v; ++ ++ __asm__ __volatile__ ("inl %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned int ++inl_p (unsigned short int port) ++{ ++ unsigned int _v; ++ __asm__ __volatile__ ("inl %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline void ++outb (unsigned char value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outb %b0,%w1": :"a" (value), "Nd" (port)); ++} ++ ++static __inline void ++outb_p (unsigned char value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outb %b0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++outw (unsigned short int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outw %w0,%w1": :"a" (value), "Nd" (port)); ++ ++} ++ ++static __inline void ++outw_p (unsigned short int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outw %w0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++outl (unsigned int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outl %0,%w1": :"a" (value), "Nd" (port)); ++} ++ ++static __inline void ++outl_p (unsigned int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outl %0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++insb (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insb":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++insw (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insw":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++insl (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insl":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsb (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsb":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsw (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsw":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsl (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsl":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++#endif /* GNU C */ ++ ++__END_DECLS ++#endif /* _SYS_IO_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys/perm.h +@@ -0,0 +1,36 @@ ++/* Copyright (C) 1996, 1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_PERM_H ++#define _SYS_PERM_H 1 ++ ++#include ++ ++__BEGIN_DECLS ++ ++/* Set port input/output permissions. */ ++extern int ioperm (unsigned long int __from, unsigned long int __num, ++ int __turn_on) __THROW; ++ ++ ++/* Change I/O privilege level. */ ++extern int iopl (int __level) __THROW; ++ ++__END_DECLS ++ ++#endif /* _SYS_PERM_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys_fork.S +@@ -0,0 +1,36 @@ ++/* Copyright (C) 1991-1992, 1994-1995, 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++.text; ++ENTRY (__syscall_fork) ++ DO_CALL (fork, 0) ++ jb SYSCALL_ERROR_LABEL; ++ /* R1 is now 0 for the parent and 1 for the child. Decrement it to ++ make it -1 (all bits set) for the parent, and 0 (no bits set) ++ for the child. Then AND it with R0, so the parent gets ++ R0&-1==R0, and the child gets R0&0==0. */ ++ ++ decq %rdx ++ andq %rdx, %rax ++ ++L(pseudo_end): ++ ret ++PSEUDO_END (__syscall_fork) ++libc_hidden_def (__syscall_fork) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysarch.h +@@ -0,0 +1,72 @@ ++/* Parameters for the architecture specific system call. amd64 version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYSARCH_H ++#define _SYSARCH_H 1 ++ ++#include ++ ++/* Function that can be used as first argument to 'sysarch'. */ ++enum ++ { ++ I386_GET_LDT = 0, ++#define I386_GET_LDT I386_GET_LDT ++ I386_SET_LDT = 1, ++#define I386_SET_LDT I386_SET_LDT ++ I386_GET_IOPERM = 3, ++#define I386_GET_IOPERM I386_GET_IOPERM ++ I386_SET_IOPERM = 4, ++#define I386_SET_IOPERM I386_SET_IOPERM ++ I386_GET_FSBASE = 7, ++#define I386_GET_FSBASE I386_GET_FSBASE ++ I386_SET_FSBASE = 8, ++#define I386_SET_FSBASE I386_SET_FSBASE ++ I386_GET_GSBASE = 9, ++#define I386_GET_GSBASE I386_GET_GSBASE ++ I386_SET_GSBASE = 10, ++#define I386_SET_GSBASE I386_SET_GSBASE ++ AMD64_GET_FSBASE = 128, ++#define AMD64_GET_FSBASE AMD64_GET_FSBASE ++ AMD64_SET_FSBASE = 129, ++#define AMD64_SET_FSBASE AMD64_SET_FSBASE ++ AMD64_GET_GSBASE = 130, ++#define AMD64_GET_GSBASE AMD64_GET_GSBASE ++ AMD64_SET_GSBASE = 131 ++#define AMD64_SET_GSBASE AMD64_SET_GSBASE ++ }; ++ ++/* Argument struct for I386_GET_IOPERM and I386_SET_IOPERM. */ ++struct i386_ioperm_args ++ { ++ unsigned int start; ++ unsigned int length; ++ int enable; ++ }; ++ ++__BEGIN_DECLS ++ ++extern int sysarch (int __cmd, void *__arg); ++ ++#ifdef _LIBC ++extern int __sysarch (int __cmd, void *__arg); ++#endif ++ ++__END_DECLS ++ ++#endif /* _SYSARCH_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/syscall.S +@@ -0,0 +1,31 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Modification for FreeBSD contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++ .text ++ENTRY (__syscall) ++ movq %rcx, %r10 ++ movl $SYS_ify (syscall), %eax ++ syscall ++ jb SYSCALL_ERROR_LABEL ++L(pseudo_end): ++ ret ++PSEUDO_END (__syscall) ++weak_alias (__syscall, syscall) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/syscalls-internal.h +@@ -0,0 +1,78 @@ ++/* generally used "internal syscalls" ++ Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef KFREEBSD_INTERNAL_SYSCALLS_H ++#define KFREEBSD_INTERNAL_SYSCALLS_H ++ ++#include ++ ++/* ++ for now, we do not care whether syscall succeeded, ++ we do not have defined ++ INTERNAL_SYSCALL_ERROR_P and INTERNAL_SYSCALL_ERRNO ++ we do not store errno at all ++ to be sure, we return void ++*/ ++ ++#undef INTERNAL_SYSCALL_DECL ++#undef INTERNAL_SYSCALL_NCS ++#undef INTERNAL_SYSCALL ++#undef INTERNAL_SYSCALL_ERROR_P ++#undef INTERNAL_SYSCALL_ERRNO ++ ++#define INTERNAL_SYSCALL_DECL(err) \ ++ do { } while (0) ++ ++#define INTERNAL_SYSCALL(name, err, nr, args...) \ ++ INTERNAL_SYSCALL_##name(name, err, nr, ##args) ++ ++ ++#define INTERNAL_SYSCALL_close(name, err, nr, fd) \ ++(void)({ \ ++ register long int _a1 = (long int) (fd); \ ++ register long int result; \ ++ asm volatile ( \ ++ "syscall" \ ++ : "=a" (result) \ ++ : "0" ((long int) SYS_##name), \ ++ "D" (_a1) \ ++ : "memory", "cc", "cx", "dx", "r8", "r9", "r10", "r11"); \ ++ result; \ ++}) ++ ++#define INTERNAL_SYSCALL_writev(name, err, nr, fd, iov, cnt) \ ++(void)({ \ ++ register long int _a1 = (long int) (fd); \ ++ register long int _a2 = (long int) (iov); \ ++ register long int _a3 = (long int) (cnt); \ ++ register long int result; \ ++ register long int _trash; \ ++ asm volatile ( \ ++ "syscall" \ ++ : "=a" (result), \ ++ "=d" (_trash) \ ++ : "0" ((long int) SYS_##name), \ ++ "D" (_a1), \ ++ "S" (_a2), \ ++ "d" (_a3) \ ++ /* beware rdx is not preserved after syscall */ \ ++ : "memory", "cc", "cx", "r8", "r9", "r10", "r11"); \ ++ result; \ ++}) ++#endif +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysdep.S +@@ -0,0 +1,40 @@ ++/* Copyright (C) 2001, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++/* The following code is only used in the shared library when we ++ compile the reentrant version. Otherwise each system call defines ++ each own version. */ ++ ++#ifndef PIC ++ ++/* The syscall stubs jump here when they detect an error. ++ The code for Linux is almost identical to the canonical Unix ++ code, except that the error number in %rax is negated. */ ++ ++#undef CALL_MCOUNT ++#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %rax. */ ++ ++ .text ++ENTRY (__syscall_error) ++ ++#define __syscall_error __syscall_error_1 ++#include ++ ++#endif /* !PIC */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysdep.h +@@ -0,0 +1,233 @@ ++/* Copyright (C) 2001,02,03,04 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Modification for FreeBSD contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _KFREEBSD_X86_64_SYSDEP_H ++#define _KFREEBSD_X86_64_SYSDEP_H 1 ++ ++/* There is some commonality. */ ++#include ++#include ++#include ++#include ++ ++#ifdef IS_IN_rtld ++# include /* Defines RTLD_PRIVATE_ERRNO. */ ++#endif ++ ++ ++#ifdef __ASSEMBLER__ ++ ++/* We don't want the label for the error handle to be global when we define ++ it here. */ ++#ifdef PIC ++# define SYSCALL_ERROR_LABEL 0f ++#else ++# define SYSCALL_ERROR_LABEL syscall_error ++#endif ++ ++#undef PSEUDO ++#define PSEUDO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args); \ ++ jb SYSCALL_ERROR_LABEL; \ ++ L(pseudo_end): ++ ++#undef PSEUDO_END ++#define PSEUDO_END(name) \ ++ SYSCALL_ERROR_HANDLER \ ++ END (name) ++ ++#undef PSEUDO_NOERRNO ++#define PSEUDO_NOERRNO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args) ++ ++#undef PSEUDO_END_NOERRNO ++#define PSEUDO_END_NOERRNO(name) \ ++ END (name) ++ ++#define ret_NOERRNO ret ++ ++#undef PSEUDO_ERRVAL ++#define PSEUDO_ERRVAL(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args); \ ++ ++#undef PSEUDO_END_ERRVAL ++#define PSEUDO_END_ERRVAL(name) \ ++ END (name) ++ ++#define ret_ERRVAL ret ++ ++#ifndef PIC ++#define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */ ++#elif RTLD_PRIVATE_ERRNO ++# define SYSCALL_ERROR_HANDLER \ ++0: \ ++ leaq rtld_errno(%rip), %rcx; \ ++ movl %eax, (%rcx); \ ++ orq $-1, %rax; \ ++ jmp L(pseudo_end); ++#elif USE___THREAD ++# ifndef NOT_IN_libc ++# define SYSCALL_ERROR_ERRNO __libc_errno ++# else ++# define SYSCALL_ERROR_ERRNO errno ++# endif ++# define SYSCALL_ERROR_HANDLER \ ++0: \ ++ movq SYSCALL_ERROR_ERRNO@GOTTPOFF(%rip), %rcx;\ ++ movl %eax, %fs:(%rcx); \ ++ orq $-1, %rax; \ ++ jmp L(pseudo_end); ++#elif defined _LIBC_REENTRANT ++/* Store (%eax) into errno through the GOT. ++ Note that errno occupies only 4 bytes. */ ++# define SYSCALL_ERROR_HANDLER \ ++0: \ ++ pushq %rax; \ ++ cfi_adjust_cfa_offset(8); \ ++ PUSH_ERRNO_LOCATION_RETURN; \ ++ call BP_SYM (__errno_location)@PLT; \ ++ POP_ERRNO_LOCATION_RETURN; \ ++ popq %rdx; \ ++ cfi_adjust_cfa_offset(-8); \ ++ movl %edx, (%rax); \ ++ orq $-1, %rax; \ ++ jmp L(pseudo_end); ++ ++/* A quick note: it is assumed that the call to `__errno_location' does ++ not modify the stack! */ ++#else /* Not _LIBC_REENTRANT. */ ++# define SYSCALL_ERROR_HANDLER \ ++0:movq errno@GOTPCREL(%RIP), %rcx; \ ++ movl %eax, (%rcx); \ ++ orq $-1, %rax; \ ++ jmp L(pseudo_end); ++#endif /* PIC */ ++ ++/* The FreeBSD/amd64 kernel expects the system call parameters in ++ registers according to the following table: ++ ++ syscall number rax ++ arg 1 rdi ++ arg 2 rsi ++ arg 3 rdx ++ arg 4 r10 ++ arg 5 r8 ++ arg 6 r9 ++ ++ The FreeBSD kernel internal syscall usage of registers: ++ ++ preserved: ++ stack pointer rsp ++ C preserved rbx, rbp, r12-r15 ++ some input params rdi, rsi ++ ++ destroyed: ++ return value(s) rax, rdx, eflags ++ return address from syscall rcx ++ eflags from syscall r11 ++ used internally r8-r10 ++ ++ Normal function call, including calls to the system call stub ++ functions in the libc, get the first six parameters passed in ++ registers and the seventh parameter and later on the stack. The ++ register use is as follows: ++ ++ system call number in the DO_CALL macro ++ arg 1 rdi ++ arg 2 rsi ++ arg 3 rdx ++ arg 4 rcx ++ arg 5 r8 ++ arg 6 r9 ++ ++ We have to take care that the stack is aligned to 16 bytes. When ++ called the stack is not aligned since the return address has just ++ been pushed. ++ ++*/ ++ ++#undef DO_CALL ++#define DO_CALL(syscall_name, args) \ ++ DOARGS_##args \ ++ movl $SYS_ify (syscall_name), %eax; \ ++ syscall; ++ ++#define DOARGS_0 /* nothing */ ++#define DOARGS_1 /* nothing */ ++#define DOARGS_2 /* nothing */ ++#define DOARGS_3 /* nothing */ ++#define DOARGS_4 movq %rcx, %r10; ++#define DOARGS_5 DOARGS_4 ++#define DOARGS_6 DOARGS_5 ++#define DOARGS_7 DOARGS_6 ++#define DOARGS_8 DOARGS_7 ++ ++#else /* !__ASSEMBLER__ */ ++ ++#include ++ ++#endif /* __ASSEMBLER__ */ ++ ++ ++/* Pointer mangling support. */ ++#if defined NOT_IN_libc && defined IS_IN_rtld ++/* We cannot use the thread descriptor because in ld.so we use setjmp ++ earlier than the descriptor is initialized. */ ++# ifdef __ASSEMBLER__ ++# define PTR_MANGLE(reg) xorq __pointer_chk_guard_local(%rip), reg; \ ++ rolq $17, reg ++# define PTR_DEMANGLE(reg) rorq $17, reg; \ ++ xorq __pointer_chk_guard_local(%rip), reg ++# else ++# define PTR_MANGLE(reg) asm ("xorq __pointer_chk_guard_local(%%rip), %0\n" \ ++ "rolq $17, %0" \ ++ : "=r" (reg) : "0" (reg)) ++# define PTR_DEMANGLE(reg) asm ("rorq $17, %0\n" \ ++ "xorq __pointer_chk_guard_local(%%rip), %0" \ ++ : "=r" (reg) : "0" (reg)) ++# endif ++#else ++# ifdef __ASSEMBLER__ ++# define PTR_MANGLE(reg) xorq %fs:POINTER_GUARD, reg; \ ++ rolq $17, reg ++# define PTR_DEMANGLE(reg) rorq $17, reg; \ ++ xorq %fs:POINTER_GUARD, reg ++# else ++# define PTR_MANGLE(var) asm ("xorq %%fs:%c2, %0\n" \ ++ "rolq $17, %0" \ ++ : "=r" (var) \ ++ : "0" (var), \ ++ "i" (offsetof (tcbhead_t, \ ++ pointer_guard))) ++# define PTR_DEMANGLE(var) asm ("rorq $17, %0\n" \ ++ "xorq %%fs:%c2, %0" \ ++ : "=r" (var) \ ++ : "0" (var), \ ++ "i" (offsetof (tcbhead_t, \ ++ pointer_guard))) ++# endif ++#endif ++ ++#endif /* _KFREEBSD_X86_64_SYSDEP_H */ +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ucontext_i.h +@@ -0,0 +1,38 @@ ++/* Offsets needed in the makecontext() function implementation. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Offsets of the fields in the ucontext_t structure. */ ++ ++#define oRDI 24 ++#define oRSI 32 ++#define oRDX 40 ++#define oRCX 48 ++#define oR8 56 ++#define oR9 64 ++ ++#define oRAX 72 ++#define oRBX 80 ++#define oRBP 88 ++ ++#define oRIP 176 ++#define oRSP 200 ++ ++#define oLINK 816 ++#define oSS_SP 824 ++#define oSS_SIZE 832 +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/vfork.S +@@ -0,0 +1,58 @@ ++/* Copyright (C) 1999, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++/* Clone the calling process, but without copying the whole address space. ++ The calling process is suspended until the new process exits or is ++ replaced by a call to `execve'. Return -1 for errors, 0 to the new process, ++ and the process ID of the new process to the old process. */ ++ ++ENTRY (__vfork) ++ ++ /* Pop the return PC value into ESI. */ ++ popq %rsi ++ cfi_adjust_cfa_offset(-8) ++ ++ /* Perform the system call. */ ++ DO_CALL (vfork, 0) ++ jb L(error) /* Branch forward if it failed. */ ++ ++ /* In the parent process, %rdx == 0, %rax == child pid. */ ++ /* In the child process, %rdx == 1, %rax == parent pid. */ ++ ++ /* Change %rax to be 0 in the child process. */ ++ decq %rdx ++ andq %rdx, %rax ++ ++ /* Jump to the return PC. */ ++ jmp *%rsi ++ ++L(error): ++ /* Push back the return PC. */ ++ pushq %rsi ++ cfi_adjust_cfa_offset(8) ++ ++ /* Branch to the error handler, hidden in PSEUDO_END. */ ++ jmp SYSCALL_ERROR_LABEL ++L(pseudo_end): ++ ret ++PSEUDO_END (__vfork) ++libc_hidden_def (__vfork) ++ ++weak_alias (__vfork, vfork) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/xmknod.c +@@ -0,0 +1,48 @@ ++/* xmknod call using old-style Unix mknod and mkfifo system calls. ++ Copyright (C) 1991, 1993, 1995-1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_mknod (const char *, mode_t, dev_t); ++extern int __mkfifo (const char *, mode_t); ++ ++/* Create a device file named PATH, with permission and special bits MODE ++ and device number DEV (which can be constructed from major and minor ++ device numbers with the `makedev' macro above). */ ++int ++__xmknod (int vers, const char *path, mode_t mode, dev_t *dev) ++{ ++ if (vers != _MKNOD_VER) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ /* The FreeBSD mknod() system call cannot be used to create FIFOs; we ++ must use the mkfifo() system call for this purpose. */ ++ if (S_ISFIFO (mode)) ++ return __mkfifo (path, mode & ~S_IFMT); ++ ++ return __syscall_mknod (path, mode, *dev); ++} ++libc_hidden_def (__xmknod) ++ ++weak_alias (__xmknod, _xmknod) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/xmknodat.c +@@ -0,0 +1,146 @@ ++/* Copyright (C) 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_mknodat (int fd, const char *path, ++ mode_t mode, dev_t dev); ++libc_hidden_proto (__syscall_mknodat) ++ ++extern int __syscall_mkfifoat (int fd, const char *path, ++ mode_t mode); ++libc_hidden_proto (__syscall_mkfifoat) ++ ++/* Create a device file named PATH relative to FD, with permission and ++ special bits MODE and device number DEV (which can be constructed ++ from major and minor device numbers with the `makedev' macro above). */ ++int ++__xmknodat (int vers, int fd, const char *file, mode_t mode, dev_t * dev) ++{ ++ if (vers != _MKNOD_VER) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++# ifndef __ASSUME_ATFCTS ++ if (__have_atfcts >= 0) ++# endif ++ { ++ int result; ++ ++ /* The FreeBSD mknod() system call cannot be used to create FIFOs; we ++ must use the mkfifo() system call for this purpose. */ ++ if (S_ISFIFO (mode)) ++ result = INLINE_SYSCALL (mkfifoat, 4, fd, file, mode); ++ else ++ result = INLINE_SYSCALL (mknodat, 4, fd, file, mode, *dev); ++ ++# ifndef __ASSUME_ATFCTS ++ if (result == -1 && errno == ENOSYS) ++ __have_atfcts = -1; ++ else ++# endif ++ return result; ++ } ++ ++#ifndef __ASSUME_ATFCTS ++ if (fd != AT_FDCWD && file[0] != '/') ++ { ++ int mib[4]; ++ size_t kf_len = 0; ++ char *kf_buf, *kf_bufp; ++ size_t filelen; ++ ++ if (fd < 0) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ ++ filelen = strlen (file); ++ if (__builtin_expect (filelen == 0, 0)) ++ { ++ __set_errno (ENOENT); ++ return -1; ++ } ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC; ++ mib[2] = KERN_PROC_FILEDESC; ++ mib[3] = __getpid (); ++ ++ if (__sysctl (mib, 4, NULL, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_buf = alloca (kf_len + filelen); ++ if (__sysctl (mib, 4, kf_buf, &kf_len, NULL, 0) != 0) ++ { ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ ++ kf_bufp = kf_buf; ++ while (kf_bufp < kf_buf + kf_len) ++ { ++ struct kinfo_file *kf = (struct kinfo_file *) (uintptr_t) kf_bufp; ++ ++ if (kf->kf_fd == fd) ++ { ++ if (kf->kf_type != KF_TYPE_VNODE || ++ kf->kf_vnode_type != KF_VTYPE_VDIR) ++ { ++ __set_errno (ENOTDIR); ++ return -1; ++ } ++ ++ strcat (kf->kf_path, "/"); ++ strcat (kf->kf_path, file); ++ file = kf->kf_path; ++ break; ++ } ++ kf_bufp += kf->kf_structsize; ++ } ++ ++ if (kf_bufp >= kf_buf + kf_len) ++ { ++ __set_errno (EBADF); ++ return -1; ++ } ++ } ++ ++ return __xmknod (vers, file, mode, dev); ++#endif ++} ++ ++libc_hidden_def (__xmknodat) ++stub_warning(xmknodat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/xstat.c +@@ -0,0 +1,49 @@ ++/* xstat using FreeBSD stat, nstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__xstat (int vers, const char *file, struct stat *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_stat (CHECK_STRING (file), __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat (&buf16, buf); ++ return result; ++ } ++ else if (__builtin_expect (vers == _STAT_VER_stat, 1)) ++ return __syscall_stat (CHECK_STRING (file), ++ CHECK_1 ((struct stat16 *) buf)); ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__xstat) ++ ++weak_alias (__xstat, _xstat) +--- /dev/null ++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/xstat64.c +@@ -0,0 +1,44 @@ ++/* xstat using FreeBSD stat, nstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__xstat64 (int vers, const char *file, struct stat64 *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_stat (CHECK_STRING (file), __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat64 (&buf16, buf); ++ return result; ++ } ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__xstat64) --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-nosavesse.diff +++ eglibc-2.12.1/debian/patches/kfreebsd/local-nosavesse.diff @@ -0,0 +1,14 @@ + + similar to 2.10 code + +--- a/sysdeps/x86_64/dl-trampoline.S ++++ b/sysdeps/x86_64/dl-trampoline.S +@@ -163,7 +163,7 @@ + #endif + + +-#ifdef SHARED ++#if defined(SHARED) && defined(__linux__) + .globl _dl_x86_64_save_sse + .type _dl_x86_64_save_sse, @function + .align 16 --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-dosavesse.diff +++ eglibc-2.12.1/debian/patches/kfreebsd/local-dosavesse.diff @@ -0,0 +1,116 @@ + unfortunately, it does not work + in mean time use local-nosavesse.diff + +--- a/linuxthreads/descr.h ++++ b/linuxthreads/descr.h +@@ -114,6 +114,7 @@ + /* This overlaps tcbhead_t (see tls.h), as used for TLS without threads. */ + union + { ++ tcbhead_t tcbheader; + struct + { + void *tcb; /* Pointer to the TCB. This is not always +--- a/linuxthreads/sysdeps/x86_64/tcb-offsets.sym ++++ b/linuxthreads/sysdeps/x86_64/tcb-offsets.sym +@@ -3,3 +3,4 @@ + + MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads) + POINTER_GUARD offsetof (tcbhead_t, pointer_guard) ++RTLD_SAVESPACE_SSE offsetof (tcbhead_t, rtld_savespace_sse) +--- a/linuxthreads/sysdeps/x86_64/tls.h ++++ b/linuxthreads/sysdeps/x86_64/tls.h +@@ -26,6 +26,7 @@ + # include + # include + # include ++# include + + /* Type for the dtv. */ + typedef union dtv +@@ -46,6 +47,7 @@ + dtv_t *dtv; + void *self; /* Pointer to the thread descriptor. */ + int multiple_threads; ++ int __unused1; + uintptr_t sysinfo; + uintptr_t stack_guard; + uintptr_t pointer_guard; +@@ -53,7 +55,13 @@ + long gscope_flag; + # else + int gscope_flag; ++ int __unused2; + # endif ++ void *__padding1[7]; ++ int rtld_must_xmm_save; ++ int __unused3; ++ /* Have space for the post-AVX register size. */ ++ __m128 rtld_savespace_sse[8][4]; + } tcbhead_t; + + #else /* __ASSEMBLER__ */ +@@ -77,13 +85,19 @@ + # define TLS_INIT_TCB_SIZE sizeof (tcbhead_t) + + /* Alignment requirements for the initial TCB. */ +-# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t) ++//# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t) ++// Normally the above would be correct But we have to store post-AVX ++// vector registers in the TCB and we want the storage to be aligned. ++// unfortunately there isn't yet a type for these values and hence no ++// 32-byte alignment requirement. Make this explicit, for now. ++# define TLS_INIT_TCB_ALIGN 32 + + /* This is the size of the TCB. */ + # define TLS_TCB_SIZE sizeof (struct _pthread_descr_struct) + + /* Alignment requirements for the TCB. */ + # define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct) ++// It is already 32B aligned + + /* The TCB can have any size and the memory following the address the + thread pointer points to is unspecified. Allocate the TCB there. */ +@@ -189,7 +203,42 @@ + #define THREAD_GSCOPE_WAIT() \ + do { /* GL(dl_wait_lookup_done) () */ } while (0) + ++ ++# ifdef SHARED ++/* Defined in dl-trampoline.S. */ ++extern void _dl_x86_64_save_sse (void); ++extern void _dl_x86_64_restore_sse (void); ++ ++# define RTLD_CHECK_FOREIGN_CALL \ ++ (THREAD_GETMEM (THREAD_SELF, p_header.tcbheader.rtld_must_xmm_save) != 0) ++ ++/* NB: Don't use the xchg operation because that would imply a lock ++ prefix which is expensive and unnecessary. The cache line is also ++ not contested at all. */ ++# define RTLD_ENABLE_FOREIGN_CALL \ ++ int old_rtld_must_xmm_save = THREAD_GETMEM (THREAD_SELF, \ ++ p_header.tcbheader.rtld_must_xmm_save); \ ++ THREAD_SETMEM (THREAD_SELF, p_header.tcbheader.rtld_must_xmm_save, 1) ++ ++# define RTLD_PREPARE_FOREIGN_CALL \ ++ do if (THREAD_GETMEM (THREAD_SELF, p_header.tcbheader.rtld_must_xmm_save)) \ ++ { \ ++ _dl_x86_64_save_sse (); \ ++ THREAD_SETMEM (THREAD_SELF, p_header.tcbheader.rtld_must_xmm_save, 0); \ ++ } \ ++ while (0) ++ ++# define RTLD_FINALIZE_FOREIGN_CALL \ ++ do { \ ++ if (THREAD_GETMEM (THREAD_SELF, p_header.tcbheader.rtld_must_xmm_save) == 0) \ ++ _dl_x86_64_restore_sse (); \ ++ THREAD_SETMEM (THREAD_SELF, p_header.tcbheader.rtld_must_xmm_save, \ ++ old_rtld_must_xmm_save); \ ++ } while (0) ++# endif ++ + # endif /* HAVE_TLS_SUPPORT */ ++ + #endif /* __ASSEMBLER__ */ + + #endif /* tls.h */ --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-scripts.diff +++ eglibc-2.12.1/debian/patches/kfreebsd/local-scripts.diff @@ -0,0 +1,126 @@ +--- + abi-tags | 2 +- + configure | 6 +++--- + configure.in | 6 +++--- + linuxthreads/shlib-versions | 3 ++- + shlib-versions | 4 ++++ + 5 files changed, 13 insertions(+), 8 deletions(-) + +--- a/abi-tags ++++ b/abi-tags +@@ -22,7 +22,7 @@ + + .*-sun-solaris2.* 2 2.0.0 # just an arbitrary value + +-.*-.*-freebsd.*-gnu.* 3 4.0.0 # earliest compatible kernel version ++.*-.*-kfreebsd.* 3 5.4.0 # earliest compatible kernel version + + .*-.*-knetbsd.*-gnu.* 4 1.6.0 # earliest compatible kernel version + +--- a/configure ++++ b/configure +@@ -2282,7 +2282,7 @@ + # i586-linuxaout is mangled into i586-pc-linux-gnuaout + linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*) + ;; +-gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*) ++gnu* | linux* | freebsd* | netbsd* | k*bsd* | sysv4* | solaris2* | irix6*) + # These systems (almost) always use the ELF format. + elf=yes + ;; +@@ -2489,7 +2489,7 @@ + ### + if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then + case "$machine-$host_os" in +- *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*) ++ *-linux* | *-gnu* | *-kfreebsd* | arm*-none* | powerpc-aix4.3.*) + ;; + *) + echo "*** The GNU C library is currently not available for this platform." +@@ -2563,7 +2563,7 @@ + test "x$base_os" != x || case "$os" in + gnu*) + base_os=mach/hurd ;; +-netbsd* | 386bsd* | freebsd* | bsdi*) ++netbsd* | 386bsd* | freebsd* | bsdi* | k*bsd*) + base_os=unix/bsd/bsd4.4 ;; + osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*) + base_os=unix/bsd ;; +--- a/configure.in ++++ b/configure.in +@@ -283,7 +283,7 @@ + # i586-linuxaout is mangled into i586-pc-linux-gnuaout + linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*) + ;; +-gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*) ++gnu* | linux* | freebsd* | netbsd* | k*bsd* | sysv4* | solaris2* | irix6*) + # These systems (almost) always use the ELF format. + elf=yes + ;; +@@ -469,7 +469,7 @@ + ### + if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then + case "$machine-$host_os" in +- *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*) ++ *-linux* | *-gnu* | *-kfreebsd* | arm*-none* | powerpc-aix4.3.*) + ;; + *) + echo "*** The GNU C library is currently not available for this platform." +@@ -544,7 +544,7 @@ + test "x$base_os" != x || case "$os" in + gnu*) + base_os=mach/hurd ;; +-netbsd* | 386bsd* | freebsd* | bsdi*) ++netbsd* | 386bsd* | freebsd* | bsdi* | k*bsd*) + base_os=unix/bsd/bsd4.4 ;; + osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*) + base_os=unix/bsd ;; +--- a/shlib-versions ++++ b/shlib-versions +@@ -31,6 +31,7 @@ + x86_64-.*-linux.* DEFAULT GLIBC_2.2.5 + powerpc64-.*-linux.* DEFAULT GLIBC_2.3 + .*-.*-gnu-gnu.* DEFAULT GLIBC_2.2.6 ++.*-.*-kfreebsd.* DEFAULT GLIBC_2.3 + + # Configuration WORDSIZE[32|64] Alternate configuration + # ------------- ---------- ----------------------- +@@ -53,6 +54,7 @@ + sh.*-.*-linux.* libm=6 GLIBC_2.2 + .*-.*-linux.* libm=6 + .*-.*-gnu-gnu.* libm=6 ++.*-.*-kfreebsd.* libm=1 + + # We provide libc.so.6 for Linux kernel versions 2.0 and later. + alpha.*-.*-linux.* libc=6.1 +@@ -60,6 +62,7 @@ + sh.*-.*-linux.* libc=6 GLIBC_2.2 + sparc64.*-.*-linux.* libc=6 GLIBC_2.2 + .*-.*-linux.* libc=6 ++.*-.*-kfreebsd.* libc=0.1 + + # libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release. + .*-.*-gnu-gnu.* libmachuser=1 +@@ -81,6 +84,7 @@ + powerpc64.*-.*-linux.* ld=ld64.so.1 GLIBC_2.3 + cris-.*-linux.* ld=ld.so.1 GLIBC_2.2 + x86_64-.*-linux.* ld=ld-linux-x86-64.so.2 GLIBC_2.2.5 ++x86_64-.*-kfreebsd.* ld=ld-kfreebsd-x86-64.so.1 + # We use the ELF ABI standard name for the default. + .*-.*-.* ld=ld.so.1 + +--- a/linuxthreads/shlib-versions ++++ b/linuxthreads/shlib-versions +@@ -8,4 +8,5 @@ + cris-.*-linux.* libpthread=0 GLIBC_2.2 + x86_64-.*-linux.* libpthread=0 GLIBC_2.2.5 + powerpc64-.*-linux.* libpthread=0 GLIBC_2.3 +-.*-.*-linux.* libpthread=0 ++.*-.*-kfreebsd.* libpthread=0 GLIBC_2.3 ++.*-.*-.* libpthread=0 +--- a/linuxthreads_db/shlib-versions ++++ b/linuxthreads_db/shlib-versions +@@ -1,2 +1,3 @@ + # The thread debug library + .*-.*-linux.* libthread_db=1 ++.*-.*-kfreebsd.* libthread_db=1 --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-linuxthreads29.diff +++ eglibc-2.12.1/debian/patches/kfreebsd/local-linuxthreads29.diff @@ -0,0 +1,68 @@ + +some of these hacks should be solved properly by upstream ... + +--- glibc-2.9.orig/nscd/connections.c ++++ glibc-2.9/nscd/connections.c +@@ -873,6 +873,7 @@ + #endif + } + ++#if defined(SOCK_CLOEXEC) && defined(SOCK_NONBLOCK) + /* Create the socket. */ + #ifndef __ASSUME_SOCK_CLOEXEC + sock = -1; +@@ -885,6 +886,7 @@ + have_sock_cloexec = sock != -1 || errno != EINVAL ? 1 : -1; + #endif + } ++#endif + #ifndef __ASSUME_SOCK_CLOEXEC + if (have_sock_cloexec < 0) + sock = socket (AF_UNIX, SOCK_STREAM, 0); +--- glibc-2.9.orig/sysdeps/i386/tlsdesc.sym ++++ glibc-2.9/sysdeps/i386/tlsdesc.sym +@@ -8,7 +8,11 @@ + + -- Abuse tls.h macros to derive offsets relative to the thread register. + ++#if 0 + DTV_OFFSET offsetof(struct pthread, header.dtv) ++#else ++DTV_OFFSET offsetof(struct _pthread_descr_struct, p_header.data.dtvp) ++#endif + + TLSDESC_ARG offsetof(struct tlsdesc, arg) + +--- glibc-2.9.orig/sysdeps/x86_64/tlsdesc.sym ++++ glibc-2.9/sysdeps/x86_64/tlsdesc.sym +@@ -5,10 +5,13 @@ + #include + + -- ++#if 0 ++ DTV_OFFSET offsetof(struct pthread, header.dtv) */ ++#endif + + -- Abuse tls.h macros to derive offsets relative to the thread register. + +-DTV_OFFSET offsetof(struct pthread, header.dtv) ++DTV_OFFSET offsetof(struct _pthread_descr_struct, p_header.data.dtvp) + + TLSDESC_ARG offsetof(struct tlsdesc, arg) + +--- glibc-2.9.orig/linuxthreads/sysdeps/pthread/malloc-machine.h ++++ glibc-2.9/linuxthreads/sysdeps/pthread/malloc-machine.h +@@ -57,10 +57,10 @@ + #include + + typedef int tsd_key_t[1]; /* no key data structure, libc magic does it */ +-__libc_tsd_define (static, MALLOC) /* declaration/common definition */ ++__libc_tsd_define (static, void *, MALLOC) /* declaration/common definition */ + #define tsd_key_create(key, destr) ((void) (key)) +-#define tsd_setspecific(key, data) __libc_tsd_set (MALLOC, (data)) +-#define tsd_getspecific(key, vptr) ((vptr) = __libc_tsd_get (MALLOC)) ++#define tsd_setspecific(key, data) __libc_tsd_set (void *, MALLOC, (data)) ++#define tsd_getspecific(key, vptr) ((vptr) = __libc_tsd_get (void *, MALLOC)) + + #include + --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-memusage_no_mremap.diff +++ eglibc-2.12.1/debian/patches/kfreebsd/local-memusage_no_mremap.diff @@ -0,0 +1,23 @@ +--- + malloc/memusage.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/malloc/memusage.c ++++ b/malloc/memusage.c +@@ -665,6 +665,8 @@ + return result; + } + ++#include <_G_config.h> ++#ifdef _G_HAVE_MREMAP + + /* `mmap' replacement. We do not have to keep track of the sizesince + `munmap' will get it as a parameter. */ +@@ -730,6 +732,7 @@ + /* Return the pointer to the user buffer. */ + return result; + } ++#endif + + + /* `munmap' replacement. */ --- eglibc-2.12.1.orig/debian/patches/kfreebsd/local-ftw.diff +++ eglibc-2.12.1/debian/patches/kfreebsd/local-ftw.diff @@ -0,0 +1,124 @@ + +disable usage of unimplemented *at functions +revert to previous behaviour, inspired by + http://sourceware.org/ml/glibc-cvs/2006-q1/msg00636.html + http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/io/ftw.c.diff?cvsroot=glibc&r1=1.50&r2=1.51 + + http://sourceware.org/cgi-bin/cvsweb.cgi/libc/posix/glob.c.diff?cvsroot=glibc&r1=1.77&r2=1.78 + +--- + io/ftw.c | 6 ++++++ + posix/glob.c | 31 +++---------------------------- + 2 files changed, 9 insertions(+), 28 deletions(-) + +--- a/io/ftw.c ++++ b/io/ftw.c +@@ -338,6 +338,7 @@ + { + assert (data->dirstreams[data->actdir] == NULL); + ++#if 0 + if (dfdp != NULL && *dfdp != -1) + { + int fd = openat64_not_cancel_3 (*dfdp, data->dirbuf + data->ftw.base, +@@ -347,6 +348,7 @@ + close_not_cancel_no_status (fd); + } + else ++#endif + { + const char *name; + +@@ -410,10 +412,12 @@ + *((char *) __mempcpy (data->dirbuf + data->ftw.base, name, namlen)) = '\0'; + + int statres; ++#if 0 + if (dir->streamfd != -1) + statres = FXSTATAT (_STAT_VER, dir->streamfd, name, &st, + (data->flags & FTW_PHYS) ? AT_SYMLINK_NOFOLLOW : 0); + else ++#endif + { + if ((data->flags & FTW_CHDIR) == 0) + name = data->dirbuf; +@@ -433,10 +437,12 @@ + flag = FTW_SLN; + else + { ++#if 0 + if (dir->streamfd != -1) + statres = FXSTATAT (_STAT_VER, dir->streamfd, name, &st, + AT_SYMLINK_NOFOLLOW); + else ++#endif + statres = LXSTAT (_STAT_VER, name, &st); + if (statres == 0 && S_ISLNK (st.st_mode)) + flag = FTW_SLN; +--- a/posix/glob.c ++++ b/posix/glob.c +@@ -1222,42 +1222,21 @@ + allocated with alloca to be recycled. */ + #if !defined _LIBC || !defined GLOB_ONLY_P + static int +-__attribute_noinline__ +-link_exists2_p (const char *dir, size_t dirlen, const char *fname, +- glob_t *pglob +-# ifndef _LIBC +- , int flags +-# endif +- ) ++link_exists_p (const char *dir, size_t dirlen, const char *fname, ++ glob_t *pglob, int flags) + { + size_t fnamelen = strlen (fname); + char *fullname = (char *) __alloca (dirlen + 1 + fnamelen + 1); + struct stat st; +-# ifndef _LIBC + struct_stat64 st64; +-# endif + + mempcpy (mempcpy (mempcpy (fullname, dir, dirlen), "/", 1), + fname, fnamelen + 1); + +-# ifdef _LIBC +- return (*pglob->gl_stat) (fullname, &st) == 0; +-# else + return ((__builtin_expect (flags & GLOB_ALTDIRFUNC, 0) + ? (*pglob->gl_stat) (fullname, &st) + : __stat64 (fullname, &st64)) == 0); +-# endif + } +-# ifdef _LIBC +-# define link_exists_p(dfd, dirname, dirnamelen, fname, pglob, flags) \ +- (__builtin_expect (flags & GLOB_ALTDIRFUNC, 0) \ +- ? link_exists2_p (dirname, dirnamelen, fname, pglob) \ +- : ({ struct stat64 st64; \ +- __fxstatat64 (_STAT_VER, dfd, fname, &st64, 0) == 0; })) +-# else +-# define link_exists_p(dfd, dirname, dirnamelen, fname, pglob, flags) \ +- link_exists2_p (dirname, dirnamelen, fname, pglob, flags) +-# endif + #endif + + +@@ -1332,10 +1311,6 @@ + } + else + { +-#ifdef _LIBC +- int dfd = (__builtin_expect (flags & GLOB_ALTDIRFUNC, 0) +- ? -1 : dirfd ((DIR *) stream)); +-#endif + int fnm_flags = ((!(flags & GLOB_PERIOD) ? FNM_PERIOD : 0) + | ((flags & GLOB_NOESCAPE) ? FNM_NOESCAPE : 0) + #if defined _AMIGA || defined VMS +@@ -1394,7 +1369,7 @@ + /* If the file we found is a symlink we have to + make sure the target file exists. */ + if (!DIRENT_MIGHT_BE_SYMLINK (d) +- || link_exists_p (dfd, directory, dirlen, name, pglob, ++ || link_exists_p (directory, dirlen, name, pglob, + flags)) + { + if (cur == names->count) --- eglibc-2.12.1.orig/debian/patches/ubuntu/ia64-include.diff +++ eglibc-2.12.1/debian/patches/ubuntu/ia64-include.diff @@ -0,0 +1,10 @@ +--- ./sysdeps/ia64/elf/start.S~ 2009-05-11 13:24:14.000000000 +0200 ++++ ./sysdeps/ia64/elf/start.S 2009-05-12 18:14:39.000000000 +0200 +@@ -37,6 +37,7 @@ + #include + + #include ++#include + #include + + /* --- eglibc-2.12.1.orig/debian/patches/ubuntu/no-sprintf-pre-truncate.diff +++ eglibc-2.12.1/debian/patches/ubuntu/no-sprintf-pre-truncate.diff @@ -0,0 +1,21 @@ +Description: when a program is compiled with -D_FORTIFY_SOURCE=2, the + vsprintf_chk function is called to handle sprintf/snprintf, but it + needlessly pretruncates the destination which changes the results of + sprintf(foo, "%sbar", baz). +Bug: http://sourceware.org/bugzilla/show_bug.cgi?id=7075 +Bug-Ubuntu: https://launchpad.net/bugs/305901 +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563637 +Author: Kees Cook + +Index: glibc-2.9/debug/vsprintf_chk.c +=================================================================== +--- glibc-2.9.orig/debug/vsprintf_chk.c 2008-12-23 21:30:07.000000000 -0800 ++++ glibc-2.9/debug/vsprintf_chk.c 2008-12-23 21:30:19.000000000 -0800 +@@ -76,7 +76,6 @@ + + _IO_no_init (&f._sbf._f, _IO_USER_LOCK, -1, NULL, NULL); + _IO_JUMPS (&f._sbf) = &_IO_str_chk_jumps; +- s[0] = '\0'; + _IO_str_init_static_internal (&f, s, slen - 1, s); + + /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n --- eglibc-2.12.1.orig/debian/patches/ubuntu/README +++ eglibc-2.12.1/debian/patches/ubuntu/README @@ -0,0 +1,3 @@ +Patches in this directory are hacks done for Ubuntu directly. These might +include things like splitting out langpacks or launchpad/rosetta integration. + --- eglibc-2.12.1.orig/debian/patches/ubuntu/no-asm-mtune-i686.diff +++ eglibc-2.12.1/debian/patches/ubuntu/no-asm-mtune-i686.diff @@ -0,0 +1,39 @@ +--- a/sysdeps/i386/i686/Makefile ++++ b/sysdeps/i386/i686/Makefile +@@ -10,18 +10,21 @@ ifeq ($(subdir),string) + sysdep_routines += cacheinfo + endif + +-ifeq (yes,$(config-asflags-i686)) +-CFLAGS-.o += -Wa,-mtune=i686 +-CFLAGS-.os += -Wa,-mtune=i686 +-CFLAGS-.op += -Wa,-mtune=i686 +-CFLAGS-.og += -Wa,-mtune=i686 +-CFLAGS-.ob += -Wa,-mtune=i686 +-CFLAGS-.oS += -Wa,-mtune=i686 +- +-ASFLAGS-.o += -Wa,-mtune=i686 +-ASFLAGS-.os += -Wa,-mtune=i686 +-ASFLAGS-.op += -Wa,-mtune=i686 +-ASFLAGS-.og += -Wa,-mtune=i686 +-ASFLAGS-.ob += -Wa,-mtune=i686 +-ASFLAGS-.oS += -Wa,-mtune=i686 +-endif ++# Disabled for Geode LX support ++# see https://bugzilla.redhat.com/show_bug.cgi?id=579838 ++# see https://launchpad.net/bugs/587186 ++#ifeq (yes,$(config-asflags-i686)) ++#CFLAGS-.o += -Wa,-mtune=i686 ++#CFLAGS-.os += -Wa,-mtune=i686 ++#CFLAGS-.op += -Wa,-mtune=i686 ++#CFLAGS-.og += -Wa,-mtune=i686 ++#CFLAGS-.ob += -Wa,-mtune=i686 ++#CFLAGS-.oS += -Wa,-mtune=i686 ++# ++#ASFLAGS-.o += -Wa,-mtune=i686 ++#ASFLAGS-.os += -Wa,-mtune=i686 ++#ASFLAGS-.op += -Wa,-mtune=i686 ++#ASFLAGS-.og += -Wa,-mtune=i686 ++#ASFLAGS-.ob += -Wa,-mtune=i686 ++#ASFLAGS-.oS += -Wa,-mtune=i686 ++#endif --- eglibc-2.12.1.orig/debian/patches/ubuntu/local-fwrite-no-attr-unused.diff +++ eglibc-2.12.1/debian/patches/ubuntu/local-fwrite-no-attr-unused.diff @@ -0,0 +1,28 @@ +Description: when compiling with -D_FORTIFY_SOURCE=2, the compiler will + generate warn-unused-results notifications for several functions. It + is not sensible to do this for fwrite() since it is frequently unchecked + and may not fail until fclose() which is not marked with __wur, making + the fwrite() check noisy and pointless. +Author: Matthias Klose +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563637 + +--- ./libio/stdio.h~ 2008-05-24 20:14:36.000000000 +0200 ++++ ./libio/stdio.h 2009-03-27 20:59:20.000000000 +0100 +@@ -682,7 +682,7 @@ + This function is a possible cancellation points and therefore not + marked with __THROW. */ + extern size_t fwrite (__const void *__restrict __ptr, size_t __size, +- size_t __n, FILE *__restrict __s) __wur; ++ size_t __n, FILE *__restrict __s); + __END_NAMESPACE_STD + + #ifdef __USE_GNU +@@ -706,7 +706,7 @@ + extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) __wur; + extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, +- size_t __n, FILE *__restrict __stream) __wur; ++ size_t __n, FILE *__restrict __stream); + #endif + + --- eglibc-2.12.1.orig/debian/patches/ubuntu/local-altlocaledir.diff +++ eglibc-2.12.1/debian/patches/ubuntu/local-altlocaledir.diff @@ -0,0 +1,35 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: support alternative gettext tree in +# DP: /usr/share/locale-langpack +# DP: Dpatch author: Martin Pitt +# DP: Patch author: Martin Pitt +# DP: Upstream status: Ubuntu-Specific +# DP: Date: 2004-12-06 20:44:10 CET + +--- glibc-2.3.5.orig/intl/l10nflist.c ++++ glibc-2.3.5/intl/l10nflist.c +@@ -267,7 +267,7 @@ _nl_make_l10nflist (l10nfile_list, dirli + + retval = (struct loaded_l10nfile *) + malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len) +- * (1 << pop (mask)) ++ * 2 * (1 << pop (mask)) + * sizeof (struct loaded_l10nfile *))); + if (retval == NULL) + return NULL; +@@ -310,6 +310,15 @@ _nl_make_l10nflist (l10nfile_list, dirli + language, territory, codeset, + normalized_codeset, modifier, filename, 1); + } ++ const char* langpack_dir = "/usr/share/locale-langpack"; ++ for (cnt = mask; cnt >= 0; --cnt) ++ if ((cnt & ~mask) == 0) ++ { ++ retval->successor[entries++] ++ = _nl_make_l10nflist (l10nfile_list, langpack_dir, strlen (langpack_dir) + 1, cnt, ++ language, territory, codeset, ++ normalized_codeset, modifier, filename, 1); ++ } + retval->successor[entries] = NULL; + + return retval; --- eglibc-2.12.1.orig/debian/patches/ubuntu/machine-sparcv2.diff +++ eglibc-2.12.1/debian/patches/ubuntu/machine-sparcv2.diff @@ -0,0 +1,38 @@ +Recognize sparcv9v2 and sparc64v2 as valid machine names. The configure.in +still supports these machines, and the Debian build system misuses this as +the name of the build directory. + +--- ./scripts/config.sub~ 2009-05-13 02:14:37.000000000 +0200 ++++ ./scripts/config.sub 2009-05-13 09:43:56.000000000 +0200 +@@ -284,8 +284,8 @@ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ +- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ +- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc64v2 | sparc86x | sparclet | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sparcv9v2 \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ +@@ -368,9 +368,9 @@ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ ++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc64v2-* | sparc86x-* | sparclet-* \ + | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sparcv9v2-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tron-* \ +@@ -1193,7 +1193,7 @@ + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; +- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) ++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sparcv9v2) + basic_machine=sparc-sun + ;; + cydra) --- eglibc-2.12.1.orig/debian/patches/m32r/local-ports-m32r.diff +++ eglibc-2.12.1/debian/patches/m32r/local-ports-m32r.diff @@ -0,0 +1,5424 @@ +diff --exclude=CVS -upNr ports/ChangeLog.m32r ports/ChangeLog.m32r +--- ports/ChangeLog.m32r 1970-01-01 09:00:00.000000000 +0900 ++++ ports/ChangeLog.m32r 2006-05-09 10:23:08.000000000 +0900 +@@ -0,0 +1,297 @@ ++2006-06-07 Kazuhiro Inaoka ++ * sysdeps/unix/sysv/linux/m32r/configure: Removed ++ libc_cv_gcc_unwind_find=yes, because we provide _Unwind_Find_FDE ++ from libgcc. ++ * sysdeps/unix/sysv/linux/m32r/configure: Ditto. ++ ++2006-04-24 Kazuhiro Inaoka ++ * sysdeps/m32r/setjmp.h : Avoid stdlib/isomac.out Error. ++ ++2006-04-06 Kazuhiro Inaoka ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h : ++ Changed for IS_IN_librt case. Gather a common SYSCALL_ERROR_HANDLER ++ code. ++ ++2006-03-24 Kazuhiro Inaoka ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h : ++ Recoverd the code before 2006-03-02. ++ ++2006-03-22 Kazuhiro Inaoka ++ * Rebuild by gcc-3.4.3-13.0.3. ++ * sysdeps/m32r/strlen.S (strlen): Disable pre-read codes. ++ * sysdeps/unix/sysv/linux/m32r/mmap.S (strlen): Set an Error Code ++ when using an illegal offset value. ++ ++2006-03-02 Kazuhiro Inaoka ++ * sysdeps/unix/sysv/linux/m32r/clone.S (__clone): Changes for ++ the new system call calling convention of the kernel. ++ Marged calling SYSCALL_ERROR_HANDLER. ++ * sysdeps/unix/sysv/linux/m32r/sysdep.h : Use @GOT, @PLT, @GOTOFF. ++ Add "|| nop" after trap. Marged calling SYSCALL_ERROR_HANDLER. ++ * sysdeps/unix/sysv/linux/m32r/brk.c (__brk): Ditto. ++ * sysdeps/unix/sysv/linux/m32r/flushcache.S (__brk): Ditto. ++ * sysdeps/unix/sysv/linux/m32r/sigaction.c : Ditto. ++ * sysdeps/unix/m32r/sysdep.S : Ditto. ++ * sysdeps/m32r/bsd-_setjmp.S (_setjmp): Ditto. ++ * sysdeps/m32r/bsd-setjmp.S (setjmp): Ditto. ++ * sysdeps/m32r/setjmp.S (__sigsetjmp): Ditto. ++ * sysdeps/m32r/dl-machine.h : Ditto. ++ * sysdeps/m32r/m32r-mcount.S (_mcount): Ditto. ++ * sysdeps/m32r/sysdep.h : Ditto. ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h : ++ Use @GOT, @PLT, @GOTOFF. Fixed typo. Changed for IS_IN_librt case. ++ Removed UNDOCARGS2_*. Removed UNDOCARGS_5 DOCARGS_5 verbose saving. ++ sigaction.cv ++ ++2006-03-01 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/bits/fcntl.h ++ [__USE_GNU] (F_SETLEASE. F_GETLEASE, F_NOTIFY): New macros. ++ [__USE_GNU] (LOCK_MAND, LOCK_READ, LOCK_WRITE, LOCK_RW): New macros. ++ [__USE_GNU] (DN_ACCESS, DN_MODIFY, DN_CREATE, DN_DELETE, DN_RENAME, ++ DN_ATTRIB, DN_MULTISHOT): New macros. ++ ++2006-01-26 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/brk.c (__brk): Fixed conflist r0 on ++ asm(). ++ ++2006-01-18 Kazuhiro Inaoka ++ ++ * sysdeps/unix/m32r/sysdep.S: Changed to avoid redefined ++ error of symbol `__syscall_error_1'. ++ ++2005-11-22 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/dl-machine.h (elf_machine_rela): Support ++ R_M32R_10_PCREL_RELA. ++ Remove a code to use relocation field at R_M32R_26_PCREL_RELA ++ and R_M32R_18_PCREL_RELA. The field must be 0 with RELA. ++ ++2005-11-18 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/bits/setjmp.h (_JMPBUF_UNWINDS): Remove unnecessary &. ++ Make sure only setjmp.h or pthread.h are allow to include ++ bits/setjmp.h. ++ ++2005-10-21 Hirokazu Takata ++ ++ * sysdeps/m32r/memset.S: Update for m32r2. ++ ++2005-10-20 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/elf/start.S: Support Update PIE. ++ ++2005-10-19 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/socket.S: Remove weak_alias ++ to create listen if NO_WEAK_ALIAS is defined. ++ ++2005-10-14 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/gccframe.h: New file for dwarf2-unwind. ++ * sysdeps/unix/sysv/linux/m32r/configure: Support dwarf2-unwind. ++ ++2005-07-15 ++ ++ * sysdeps/m32r/dl-machine.h: Support R_M32R_REL32. ++ It's important to change with elf/elf.h. ++ ++2005-03-03 Hirokazu Takata ++ ++ * sysdeps/unix/sysv/linux/m32r/kernel-features.h: Removed ++ __ASSUME_VFORK_SYSCALL. ++ ++2005-02-22 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S: Changed for ++ __ASSUME_VFORK_SYSCALL. ++ * sysdeps/unix/sysv/linux/m32r/vfork.S: Ditto. ++ ++2005-02-15 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/socket.S: Added .fillinsn. ++ ++2005-02-10 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S: Changed to ++ reference pthread_create. ++ ++2005-02-04 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h: ++ Support thread cancel. ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/clone.S: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/socket.S: Ditto. ++ ++2005-01-31 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/socket.S: Removed # in macro body. ++ * sysdeps/unix/sysv/linux/Makefile: Removed gnulib, gnulib-static. ++ * sysdeps/unix/sysv/linux/sigaction.c: Changed ++ to "kernel-features.h" ++ ++2004-12-20 NIIBE Yutaka ++ ++ * sysdeps/unix/sysv/linux/m32r/kernel-features.h: Port for ++ kernel-2.6.9. ++ * sysdeps/unix/sysv/linux/m32r/getgid.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/sigaction.c: Ditto. ++ * glibc-20041101/sysdeps/unix/sysv/linux/i386/fcntl.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/chown.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/getresgid.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/getresuid.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/getrlimit.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/getrlimit64.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/lchown.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/msgctl.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/semctl.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/setfsgid.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/setfsuid.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/setrlimit.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/shmctl.c: Ditto. ++ * ++ ++2004-10-26 Kazuhiro Inaoka ++ ++ * ChangeLog.m32r: Fix typo in comment. ++ * sysdeps/m32r/preconfigure: Removed. ++ * sysdeps/m32r/configure.in: New file. ++ * sysdeps/m32r/configure: New generated file. ++ * sysdeps/m32r/linuxthreads/pspinlock.c (__pthread_spin_lock): ++ Changed INLINE_SYSCALL to INTERNAL_SYSCALL. ++ (__pthread_spin_trylock): Ditto. ++ * sysdeps/unix/sysv/linux/m32r/Versions: Removed GLIBC_2.2 ++ versioning, Added GLIBC_2.3 versioning. ++ ++2004-10-25 Kazuhiro Inaoka ++ ++ Moved from separate m32r-linuxthreads into m32r/linuxthreads ++ subdirs: ++ 2004-09-09 Kazuhiro Inaoka ++ * sysdeps/m32r/pspinlock.c: New file. ++ * sysdeps/m32r/pt-machine.h: New file ++ * sysdeps/m32r/preconfigure: Renamed from configure. ++ * sysdeps/m32r/shlib-versions: Moved from top level.. ++ * sysdeps/unix/sysv/linux/m32r/Makefile: Add static-gnulilb ++ environment value difinition. ++ ++2004-10-19 Kazuhiro Inaoka ++ ++ * m32r/configure: Changed into the simple rule. ++ ++2004-10-08 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/mmap.S (__mmap): Use sys_mmap2. ++ ++2004-10-05 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/dl-machine.h (elf_machine_rela_relative): Replace ++ static inline by auto inline, add always_inline attribute. ++ (elf_machine_rela): Likewise. ++ (elf_machine_lazy_rel): Likewise. ++ (elf_machine_runtime_setup): add always_inline attribute. ++ * sysdeps/unix/sysv/linux/m32r/bits/mman.h: Define PROT_GROWSDOWN ++ and PROT_GROWSUP. ++ * sysdeps/unix/sysv/linux/m32r/sysdep.h (SYSCALL_ERROR_HANDLER): ++ Define RTLD_PRIVATE_ERRNO variant. include . ++ ++2004-09-14 Kazuhiro Inaoka ++ ++ * configure: check for assembler line separator ++ ++2004-09-09 Kazuhiro Inaoka ++ ++ * configure, Makefile: Do nothing ++ * shlib-versions: New file. ++ * sysdeps/unix/m32r/sysdep.h: Use relative pathnames. ++ * sysdeps/unix/sysv/linux/m32r/sysdep.h: Use relative ++ pathnames. ++ * sysdeps/unix/sysv/linux/m32r/sysdep.S: Use relative ++ pathnames. ++ * sysdeps/m32r/init-first.c: Remove file ++ ++2004-09-09 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/Implies: New file ++ * sysdeps/m32r/Makefile: New file ++ * sysdeps/m32r/__longjmp.S: New file ++ * sysdeps/m32r/bits/endian.h: New file ++ * sysdeps/m32r/bits/huge_val.h: New file ++ * sysdeps/m32r/bits/setjmp.h: New file ++ * sysdeps/m32r/bsd-_setjmp.S: New file ++ * sysdeps/m32r/bsd-setjmp.S: New file ++ * sysdeps/m32r/dl-machine.h: New file ++ * sysdeps/m32r/elf/start.S: New file ++ * sysdeps/m32r/gmp-mparam.h: New file ++ * sysdeps/m32r/init-first.c: New file ++ * sysdeps/m32r/m32r-mcount.S: New file ++ * sysdeps/m32r/machine-gmon.h: New file ++ * sysdeps/m32r/memcpy.S: New file ++ * sysdeps/m32r/memset.S: New file ++ * sysdeps/m32r/memusage.h: New file ++ * sysdeps/m32r/setjmp.S: New file ++ * sysdeps/m32r/stackinfo.h: New file ++ * sysdeps/m32r/strlen.S: New file ++ * sysdeps/m32r/sys/ucontext.h: New file ++ * sysdeps/m32r/sysdep.h: New file ++ * sysdeps/unix/m32r/Makefile: New file ++ * sysdeps/unix/m32r/sysdep.S: New file ++ * sysdeps/unix/m32r/sysdep.h: New file ++ * sysdeps/unix/sysv/linux/m32r/Dist: New file ++ * sysdeps/unix/sysv/linux/m32r/Makefile: New file ++ * sysdeps/unix/sysv/linux/m32r/Versions: New file ++ * sysdeps/unix/sysv/linux/m32r/bits/fcntl.h: New file ++ * sysdeps/unix/sysv/linux/m32r/bits/mman.h: New file ++ * sysdeps/unix/sysv/linux/m32r/bits/resource.h: New file ++ * sysdeps/unix/sysv/linux/m32r/brk.c: New file ++ * sysdeps/unix/sysv/linux/m32r/chown.c: New file ++ * sysdeps/unix/sysv/linux/m32r/clone.S: New file ++ * sysdeps/unix/sysv/linux/m32r/fchown.c: New file ++ * sysdeps/unix/sysv/linux/m32r/fcntl.c: New file ++ * sysdeps/unix/sysv/linux/m32r/flushcache.S: New file ++ * sysdeps/unix/sysv/linux/m32r/fxstat.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getegid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/geteuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getgroups.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getresgid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getresuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getrlimit.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getrlimit64.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/lchown.c: New file ++ * sysdeps/unix/sysv/linux/m32r/lockf64.c: New file ++ * sysdeps/unix/sysv/linux/m32r/lxstat.c: New file ++ * sysdeps/unix/sysv/linux/m32r/m32r-stub.c: New file ++ * sysdeps/unix/sysv/linux/m32r/mmap.S: New file ++ * sysdeps/unix/sysv/linux/m32r/msgctl.c: New file ++ * sysdeps/unix/sysv/linux/m32r/pipe.S: New file ++ * sysdeps/unix/sysv/linux/m32r/profil-counter.h: New file ++ * sysdeps/unix/sysv/linux/m32r/semctl.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setegid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/seteuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setfsgid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setfsuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setgid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setgroups.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setregid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setresgid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setresuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setreuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setrlimit.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/shmctl.c: New file ++ * sysdeps/unix/sysv/linux/m32r/sigcontextinfo.h: New file ++ * sysdeps/unix/sysv/linux/m32r/socket.S: New file ++ * sysdeps/unix/sysv/linux/m32r/sys/cachectl.h: New file ++ * sysdeps/unix/sysv/linux/m32r/sys/io.h: New file ++ * sysdeps/unix/sysv/linux/m32r/sys/tas.h: New file ++ * sysdeps/unix/sysv/linux/m32r/sys/ucontext.h: New file ++ * sysdeps/unix/sysv/linux/m32r/sys/user.h: New file ++ * sysdeps/unix/sysv/linux/m32r/syscall.S: New file ++ * sysdeps/unix/sysv/linux/m32r/syscalls.list: New file ++ * sysdeps/unix/sysv/linux/m32r/sysdep.S: New file ++ * sysdeps/unix/sysv/linux/m32r/sysdep.h: New file ++ * sysdeps/unix/sysv/linux/m32r/vfork.S: New file ++ * sysdeps/unix/sysv/linux/m32r/xstat.c: New file +diff --exclude=CVS -upNr ports/sysdeps/m32r/Implies ports/sysdeps/m32r/Implies +--- ports/sysdeps/m32r/Implies 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/Implies 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,3 @@ ++wordsize-32 ++ieee754/flt-32 ++ieee754/dbl-64 +diff --exclude=CVS -upNr ports/sysdeps/m32r/Makefile ports/sysdeps/m32r/Makefile +--- ports/sysdeps/m32r/Makefile 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/Makefile 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,7 @@ ++# m32r/ELF specific definitions. ++ ++# The assembler on m32r needs the -fPIC flag even when it's assembler code. ++#ASFLAGS-.os = -fPIC ++ifeq ($(subdir),gmon) ++sysdep_routines += m32r-mcount ++endif +diff --exclude=CVS -upNr ports/sysdeps/m32r/__longjmp.S ports/sysdeps/m32r/__longjmp.S +--- ports/sysdeps/m32r/__longjmp.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/__longjmp.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,43 @@ ++/* longjmp for M32R. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#define _SETJMP_H ++#define _ASM ++#include ++ ++/* __longjmp(jmpbuf, val) */ ++ ++ENTRY (__longjmp) ++ ld r8, @r0+ ++ ld r9, @r0+ ++ ld r10, @r0+ ++ ld r11, @r0+ ++ ld r12, @r0+ ++ ld r13, @r0+ ++ ld r2, @r0+ /* lr */ ++ ld r15, @r0 /* sp */ ++ ++ mv r0,r1 ++ bnez r0, 1f /* get the return value in place */ ++ ldi r0, #1 /* can't let setjmp() return zero! */ ++ .fillinsn ++1: ++ jmp r2 ++END (__longjmp) +diff --exclude=CVS -upNr ports/sysdeps/m32r/bits/endian.h ports/sysdeps/m32r/bits/endian.h +--- ports/sysdeps/m32r/bits/endian.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/bits/endian.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,13 @@ ++/* M32R is bi-endian. */ ++ ++#ifndef _ENDIAN_H ++# error "Never use directly; include instead." ++#endif ++ ++#ifdef __LITTLE_ENDIAN__ ++#define __BYTE_ORDER __LITTLE_ENDIAN ++#define __FLOAT_WORD_ORDER __LITTLE_ENDIAN ++#else ++#define __BYTE_ORDER __BIG_ENDIAN ++#define __FLOAT_WORD_ORDER __BIG_ENDIAN ++#endif +diff --exclude=CVS -upNr ports/sysdeps/m32r/bits/huge_val.h ports/sysdeps/m32r/bits/huge_val.h +--- ports/sysdeps/m32r/bits/huge_val.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/bits/huge_val.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,56 @@ ++/* `HUGE_VAL' constants for IEEE 754 machines (where it is infinity). ++ Used by and functions for overflow. ++ M32R version. ++ Copyright (C) 1992, 95, 96, 97, 98, 99, 2000, 2004 ++ Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _MATH_H ++# error "Never use directly; include instead." ++#endif ++ ++/* IEEE positive infinity (-HUGE_VAL is negative infinity). */ ++ ++#if __GNUC_PREREQ(3,3) ++# define HUGE_VAL (__builtin_huge_val()) ++#elif __GNUC_PREREQ(2,96) ++# define HUGE_VAL (__extension__ 0x1.0p2047) ++#elif defined __GNUC__ ++ ++# define HUGE_VAL \ ++ (__extension__ \ ++ ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \ ++ { __l: 0x000000007ff00000ULL }).__d) ++ ++#else /* not GCC */ ++ ++# include ++ ++typedef union { unsigned char __c[8]; double __d; } __huge_val_t; ++ ++# if __BYTE_ORDER == __BIG_ENDIAN ++# define __HUGE_VAL_bytes { 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 } ++# endif ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++# define __HUGE_VAL_bytes { 0, 0, 0xf0, 0x7f, 0, 0, 0, 0 } ++# endif ++ ++static __huge_val_t __huge_val = { __HUGE_VAL_bytes }; ++# define HUGE_VAL (__huge_val.__d) ++ ++#endif /* GCC. */ +diff --exclude=CVS -upNr ports/sysdeps/m32r/bits/setjmp.h ports/sysdeps/m32r/bits/setjmp.h +--- ports/sysdeps/m32r/bits/setjmp.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/bits/setjmp.h 2006-05-09 10:22:45.000000000 +0900 +@@ -0,0 +1,57 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* Define the machine-dependent type `jmp_buf'. M32R version. */ ++#ifndef _BITS_SETJMP_H ++#define _BITS_SETJMP_H 1 ++ ++#if !defined _SETJMP_H && !defined _PTHREAD_H ++# error "Never include directly; use instead." ++#endif ++ ++#ifndef _ASM ++typedef struct ++ { ++ /* Callee-saved registers r8 through r15. */ ++ int __regs[8]; ++ ++ /* Program counter. */ ++ void * __pc; ++ } __jmp_buf[1]; ++#endif ++ ++#if defined __USE_MISC || defined _ASM ++#define JB_R8 0 ++#define JB_R9 1 ++#define JB_R10 2 ++#define JB_R11 3 ++#define JB_R12 4 ++#define JB_FP 5 ++#define JB_LR 6 ++#define JB_SP 7 ++#define JB_PC 8 ++ ++#define JB_SIZE (4 * 9) ++#endif ++ ++/* Test if longjmp to JMPBUF would unwind the frame ++ containing a local variable at ADDRESS. */ ++#define _JMPBUF_UNWINDS(jmpbuf, address) \ ++ ((void *) (address) < (jmpbuf)[0].__regs[JB_SP]) ++ ++#endif /* bits/setjmp.h */ +diff --exclude=CVS -upNr ports/sysdeps/m32r/bsd-_setjmp.S ports/sysdeps/m32r/bsd-_setjmp.S +--- ports/sysdeps/m32r/bsd-_setjmp.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/bsd-_setjmp.S 2006-03-02 11:15:18.000000000 +0900 +@@ -0,0 +1,43 @@ ++/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. M32R version. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* This just does a tail-call to `__sigsetjmp (ARG, 0)'. ++ We cannot do it in C because it must be a tail-call, so frame-unwinding ++ in setjmp doesn't clobber the state restored by longjmp. */ ++ ++#include ++ ++ENTRY (_setjmp) ++#ifdef SHARED ++ mv r2,lr ++ bl.s .+4 ++ ld24 r1,#_GLOBAL_OFFSET_TABLE_ ++ add r1,lr ++ mv lr,r2 ++ ++ ld24 r2,C_SYMBOL_NAME(__sigsetjmp@GOT) ++ add r2,r1 ++ ld r2,@r2 ++#else ++ LDIMM (r2, C_SYMBOL_NAME(__sigsetjmp)) ++#endif ++ ldi r1, #0 /* Pass a second argument of zero. */ ++ jmp r2 ++END (_setjmp) ++libc_hidden_def(_setjmp) +diff --exclude=CVS -upNr ports/sysdeps/m32r/bsd-setjmp.S ports/sysdeps/m32r/bsd-setjmp.S +--- ports/sysdeps/m32r/bsd-setjmp.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/bsd-setjmp.S 2006-03-02 11:15:35.000000000 +0900 +@@ -0,0 +1,42 @@ ++/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. M32R version. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* This just does a tail-call to `__sigsetjmp (ARG, 1)'. ++ We cannot do it in C because it must be a tail-call, so frame-unwinding ++ in setjmp doesn't clobber the state restored by longjmp. */ ++ ++#include ++ ++ENTRY (setjmp) ++#ifdef SHARED ++ mv r2,lr ++ bl.s .+4 ++ ld24 r1,#_GLOBAL_OFFSET_TABLE_ ++ add r1,lr ++ mv lr,r2 ++ ++ ld24 r2,C_SYMBOL_NAME(__sigsetjmp@GOT) ++ add r2,r1 ++ ld r2,@r2 ++#else ++ LDIMM (r2, C_SYMBOL_NAME(__sigsetjmp)) ++#endif ++ ldi r1, #1 /* Pass a second argument of one. */ ++ jmp r2 ++END (setjmp) +diff --exclude=CVS -upNr ports/sysdeps/m32r/configure ports/sysdeps/m32r/configure +--- ports/sysdeps/m32r/configure 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/configure 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,7 @@ ++# This file is generated from configure.in by Autoconf. DO NOT EDIT! ++ ++libc_cv_asm_line_sep='!' ++cat >>confdefs.h <<_ACEOF ++#define ASM_LINE_SEP $libc_cv_asm_line_sep ++_ACEOF ++ +diff --exclude=CVS -upNr ports/sysdeps/m32r/configure.in ports/sysdeps/m32r/configure.in +--- ports/sysdeps/m32r/configure.in 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/configure.in 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,5 @@ ++GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. ++ ++dnl M32R uses `;' to start comments and `!' for line separator. ++libc_cv_asm_line_sep='!' ++AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep) +diff --exclude=CVS -upNr ports/sysdeps/m32r/dl-machine.h ports/sysdeps/m32r/dl-machine.h +--- ports/sysdeps/m32r/dl-machine.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/dl-machine.h 2006-03-02 11:28:06.000000000 +0900 +@@ -0,0 +1,814 @@ ++/* Machine-dependent ELF dynamic relocation inline functions. M32R version. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef dl_machine_h ++#define dl_machine_h ++ ++/* Only dummy. This doesn't work. */ ++ ++#define ELF_MACHINE_NAME "M32R" ++ ++#include ++ ++#include ++ ++/* Define the M32R_OLD_ABI, if you want to keep compatibility with ++ an old Renesas relocs */ ++#ifdef M32R_OLD_ABI ++#define R_M32R_16_SAMPLE 1 ++#define R_M32R_32_SAMPLE 2 ++#define R_M32R_24_SAMPLE 3 ++#define R_M32R_10_PCREL_SAMPLE 4 ++#define R_M32R_18_PCREL_SAMPLE 5 ++#define R_M32R_26_PCREL_SAMPLE 6 ++#define R_M32R_HI16_ULO_SAMPLE 7 ++#define R_M32R_HI16_SLO_SAMPLE 8 ++#define R_M32R_LO16_SAMPLE 9 ++#define R_M32R_SDA16_SAMPLE 10 ++ ++#define R_M32R_GOT24_SAMPLE 11 /* conflict */ ++#define R_M32R_26_PLTREL_SAMPLE 12 /* conflict */ ++#define R_M32R_GOT16_HI_ULO_SAMPLE 13 ++#define R_M32R_GOT16_HI_SLO_SAMPLE 14 ++#define R_M32R_GOT16_LO_SAMPLE 15 ++#define R_M32R_GOTPC24_SAMPLE 16 ++#define R_M32R_COPY_SAMPLE 17 ++#define R_M32R_GLOB_DAT_SAMPLE 18 ++#define R_M32R_JMP_SLOT_SAMPLE 19 ++#define R_M32R_RELATIVE_SAMPLE 20 ++#define R_M32R_GNU_VTINHERIT_SAMPLE 21 ++#define R_M32R_GNU_VTENTRY_SAMPLE 22 ++#endif /* M32R_OLD_ABI */ ++ ++/* Return nonzero iff ELF header is compatible with the running host. */ ++static inline int __attribute__ ((unused)) ++elf_machine_matches_host (const Elf32_Ehdr *ehdr) ++{ ++ return (ehdr->e_machine == EM_M32R); ++} ++ ++ ++/* Return the link-time address of _DYNAMIC. Conveniently, this is the ++ first element of the GOT. This must be inlined in a function which ++ uses global data. */ ++static inline Elf32_Addr __attribute__ ((unused)) ++elf_machine_dynamic (void) ++{ ++ register Elf32_Addr *got; ++ asm (" bl.s .+4\n" ++ " ld24 %0,#_GLOBAL_OFFSET_TABLE_\n" ++ " add %0,lr" :"=r" (got) : : "lr" ); ++ return *got; ++} ++ ++ ++/* Return the run-time load address of the shared object. */ ++static inline Elf32_Addr __attribute__ ((unused)) ++elf_machine_load_address (void) ++{ ++ Elf32_Addr addr; ++ asm (" ld24 r0,#here\n\t" ++ " add r0,r12\n\t" ++ " ld r0,@r0\n\t" ++ "here: \n\t" ++ " ld24 r1,#_GLOBAL_OFFSET_TABLE_\n\t" ++ " mv r2,r12\n\t" ++ " sub r2,r1\n\t" ++ " sub r2,r0\n\t" ++ " mv %0,r2" ++ : "=r" (addr) : : "r0", "r1", "r2" ); ++ return addr; ++} ++ ++ ++/* Set up the loaded object described by L so its unrelocated PLT ++ entries will jump to the on-demand fixup code in dl-runtime.c. */ ++ ++static inline int __attribute__ ((unused, always_inline)) ++elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) ++{ ++ Elf32_Addr *got; ++ extern void _dl_runtime_resolve (Elf32_Word); ++ extern void _dl_runtime_profile (Elf32_Word); ++ ++ if (l->l_info[DT_JMPREL] && lazy) ++ { ++ /* The GOT entries for functions in the PLT have not yet been filled ++ in. Their initial contents will arrange when called to load an ++ offset into the .rela.plt section and _GLOBAL_OFFSET_TABLE_[1], ++ and then jump to _GLOBAL_OFFSET_TABLE[2]. */ ++ got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]); ++ got[1] = (Elf32_Addr) l; /* Identify this shared object. */ ++ ++ /* The got[2] entry contains the address of a function which gets ++ called to get the address of a so far unresolved function and ++ jump to it. The profiling extension of the dynamic linker allows ++ to intercept the calls to collect information. In this case we ++ don't store the address in the GOT so that all future calls also ++ end in this function. */ ++ if (profile) ++ { ++ got[2] = (Elf32_Addr) &_dl_runtime_profile; ++ /* Say that we really want profiling and the timers are started. */ ++ GL(dl_profile_map) = l; ++ } ++ else ++ /* This function will get called to fix up the GOT entry indicated by ++ the offset on the stack, and then jump to the resolved address. */ ++ got[2] = (Elf32_Addr) &_dl_runtime_resolve; ++ } ++ return lazy; ++} ++ ++/* This code is used in dl-runtime.c to call the `fixup' function ++ and then redirect to the address it returns. */ ++ ++#define ELF_MACHINE_RUNTIME_FIXUP_ARGS int plt_type ++ ++#ifdef SHARED ++#define FUN_ADDR( func ) "\n\ ++ bl.s .+4 \n\ ++ ld24 r12,#_GLOBAL_OFFSET_TABLE_ \n\ ++ add r12,lr \n\ ++ ld24 r4,#" #func "@GOT \n\ ++ add r4,r12 \n\ ++ ld r4,@r4" ++#else ++#define FUN_ADDR( func ) "\ ++ seth r4,#high( " #func " ) \n\ ++ or3 r4,r4,#low( " #func " )" ++#endif ++ ++#define FGR_SAVE "" ++#define FGR_LOAD "" ++ ++#ifdef M32R_OLD_NEWABI ++#define LOAD_ARGS_FROM_STACK( name ) "\n\ ++ mv r7,lr \n\ ++ ; OLD_PLT to keep compatible mode only \n\ ++ bl.s .+4 \n\ ++ .fillinsn \n\ ++ addi lr,# " #name " -. \n\ ++ beq r6,lr,1f \n\ ++ ; OLT_PLT ABI \n\ ++ pop r4 ; link map address \n\ ++ pop r5 ; reloc offset \n\ ++ .fillinsn \n\ ++1: \n\ ++ mv lr,r7" ++#else ++#define LOAD_ARGS_FROM_STACK( name ) "\n\ ++ ; DELETE FOR NEW ABI pop r4 ; link map address \n\ ++ ; DELETE FOR NEW ABI pop r5 ; reloc offset\n" ++#endif ++ ++#ifndef PROF ++# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\ ++ .text \n\ ++ .globl _dl_runtime_resolve \n\ ++ .type _dl_runtime_resolve, @function \n\ ++ \n\ ++ .balign 4 \n\ ++_dl_runtime_resolve: \n\ ++ " LOAD_ARGS_FROM_STACK( _dl_runtime_resolve ) " \n\ ++ push r0 \n\ ++ push r1 \n\ ++ push r2 \n\ ++ push r3 \n\ ++ push r12 \n\ ++ " FGR_SAVE " \n\ ++ push lr \n\ ++ \n\ ++ ; fixup( ELF_MACHINE_RUNTIME_TRAMPOLINE, link_map, reloc_offset ) \n\ ++ ;mv r0,*** ; plt_type (dummy) \n\ ++ \n\ ++ mv r1,r4 ; link map address \n\ ++ mv r2,r5 ; reloc offset \n\ ++ \n\ ++ " FUN_ADDR( fixup ) " \n\ ++ \n\ ++ jl r4 ; Call resolver. \n\ ++ mv r4,r0 ; value \n\ ++ \n\ ++ pop lr ; Get register content back. \n\ ++ " FGR_LOAD " \n\ ++ pop r12 \n\ ++ pop r3 \n\ ++ pop r2 \n\ ++ pop r1 \n\ ++ pop r0 \n\ ++ \n\ ++ jmp r4 ; Jump to function address. \n\ ++ \n\ ++ .balign 4 \n\ ++ .size _dl_runtime_resolve, .-_dl_runtime_resolve \n\ ++ \n\ ++ .globl _dl_runtime_profile \n\ ++ .type _dl_runtime_profile, @function \n\ ++ \n\ ++ .balign 4 \n\ ++_dl_runtime_profile: \n\ ++ " LOAD_ARGS_FROM_STACK( _dl_runtime_profile ) " \n\ ++ push r0 \n\ ++ push r1 \n\ ++ push r2 \n\ ++ push r3 \n\ ++ push r12 \n\ ++ " FGR_SAVE " \n\ ++ push lr \n\ ++ \n\ ++ ; profile_fixup( ELF_MACHINE_RUNTIME_TRAMPOLINE, link_map, reloc_offset ) \n\ ++ ;mv r0,*** ; plt_type (dummy) \n\ ++ mv r1,r4 ; link map address \n\ ++ mv r2,r5 ; reloc offset \n\ ++ \n\ ++ " FUN_ADDR( profile_fixup ) " \n\ ++ \n\ ++ jl r4 ; Call resolver. \n\ ++ mv r4,r0 ; value \n\ ++ \n\ ++ pop lr ; Get register content back. \n\ ++ " FGR_LOAD " \n\ ++ pop r12 \n\ ++ pop r3 \n\ ++ pop r2 \n\ ++ pop r1 \n\ ++ pop r0 \n\ ++ \n\ ++ jmp r4 ; Jump to function address. \n\ ++ \n\ ++ .balign 4 \n\ ++ .size _dl_runtime_profile, .-_dl_runtime_profile \n\ ++ .previous \n\ ++"); ++#else ++# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\ ++ .text \n\ ++ .globl _dl_runtime_resolve \n\ ++ .globl _dl_runtime_profile \n\ ++ .type _dl_runtime_resolve, @function \n\ ++ .type _dl_runtime_profile, @function \n\ ++ \n\ ++ .balign 4 \n\ ++_dl_runtime_resolve: \n\ ++_dl_runtime_profile: \n\ ++ " LOAD_ARGS_FROM_STACK( _dl_runtime_resolve ) " \n\ ++ push r0 \n\ ++ push r1 \n\ ++ push r2 \n\ ++ push r3 \n\ ++ push r12 \n\ ++ " FGR_SAVE " \n\ ++ push lr \n\ ++ \n\ ++ ; fixup( ELF_MACHINE_RUNTIME_TRAMPOLINE, link_map, reloc_offset ) \n\ ++ ;mv r0,*** ; plt_type (dummy) \n\ ++ mv r1,r4 ; link map address \n\ ++ mv r2,r5 ; reloc offset \n\ ++ \n\ ++ " FUN_ADDR( fixup ) " \n\ ++ \n\ ++ jl r4 ; Call resolver. \n\ ++ mv r4,r0 ; value \n\ ++ \n\ ++ pop lr ; Get register content back. \n\ ++ " FGR_LOAD " \n\ ++ pop r12 \n\ ++ pop r3 \n\ ++ pop r2 \n\ ++ pop r1 \n\ ++ pop r0 \n\ ++ \n\ ++ jmp r4 ; Jump to function address. \n\ ++ \n\ ++ .balign 4 \n\ ++ .size _dl_runtime_resolve, .-_dl_runtime_resolve \n\ ++ .size _dl_runtime_profile, .-_dl_runtime_profile \n\ ++ .previous \n\ ++"); ++#endif ++ ++/* Mask identifying addresses reserved for the user program, ++ where the dynamic linker should not map anything. */ ++#define ELF_MACHINE_USER_ADDRESS_MASK 0x80000000UL ++ ++/* Initial entry point code for the dynamic linker. ++ The C function `_dl_start' is the real entry point; ++ its return value is the user program's entry point. */ ++ ++#define RTLD_START asm ("\ ++.text\n\ ++.globl _start\n\ ++.globl _dl_start_user\n\ ++_start:\n\ ++ mv r0,r15\n\ ++ bl _dl_start\n\ ++_dl_start_user:\n\ ++ ; Save the user entry point address in r8.\n\ ++ mv r8,r0\n\ ++ ; Point r12 at the GOT.\n\ ++ bl.s .+4\n\ ++ ld24 r12,#_GLOBAL_OFFSET_TABLE_\n\ ++ add r12,lr\n\ ++ ; Store the highest stack address\n\ ++ ld24 r0,#__libc_stack_end@GOT ; __libc_stack_end@GOT \n\ ++ add r0,r12\n\ ++ ld r0,@r0\n\ ++ st r15,@r0\n\ ++ ; See if we were run as a command with the executable file\n\ ++ ; name as an extra leading argument.\n\ ++ ld24 r0,#_dl_skip_args@GOT ; _dl_skip_args@GOT \n\ ++ add r0,r12\n\ ++ ld r0,@r0\n\ ++ ld r0,@r0\n\ ++ ; Get the original argument count.\n\ ++ ld r1,@r15\n\ ++ ; Subtract _dl_skip_args from it.\n\ ++ sub r1,r0\n\ ++ ; Adjust the stack pointer to skip _dl_skip_args words.\n\ ++ slli r0,#2\n\ ++ add r15,r0\n\ ++ ; Store back the modified argument count.\n\ ++ st r1,@r15\n\ ++ ; Compute argv address and envp.\n\ ++ mv r2,r15\n\ ++ addi r2,#4\n\ ++ mv r3,r1\n\ ++ addi r3,#1\n\ ++ slli r3,#2\n\ ++ add r3,r2\n\ ++ ld24 r0,#_rtld_local@GOT\n\ ++ add r0,r12\n\ ++ ld r0,@r0\n\ ++ ld r0,@r0\n\ ++ ; Call _dl_init.\n\ ++ bl _dl_init@PLT ; _dl_init@PLT \n\ ++ .fillinsn\n\ ++1: ; Pass our finalizer function to the user in r4, as per ELF ABI.\n\ ++ ld24 r0,#_dl_fini@GOT ; _dl_fini@GOT \n\ ++ add r0,r12\n\ ++ ld r0,@r0\n\ ++ ; Jump to the user's entry point.\n\ ++ jmp r8\n\ ++.previous\n\ ++"); ++ ++/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so ++ PLT entries should not be allowed to define the value. ++ ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one ++ of the main executable's symbols, as for a COPY reloc. */ ++#ifdef M32R_OLD_ABI ++/* for oldtype relocation compatibility */ ++#define elf_machine_type_class(type) \ ++ ((((type) == R_M32R_JMP_SLOT || (type) == R_M32R_JMP_SLOT_SAMPLE) * ELF_RTYPE_CLASS_PLT) \ ++ | (((type) == R_M32R_COPY || (type) == R_M32R_COPY_SAMPLE) * ELF_RTYPE_CLASS_COPY)) ++#else ++#define elf_machine_type_class(type) \ ++ ((((type) == R_M32R_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) \ ++ | (((type) == R_M32R_COPY) * ELF_RTYPE_CLASS_COPY)) ++#endif ++ ++/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */ ++#ifdef M32R_OLD_ABI ++/* for oldtype relocation compatibility */ ++#define ELF_MACHINE_JMP_SLOT \ ++ R_M32R_JMP_SLOT || ELFW(R_TYPE)(reloc->r_info) == R_M32R_JMP_SLOT_SAMPLE ++#else ++#define ELF_MACHINE_JMP_SLOT R_M32R_JMP_SLOT ++#endif ++ ++/* M32R never uses Elf32_Rel relocations. */ ++#define ELF_MACHINE_NO_REL 1 ++ ++/* We define an initialization functions. This is called very early in ++ _dl_sysdep_start. */ ++#define DL_PLATFORM_INIT dl_platform_init () ++ ++static inline void __attribute__ ((unused)) ++dl_platform_init (void) ++{ ++ if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0') ++ /* Avoid an empty string which would disturb us. */ ++ GLRO(dl_platform) = NULL; ++} ++ ++static inline Elf32_Addr ++elf_machine_fixup_plt (struct link_map *map, lookup_t t, ++ const Elf32_Rela *reloc, ++ Elf32_Addr *reloc_addr, Elf32_Addr value) ++{ ++ return *reloc_addr = value; ++} ++ ++/* Return the final value of a plt relocation. */ ++static inline Elf32_Addr ++elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc, ++ Elf32_Addr value) ++{ ++ return value + reloc->r_addend; ++} ++ ++#endif /* !dl_machine_h */ ++ ++#ifdef RESOLVE ++ ++extern char **_dl_argv; ++ ++/* Perform the relocation specified by RELOC and SYM (which is fully resolved). ++ MAP is the object containing the reloc. */ ++ ++auto inline void ++__attribute ((always_inline)) ++elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, ++ const Elf32_Sym *sym, const struct r_found_version *version, ++ void *const reloc_addr_arg) ++{ ++ Elf32_Addr *const reloc_addr = reloc_addr_arg; ++ const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); ++ Elf32_Addr value; ++ ++#define COPY_UNALIGNED_WORD(swp, twp, align) \ ++ { \ ++ void *__s = (swp), *__t = (twp); \ ++ unsigned char *__s1 = __s, *__t1 = __t; \ ++ unsigned short *__s2 = __s, *__t2 = __t; \ ++ unsigned long *__s4 = __s, *__t4 = __t; \ ++ switch ((align)) \ ++ { \ ++ case 0: \ ++ *__t4 = *__s4; \ ++ break; \ ++ case 2: \ ++ *__t2++ = *__s2++; \ ++ *__t2 = *__s2; \ ++ break; \ ++ default: \ ++ *__t1++ = *__s1++; \ ++ *__t1++ = *__s1++; \ ++ *__t1++ = *__s1++; \ ++ *__t1 = *__s1; \ ++ break; \ ++ } \ ++ } ++#define COPY_UNALIGNED_HWORD(swp, twp, align) \ ++ { \ ++ void *__s = (swp), *__t = (twp); \ ++ unsigned char *__s1 = __s, *__t1 = __t; \ ++ unsigned short *__s2 = __s, *__t2 = __t; \ ++ switch ((align)) \ ++ { \ ++ case 0: \ ++ *__t2 = *__s2; \ ++ break; \ ++ default: \ ++ *__t1++ = *__s1++; \ ++ *__t1 = *__s1; \ ++ break; \ ++ } \ ++ } ++ ++#ifdef M32R_OLD_ABI ++/* for oldtype relocation compatibility */ ++ if (__builtin_expect (r_type == R_M32R_RELATIVE || r_type == R_M32R_RELATIVE_SAMPLE, 0)) ++#else ++ if (__builtin_expect (r_type == R_M32R_RELATIVE, 0)) ++#endif ++ { ++#ifndef RTLD_BOOTSTRAP ++ if (map != &GL(dl_rtld_map)) /* Already done in rtld itself. */ ++#endif ++ { ++ if (reloc->r_addend) ++ value = map->l_addr + reloc->r_addend; ++ else ++ { ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &value, ++ (int) reloc_addr_arg & 3); ++ value += map->l_addr; ++ } ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ } ++ } ++#ifndef RTLD_BOOTSTRAP ++ else if (__builtin_expect (r_type == R_M32R_NONE, 0)) ++ return; ++#endif ++ else ++ { ++ const Elf32_Sym *const refsym = sym; ++#ifndef RTLD_BOOTSTRAP ++ Elf32_Addr tmp_value; ++#endif ++ value = RESOLVE (&sym, version, r_type); ++ if (sym) ++ value += sym->st_value; ++ value += reloc->r_addend; ++ ++ switch (r_type) ++ { ++#ifdef M32R_OLD_ABI ++ case R_M32R_COPY_SAMPLE: ++#endif ++ case R_M32R_COPY: ++ if (sym == NULL) ++ /* This can happen in trace mode if an object could not be ++ found. */ ++ break; ++ if (sym->st_size > refsym->st_size ++ || (sym->st_size < refsym->st_size && GLRO(dl_verbose))) ++ { ++ const char *strtab; ++ ++ strtab = (const char *) D_PTR (map, l_info[DT_STRTAB]); ++ _dl_error_printf ("\ ++%s: Symbol `%s' has different size in shared object, consider re-linking\n", ++ _dl_argv[0] ?: "", ++ strtab + refsym->st_name); ++ } ++ memcpy (reloc_addr, (void *) value, MIN (sym->st_size, ++ refsym->st_size)); ++ break; ++#ifdef M32R_OLD_ABI ++ case R_M32R_GLOB_DAT_SAMPLE: ++#endif ++ case R_M32R_GLOB_DAT: ++#if 0 /* 20021129 1 -> 0 */ ++ case R_M32R_32: ++ *reloc_addr = value; ++ break; ++#endif /* 20021129 1 -> 0 */ ++#ifdef M32R_OLD_ABI ++ case R_M32R_JMP_SLOT_SAMPLE: ++#endif ++ case R_M32R_JMP_SLOT: ++ elf_machine_fixup_plt(map, 0, reloc, reloc_addr, value); ++ break; ++#if 1 /* 20021129 0 -> 1 */ ++#ifdef M32R_OLD_ABI ++ case R_M32R_32_SAMPLE: ++#endif ++ case R_M32R_32_RELA: ++#ifndef RTLD_BOOTSTRAP ++#ifdef M32R_OLD_ABI ++ case R_M32R_24_SAMPLE: ++ case R_M32R_16_SAMPLE: ++ case R_M32R_HI16_ULO_SAMPLE: ++ case R_M32R_HI16_SLO_SAMPLE: ++ case R_M32R_LO16_SAMPLE: ++ case R_M32R_SDA16_SAMPLE: ++#endif ++ case R_M32R_24_RELA: ++ case R_M32R_16_RELA: ++ case R_M32R_HI16_ULO_RELA: ++ case R_M32R_HI16_SLO_RELA: ++ case R_M32R_LO16_RELA: ++ case R_M32R_SDA16_RELA: ++#endif ++ case R_M32R_REL32: ++ { ++#ifndef RTLD_BOOTSTRAP ++ /* This is defined in rtld.c, but nowhere in the static ++ libc.a; make the reference weak so static programs can ++ still link. This declaration cannot be done when ++ compiling rtld.c (i.e. #ifdef RTLD_BOOTSTRAP) because ++ rtld.c contains the common defn for _dl_rtld_map, which ++ is incompatible with a weak decl in the same file. */ ++# ifndef SHARED ++ weak_extern (GL(dl_rtld_map)); ++# endif ++ if (map == &GL(dl_rtld_map)) ++ /* Undo the relocation done here during bootstrapping. ++ Now we will relocate it anew, possibly using a ++ binding found in the user program or a loaded library ++ rather than the dynamic linker's built-in definitions ++ used while loading those libraries. */ ++ value -= map->l_addr + refsym->st_value + reloc->r_addend; ++#endif ++#ifdef M32R_OLD_ABI ++ if (r_type == R_M32R_32_SAMPLE ++ || r_type == R_M32R_32_RELA) ++#else ++ if (r_type == R_M32R_32_RELA) ++#endif ++ { ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ } ++#ifndef RTLD_BOOTSTRAP ++#ifdef M32R_OLD_ABI ++ else if (r_type == R_M32R_16_SAMPLE ++ || r_type == R_M32R_16_RELA) ++#else ++ else if (r_type == R_M32R_16_RELA) ++#endif ++ { ++ COPY_UNALIGNED_HWORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ } ++ else if (r_type == R_M32R_REL32) ++ { ++ value = (value - (Elf32_Addr) reloc_addr); ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ } ++ else ++ { ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &tmp_value, ++ (int) reloc_addr_arg & 3); ++ switch (r_type) ++ { ++#ifdef M32R_OLD_ABI ++ case R_M32R_24_SAMPLE: ++ if (value & 0xff000000) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_24 relocation overflow"); ++ } ++ value = (tmp_value & ~0xffffff) | (value & 0xffffff); ++ break; ++#endif ++ case R_M32R_24_RELA: ++ if (value & 0xff000000) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_24_RELA relocation overflow"); ++ } ++ value = (tmp_value & ~0xffffff) | (value & 0xffffff); ++ break; ++#ifdef M32R_OLD_ABI ++ case R_M32R_HI16_ULO_SAMPLE: ++#endif ++ case R_M32R_HI16_ULO_RELA: ++ value = (tmp_value & ~0xffff) | ((value >>16) & 0xffff); ++ break; ++#ifdef M32R_OLD_ABI ++ case R_M32R_HI16_SLO_SAMPLE: ++#endif ++ case R_M32R_HI16_SLO_RELA: ++ if (value & 0x8000) ++ value += 0x10000; ++ value = (tmp_value & ~0xffff) | ((value >>16) & 0xffff); ++ break; ++#ifdef M32R_OLD_ABI ++ case R_M32R_LO16_SAMPLE: ++ case R_M32R_SDA16_SAMPLE: ++#endif ++ case R_M32R_LO16_RELA: ++ case R_M32R_SDA16_RELA: ++ value = (tmp_value & ~0xffff) | (value & 0xffff); ++ break; ++ } ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ } ++#endif ++ break; ++ } ++#ifndef RTLD_BOOTSTRAP ++#ifdef M32R_OLD_ABI ++ case R_M32R_26_PCREL_SAMPLE: ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &tmp_value, ++ (int) reloc_addr_arg & 3); ++ value += (signed long)(((tmp_value & 0xffffff) ^ 0x800000) - 0x800000) << 2; ++ value = value - (Elf32_Addr) reloc_addr; ++ if ((signed long)value < -0x2000000 || 0x1fffffc < (signed long)value) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_26_PCREL relocation overflow"); ++ } ++ value = (tmp_value & ~0xffffff) | ((value >> 2) & 0xffffff); ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, (int) reloc_addr_arg & 3); ++ break; ++#endif ++ case R_M32R_26_PCREL_RELA: ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &tmp_value, ++ (int) reloc_addr_arg & 3); ++ value = value - (Elf32_Addr) reloc_addr; ++ if ((signed long)value < -0x2000000 || 0x1fffffc < (signed long)value) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_26_PCREL_RELA relocation overflow"); ++ } ++ value = (tmp_value & ~0xffffff) | ((value >> 2) & 0xffffff); ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ break; ++#ifdef M32R_OLD_ABI ++ case R_M32R_18_PCREL_SAMPLE: ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &tmp_value, ++ (int) reloc_addr_arg & 3); ++ value += (signed long)((tmp_value & 0xffff) ^ 0x8000) - 0x8000) << 2; ++ value = value - (Elf32_Addr) reloc_addr; ++ if ((signed long)value < -0x20000 || 0x1fffc < (signed long)value) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_18_PCREL relocation overflow"); ++ } ++ value = (tmp_value & ~0xffff) | ((value >> 2) & 0xffff); ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ break; ++#endif ++ case R_M32R_18_PCREL_RELA: ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &tmp_value, ++ (int) reloc_addr_arg & 3); ++ value = value - (Elf32_Addr) reloc_addr; ++ if ((signed long)value < -0x20000 || 0x1fffc < (signed long)value) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_18_PCREL_RELA relocation overflow"); ++ } ++ value = (tmp_value & ~0xffff) | ((value >> 2) & 0xffff); ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ break; ++#endif ++#ifdef M32R_OLD_ABI ++ case R_M32R_10_PCREL_SAMPLE: ++#else ++ case R_M32R_10_PCREL_RELA: ++#endif ++ { ++ unsigned short tmp_hvalue; ++ COPY_UNALIGNED_HWORD (reloc_addr_arg, &tmp_hvalue, ++ (int) reloc_addr_arg & 3); ++ value = value - (Elf32_Addr) reloc_addr; ++ if ((signed long)value < -0x200 || 0x1fc < (signed long)value) ++ { ++#ifdef M32R_OLD_ABI ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_10_PCREL relocation overflow"); ++#else ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_10_PCREL_RELA relocation overflow"); ++#endif ++ } ++ tmp_hvalue = (tmp_hvalue & ~0xff) | ((value >> 2) & 0xff); ++ COPY_UNALIGNED_HWORD (&tmp_hvalue, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ break; ++ } ++#endif /* 20021129 0 -> 1 */ ++ default: ++ _dl_reloc_bad_type (map, r_type, 0); ++ break; ++ } ++ } ++} ++ ++auto inline void ++__attribute ((always_inline)) ++elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, ++ void *const reloc_addr_arg) ++{ ++ Elf32_Addr value; ++ ++ if (reloc->r_addend) ++ value = l_addr + reloc->r_addend; ++ else ++ { ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &value, (int) reloc_addr_arg & 3); ++ value += l_addr; ++ } ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, (int) reloc_addr_arg & 3); ++ ++#undef COPY_UNALIGNED_WORD ++#undef COPY_UNALIGNED_HWORD ++} ++ ++auto inline void ++__attribute ((always_inline)) ++elf_machine_lazy_rel (struct link_map *map, ++ Elf32_Addr l_addr, const Elf32_Rela *reloc) ++{ ++ Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); ++ /* Check for unexpected PLT reloc type. */ ++#ifdef M32R_OLD_ABI ++ if (ELF32_R_TYPE (reloc->r_info) == R_M32R_JMP_SLOT ++ || ELF32_R_TYPE (reloc->r_info) == R_M32R_JMP_SLOT_SAMPLE) ++#else ++ if (ELF32_R_TYPE (reloc->r_info) == R_M32R_JMP_SLOT) ++#endif ++ *reloc_addr += l_addr; ++ else ++ _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1); ++} ++ ++#endif /* RESOLVE */ +diff --exclude=CVS -upNr ports/sysdeps/m32r/elf/start.S ports/sysdeps/m32r/elf/start.S +--- ports/sysdeps/m32r/elf/start.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/elf/start.S 2006-03-02 11:31:52.000000000 +0900 +@@ -0,0 +1,109 @@ ++/* Startup code for M32R & ELF. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* This is the canonical entry point, usually the first thing in the text ++ segment. ++ ++ Note that the code in the .init section has already been run. ++ This includes _init and _libc_init ++ ++ ++ At this entry point, most registers' values are unspecified, except: ++ ++ r0 Contains a function pointer to be registered with `atexit'. ++ This is how the dynamic linker arranges to have DT_FINI ++ functions called for shared libraries that have been loaded ++ before this code runs. ++ ++ sp The stack contains the arguments and environment: ++ @(0,sp) argc ++ @(4,sp) argv[0] ++ ... ++ @((4*argc),sp) NULL ++ @((4*(argc+1)),sp) envp[0] ++ ... ++ NULL ++*/ ++ ++#include "sysdep.h" ++#include "bp-sym.h" ++ ++ .text ++ .globl _start ++_start: ++ /* Clear the frame pointer since this is the outermost frame. */ ++ ldi r13, #0 ++#ifdef SHARED ++ bl.s .+4 ++ ld24 r12, #_GLOBAL_OFFSET_TABLE_ ++ add r12, lr ++#endif ++ ++ /* Pop argc off the stack and save a pointer to argv */ ++ pop r1 ++ mv r2, sp ++ ++ /* Push the last arguments to main() onto the stack */ ++ push r0 ++#ifdef SHARED ++ ld24 r0, #__libc_csu_fini@GOT ++ add r0,r12 ++ ld r0,@r0 ++#else ++ LDIMM (r0, __libc_csu_fini) ++#endif ++ push r0 ++ ++ /* Set up the other arguments for main() that go in registers */ ++#ifdef SHARED ++ ld24 r0,#BP_SYM (main@GOT) ++ add r0,r12 ++ ld r0,@r0 ++ ld24 r3, #__libc_csu_init@GOT ++ add r3,r12 ++ ld r3,@r3 ++#else ++ LDIMM (r0, BP_SYM (main)) ++ LDIMM (r3, __libc_csu_init) ++#endif ++ ++ /* __libc_start_main (main, argc, argv, init, fini, rtld_fini) */ ++ ++ /* Let the libc call main and exit with its return code. */ ++#ifdef SHARED ++ bl BP_SYM (__libc_start_main@PLT) ++#else ++ LDIMM (r4, BP_SYM (__libc_start_main)) ++ jl r4 ++#endif ++ /* should never get here....*/ ++#ifdef SHARED ++ bl abort@PLT ++#else ++ LDIMM (r4, abort) ++ jl r4 ++#endif ++ ++/* Define a symbol for the first piece of initialized data. */ ++ .data ++ .globl __data_start ++__data_start: ++ .long 0 ++ .weak data_start ++ data_start = __data_start +diff --exclude=CVS -upNr ports/sysdeps/m32r/gccframe.h ports/sysdeps/m32r/gccframe.h +--- ports/sysdeps/m32r/gccframe.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/gccframe.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,22 @@ ++/* Definition of object in frame unwind info. m32r version. ++ Copyright (C) 2001 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#define DWARF_FRAME_REGISTERS 20 ++ ++#include +diff --exclude=CVS -upNr ports/sysdeps/m32r/gmp-mparam.h ports/sysdeps/m32r/gmp-mparam.h +--- ports/sysdeps/m32r/gmp-mparam.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/gmp-mparam.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,30 @@ ++/* gmp-mparam.h -- Compiler/machine parameter header file. ++ ++Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ ++This file is part of the GNU MP Library. ++ ++The GNU MP Library is free software; you can redistribute it and/or modify ++it under the terms of the GNU Library General Public License as published by ++the Free Software Foundation; either version 2 of the License, or (at your ++option) any later version. ++ ++The GNU MP Library is distributed in the hope that it will be useful, but ++WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public ++License for more details. ++ ++You should have received a copy of the GNU Library General Public License ++along with the GNU MP Library; see the file COPYING.LIB. If not, write to ++the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, ++MA 02111-1307, USA. */ ++ ++#define BITS_PER_MP_LIMB 32 ++#define BYTES_PER_MP_LIMB 4 ++#define BITS_PER_LONGINT 32 ++#define BITS_PER_INT 32 ++#define BITS_PER_SHORTINT 16 ++#define BITS_PER_CHAR 8 ++ ++#define IEEE_DOUBLE_BIG_ENDIAN 0 ++#define IEEE_DOUBLE_MIXED_ENDIAN 1 +diff --exclude=CVS -upNr ports/sysdeps/m32r/linuxthreads/pspinlock.c ports/sysdeps/m32r/linuxthreads/pspinlock.c +--- ports/sysdeps/m32r/linuxthreads/pspinlock.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/linuxthreads/pspinlock.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,70 @@ ++/* POSIX spinlock implementation. M32R version. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++#include "internals.h" ++ ++int ++__pthread_spin_lock (pthread_spinlock_t *lock) ++{ ++ while (INTERNAL_SYSCALL (tas, , 1, lock)); ++ return 0; ++} ++weak_alias (__pthread_spin_lock, pthread_spin_lock) ++ ++ ++int ++__pthread_spin_trylock (pthread_spinlock_t *lock) ++{ ++ unsigned int val; ++ ++ if ((val = *lock) == 0) ++ val = INTERNAL_SYSCALL (tas, , 1, lock); ++ return (val > 0 ? EBUSY : 0); ++} ++weak_alias (__pthread_spin_trylock, pthread_spin_trylock) ++ ++ ++int ++__pthread_spin_unlock (pthread_spinlock_t *lock) ++{ ++ return *lock = 0; ++} ++weak_alias (__pthread_spin_unlock, pthread_spin_unlock) ++ ++ ++int ++__pthread_spin_init (pthread_spinlock_t *lock, int pshared) ++{ ++ /* We can ignore the `pshared' parameter. Since we are busy-waiting ++ all processes which can access the memory location `lock' points ++ to can use the spinlock. */ ++ return *lock = 0; ++} ++weak_alias (__pthread_spin_init, pthread_spin_init) ++ ++ ++int ++__pthread_spin_destroy (pthread_spinlock_t *lock) ++{ ++ /* Nothing to do. */ ++ return 0; ++} ++weak_alias (__pthread_spin_destroy, pthread_spin_destroy) +diff --exclude=CVS -upNr ports/sysdeps/m32r/linuxthreads/pt-machine.h ports/sysdeps/m32r/linuxthreads/pt-machine.h +--- ports/sysdeps/m32r/linuxthreads/pt-machine.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/linuxthreads/pt-machine.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,55 @@ ++/* Machine-dependent pthreads configuration and inline functions. ++ M32R version. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _PT_MACHINE_H ++#define _PT_MACHINE_H 1 ++ ++#include ++#include ++ ++#ifndef __ASSEMBLER__ ++#ifndef PT_EI ++# define PT_EI extern inline ++#endif ++ ++extern long int testandset (int *spinlock); ++extern int __compare_and_swap (long int *p, long int oldval, long int newval); ++ ++/* Spinlock implementation; required. */ ++PT_EI long int ++testandset (int *spinlock) ++{ ++ int ret; ++ ++ ret = INLINE_SYSCALL (tas, 1, spinlock); ++ return ret; ++} ++ ++#define lock_held(p) *(p) ++ ++/* Get some notion of the current stack. Need not be exactly the top ++ of the stack, just something somewhere in the current frame. */ ++#define CURRENT_STACK_FRAME stack_pointer ++register char * stack_pointer __asm__ ("r15"); ++ ++#endif /* __ASSEMBLER__ */ ++ ++#endif /* pt-machine.h */ ++ +diff --exclude=CVS -upNr ports/sysdeps/m32r/m32r-mcount.S ports/sysdeps/m32r/m32r-mcount.S +--- ports/sysdeps/m32r/m32r-mcount.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/m32r-mcount.S 2006-03-02 11:17:40.000000000 +0900 +@@ -0,0 +1,67 @@ ++/* m32r-specific implemetation of profiling support. ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(_mcount) ++ ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), function) ++ .balign 4 ++C_LABEL(_mcount) ++ /* Save the caller-clobbered registers. */ ++ push r0 ++ push r1 ++ push r2 ++ push r3 ++ push r4 ++ push r5 ++ push r6 ++ push r7 ++ push lr ++ ld r0,@(36,sp) ++ mv r1,lr ++ ++#ifdef __PIC__ ++ push r12 ++ bl.s .+4 ++ ld24 r12,#_GLOBAL_OFFSET_TABLE_ ++ add r12,lr ++ ld24 lr,#__mcount_internal@GOT ++ add lr,r12 ++ ld lr,@(lr) ++ jl lr ++ pop r12 ++#else ++ bl __mcount_internal ++#endif ++ /* Pop the saved registers. Please note that `mcount' has no ++ return value. */ ++ pop lr ++ pop r7 ++ pop r6 ++ pop r5 ++ pop r4 ++ pop r3 ++ pop r2 ++ pop r1 ++ pop r0 ++ ret ++ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount)) ++ ++#undef mcount ++weak_alias(_mcount, mcount) +diff --exclude=CVS -upNr ports/sysdeps/m32r/machine-gmon.h ports/sysdeps/m32r/machine-gmon.h +--- ports/sysdeps/m32r/machine-gmon.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/machine-gmon.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,34 @@ ++/* Machine-dependent definitions for profiling support. M32R version. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* NOTYET */ ++ ++/* We must not pollute the global namespace. */ ++#define mcount_internal __mcount_internal ++ ++void mcount_internal (u_long frompc, u_long selfpc); ++ ++#define _MCOUNT_DECL(frompc, selfpc) \ ++void mcount_internal (u_long frompc, u_long selfpc) ++ ++ ++/* Define MCOUNT as empty since we have the implementation in another ++ file. */ ++#define MCOUNT ++ +diff --exclude=CVS -upNr ports/sysdeps/m32r/memcpy.S ports/sysdeps/m32r/memcpy.S +--- ports/sysdeps/m32r/memcpy.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/memcpy.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,62 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++ ++/* ++ * void *memcpy(void *dst, const void *src, size_t n); ++ * No overlap between the memory of DST and of SRC are assumed. ++ * ++ * dst: r0 ++ * src: r1 ++ * n : r2 ++ */ ++ ++ENTRY(memcpy) ++ mv r4, r0 ++ mv r7, r0 ++ or r7, r1 ++ beq r0, r1, end_memcopy ++ beqz r2, end_memcopy ++ ++ and3 r7, r7, #3 ++ bnez r7, byte_copy ++ srl3 r3, r2, #2 ++ and3 r2, r2, #3 ++ beqz r3, byte_copy ++ addi r4, #-4 ++word_copy: ++ ld r7, @r1+ ++ addi r3, #-1 ++ st r7, @+r4 ++ bnez r3, word_copy ++ beqz r2, end_memcopy ++ addi r4, #4 ++byte_copy: ++ ldb r7, @r1 ++ addi r1, #1 ++ addi r2, #-1 ++ stb r7, @r4 ++ addi r4, #1 ++ bnez r2, byte_copy ++end_memcopy: ++ jmp r14 ++ nop ++END(memcpy) ++libc_hidden_builtin_def (memcpy) +diff --exclude=CVS -upNr ports/sysdeps/m32r/memset.S ports/sysdeps/m32r/memset.S +--- ports/sysdeps/m32r/memset.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/memset.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,184 @@ ++/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++/* void *memset(void *dst, int val, int len); ++ * ++ * dst: r0 ++ * val: r1 ++ * len: r2 ++ * ret: r0 ++ */ ++ ++ .text ++ ++#if defined(__m32r2__) ++ ++ENTRY(memset) ++ mv r4, r0 || cmpz r2 ++ jc r14 ; return if r2=0 ++ cmpui r2, #16 ++ bnc qword_align_check ++ cmpui r2, #4 ++ bc byte_set ++; case len >= 4 ++word_align_check: ++ and3 r3, r4, #3 ++ beqz r3, word_set ++; case no word-align ++ addi r3, #-4 ++ neg r3, r3 ; r3 = -(r3 - 4) ++align_word: ++ stb r1, @r4 || addi r4, #1 ++ addi r2, #-1 || addi r3, #-1 ++ bnez r3, align_word ++ cmpui r2, #4 ++ bc byte_set ++word_set: ++ and3 r1, r1, #0x00ff ; r1: abababab <-- ??????ab ++ sll3 r3, r1, #8 ++ or r1, r3 || addi r4, #-4 ++ sll3 r3, r1, #16 ++ or r1, r3 || addi r2, #-4 ++word_set_loop: ++ st r1, @+r4 || addi r2, #-4 ++ bgtz r2, word_set_loop ++ bnez r2, byte_set_wrap ++ st r1, @+r4 ++ jmp r14 ++ ++qword_align_check: ++ and3 r3, r4, #15 ++ bnez r3, word_align_check ++qword_set: ++ and3 r1, r1, #0x00ff ; r1: abababab <-- ??????ab ++ sll3 r3, r1, #8 ++ or r1, r3 || addi r4, #-4 ++ sll3 r3, r1, #16 ++ or r1, r3 || ldi r5, #16 ++qword_set_loop: ++ ld r3, @(4,r4) ; cache line allocate ++ st r1, @+r4 || addi r2, #-16 ++ st r1, @+r4 || cmpu r2, r5 ++ st r1, @+r4 ++ st r1, @+r4 ++ bnc qword_set_loop || cmpz r2 ++ jc r14 ++set_remainder: ++ cmpui r2, #4 ++ bc byte_set_wrap1 ++ addi r2, #-4 ++ bra word_set_loop ++ ++byte_set_wrap: ++ addi r2, #4 ++ cmpz r2 ++ jc r14 ; return if r2=0 ++byte_set_wrap1: ++ addi r4, #4 ++byte_set: ++ addi r2, #-1 || stb r1, @r4+ ++ bnez r2, byte_set ++end_memset: ++ jmp r14 ++END(memset) ++ ++#else ++ ++ENTRY(memset) ++ mv r4, r0 ++ beqz r2, end_memset ++ cmpui r2, #16 ++ bnc qword_align_check ++ cmpui r2, #4 ++ bc byte_set ++; case len >= 4 ++word_align_check: ++ and3 r3, r4, #3 ++ beqz r3, word_set ++; case no word-align ++ addi r3, #-4 ++ neg r3, r3 ; r3 = -(r3 - 4) ++align_word: ++ stb r1, @r4 ++ addi r4, #1 ++ addi r2, #-1 ++ addi r3, #-1 ++ bnez r3, align_word ++ cmpui r2, #4 ++ bc byte_set ++word_set: ++ and3 r1, r1, #0x00ff ; r1: abababab <-- ??????ab ++ sll3 r3, r1, #8 ++ or r1, r3 ++ sll3 r3, r1, #16 ++ or r1, r3 ++ addi r2, #-4 ++ addi r4, #-4 ++word_set_loop: ++ st r1, @+r4 ++ addi r2, #-4 ++ bgtz r2, word_set_loop ++ bnez r2, byte_set_wrap ++ st r1, @+r4 ++ jmp r14 ++ ++qword_align_check: ++ and3 r3, r4, #15 ++ bnez r3, word_align_check ++qword_set: ++ and3 r1, r1, #0x00ff ; r1: abababab <-- ??????ab ++ sll3 r3, r1, #8 ++ or r1, r3 ++ sll3 r3, r1, #16 ++ or r1, r3 ++ addi r4, #-4 ++qword_set_loop: ++ ld r3, @(4,r4) ; cache line allocate ++ addi r2, #-16 ++ st r1, @+r4 ++ st r1, @+r4 ++ cmpui r2, #16 ++ st r1, @+r4 ++ st r1, @+r4 ++ bnc qword_set_loop ++ bnez r2, set_remainder ++ jmp r14 ++set_remainder: ++ cmpui r2, #4 ++ bc byte_set_wrap1 ++ addi r2, #-4 ++ bra word_set_loop ++ ++byte_set_wrap: ++ addi r2, #4 ++ beqz r2, end_memset ++byte_set_wrap1: ++ addi r4, #4 ++byte_set: ++ addi r2, #-1 ++ stb r1, @r4 ++ addi r4, #1 ++ bnez r2, byte_set ++end_memset: ++ jmp r14 ++END(memset) ++ ++#endif ++libc_hidden_builtin_def (memset) +diff --exclude=CVS -upNr ports/sysdeps/m32r/memusage.h ports/sysdeps/m32r/memusage.h +--- ports/sysdeps/m32r/memusage.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/memusage.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,21 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#define GETSP() ({ register uintptr_t stack_ptr asm ("r15"); stack_ptr; }) ++ ++#include +diff --exclude=CVS -upNr ports/sysdeps/m32r/setjmp.S ports/sysdeps/m32r/setjmp.S +--- ports/sysdeps/m32r/setjmp.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/setjmp.S 2006-03-02 11:18:51.000000000 +0900 +@@ -0,0 +1,53 @@ ++/* setjmp for M32R. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#define _SETJMP_H ++#define _ASM ++#include ++ ++ENTRY (__sigsetjmp) ++ mv r2, r0 ++ /* Save registers */ ++ st r8, @r0 ++ st r9, @+r0 ++ st r10, @+r0 ++ st r11, @+r0 ++ st r12, @+r0 ++ st r13, @+r0 ++ st r14, @+r0 /* lr */ ++ st r15, @+r0 /* sp */ ++ mv r0, r2 ++ ++ /* Make a tail call to __sigjmp_save; it takes the same args. */ ++#ifdef SHARED ++ mv r2,lr ++ bl.s .+4 ++ ld24 r3,#_GLOBAL_OFFSET_TABLE_ ++ add r3,lr ++ mv lr,r2 ++ ++ ld24 r2,C_SYMBOL_NAME(__sigjmp_save@GOT) ++ add r2,r3 ++ ld r2,@r2 ++#else ++ LDIMM (r2, C_SYMBOL_NAME(__sigjmp_save)) ++#endif ++ jmp r2 ++END (__sigsetjmp) +diff --exclude=CVS -upNr ports/sysdeps/m32r/shlib-versions ports/sysdeps/m32r/shlib-versions +--- ports/sysdeps/m32r/shlib-versions 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/shlib-versions 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,2 @@ ++m32r.*-.*-linux.* DEFAULT GLIBC_2.3 ++m32r.*-.*-linux.* ld=ld-linux.so.2 +diff --exclude=CVS -upNr ports/sysdeps/m32r/stackinfo.h ports/sysdeps/m32r/stackinfo.h +--- ports/sysdeps/m32r/stackinfo.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/stackinfo.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,28 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* This file contains a bit of information about the stack allocation ++ of the processor. */ ++ ++#ifndef _STACKINFO_H ++#define _STACKINFO_H 1 ++ ++/* On SH the stack grows down. */ ++#define _STACK_GROWS_DOWN 1 ++ ++#endif /* stackinfo.h */ +diff --exclude=CVS -upNr ports/sysdeps/m32r/strlen.S ports/sysdeps/m32r/strlen.S +--- ports/sysdeps/m32r/strlen.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/strlen.S 2006-04-20 09:44:29.000000000 +0900 +@@ -0,0 +1,77 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++ ++/* size_t strlen (const char *s) */ ++ ++ENTRY(strlen) ++ mv r6, r0 ++ ldi r2, #0 ++ and3 r0, r0, #3 ++ bnez r0, strlen_byte ++; ++strlen_word: ++ ld r0, @r6+ ++; ++ seth r5, #high(0x01010101) ++ or3 r5, r5, #low(0x01010101) ++ sll3 r7, r5, #7 ++strlen_word_loop: ++ not r4, r0 ; NOTE: If a null char. exists, return 0. ++ sub r0, r5 ; if ((x - 0x01010101) & ~x & 0x80808080) ++ and r4, r7 ; return 0; ++ and r4, r0 ++ bnez r4, strlen_last_bytes ++ ld r1, @r6+ ++ addi r2, #4 ++; ++ not r4, r1 ; NOTE: If a null char. exists, return 0. ++ sub r1, r5 ; if ((x - 0x01010101) & ~x & 0x80808080) ++ and r4, r7 ; return 0; ++ and r4, r1 ++ bnez r4, strlen_last_bytes ++ ld r0, @r6+ ++ addi r2, #4 ++ bra strlen_word_loop ++; ++strlen_byte: ++ ldb r1, @r6 ++ addi r6, #1 ++ beqz r1, strlen_exit ++ addi r2, #1 ++ bra strlen_byte ++; ++strlen_last_bytes: ++ ldi r0, #4 ++ addi r6, #-4 ++; ++strlen_byte_loop: ++ ldb r1, @r6 ++ addi r6, #1 ++ addi r0, #-1 ++ beqz r1, strlen_exit ++ addi r2, #1 ++ bnez r0, strlen_byte_loop ++; ++strlen_exit: ++ mv r0, r2 ++ jmp r14 ++END(strlen) ++libc_hidden_builtin_def (strlen) +diff --exclude=CVS -upNr ports/sysdeps/m32r/sys/ucontext.h ports/sysdeps/m32r/sys/ucontext.h +--- ports/sysdeps/m32r/sys/ucontext.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/sys/ucontext.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,102 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _SYS_UCONTEXT_H ++#define _SYS_UCONTEXT_H 1 ++ ++#include ++#include ++ ++typedef int greg_t; ++ ++/* Number of general registers. */ ++#define NGREG 16 ++ ++/* Container for all general registers. */ ++typedef greg_t gregset_t[NGREG]; ++ ++/* Number of each register is the `gregset_t' array. */ ++enum ++{ ++ R0 = 0, ++#define R0 R0 ++ R1 = 1, ++#define R1 R1 ++ R2 = 2, ++#define R2 R2 ++ R3 = 3, ++#define R3 R3 ++ R4 = 4, ++#define R4 R4 ++ R5 = 5, ++#define R5 R5 ++ R6 = 6, ++#define R6 R6 ++ R7 = 7, ++#define R7 R7 ++ R8 = 8, ++#define R8 R8 ++ R9 = 9, ++#define R9 R9 ++ R10 = 10, ++#define R10 R10 ++ R11 = 11, ++#define R11 R11 ++ R12 = 12, ++#define R12 R12 ++ R13 = 13, ++#define R13 R13 ++ R14 = 14, ++#define R14 R14 ++ R15 = 15, ++#define R15 R15 ++}; ++ ++#if 0 ++/* FIXME */ ++typedef int freg_t; ++ ++/* Number of FPU registers. */ ++#define NFREG 16 ++ ++/* Structure to describe FPU registers. */ ++typedef freg_t fpregset_t[NFREG]; ++#endif ++ ++/* Context to describe whole processor state. */ ++typedef struct ++ { ++ gregset_t gregs; ++#if 0 ++ fpregset_t fpregs; ++ fpregset_t xfpregs; ++#endif ++ } mcontext_t; ++ ++/* Userlevel context. */ ++typedef struct ucontext ++ { ++ unsigned long int uc_flags; ++ struct ucontext *uc_link; ++ __sigset_t uc_sigmask; ++ stack_t uc_stack; ++ mcontext_t uc_mcontext; ++ long int uc_filler[5]; ++ } ucontext_t; ++ ++#endif /* sys/ucontext.h */ +diff --exclude=CVS -upNr ports/sysdeps/m32r/sysdep.h ports/sysdeps/m32r/sysdep.h +--- ports/sysdeps/m32r/sysdep.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/sysdep.h 2006-03-06 15:12:42.000000000 +0900 +@@ -0,0 +1,92 @@ ++/* Assembler macros for M32R. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++#ifdef __ASSEMBLER__ ++ ++/* Syntactic details of assembler. */ ++ ++#ifdef HAVE_ELF ++ ++#define ALIGNARG(log2) log2 ++/* For ELF we need the `.type' directive to make shared libs work right. */ ++#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,@##typearg ++#define ASM_SIZE_DIRECTIVE(name) .size name,.-name ++ ++#define PLTJMP(_x) _x ++#define GOT(_x) _x ++ ++#else ++ ++#define ALIGNARG(log2) log2 ++#define ASM_TYPE_DIRECTIVE(name,type) /* Nothing is specified. */ ++#define ASM_SIZE_DIRECTIVE(name) /* Nothing is specified. */ ++ ++#define PLTJMP(_x) _x ++#define GOT(_x) _x ++ ++#endif ++ ++/* If compiled for profiling, call `mcount' at the start of each function. */ ++#ifdef PROF ++#ifdef __PIC__ ++#define CALL_MCOUNT \ ++ push r14 ! \ ++ ld24 r14,#mcount@GOT ! \ ++ add r14,r12 ! \ ++ ld r14,@r14 ! \ ++ jl r14 ! \ ++ pop r14 ++#else ++#define CALL_MCOUNT \ ++ push r14 ! \ ++ seth r14,#high(mcount) ! \ ++ or3 r14,r14,#low(mcount) ! \ ++ jl r14 ! \ ++ pop r14 ++#endif ++#else ++#define CALL_MCOUNT /* Do nothing. */ ++#endif ++ ++#undef CALL_MCOUNT /* Do nothing. */ ++#define CALL_MCOUNT /* Do nothing. */ ++ ++/* Define an entry point visible from C. */ ++#define ENTRY(name) \ ++ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name) ! \ ++ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function) ! \ ++ .balign 4 ! \ ++ C_LABEL(name) ! \ ++ CALL_MCOUNT ++ ++#undef END ++#define END(name) \ ++ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(name)) ++ ++#ifdef NO_UNDERSCORES ++/* Since C identifiers are not normally prefixed with an underscore ++ on this system, the asm identifier `syscall_error' intrudes on the ++ C name space. Make sure we use an innocuous name. */ ++#define syscall_error __syscall_error ++#define mcount _mcount ++#endif ++ ++#endif /* __ASSEMBLER__ */ +diff --exclude=CVS -upNr ports/sysdeps/unix/m32r/Makefile ports/sysdeps/unix/m32r/Makefile +--- ports/sysdeps/unix/m32r/Makefile 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/m32r/Makefile 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,4 @@ ++# m32r/ELF specific definitions. ++ ++# The assembler on m32r needs the -fPIC flag even when it's assembler code. ++ASFLAGS-.os = -fPIC +diff --exclude=CVS -upNr ports/sysdeps/unix/m32r/sysdep.S ports/sysdeps/unix/m32r/sysdep.S +--- ports/sysdeps/unix/m32r/sysdep.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/m32r/sysdep.S 2006-03-02 11:39:48.000000000 +0900 +@@ -0,0 +1,84 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#define _ERRNO_H ++#include ++ ++.globl C_SYMBOL_NAME(errno) ++.globl syscall_error ++ ++#undef syscall_error ++#ifdef NO_UNDERSCORES ++__syscall_error: ++#else ++syscall_error: ++#endif ++#if defined (EWOULDBLOCK_sys) && EWOULDBLOCK_sys != EAGAIN ++ /* We translate the system's EWOULDBLOCK error into EAGAIN. ++ The GNU C library always defines EWOULDBLOCK==EAGAIN. ++ EWOULDBLOCK_sys is the original number. */ ++ ldi r1, #EWOULDBLOCK_sys ++ bne r1, r0, skip ++ ldi r0, #EAGAIN ++skip: ++#endif ++ /* Store it in errno... */ ++#ifndef SHARED ++#ifndef _LIBC_REENTRANT ++ LDIMM (r1, C_SYMBOL_NAME(errno)) ++ st r0, @r1 ++#else ++ push r0 ++ push lr ++ LDIMM (r1, C_SYMBOL_NAME(__errno_location)) ++ jl r1 ++ pop lr ++ pop r1 ++ st r1, @r0 ++#endif ++#else ++ push r12 ++ push lr ++ bl.s .+4 ++ ld24 r12,#_GLOBAL_OFFSET_TABLE_ ++ add r12, lr ++#ifndef _LIBC_REENTRANT ++ mv r2, r0 ++ LDIMM (r1, C_SYMBOL_NAME(errno@GOT)) ++ add r1, r12 ++ ld r1, @r1 ++ st r2, @r1 ++#else ++ push r0 ++ LDIMM (r1, C_SYMBOL_NAME(__errno_location@GOT)) ++ add r1, r12 ++ ld r1, @r1 ++ jl r1 ++ pop r1 ++ st r1, @r0 ++#endif ++ pop lr ++ pop r12 ++#endif ++ /* And just kick back a -1. */ ++ ldi r0, #-1 ++ ret ++ ++#undef __syscall_error ++END(__syscall_error) +diff --exclude=CVS -upNr ports/sysdeps/unix/m32r/sysdep.h ports/sysdeps/unix/m32r/sysdep.h +--- ports/sysdeps/unix/m32r/sysdep.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/m32r/sysdep.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,33 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include "../../m32r/sysdep.h" ++ ++#ifdef __ASSEMBLER__ ++ ++#define ret jmp r14 ++ ++/* The m32r move insn is d, s. */ ++#define MOVE(x,y) mv y,x ++ ++#define LDIMM(reg,x) \ ++ seth reg, #high(x) ! \ ++ or3 reg, reg, #low(x) ++ ++#endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/Dist ports/sysdeps/unix/sysv/linux/m32r/Dist +--- ports/sysdeps/unix/sysv/linux/m32r/Dist 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/Dist 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,9 @@ ++clone.S ++pipe.S ++flushcache.S ++setresuid.c ++setresgid.c ++setfsuid.c ++setfsgid.c ++sys/io.h ++sys/user.h +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/Makefile ports/sysdeps/unix/sysv/linux/m32r/Makefile +--- ports/sysdeps/unix/sysv/linux/m32r/Makefile 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/Makefile 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,16 @@ ++# m32r/ELF specific definitions. ++#gnulib := -lgcc ++#static-gnulib := -lgcc ++ ++# The assembler on m32r needs the -fPIC flag even when it's assembler code. ++ASFLAGS-.os = -fPIC ++ ++ifeq ($(subdir),io) ++sysdep_routines += pipe ++endif ++ ++ifeq ($(subdir),misc) ++sysdep_routines += m32r-stub tas \ ++ cachectl flushcache ++sysdep_headers += sys/io.h sys/tas.h sys/cachectl.h ++endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/Versions ports/sysdeps/unix/sysv/linux/m32r/Versions +--- ports/sysdeps/unix/sysv/linux/m32r/Versions 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/Versions 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,12 @@ ++libc { ++ GLIBC_2.3 { ++ # Needed by gcc ++ _flush_cache; ++ ++ # c* ++ cachectl; cacheflush; ++ ++ # t* ++ tas; ++ } ++} +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/bits/fcntl.h ports/sysdeps/unix/sysv/linux/m32r/bits/fcntl.h +--- ports/sysdeps/unix/sysv/linux/m32r/bits/fcntl.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/bits/fcntl.h 2006-03-01 17:17:36.000000000 +0900 +@@ -0,0 +1,179 @@ ++/* O_*, F_*, FD_* bit values for Linux. ++ Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _FCNTL_H ++# error "Never use directly; include instead." ++#endif ++ ++ ++#include ++ ++/* open/fcntl - O_SYNC is only implemented on blocks devices and on files ++ located on an ext2 file system */ ++#define O_ACCMODE 0003 ++#define O_RDONLY 00 ++#define O_WRONLY 01 ++#define O_RDWR 02 ++#define O_CREAT 0100 /* not fcntl */ ++#define O_EXCL 0200 /* not fcntl */ ++#define O_NOCTTY 0400 /* not fcntl */ ++#define O_TRUNC 01000 /* not fcntl */ ++#define O_APPEND 02000 ++#define O_NONBLOCK 04000 ++#define O_NDELAY O_NONBLOCK ++#define O_SYNC 010000 ++#define O_FSYNC O_SYNC ++#define O_ASYNC 020000 ++ ++#ifdef __USE_GNU ++# define O_DIRECT 040000 /* Direct disk access. */ ++# define O_DIRECTORY 0200000 /* Must be a directory. */ ++# define O_NOFOLLOW 0400000 /* Do not follow links. */ ++#endif ++ ++/* For now Linux has synchronisity options for data and read operations. ++ We define the symbols here but let them do the same as O_SYNC since ++ this is a superset. */ ++#if defined __USE_POSIX199309 || defined __USE_UNIX98 ++# define O_DSYNC O_SYNC /* Synchronize data. */ ++# define O_RSYNC O_SYNC /* Synchronize read operations. */ ++#endif ++ ++#ifdef __USE_LARGEFILE64 ++# define O_LARGEFILE 0100000 ++#endif ++ ++/* Values for the second argument to `fcntl'. */ ++#define F_DUPFD 0 /* Duplicate file descriptor. */ ++#define F_GETFD 1 /* Get file descriptor flags. */ ++#define F_SETFD 2 /* Set file descriptor flags. */ ++#define F_GETFL 3 /* Get file status flags. */ ++#define F_SETFL 4 /* Set file status flags. */ ++#ifndef __USE_FILE_OFFSET64 ++# define F_GETLK 5 /* Get record locking info. */ ++# define F_SETLK 6 /* Set record locking info (non-blocking). */ ++# define F_SETLKW 7 /* Set record locking info (blocking). */ ++#else ++# define F_GETLK F_GETLK64 /* Get record locking info. */ ++# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/ ++# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */ ++#endif ++#define F_GETLK64 12 /* Get record locking info. */ ++#define F_SETLK64 13 /* Set record locking info (non-blocking). */ ++#define F_SETLKW64 14 /* Set record locking info (blocking). */ ++ ++#if defined __USE_BSD || defined __USE_XOPEN2K ++# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */ ++# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */ ++#endif ++ ++#ifdef __USE_GNU ++# define F_SETSIG 10 /* Set number of signal to be sent. */ ++# define F_GETSIG 11 /* Get number of signal to be sent. */ ++#endif ++ ++#ifdef __USE_GNU ++# define F_SETLEASE 1024 /* Set a lease. */ ++# define F_GETLEASE 1025 /* Enquire what lease is active. */ ++# define F_NOTIFY 1026 /* Request notfications on a directory. */ ++#endif ++ ++/* For F_[GET|SET]FL. */ ++#define FD_CLOEXEC 1 /* actually anything with low bit set goes */ ++ ++/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */ ++#define F_RDLCK 0 /* Read lock. */ ++#define F_WRLCK 1 /* Write lock. */ ++#define F_UNLCK 2 /* Remove lock. */ ++ ++/* For old implementation of bsd flock(). */ ++#define F_EXLCK 4 /* or 3 */ ++#define F_SHLCK 8 /* or 4 */ ++ ++#ifdef __USE_BSD ++/* Operations for bsd flock(), also used by the kernel implementation. */ ++# define LOCK_SH 1 /* shared lock */ ++# define LOCK_EX 2 /* exclusive lock */ ++# define LOCK_NB 4 /* or'd with one of the above to prevent ++ blocking */ ++# define LOCK_UN 8 /* remove lock */ ++#endif ++ ++#ifdef __USE_GNU ++# define LOCK_MAND 32 /* This is a mandatory flock: */ ++# define LOCK_READ 64 /* ... which allows concurrent read operations. */ ++# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */ ++# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */ ++#endif ++ ++#ifdef __USE_GNU ++/* Types of directory notifications that may be requested with F_NOTIFY. */ ++# define DN_ACCESS 0x00000001 /* File accessed. */ ++# define DN_MODIFY 0x00000002 /* File modified. */ ++# define DN_CREATE 0x00000004 /* File created. */ ++# define DN_DELETE 0x00000008 /* File removed. */ ++# define DN_RENAME 0x00000010 /* File renamed. */ ++# define DN_ATTRIB 0x00000020 /* File changed attibutes. */ ++# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */ ++#endif ++ ++struct flock ++ { ++ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ ++ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ ++#ifndef __USE_FILE_OFFSET64 ++ __off_t l_start; /* Offset where the lock begins. */ ++ __off_t l_len; /* Size of the locked area; zero means until EOF. */ ++#else ++ __off64_t l_start; /* Offset where the lock begins. */ ++ __off64_t l_len; /* Size of the locked area; zero means until EOF. */ ++#endif ++ __pid_t l_pid; /* Process holding the lock. */ ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct flock64 ++ { ++ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ ++ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ ++ __off64_t l_start; /* Offset where the lock begins. */ ++ __off64_t l_len; /* Size of the locked area; zero means until EOF. */ ++ __pid_t l_pid; /* Process holding the lock. */ ++ }; ++#endif ++ ++/* Define some more compatibility macros to be backward compatible with ++ BSD systems which did not managed to hide these kernel macros. */ ++#ifdef __USE_BSD ++# define FAPPEND O_APPEND ++# define FFSYNC O_FSYNC ++# define FASYNC O_ASYNC ++# define FNONBLOCK O_NONBLOCK ++# define FNDELAY O_NDELAY ++#endif /* Use BSD. */ ++ ++/* Advise to `posix_fadvise'. */ ++#ifdef __USE_XOPEN2K ++# define POSIX_FADV_NORMAL 0 /* No further special treatment. */ ++# define POSIX_FADV_RANDOM 1 /* Expect random page references. */ ++# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */ ++# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */ ++# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */ ++# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ ++#endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/bits/mman.h ports/sysdeps/unix/sysv/linux/m32r/bits/mman.h +--- ports/sysdeps/unix/sysv/linux/m32r/bits/mman.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/bits/mman.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,98 @@ ++/* Definitions for POSIX memory map interface. Linux/M32R version. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _SYS_MMAN_H ++# error "Never include this file directly. Use instead" ++#endif ++ ++/* The following definitions basically come from the kernel headers. ++ But the kernel header is not namespace clean. */ ++ ++ ++/* Protections are chosen from these bits, OR'd together. The ++ implementation does not necessarily support PROT_EXEC or PROT_WRITE ++ without PROT_READ. The only guarantees are that no writing will be ++ allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ ++ ++#define PROT_READ 0x1 /* Page can be read. */ ++#define PROT_WRITE 0x2 /* Page can be written. */ ++#define PROT_EXEC 0x4 /* Page can be executed. */ ++#define PROT_NONE 0x0 /* Page can not be accessed. */ ++#define PROT_GROWSDOWN 0x01000000 /* Extend change to start of ++ growsdown vma (mprotect only). */ ++#define PROT_GROWSUP 0x02000000 /* Extend change to start of ++ growsup vma (mprotect only). */ ++ ++ ++/* Sharing types (must choose one and only one of these). */ ++#define MAP_SHARED 0x01 /* Share changes. */ ++#define MAP_PRIVATE 0x02 /* Changes are private. */ ++#ifdef __USE_MISC ++# define MAP_TYPE 0x0f /* Mask for type of mapping. */ ++#endif ++ ++/* Other flags. */ ++#define MAP_FIXED 0x10 /* Interpret addr exactly. */ ++#ifdef __USE_MISC ++# define MAP_FILE 0 ++# define MAP_ANONYMOUS 0x20 /* Don't use a file. */ ++# define MAP_ANON MAP_ANONYMOUS ++#endif ++ ++/* These are Linux-specific. */ ++#ifdef __USE_MISC ++# define MAP_GROWSDOWN 0x0100 /* Stack-like segment. */ ++# define MAP_DENYWRITE 0x0800 /* ETXTBSY */ ++# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable. */ ++# define MAP_LOCKED 0x2000 /* Lock the mapping. */ ++# define MAP_NORESERVE 0x4000 /* Don't check for reservations. */ ++#endif ++ ++/* Flags to `msync'. */ ++#define MS_ASYNC 1 /* Sync memory asynchronously. */ ++#define MS_SYNC 4 /* Synchronous memory sync. */ ++#define MS_INVALIDATE 2 /* Invalidate the caches. */ ++ ++/* Flags for `mlockall'. */ ++#define MCL_CURRENT 1 /* Lock all currently mapped pages. */ ++#define MCL_FUTURE 2 /* Lock all additions to address ++ space. */ ++ ++/* Flags for `mremap'. */ ++#ifdef __USE_GNU ++# define MREMAP_MAYMOVE 1 ++#endif ++ ++/* Advice to `madvise'. */ ++#ifdef __USE_BSD ++# define MADV_NORMAL 0 /* No further special treatment. */ ++# define MADV_RANDOM 1 /* Expect random page references. */ ++# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ ++# define MADV_WILLNEED 3 /* Will need these pages. */ ++# define MADV_DONTNEED 4 /* Don't need these pages. */ ++#endif ++ ++/* The POSIX people had to invent similar names for the same things. */ ++#ifdef __USE_XOPEN2K ++# define POSIX_MADV_NORMAL 0 /* No further special treatment. */ ++# define POSIX_MADV_RANDOM 1 /* Expect random page references. */ ++# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */ ++# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */ ++# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */ ++#endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/bits/resource.h ports/sysdeps/unix/sysv/linux/m32r/bits/resource.h +--- ports/sysdeps/unix/sysv/linux/m32r/bits/resource.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/bits/resource.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,209 @@ ++/* Bit values & structures for resource limits. Linux/M32R version. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _SYS_RESOURCE_H ++# error "Never use directly; include instead." ++#endif ++ ++#include ++ ++/* Transmute defines to enumerations. The macro re-definitions are ++ necessary because some programs want to test for operating system ++ features with #ifdef RUSAGE_SELF. In ISO C the reflexive ++ definition is a no-op. */ ++ ++/* Kinds of resource limit. */ ++enum __rlimit_resource ++{ ++ /* Per-process CPU limit, in seconds. */ ++ RLIMIT_CPU = 0, ++#define RLIMIT_CPU RLIMIT_CPU ++ ++ /* Largest file that can be created, in bytes. */ ++ RLIMIT_FSIZE = 1, ++#define RLIMIT_FSIZE RLIMIT_FSIZE ++ ++ /* Maximum size of data segment, in bytes. */ ++ RLIMIT_DATA = 2, ++#define RLIMIT_DATA RLIMIT_DATA ++ ++ /* Maximum size of stack segment, in bytes. */ ++ RLIMIT_STACK = 3, ++#define RLIMIT_STACK RLIMIT_STACK ++ ++ /* Largest core file that can be created, in bytes. */ ++ RLIMIT_CORE = 4, ++#define RLIMIT_CORE RLIMIT_CORE ++ ++ /* Largest resident set size, in bytes. ++ This affects swapping; processes that are exceeding their ++ resident set size will be more likely to have physical memory ++ taken from them. */ ++ RLIMIT_RSS = 5, ++#define RLIMIT_RSS RLIMIT_RSS ++ ++ /* Number of open files. */ ++ RLIMIT_NOFILE = 7, ++ RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */ ++#define RLIMIT_NOFILE RLIMIT_NOFILE ++#define RLIMIT_OFILE RLIMIT_OFILE ++ ++ /* Address space limit. */ ++ RLIMIT_AS = 9, ++#define RLIMIT_AS RLIMIT_AS ++ ++ /* Number of processes. */ ++ RLIMIT_NPROC = 6, ++#define RLIMIT_NPROC RLIMIT_NPROC ++ ++ /* Locked-in-memory address space. */ ++ RLIMIT_MEMLOCK = 8, ++#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK ++ ++ /* Maximum number of file locks. */ ++ RLIMIT_LOCKS = 10, ++#define RLIMIT_LOCKS RLIMIT_LOCKS ++ ++ RLIMIT_NLIMITS = 11, ++ RLIM_NLIMITS = RLIMIT_NLIMITS ++#define RLIMIT_NLIMITS RLIMIT_NLIMITS ++#define RLIM_NLIMITS RLIM_NLIMITS ++}; ++ ++/* Value to indicate that there is no limit. */ ++#ifndef __USE_FILE_OFFSET64 ++# define RLIM_INFINITY ((unsigned long int)(~0UL)) ++#else ++# define RLIM_INFINITY 0xffffffffffffffffuLL ++#endif ++ ++#ifdef __USE_LARGEFILE64 ++# define RLIM64_INFINITY 0xffffffffffffffffuLL ++#endif ++ ++/* We can represent all limits. */ ++#define RLIM_SAVED_MAX RLIM_INFINITY ++#define RLIM_SAVED_CUR RLIM_INFINITY ++ ++ ++/* Type for resource quantity measurement. */ ++#ifndef __USE_FILE_OFFSET64 ++typedef __rlim_t rlim_t; ++#else ++typedef __rlim64_t rlim_t; ++#endif ++#ifdef __USE_LARGEFILE64 ++typedef __rlim64_t rlim64_t; ++#endif ++ ++struct rlimit ++ { ++ /* The current (soft) limit. */ ++ rlim_t rlim_cur; ++ /* The hard limit. */ ++ rlim_t rlim_max; ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct rlimit64 ++ { ++ /* The current (soft) limit. */ ++ rlim64_t rlim_cur; ++ /* The hard limit. */ ++ rlim64_t rlim_max; ++ }; ++#endif ++ ++/* Whose usage statistics do you want? */ ++enum __rusage_who ++{ ++ /* The calling process. */ ++ RUSAGE_SELF = 0, ++#define RUSAGE_SELF RUSAGE_SELF ++ ++ /* All of its terminated child processes. */ ++ RUSAGE_CHILDREN = -1, ++#define RUSAGE_CHILDREN RUSAGE_CHILDREN ++ ++ /* Both. */ ++ RUSAGE_BOTH = -2 ++#define RUSAGE_BOTH RUSAGE_BOTH ++}; ++ ++#define __need_timeval ++#include /* For `struct timeval'. */ ++ ++/* Structure which says how much of each resource has been used. */ ++struct rusage ++ { ++ /* Total amount of user time used. */ ++ struct timeval ru_utime; ++ /* Total amount of system time used. */ ++ struct timeval ru_stime; ++ /* Maximum resident set size (in kilobytes). */ ++ long int ru_maxrss; ++ /* Amount of sharing of text segment memory ++ with other processes (kilobyte-seconds). */ ++ long int ru_ixrss; ++ /* Amount of data segment memory used (kilobyte-seconds). */ ++ long int ru_idrss; ++ /* Amount of stack memory used (kilobyte-seconds). */ ++ long int ru_isrss; ++ /* Number of soft page faults (i.e. those serviced by reclaiming ++ a page from the list of pages awaiting reallocation. */ ++ long int ru_minflt; ++ /* Number of hard page faults (i.e. those that required I/O). */ ++ long int ru_majflt; ++ /* Number of times a process was swapped out of physical memory. */ ++ long int ru_nswap; ++ /* Number of input operations via the file system. Note: This ++ and `ru_oublock' do not include operations with the cache. */ ++ long int ru_inblock; ++ /* Number of output operations via the file system. */ ++ long int ru_oublock; ++ /* Number of IPC messages sent. */ ++ long int ru_msgsnd; ++ /* Number of IPC messages received. */ ++ long int ru_msgrcv; ++ /* Number of signals delivered. */ ++ long int ru_nsignals; ++ /* Number of voluntary context switches, i.e. because the process ++ gave up the process before it had to (usually to wait for some ++ resource to be available). */ ++ long int ru_nvcsw; ++ /* Number of involuntary context switches, i.e. a higher priority process ++ became runnable or the current process used up its time slice. */ ++ long int ru_nivcsw; ++ }; ++ ++/* Priority limits. */ ++#define PRIO_MIN -20 /* Minimum priority a process can have. */ ++#define PRIO_MAX 20 /* Maximum priority a process can have. */ ++ ++/* The type of the WHICH argument to `getpriority' and `setpriority', ++ indicating what flavor of entity the WHO argument specifies. */ ++enum __priority_which ++{ ++ PRIO_PROCESS = 0, /* WHO is a process ID. */ ++#define PRIO_PROCESS PRIO_PROCESS ++ PRIO_PGRP = 1, /* WHO is a process group ID. */ ++#define PRIO_PGRP PRIO_PGRP ++ PRIO_USER = 2 /* WHO is a user ID. */ ++#define PRIO_USER PRIO_USER ++}; +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/brk.c ports/sysdeps/unix/sysv/linux/m32r/brk.c +--- ports/sysdeps/unix/sysv/linux/m32r/brk.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/brk.c 2006-03-02 12:30:59.000000000 +0900 +@@ -0,0 +1,50 @@ ++/* brk system call for Linux/M32R. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++#include ++ ++/* This must be initialized data because commons can't have aliases. */ ++void *__curbrk = 0; ++ ++int ++__brk (void *addr) ++{ ++ void *newbrk; ++ register long r7 asm ("r7") = SYS_ify (brk); ++ register long r0 asm ("r0") = (long)addr; ++ ++ asm volatile ("trap #0x2 || nop\n\t" ++ "mv %0,r0\n" ++ : "=r"(newbrk), "+r" (r0) ++ : "r" (r7), "r" (r0) ++ ); ++ ++ __curbrk = newbrk; ++ ++ if (newbrk < addr) ++ { ++ __set_errno (ENOMEM); ++ return -1; ++ } ++ ++ return 0; ++} ++weak_alias (__brk, brk) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/chown.c ports/sysdeps/unix/sysv/linux/m32r/chown.c +--- ports/sysdeps/unix/sysv/linux/m32r/chown.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/chown.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,35 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++#include "kernel-features.h" ++ ++int ++__chown (const char *file, uid_t owner, gid_t group) ++{ ++ return INLINE_SYSCALL (chown32, 3, CHECK_STRING (file), owner, group); ++} ++libc_hidden_def (__chown) ++weak_alias (__chown, chown) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/clone.S ports/sysdeps/unix/sysv/linux/m32r/clone.S +--- ports/sysdeps/unix/sysv/linux/m32r/clone.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/clone.S 2006-03-02 17:39:21.000000000 +0900 +@@ -0,0 +1,89 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* clone() is even more special than fork() as it mucks with stacks ++ and invokes a function in the right context after its all over. */ ++ ++#include ++#define _ERRNO_H 1 ++#include ++ ++/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg, ++ pid_t *ptid, void *tls, pid_t *ctid); */ ++ ++ .text ++ENTRY(__clone) ++ /* sanity check arguments. */ ++ beqz r0, 1f ++ bnez r1, 2f ++ ++ .fillinsn ++1: ++ ldi r0, #-EINVAL ++ bra .Lsyscall_error ++ .fillinsn ++2: ++ /* insert the args onto the new stack */ ++ st r3, @-r1 ++ /* save the function pointer as the 0th element */ ++ st r0, @-r1 ++ ++ /* do the system call */ ++ mv r0, r2 ++ ld r2, @r15 ++ ld r3, @(8,r15) ++ ;ld RX, @(4,r15) /* FIXME: *tls */ ++ ldi r7, #SYS_ify(clone) ++ SYSCALL_INST ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 3f // i.e. error in linux ++ ++ .fillinsn ++.Lsyscall_error: ++ SYSCALL_ERROR_HANDLER ++ .fillinsn ++3: ++ beqz r0, 4f ++ ret ++ .fillinsn ++4: ++ /* thread starts */ ++ ld r1, @r15 ++ ld r0, @(4,r15) ++ jl r1 ++ ++ /* we are done, passing the return value through r0 */ ++#ifdef SHARED ++ push r12 ++ push lr ++ bl.s .+4 ++ ld24 r12, #_GLOBAL_OFFSET_TABLE_ ++ add r12, lr ++ bl C_SYMBOL_NAME(_exit@PLT) ++ pop lr ++ pop r12 ++ ret ++#else ++ LDIMM (r1, C_SYMBOL_NAME(_exit)) ++ jmp r1 ++#endif ++ ++PSEUDO_END (__clone) ++ ++weak_alias (__clone, clone) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/configure ports/sysdeps/unix/sysv/linux/m32r/configure +--- ports/sysdeps/unix/sysv/linux/m32r/configure 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/configure 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,5 @@ ++# This file is generated from configure.in by Autoconf. DO NOT EDIT! ++ # Local configure fragment for m32r/sysdeps/unix/sysv/linux/m32r ++ ++arch_minimum_kernel=2.4.19 ++ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/configure.in ports/sysdeps/unix/sysv/linux/m32r/configure.in +--- ports/sysdeps/unix/sysv/linux/m32r/configure.in 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/configure.in 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,4 @@ ++# Local configure fragment for m32r/sysdeps/unix/sysv/linux/m32r ++ ++arch_minimum_kernel=2.4.19 ++ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/fchown.c ports/sysdeps/unix/sysv/linux/m32r/fchown.c +--- ports/sysdeps/unix/sysv/linux/m32r/fchown.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/fchown.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/fcntl.c ports/sysdeps/unix/sysv/linux/m32r/fcntl.c +--- ports/sysdeps/unix/sysv/linux/m32r/fcntl.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/fcntl.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/flushcache.S ports/sysdeps/unix/sysv/linux/m32r/flushcache.S +--- ports/sysdeps/unix/sysv/linux/m32r/flushcache.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/flushcache.S 2006-03-02 11:42:26.000000000 +0900 +@@ -0,0 +1,29 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++ 02111-1307, USA. */ ++ ++#include ++ ++/* int _flush_cache(char *addr, int nbytes, int cache); */ ++ ++ .text ++ENTRY(__flush_cache) ++ trap #12 || nop ++ ret ++PSEUDO_END (__flush_cache) ++ ++weak_alias (__flush_cache, _flush_cache) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/fxstat.c ports/sysdeps/unix/sysv/linux/m32r/fxstat.c +--- ports/sysdeps/unix/sysv/linux/m32r/fxstat.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/fxstat.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getegid.c ports/sysdeps/unix/sysv/linux/m32r/getegid.c +--- ports/sysdeps/unix/sysv/linux/m32r/getegid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getegid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/geteuid.c ports/sysdeps/unix/sysv/linux/m32r/geteuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/geteuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/geteuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getgid.c ports/sysdeps/unix/sysv/linux/m32r/getgid.c +--- ports/sysdeps/unix/sysv/linux/m32r/getgid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getgid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getgroups.c ports/sysdeps/unix/sysv/linux/m32r/getgroups.c +--- ports/sysdeps/unix/sysv/linux/m32r/getgroups.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getgroups.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,2 @@ ++/* We also have to rewrite the kernel gid_t to the user land type. */ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getresgid.c ports/sysdeps/unix/sysv/linux/m32r/getresgid.c +--- ports/sysdeps/unix/sysv/linux/m32r/getresgid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getresgid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#include ++ ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++ ++int ++__getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid) ++{ ++ return INLINE_SYSCALL (getresgid32, 3, CHECK_1 (rgid), ++ CHECK_1 (egid), CHECK_1 (sgid)); ++} ++libc_hidden_def (__getresgid) ++weak_alias (__getresgid, getresgid) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getresuid.c ports/sysdeps/unix/sysv/linux/m32r/getresuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/getresuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getresuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#include ++ ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++ ++int ++__getresuid (uid_t *ruid, uid_t *euid, uid_t *suid) ++{ ++ return INLINE_SYSCALL (getresuid32, 3, CHECK_1 (ruid), ++ CHECK_1 (euid), CHECK_1 (suid)); ++} ++libc_hidden_def (__getresuid) ++weak_alias (__getresuid, getresuid) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getrlimit.c ports/sysdeps/unix/sysv/linux/m32r/getrlimit.c +--- ports/sysdeps/unix/sysv/linux/m32r/getrlimit.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getrlimit.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,36 @@ ++/* Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++ ++int ++__new_getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits) ++{ ++ return INLINE_SYSCALL (ugetrlimit, 2, resource, CHECK_1 (rlimits)); ++} ++ ++weak_alias (__new_getrlimit, __getrlimit); ++versioned_symbol (libc, __new_getrlimit, getrlimit, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getrlimit64.c ports/sysdeps/unix/sysv/linux/m32r/getrlimit64.c +--- ports/sysdeps/unix/sysv/linux/m32r/getrlimit64.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getrlimit64.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,25 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#define getrlimit64 __new_getrlimit64 ++ ++#include ++ ++#undef getrlimit64 ++#include ++versioned_symbol (libc, __new_getrlimit64, getrlimit64, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getuid.c ports/sysdeps/unix/sysv/linux/m32r/getuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/getuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/kernel-features.h ports/sysdeps/unix/sysv/linux/m32r/kernel-features.h +--- ports/sysdeps/unix/sysv/linux/m32r/kernel-features.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/kernel-features.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,17 @@ ++#define __ASSUME_32BITUIDS 1 ++#define __ASSUME_CLONE_THREAD_FLAGS 1 ++#define __ASSUME_FADVISE64_64_SYSCALL 1 ++#define __ASSUME_FCNTL64 1 ++#define __ASSUME_GETDENTS64_SYSCALL 1 ++#define __ASSUME_IPC64 1 ++#define __ASSUME_MMAP2_SYSCALL 1 ++#define __ASSUME_NEW_GETRLIMIT_SYSCALL 1 ++#define __ASSUME_SETRESGID_SYSCALL 1 ++#define __ASSUME_SETRESUID_SYSCALL 1 ++#define __ASSUME_STAT64_SYSCALL 1 ++#define __ASSUME_ST_INO_64_BIT 1 ++#define __ASSUME_TGKILL 1 ++#define __ASSUME_TRUNCATE64_SYSCALL 1 ++#define __ASSUME_UTIMES 1 ++ ++#include_next "kernel-features.h" +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/lchown.c ports/sysdeps/unix/sysv/linux/m32r/lchown.c +--- ports/sysdeps/unix/sysv/linux/m32r/lchown.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/lchown.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,35 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++#include "kernel-features.h" ++ ++int ++__lchown (const char *file, uid_t owner, gid_t group) ++{ ++ return INLINE_SYSCALL (lchown32, 3, CHECK_STRING (file), owner, group); ++} ++ ++weak_alias (__lchown, lchown) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h +--- ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h 2006-04-20 09:44:47.000000000 +0900 +@@ -0,0 +1,186 @@ ++/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#ifndef __ASSEMBLER__ ++# include ++#endif ++ ++#if !defined NOT_IN_libc || defined IS_IN_libpthread || IS_IN_librt ++ ++# undef PSEUDO ++# define PSEUDO(name, syscall_name, args) \ ++ .text! \ ++ ENTRY(name)! \ ++ SINGLE_THREAD_P_INT ! \ ++ bnez r6, .Lpseudo_cancel ! \ ++ DO_CALL (syscall_name, args) ! \ ++ not r5,r0 ! \ ++ srai r5,12 ! \ ++ bnez r5,.Lpseudo_end ! \ ++ bra .Lsyscall_error ! \ ++ .fillinsn ! \ ++ .Lpseudo_cancel: ! \ ++ SAVE_REGS ! \ ++ /* save syscall args around CENABLE. */ \ ++ DOCARGS_##args ! \ ++ CENABLE ! \ ++ mv r8,r0 ! /* put mask back */ \ ++ /* restore syscall args */ \ ++ UNDOCARGS_##args ! \ ++ ldi r7, SYS_ify(syscall_name) ! /* do the call */ \ ++ SYSCALL_INST_##args ! \ ++ /* save syscall return value */ \ ++ push r0 ! \ ++ mv r0,r8 ! /* get mask back */ \ ++ CDISABLE ! \ ++ pop r0 ! /* retrive return value. */ \ ++ UNDOC2ARGS_##args ! \ ++ RESTORE_REGS ! \ ++ /* fix register damege. */ \ ++ not r5,r0 ! \ ++ srai r5,12 ! \ ++ bnez r5, .Lpseudo_end ! \ ++ .fillinsn ! \ ++ .Lsyscall_error: ! \ ++ SYSCALL_ERROR_HANDLER ! \ ++ .fillinsn ! \ ++ .Lpseudo_end: ! \ ++ ++# define DOCARGS_0 ++# define UNDOCARGS_0 ++# define UNDOC2ARGS_0 ++ ++# define DOCARGS_1 push r0 ++# define UNDOCARGS_1 pop r0 ++# define UNDOC2ARGS_1 ++ ++# define DOCARGS_2 push r1 ! push r0 ++# define UNDOCARGS_2 pop r0 ! pop r1 ++# define UNDOC2ARGS_2 ++ ++# define DOCARGS_3 push r2 ! push r1 ! push r0 ++# define UNDOCARGS_3 pop r0 ! pop r1 ! pop r2 ++# define UNDOC2ARGS_3 ++ ++# define DOCARGS_4 push r3 ! push r2 ! push r1 ! push r0 ++# define UNDOCARGS_4 pop r0 ! pop r1 ! pop r2 ! pop r3 ++# define UNDOC2ARGS_4 ++ ++# define DOCARGS_5 push r3 ! push r2 ! push r1 ! push r0 ++# if !defined PIC ++# define UNDOCARGS_5 pop r0 ! pop r1 ! pop r2 ! pop r3 ! ld r4, @(8,sp) ! push r4 ++# define UNDOC2ARGS_5 addi sp,#4 ++# else ++# define UNDOCARGS_5 pop r0 ! pop r1 ! pop r2 ! pop r3 ! ld r4, @(12,sp) ! push r4 ++# define UNDOC2ARGS_5 addi sp,#4 ++# endif ++ ++ ++# ifdef IS_IN_libpthread ++# ifdef PIC ++# define CENABLE bl __pthread_enable_asynccancel@PLT ++# define CDISABLE bl __pthread_disable_asynccancel@PLT ++# else ++# define CENABLE bl __pthread_enable_asynccancel ++# define CDISABLE bl __pthread_disable_asynccancel ++# endif ++# define __local_multiple_threads __pthread_multiple_threads ++# elif !defined NOT_IN_libc ++# ifdef PIC ++# define CENABLE bl __libc_enable_asynccancel@PLT ++# define CDISABLE bl __libc_disable_asynccancel@PLT ++# else ++# define CENABLE bl __libc_enable_asynccancel ++# define CDISABLE bl __libc_disable_asynccancel ++# endif ++# define __local_multiple_threads __libc_multiple_threads ++# else ++# ifdef PIC ++# define CENABLE bl __librt_enable_asynccancel@PLT ++# define CDISABLE bl __librt_disable_asynccancel@PLT ++# else ++# define CENABLE bl __librt_enable_asynccancel ++# define CDISABLE bl __librt_disable_asynccancel ++# endif ++# define __local_multiple_threads __librt_multiple_threads ++# endif ++ ++# ifndef __ASSEMBLER__ ++extern int __local_multiple_threads attribute_hidden; ++# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1) ++# else ++# if !defined PIC ++# define SINGLE_THREAD_P_INT \ ++ seth r6,#shigh(__local_multiple_threads) ! \ ++ ld r6,@(low(__local_multiple_threads), r6) ++ ++# define SINGLE_THREAD_P SINGLE_THREAD_P_INT ++ ++# define SAVE_REGS \ ++ push lr ! push r8 ++ ++# define RESTORE_REGS \ ++ pop r8 ! pop lr ++ ++# else ++# if !defined NOT_IN_libc || defined IS_IN_libpthread ++# define SINGLE_THREAD_P_INT \ ++ mv r4,lr ! \ ++ bl.s .+4 ! \ ++ ld24 r5,#_GLOBAL_OFFSET_TABLE_ ! \ ++ seth r6,#high(__local_multiple_threads@GOTOFF) !\ ++ or3 r6,r6,#low(__local_multiple_threads@GOTOFF) !\ ++ add r5,lr ! \ ++ mv lr,r4 ! \ ++ add r6,r5 ! \ ++ ld r6,@r6 ++ ++# else ++# define SINGLE_THREAD_P_INT \ ++ mv r4,lr ! \ ++ bl.s .+4 ! \ ++ ld24 r5,#_GLOBAL_OFFSET_TABLE_ ! \ ++ ld24 r6,#__local_multiple_threads@GOT !\ ++ add r5,lr ! \ ++ mv lr,r4 ! \ ++ add r6,r5 ! \ ++ ld r6,@r6 ! \ ++ ld r6,@r6 ++ ++# endif ++ ++# define SINGLE_THREAD_P \ ++ SINGLE_THREAD_P_INT ++ ++# define SAVE_REGS \ ++ push lr ! push r8 ! push r12 ! mv r12, r5 ++ ++# define RESTORE_REGS \ ++ pop r12 ! pop r8 ! pop lr ++ ++# endif ++# endif ++ ++ ++#elif !defined __ASSEMBLER__ ++ ++/* This code should never be used but we define it anyhow. */ ++# define SINGLE_THREAD_P (1) ++ ++#endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S +--- ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,75 @@ ++/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#define _ERRNO_H 1 ++#include ++#include "kernel-features.h" ++/* Clone the calling process, but without copying the whole address space. ++ The calling process is suspended until the new process exits or is ++ replaced by a call to `execve'. Return -1 for errors, 0 to the new process, ++ and the process ID of the new process to the old process. */ ++ ++ENTRY (__vfork) ++#ifdef __NR_vfork ++ ++#ifdef SHARED ++ mv r4, lr ++ bl.s .+4 ++ ld24 r5, #_GLOBAL_OFFSET_TABLE_ ++ add r5, lr ++ mv lr, r4 ++ ++ seth r6, #high(__libc_pthread_functions@GOTOFF) ++ or3 r6, r6, #low(__libc_pthread_functions@GOTOFF) ++ add r6, r5 ++ ld r0, @r6 ++ ++ seth r6, #high(HIDDEN_JUMPTARGET(__fork)@GOTOFF) ++ or3 r6, r6, #low(HIDDEN_JUMPTARGET(__fork)@GOTOFF) ++ add r6, r5 ++ beqz r0, 5f ++ jmp r6 ++ .fillinsn ++5: ++#else ++ .weak pthread_create ++ seth r0, #shigh(pthread_create) ++ or3 r0, r0, #low(pthread_create) ++ bnez r0, HIDDEN_JUMPTARGET(__fork) ++#endif ++ ++ ldi r7, #__NR_vfork ++ SYSCALL_INST ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++#endif ++ ++ SYSCALL_ERROR_HANDLER ++ ++ .fillinsn ++1: ++ ret ++ ++ ++PSEUDO_END (__vfork) ++libc_hidden_def(__vfork) ++ ++weak_alias (__vfork, vfork) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/lockf64.c ports/sysdeps/unix/sysv/linux/m32r/lockf64.c +--- ports/sysdeps/unix/sysv/linux/m32r/lockf64.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/lockf64.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/lxstat.c ports/sysdeps/unix/sysv/linux/m32r/lxstat.c +--- ports/sysdeps/unix/sysv/linux/m32r/lxstat.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/lxstat.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,2 @@ ++#include ++ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/m32r-stub.c ports/sysdeps/unix/sysv/linux/m32r/m32r-stub.c +--- ports/sysdeps/unix/sysv/linux/m32r/m32r-stub.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/m32r-stub.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,11 @@ ++#include ++ ++struct link_map _dl_rtld_map; ++ ++#ifndef __PIC__ ++void __pthread_initialize_minimal(void) ++{ ++} ++#endif ++ ++ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/mmap.S ports/sysdeps/unix/sysv/linux/m32r/mmap.S +--- ports/sysdeps/unix/sysv/linux/m32r/mmap.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/mmap.S 2006-04-20 09:44:30.000000000 +0900 +@@ -0,0 +1,59 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++#define EINVAL 22 ++ ++/* ++__ptr_t ++__mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset); ++*/ ++ ++ENTRY (__mmap) ++ /* Push args and pass the address of 1st arg. ++ * The 5th and 6th args are already passed in the stack. ++ */ ++ ld r4, @sp // fd ++ ld r5, @(4,sp) // offset ++ and3 r6, r5, #0x00000fff ++ beqz r6, 2f ++ ldi r0, #-EINVAL ++ bra 0f ++ .fillinsn ++2: ++ srli r5, #12 ++ ++ ldi r7, #__NR_mmap2 ++ SYSCALL_INST ++ ++ .fillinsn ++0: ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++ SYSCALL_ERROR_HANDLER ++ ++ .fillinsn ++1: ++ ret ++ ++PSEUDO_END (__mmap) ++ ++weak_alias (__mmap, mmap) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/msgctl.c ports/sysdeps/unix/sysv/linux/m32r/msgctl.c +--- ports/sysdeps/unix/sysv/linux/m32r/msgctl.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/msgctl.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,39 @@ ++/* Copyright (C) 1995, 1997, 1998, 2000, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++#include ++ ++int ++__new_msgctl (int msqid, int cmd, struct msqid_ds *buf) ++{ ++ return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, ++ msqid, cmd | __IPC_64, 0, CHECK_1 (buf)); ++} ++ ++versioned_symbol (libc, __new_msgctl, msgctl, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/pipe.S ports/sysdeps/unix/sysv/linux/m32r/pipe.S +--- ports/sysdeps/unix/sysv/linux/m32r/pipe.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/pipe.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++ENTRY (__libc_pipe) ++ ldi r7, #__NR_pipe ++ SYSCALL_INST ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++ SYSCALL_ERROR_HANDLER ++ .fillinsn ++1: ++ ldi r0, #0 ++ ret ++PSEUDO_END (__libc_pipe) ++ ++weak_alias (__libc_pipe, __pipe) ++libc_hidden_def (__pipe) ++weak_alias (__libc_pipe, pipe) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/profil-counter.h ports/sysdeps/unix/sysv/linux/m32r/profil-counter.h +--- ports/sysdeps/unix/sysv/linux/m32r/profil-counter.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/profil-counter.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,29 @@ ++/* Low-level statistical profiling support function. Linux/M32R version. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++ ++static void ++profil_counter (int signo, SIGCONTEXT sc) ++{ ++ void *pc; ++ pc = GET_PC(sc); ++ profil_count (pc); ++} +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/semctl.c ports/sysdeps/unix/sysv/linux/m32r/semctl.c +--- ports/sysdeps/unix/sysv/linux/m32r/semctl.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/semctl.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,62 @@ ++/* Copyright (C) 1995,1997,1998,2000,2003,2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++#include ++ ++/* Define a `union semun' suitable for Linux here. */ ++union semun ++{ ++ int val; /* value for SETVAL */ ++ struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */ ++ unsigned short int *array; /* array for GETALL & SETALL */ ++ struct seminfo *__buf; /* buffer for IPC_INFO */ ++ struct __old_semid_ds *__old_buf; ++}; ++ ++#include ++#include /* definition of CHECK_SEMCTL needs union semum */ ++ ++int ++__new_semctl (int semid, int semnum, int cmd, ...) ++{ ++ union semun arg; ++ va_list ap; ++ ++ va_start (ap, cmd); ++ ++ /* Get the argument. */ ++ arg = va_arg (ap, union semun); ++ ++ va_end (ap); ++ ++ return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd | __IPC_64, ++ CHECK_SEMCTL (&arg, semid, cmd | __IPC_64)); ++} ++ ++versioned_symbol (libc, __new_semctl, semctl, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setegid.c ports/sysdeps/unix/sysv/linux/m32r/setegid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setegid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setegid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/seteuid.c ports/sysdeps/unix/sysv/linux/m32r/seteuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/seteuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/seteuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setfsgid.c ports/sysdeps/unix/sysv/linux/m32r/setfsgid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setfsgid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setfsgid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,34 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include "kernel-features.h" ++ ++int ++setfsgid (gid_t gid) ++{ ++ INTERNAL_SYSCALL_DECL (err); ++ /* No error checking. */ ++ return INTERNAL_SYSCALL (setfsgid32, err, 1, gid); ++} +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setfsuid.c ports/sysdeps/unix/sysv/linux/m32r/setfsuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setfsuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setfsuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,35 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include ++#include "kernel-features.h" ++ ++int ++setfsuid (uid_t uid) ++{ ++ INTERNAL_SYSCALL_DECL (err); ++ /* No error checking. */ ++ return INTERNAL_SYSCALL (setfsuid32, err, 1, uid); ++} +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setgid.c ports/sysdeps/unix/sysv/linux/m32r/setgid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setgid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setgid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setgroups.c ports/sysdeps/unix/sysv/linux/m32r/setgroups.c +--- ports/sysdeps/unix/sysv/linux/m32r/setgroups.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setgroups.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,2 @@ ++/* We also have to rewrite the kernel gid_t to the user land type. */ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setregid.c ports/sysdeps/unix/sysv/linux/m32r/setregid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setregid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setregid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setresgid.c ports/sysdeps/unix/sysv/linux/m32r/setresgid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setresgid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setresgid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setresuid.c ports/sysdeps/unix/sysv/linux/m32r/setresuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setresuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setresuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setreuid.c ports/sysdeps/unix/sysv/linux/m32r/setreuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setreuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setreuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setrlimit.c ports/sysdeps/unix/sysv/linux/m32r/setrlimit.c +--- ports/sysdeps/unix/sysv/linux/m32r/setrlimit.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setrlimit.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++ ++int ++__new_setrlimit (enum __rlimit_resource resource, const struct rlimit *rlimits) ++{ ++ return INLINE_SYSCALL (setrlimit, 2, resource, CHECK_1 (rlimits)); ++} ++ ++weak_alias (__new_setrlimit, __setrlimit); ++versioned_symbol (libc, __new_setrlimit, setrlimit, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setuid.c ports/sysdeps/unix/sysv/linux/m32r/setuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/shmctl.c ports/sysdeps/unix/sysv/linux/m32r/shmctl.c +--- ports/sysdeps/unix/sysv/linux/m32r/shmctl.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/shmctl.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,40 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++#include ++ ++int ++__new_shmctl (int shmid, int cmd, struct shmid_ds *buf) ++{ ++ return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, ++ shmid, cmd | __IPC_64, 0, CHECK_1 (buf)); ++} ++ ++versioned_symbol (libc, __new_shmctl, shmctl, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sigaction.c ports/sysdeps/unix/sysv/linux/m32r/sigaction.c +--- ports/sysdeps/unix/sysv/linux/m32r/sigaction.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sigaction.c 2006-03-02 12:32:45.000000000 +0900 +@@ -0,0 +1,105 @@ ++/* POSIX.1 `sigaction' call for Linux/M32R. ++ Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "kernel-features.h" ++ ++/* The difference here is that the sigaction structure used in the ++ kernel is not the same as we use in the libc. Therefore we must ++ translate it here. */ ++#include ++ ++/* We do not globally define the SA_RESTORER flag so do it here. */ ++#define SA_RESTORER 0x04000000 ++ ++/* Using the hidden attribute here does not change the code but it ++ helps to avoid warnings. */ ++#if defined HAVE_HIDDEN && defined HAVE_VISIBILITY_ATTRIBUTE \ ++ && !defined HAVE_BROKEN_VISIBILITY_ATTRIBUTE ++extern void restore_rt (void) asm ("__restore_rt") attribute_hidden; ++#else ++static void restore_rt (void) asm ("__restore_rt"); ++#endif ++ ++ ++/* If ACT is not NULL, change the action for SIG to *ACT. ++ If OACT is not NULL, put the old action for SIG in *OACT. */ ++int ++__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) ++{ ++ int result; ++ struct kernel_sigaction kact, koact; ++ ++ if (act) ++ { ++ kact.k_sa_handler = act->sa_handler; ++ memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t)); ++ kact.sa_flags = act->sa_flags | SA_RESTORER; ++ ++ kact.sa_restorer = &restore_rt; ++ } ++ ++ /* XXX The size argument hopefully will have to be changed to the ++ real size of the user-level sigset_t. */ ++ result = INLINE_SYSCALL (rt_sigaction, 4, ++ sig, act ? __ptrvalue (&kact) : NULL, ++ oact ? __ptrvalue (&koact) : NULL, _NSIG / 8); ++ if (oact && result >= 0) ++ { ++ oact->sa_handler = koact.k_sa_handler; ++ memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t)); ++ oact->sa_flags = koact.sa_flags; ++ oact->sa_restorer = koact.sa_restorer; ++ } ++ return result; ++} ++libc_hidden_def (__libc_sigaction) ++ ++#ifndef LIBC_SIGACTION ++weak_alias (__libc_sigaction, __sigaction) ++libc_hidden_weak (__sigaction) ++weak_alias (__libc_sigaction, sigaction) ++#endif ++ ++/* NOTE: Please think twice before making any changes to the bits of ++ code below. GDB needs some intimate knowledge about it to ++ recognize them as signal trampolines, and make backtraces through ++ signal handlers work right. Important are both the names ++ (__restore_rt) and the exact instruction sequence. ++ If you ever feel the need to make any changes, please notify the ++ appropriate GDB maintainer. */ ++ ++#define RESTORE(name, syscall) RESTORE2 (name, syscall) ++# define RESTORE2(name, syscall) \ ++asm \ ++ ( \ ++ "__" #name ":\n" \ ++ " ldi r7,#" #syscall "\n" \ ++ " trap #2 || nop\n" \ ++ ); ++/* The return code for realtime-signals. */ ++RESTORE (restore_rt, __NR_rt_sigreturn) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sigcontextinfo.h ports/sysdeps/unix/sysv/linux/m32r/sigcontextinfo.h +--- ports/sysdeps/unix/sysv/linux/m32r/sigcontextinfo.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sigcontextinfo.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,26 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Philip Blundell , 1999. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#define SIGCONTEXT struct sigcontext * ++#define SIGCONTEXT_EXTRA_ARGS ++#define GET_PC(ctx) ((void *)((ctx)->sc_bpc)) ++#define GET_FRAME(ctx) ((void *)((ctx)->sc_fp)) ++#define GET_STACK(ctx) ((void *)((ctx)->sc_spi)) ++#define CALL_SIGHANDLER(handler, signo, ctx) \ ++ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/socket.S ports/sysdeps/unix/sysv/linux/m32r/socket.S +--- ports/sysdeps/unix/sysv/linux/m32r/socket.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/socket.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,155 @@ ++/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++ ++#define P(a, b) P2(a, b) ++#define P2(a, b) a##b ++ ++ .text ++/* The socket-oriented system calls are handled unusally in Linux. ++ They are all gated through the single `socketcall' system call number. ++ `socketcall' takes two arguments: the first is the subcode, specifying ++ which socket function is being called; and the second is a pointer to ++ the arguments to the specific function. ++ ++ The .S files for the other calls just #define socket and #include this. */ ++ ++#ifndef __socket ++#ifndef NO_WEAK_ALIAS ++#define __socket P(__,socket) ++#else ++#define __socket socket ++#endif ++#endif ++ ++#define PUSHARGS(x) PUSHARGS x ++ .macro PUSHARGS nargs ++ push r0 ++ .aif \nargs ge 2 ++ push r1 ++ .aif \nargs ge 3 ++ push r2 ++ .aif \nargs ge 4 ++ push r3 ++ /* If nargs is 5, caller has already pushed arg 5. */ ++ /* If nargs is 6, caller has already pushed arg 5, 6. */ ++ .aendi ++ .aendi ++ .aendi ++ .endm ++ ++#define PUSHARGS(x) PUSHARGS x ++ ++#define POPARGS_1 addi r15,#4 ++#define POPARGS_2 addi r15,#8 ++#define POPARGS_3 addi r15,#12 ++#define POPARGS_4 addi r15,#16 ++#define POPARGS_5 addi r15,#16 ++#define POPARGS_6 addi r15,#16 ++ ++#ifndef NARGS ++#define NARGS 3 /* If we were called with no wrapper, this is really socket() */ ++#endif ++ ++.globl __socket ++ENTRY (__socket) ++ /* This will not work in the case of a socket call being interrupted ++ by a signal. If the signal handler uses any stack the arguments ++ to socket will be trashed. The results of a restart of any ++ socket call are then unpredictable. */ ++ ++ /* Push args onto the stack. */ ++ /* PUSHARGS(NARGS) */ ++#if (NARGS >= 4) ++ push r3 ++ /* If nargs is 6, caller has already pushed arg 5, 6. */ ++ /* If nargs is 5, caller has already pushed arg 5. */ ++#endif ++#if (NARGS >= 3) ++ push r2 ++#endif ++#if (NARGS >= 2) ++ push r1 ++#endif ++ push r0 ++ ++#if defined NEED_CANCELLATION && defined CENABLE ++ SINGLE_THREAD_P ++ bnez r6, 2f ++#endif ++ ++ /* Do the system call trap. */ ++ ldi r0, #P(SOCKOP_,socket) ++ mv r1, r15 ++ ldi r7, #SYS_ify(socketcall) ++ SYSCALL_INST ++ ++ /* Pop args off the stack */ ++ P(POPARGS_,NARGS) ++ ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++ SYSCALL_ERROR_HANDLER ++ .fillinsn ++1: ++ /* Successful; return the syscall's value. */ ++ ret ++ ++#if defined NEED_CANCELLATION && defined CENABLE ++ .fillinsn ++2: ++ SAVE_REGS ++ CENABLE ++ mv r8, r0 ++ ++ ldi r0, #P(SOCKOP_,socket) ++#if !defined PIC ++ add3 r1, r15, #8 ++#else ++ add3 r1, r15, #12 ++#endif ++ ldi r7, #SYS_ify(socketcall) ++ SYSCALL_INST ++ ++ push r0 ++ mv r0, r8 ++ CDISABLE ++ pop r0 ++ RESTORE_REGS ++ ++ P(POPARGS_,NARGS) ++ ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 3f // i.e. error in linux ++ ++ SYSCALL_ERROR_HANDLER ++ .fillinsn ++3: ++ ret ++#endif ++ ++PSEUDO_END (__socket) ++ ++#ifndef NO_WEAK_ALIAS ++weak_alias (__socket, socket) ++#endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sys/cachectl.h ports/sysdeps/unix/sysv/linux/m32r/sys/cachectl.h +--- ports/sysdeps/unix/sysv/linux/m32r/sys/cachectl.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sys/cachectl.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _SYS_CACHECTL_H ++#define _SYS_CACHECTL_H 1 ++ ++#include ++ ++/* ++ * Get the kernel definition for the op bits. ++ */ ++#include ++ ++__BEGIN_DECLS ++ ++#ifdef __USE_MISC ++extern int cacheflush (void *addr, __const int nbytes, __const int op) __THROW; ++#endif ++extern int _flush_cache (char *addr, __const int nbytes, __const int op) __THROW; ++ ++__END_DECLS ++ ++#endif /* sys/cachectl.h */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sys/io.h ports/sysdeps/unix/sysv/linux/m32r/sys/io.h +--- ports/sysdeps/unix/sysv/linux/m32r/sys/io.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sys/io.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,48 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _SYS_IO_H ++ ++#define _SYS_IO_H 1 ++#include ++ ++__BEGIN_DECLS ++ ++/* If TURN_ON is TRUE, request for permission to do direct i/o on the ++ port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O ++ permission off for that range. This call requires root privileges. */ ++extern int ioperm (unsigned long int __from, unsigned long int __num, ++ int __turn_on) __THROW; ++ ++/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero, ++ permission to access any I/O port is granted. This call requires ++ root privileges. */ ++extern int iopl (int __level) __THROW; ++ ++/* The functions that actually perform reads and writes. */ ++extern unsigned char inb (unsigned long int port) __THROW; ++extern unsigned short int inw (unsigned long int port) __THROW; ++extern unsigned long int inl (unsigned long int port) __THROW; ++ ++extern void outb (unsigned char value, unsigned long int port) __THROW; ++extern void outw (unsigned short value, unsigned long int port) __THROW; ++extern void outl (unsigned long value, unsigned long int port) __THROW; ++ ++__END_DECLS ++ ++#endif /* _SYS_IO_H */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sys/tas.h ports/sysdeps/unix/sysv/linux/m32r/sys/tas.h +--- ports/sysdeps/unix/sysv/linux/m32r/sys/tas.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sys/tas.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,13 @@ ++#ifndef _SYS_TAS_H ++ ++#define _SYS_TAS_H 1 ++ ++#include ++ ++__BEGIN_DECLS ++ ++extern int tas(int *) __THROW; ++ ++__END_DECLS ++ ++#endif /* _SYS_TAS_H */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sys/ucontext.h ports/sysdeps/unix/sysv/linux/m32r/sys/ucontext.h +--- ports/sysdeps/unix/sysv/linux/m32r/sys/ucontext.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sys/ucontext.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,111 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* Where is System V/SH ABI? */ ++ ++#ifndef _SYS_UCONTEXT_H ++#define _SYS_UCONTEXT_H 1 ++ ++#include ++#include ++ ++/* We need the signal context definitions even if they are not used ++ included in . */ ++#include ++ ++ ++typedef int greg_t; ++ ++/* Number of general registers. */ ++#define NFPREG 16 ++ ++/* Container for all general registers. */ ++typedef greg_t gregset_t[NFPREG]; ++ ++#if 0 ++#ifdef __USE_GNU ++/* Number of each register is the `gregset_t' array. */ ++enum ++{ ++ R0 = 0, ++#define R0 R0 ++ R1 = 1, ++#define R1 R1 ++ R2 = 2, ++#define R2 R2 ++ R3 = 3, ++#define R3 R3 ++ R4 = 4, ++#define R4 R4 ++ R5 = 5, ++#define R5 R5 ++ R6 = 6, ++#define R6 R6 ++ R7 = 7, ++#define R7 R7 ++ R8 = 8, ++#define R8 R8 ++ R9 = 9, ++#define R9 R9 ++ R10 = 10, ++#define R10 R10 ++ R11 = 11, ++#define R11 R11 ++ R12 = 12, ++#define R12 R12 ++ R13 = 13, ++#define R13 R13 ++ R14 = 14, ++#define R14 R14 ++ R15 = 15, ++#define R15 R15 ++}; ++#endif ++#endif /* 0 */ ++ ++typedef int freg_t; ++ ++/* Number of FPU registers. */ ++#define NFPREG 16 ++ ++/* Structure to describe FPU registers. */ ++typedef freg_t fpregset_t[NFPREG]; ++ ++/* Context to describe whole processor state. */ ++typedef struct ++ { ++ gregset_t gregs; ++ fpregset_t fpregs; ++ fpregset_t xfpregs; ++ unsigned int fpscr; ++ unsigned int fpul; ++ unsigned int macl; ++ unsigned int mach; ++ } mcontext_t; ++ ++/* Userlevel context. */ ++typedef struct ucontext ++ { ++ unsigned long int uc_flags; ++ struct ucontext *uc_link; ++ stack_t uc_stack; ++ mcontext_t uc_mcontext; ++ __sigset_t uc_sigmask; ++ } ucontext_t; ++ ++#endif /* sys/ucontext.h */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sys/user.h ports/sysdeps/unix/sysv/linux/m32r/sys/user.h +--- ports/sysdeps/unix/sysv/linux/m32r/sys/user.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sys/user.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,26 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _SYS_USER_H ++#define _SYS_USER_H 1 ++ ++#include ++ ++#include ++ ++#endif /* sys/user.h */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/syscall.S ports/sysdeps/unix/sysv/linux/m32r/syscall.S +--- ports/sysdeps/unix/sysv/linux/m32r/syscall.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/syscall.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,41 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++ENTRY (__syscall) ++ mv r7, r0 // syscall number ++ mv r0, r1 // p1 ++ mv r1, r2 // p2 ++ mv r2, r3 // p3 ++ ld r3, @(sp) // p4 ++ ld r4, @(4,sp) // p5 ++ ld r5, @(8,sp) // p6 ++ ld r6, @(12,sp) // p7 ++ SYSCALL_INST ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++ SYSCALL_ERROR_HANDLER ++ .fillinsn ++1: ++ ret ++PSEUDO_END (__syscall) ++ ++weak_alias (__syscall, syscall) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/syscalls.list ports/sysdeps/unix/sysv/linux/m32r/syscalls.list +--- ports/sysdeps/unix/sysv/linux/m32r/syscalls.list 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/syscalls.list 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,4 @@ ++# File name Caller Syscall name # args Strong name Weak names ++tas - tas i:p __tas tas ++cachectl - cachectl i:pii __cachectl cachectl ++cacheflush - cacheflush i:pii __cacheflush cacheflush +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sysdep.S ports/sysdeps/unix/sysv/linux/m32r/sysdep.S +--- ports/sysdeps/unix/sysv/linux/m32r/sysdep.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sysdep.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,32 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++/* The syscall stubs jump here when they detect an error. ++ The code for Linux is almost identical to the canonical Unix ++ code, except that the error number in R0 is negated. */ ++ ++#undef CALL_MCOUNT ++#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers R0. */ ++ ++ENTRY (__syscall_error) ++ neg r0, r0 ++ ++#define __syscall_error __syscall_error_1 ++#include "../../../m32r/sysdep.S" +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sysdep.h ports/sysdeps/unix/sysv/linux/m32r/sysdep.h +--- ports/sysdeps/unix/sysv/linux/m32r/sysdep.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sysdep.h 2006-03-02 12:29:40.000000000 +0900 +@@ -0,0 +1,294 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, ++ Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _LINUX_M32R_SYSDEP_H ++#define _LINUX_M32R_SYSDEP_H 1 ++ ++/* There is some commonality. */ ++#include "../../../m32r/sysdep.h" ++ ++/* Defines RTLD_PRIVATE_ERRNO. */ ++#include ++ ++/* For Linux we can use the system call table in the header file ++ /usr/include/asm/unistd.h ++ of the kernel. But these symbols do not follow the SYS_* syntax ++ so we have to redefine the `SYS_ify' macro here. */ ++#undef SYS_ify ++#define SYS_ify(syscall_name) __NR_##syscall_name ++ ++#ifdef __ASSEMBLER__ ++ ++/* Linux uses a negative return value to indicate syscall errors, ++ unlike most Unices, which use the condition codes' carry flag. ++ ++ Since version 2.1 the return value of a system call might be ++ negative even if the call succeeded. E.g., the `lseek' system call ++ might return a large offset. Therefore we must not anymore test ++ for < 0, but test for a real error by making sure the value in R0 ++ is a real error number. Linus said he will make sure the no syscall ++ returns a value in -1 .. -4095 as a valid result so we can savely ++ test with -4095. */ ++ ++#define SYSCALL_INST trap #2 || nop ++#define SYSCALL_INST_0 trap #2 || nop ++#define SYSCALL_INST_1 trap #2 || nop ++#define SYSCALL_INST_2 trap #2 || nop ++#define SYSCALL_INST_3 trap #2 || nop ++#define SYSCALL_INST_4 trap #2 || nop ++#define SYSCALL_INST_5 \ ++ ld r4,@sp ! \ ++ trap #2 || nop ++#define SYSCALL_INST_STR_6 \ ++ ld r4,@sp ! \ ++ ld r5,@(4,sp) ! \ ++ trap #2 || nop ++#define SYSCALL_INST_STR_7 \ ++ ld r4,@sp ! \ ++ ld r5,@(4,sp) ! \ ++ ld r6,@(8,sp) ! \ ++ trap #2 || nop ++ ++#define DO_CALL( syscall_name, args ) \ ++ ldi r7,SYS_ify(syscall_name) ! \ ++ SYSCALL_INST_##args ++ ++#undef PSEUDO ++#define PSEUDO(name, syscall_name, args) \ ++ .text !\ ++ENTRY (name) !\ ++ DO_CALL (syscall_name, args) !\ ++ not r1,r0 !\ ++ srai r1,12 !\ ++ bnez r1,.Lpseudo_end !\ ++ SYSCALL_ERROR_HANDLER !\ ++ .fillinsn !\ ++ .Lpseudo_end: ++ ++#undef PSEUDO_END ++#define PSEUDO_END(name) \ ++ END (name) ++ ++#undef PSEUDO_NOERRNO ++#define PSEUDO_NOERRNO(name, syscall_name, args) \ ++ .text !\ ++ ENTRY (name) !\ ++ DO_CALL (syscall_name, args) ++ ++#undef PSEUDO_END_NOERRNO ++#define PSEUDO_END_NOERRNO(name) \ ++ END (name) ++ ++#define ret_NOERRNO ret ++ ++#define PSEUDO_ERRVAL(name, syscall_name, args) \ ++ .text !\ ++ ENTRY (name) !\ ++ DO_CALL (syscall_name, args) ++ ++#undef PSEUDO_END_ERRVAL ++#define PSEUDO_END_ERRVAL(name) \ ++ END (name) ++ ++#define ret_ERRVAL ret ++ ++#ifndef __PIC__ ++# define SYSCALL_ERROR_HANDLER \ ++ LDIMM (r1, C_SYMBOL_NAME(__syscall_error)) !\ ++ jmp r1 !\ ++ ++#else ++# if RTLD_PRIVATE_ERRNO ++# define SYSCALL_ERROR_HANDLER \ ++ neg r1,r0 !\ ++ mv r3,lr !\ ++ bl.s .+4 !\ ++ ld24 r2,#_GLOBAL_OFFSET_TABLE_ !\ ++ add r2,lr !\ ++ mv lr,r3 !\ ++ ld24 r0,#C_SYMBOL_NAME(rtld_errno@GOT) !\ ++ add r2,r0 !\ ++ ld r2,@r2 !\ ++ st r1,@r2 !\ ++ ldi r0,#-1 !\ ++ ret ++ ++# elif defined _LIBC_REENTRANT ++ ++# if USE___THREAD ++# ifndef NOT_IN_libc ++# define SYSCALL_ERROR_ERRNO __libc_errno@GOT ++# else ++# define SYSCALL_ERROR_ERRNO errno@GOT ++# endif ++# define SYSCALL_ERROR_HANDLER \ ++ neg r1,r0 !\ ++ mv r3,lr !\ ++ bl.s .+4 !\ ++ ld24 r2,#_GLOBAL_OFFSET_TABLE_ !\ ++ add r2,lr !\ ++ mv lr,r3 !\ ++ ld24 r0,#C_SYMBOL_NAME(SYSCALL_ERROR_ERRNO) !\ ++ add r2,r0 !\ ++ ld r2,@r2 !\ ++ st r1,@r2 !\ ++ ldi r0,#-1 !\ ++ ret ++ ++# else ++# define SYSCALL_ERROR_HANDLER \ ++ neg r1,r0 !\ ++ push r12 !\ ++ push lr !\ ++ push r1 !\ ++ bl.s .+4 !\ ++ ld24 r12,#_GLOBAL_OFFSET_TABLE_ !\ ++ add r12,lr !\ ++ ld24 r1,#C_SYMBOL_NAME(__errno_location@GOT) !\ ++ add r1,r12 !\ ++ ld r1,@r1 !\ ++ jl r1 !\ ++ pop r1 !\ ++ st r1,@r0 !\ ++ pop lr !\ ++ pop r12 !\ ++ ldi r0,#-1 !\ ++ ret !\ ++ ++# endif ++ ++# else ++/* Store (-r0) into errno through the GOT. */ ++# define SYSCALL_ERROR_HANDLER \ ++ neg r1,r0 !\ ++ mv r3,lr !\ ++ bl.s .+4 !\ ++ ld24 r2,#_GLOBAL_OFFSET_TABLE_ !\ ++ add r2,lr !\ ++ mv lr,r3 !\ ++ ld24 r0,#C_SYMBOL_NAME(errno@GOT) !\ ++ add r2,r0 !\ ++ ld r2,@r2 !\ ++ st r1,@r2 !\ ++ ldi r0,#-1 !\ ++ ret ++ ++# endif /* _LIBC_REENTRANT */ ++#endif /* __PIC__ */ ++ ++#define ret_ERRVAL ret ++ ++#else /* not __ASSEMBLER__ */ ++ ++#undef DO_CALL ++ ++#define SYSCALL_INST_STR "trap #2 || nop\n\t" ++ ++#define ASMFMT_0 \ ++ , "0" (r0) ++#define ASMFMT_1 \ ++ , "0" (r0) ++#define ASMFMT_2 \ ++ , "0" (r0), "r" (r1) ++#define ASMFMT_3 \ ++ , "0" (r0), "r" (r1), "r" (r2) ++#define ASMFMT_4 \ ++ , "0" (r0), "r" (r1), "r" (r2), "r" (r3) ++#define ASMFMT_5 \ ++ , "0" (r0), "r" (r1), "r" (r2), "r" (r3), "r" (r4) ++#define ASMFMT_6 \ ++ , "0" (r0), "r" (r1), "r" (r2), "r" (r3), "r" (r4), "r" (r5) ++#define ASMFMT_7 \ ++ , "0" (r0), "r" (r1), "r" (r2), "r" (r3), "r" (r4), "r" (r5), "r" (r6) ++ ++#define SUBSTITUTE_ARGS_0() \ ++ register long r0 asm ("r0") = 0 ++#define SUBSTITUTE_ARGS_1(arg1) \ ++ register long r0 asm ("r0") = (long)(arg1) ++#define SUBSTITUTE_ARGS_2(arg1, arg2) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2) ++#define SUBSTITUTE_ARGS_3(arg1, arg2, arg3) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2); \ ++ register long r2 asm ("r2") = (long)(arg3) ++#define SUBSTITUTE_ARGS_4(arg1, arg2, arg3, arg4) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2); \ ++ register long r2 asm ("r2") = (long)(arg3); \ ++ register long r3 asm ("r3") = (long)(arg4) ++#define SUBSTITUTE_ARGS_5(arg1, arg2, arg3, arg4, arg5) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2); \ ++ register long r2 asm ("r2") = (long)(arg3); \ ++ register long r3 asm ("r3") = (long)(arg4); \ ++ register long r4 asm ("r4") = (long)(arg5) ++#define SUBSTITUTE_ARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2); \ ++ register long r2 asm ("r2") = (long)(arg3); \ ++ register long r3 asm ("r3") = (long)(arg4); \ ++ register long r4 asm ("r4") = (long)(arg5); \ ++ register long r5 asm ("r5") = (long)(arg6) ++#define SUBSTITUTE_ARGS_7(arg1, arg2, arg3, arg4, arg5, arg6, arg7) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2); \ ++ register long r2 asm ("r2") = (long)(arg3); \ ++ register long r3 asm ("r3") = (long)(arg4); \ ++ register long r4 asm ("r4") = (long)(arg5); \ ++ register long r5 asm ("r5") = (long)(arg6); \ ++ register long r6 asm ("r6") = (long)(arg7) ++ ++#undef INLINE_SYSCALL ++#define INLINE_SYSCALL(name, nr, args...) \ ++ ({ \ ++ unsigned int resultvar = INTERNAL_SYSCALL (name, , nr, args); \ ++ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (resultvar, ), 0)) \ ++ { \ ++ __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, )); \ ++ resultvar = 0xffffffff; \ ++ } \ ++ (int) resultvar; }) ++ ++#undef INTERNAL_SYSCALL ++#define INTERNAL_SYSCALL(name, err, nr, args...) \ ++ ({ \ ++ register long r7 asm ("r7") = SYS_ify (name); \ ++ SUBSTITUTE_ARGS_##nr(args); \ ++ \ ++ asm volatile (SYSCALL_INST_STR "\n\t" \ ++ : "=r" (r0) \ ++ : "r" (r7) ASMFMT_##nr \ ++ : "memory"); \ ++ \ ++ (int) r0; }) ++ ++#undef INTERNAL_SYSCALL_DECL ++#define INTERNAL_SYSCALL_DECL(err) do { } while (0) ++ ++#undef INTERNAL_SYSCALL_ERROR_P ++#define INTERNAL_SYSCALL_ERROR_P(val, err) \ ++ ((unsigned int) (val) >= 0xfffff001u) ++ ++#undef INTERNAL_SYSCALL_ERRNO ++#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) ++ ++#endif /* __ASSEMBLER__ */ ++ ++#endif /* linux/m32r/sysdep.h */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/vfork.S ports/sysdeps/unix/sysv/linux/m32r/vfork.S +--- ports/sysdeps/unix/sysv/linux/m32r/vfork.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/vfork.S 2006-03-02 11:43:35.000000000 +0900 +@@ -0,0 +1,48 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#define _ERRNO_H 1 ++#include ++ ++/* Clone the calling process, but without copying the whole address space. ++ The calling process is suspended until the new process exits or is ++ replaced by a call to `execve'. Return -1 for errors, 0 to the new process, ++ and the process ID of the new process to the old process. */ ++ ++ENTRY (__vfork) ++ ++#ifdef __NR_vfork ++ ldi r7, #__NR_vfork ++ SYSCALL_INST ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++#endif ++ ++ SYSCALL_ERROR_HANDLER ++ ++ .fillinsn ++1: ++ ret ++ ++PSEUDO_END (__vfork) ++libc_hidden_def(__vfork) ++ ++weak_alias (__vfork, vfork) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/xstat.c ports/sysdeps/unix/sysv/linux/m32r/xstat.c +--- ports/sysdeps/unix/sysv/linux/m32r/xstat.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/xstat.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include --- eglibc-2.12.1.orig/debian/patches/any/local-fhs-linux-paths.diff +++ eglibc-2.12.1/debian/patches/any/local-fhs-linux-paths.diff @@ -0,0 +1,21 @@ +# DP: Description: Correct linux paths for FHS +# DP: Author: Unknown +# DP: Upstream status: Debian-Specific +# DP: Status Details: GNU doesn't follow the FHS. +# DP: Date: Unknown + +--- + sysdeps/unix/sysv/linux/paths.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sysdeps/unix/sysv/linux/paths.h ++++ b/sysdeps/unix/sysv/linux/paths.h +@@ -68,7 +68,7 @@ + /* Provide trailing slash, since mostly used for building pathnames. */ + #define _PATH_DEV "/dev/" + #define _PATH_TMP "/tmp/" +-#define _PATH_VARDB "/var/db/" ++#define _PATH_VARDB "/var/lib/misc/" + #define _PATH_VARRUN "/var/run/" + #define _PATH_VARTMP "/var/tmp/" + --- eglibc-2.12.1.orig/debian/patches/any/submitted-nis-netgrp.diff +++ eglibc-2.12.1/debian/patches/any/submitted-nis-netgrp.diff @@ -0,0 +1,29 @@ +This assertion breaks applications if they redefine malloc/free functions, +malloc_usable_size may then report wrong values. This is true for instance +with bash, whereas bash-static works fine because it does not use its own +wrapper functions. See #322011 and merged bugs. + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: BZ692 +# DP: Date: 2006-01-12 + + +--- + nis/nss_nis/nis-netgrp.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/nis/nss_nis/nis-netgrp.c ++++ b/nis/nss_nis/nis-netgrp.c +@@ -72,7 +72,10 @@ + and the last byte is filled with NUL. So we can simply + use that buffer. */ + assert (len >= 0); +- assert (malloc_usable_size (netgrp->data) >= len + 1); ++ /* Call to malloc_usable_size disabled, this breaks if applications ++ redefine malloc/free with a different implementation. ++ This assert is always true, see yp_match. */ ++ /* assert (malloc_usable_size (netgrp->data) >= len + 1); */ + assert (netgrp->data[len] == '\0'); + + netgrp->data_size = len; --- eglibc-2.12.1.orig/debian/patches/any/submitted-futex_robust_pi.diff +++ eglibc-2.12.1/debian/patches/any/submitted-futex_robust_pi.diff @@ -0,0 +1,107 @@ +2009-09-27 Aurelien Jarno + + * sysdeps/unix/sysv/linux/kernel-features.h + (__ASSUME_SET_ROBUST_LIST): Update per-arch conditions when + each feature was introduced. (__ASSUME_FUTEX_LOCK_PI): Ditto. + +--- + ports/sysdeps/unix/sysv/linux/arm/kernel-features.h | 10 +++++++ + ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h | 10 +++++++ + ports/sysdeps/unix/sysv/linux/mips/kernel-features.h | 11 ++++++++ + sysdeps/unix/sysv/linux/kernel-features.h | 26 +++++++++++++------ + 4 files changed, 50 insertions(+), 7 deletions(-) + +--- a/sysdeps/unix/sysv/linux/kernel-features.h ++++ b/sysdeps/unix/sysv/linux/kernel-features.h +@@ -436,9 +436,16 @@ + # define __ASSUME_ATFCTS 1 + #endif + +-/* Support for inter-process robust mutexes was added in 2.6.17. */ +-#if __LINUX_KERNEL_VERSION >= 0x020611 \ +- && (!defined __sh__ || __LINUX_KERNEL_VERSION >= 0x020613) ++/* Support for inter-process robust mutexes was added in 2.6.17 on i386, ++ powerpc and s390. It was added in 2.6.18 on s390 and sparc64, 2.6.19 on ++ ia64 and 2.6.23 on sh. */ ++#if (__LINUX_KERNEL_VERSION >= 0x020611 && defined __i386__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020611 && defined __powerpc__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020612 && defined __s390__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020612 && defined __sparc__ && __arch64__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020611 && defined __x86_64__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020613 && defined __ia64__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020617 && defined __sh__) + # define __ASSUME_SET_ROBUST_LIST 1 + #endif + +@@ -469,8 +474,15 @@ + # define __ASSUME_COMPLETE_READV_WRITEV 1 + #endif + +-/* Support for PI futexes was added in 2.6.18. */ +-#if __LINUX_KERNEL_VERSION >= 0x020612 ++/* Support for PI futexes was added in 2.6.18 on i386, powerpc, s390, sparc64 ++ x86_64. It was added in 2.6.19 on ia64 and in 2.6.23 on sh. */ ++#if (__LINUX_KERNEL_VERSION >= 0x020612 && defined __i386__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020612 && defined __powerpc__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020612 && defined __s390__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020612 && defined __sparc__ && __arch64__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020612 && defined __x86_64__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020613 && defined __ia64__) \ ++ || (__LINUX_KERNEL_VERSION >= 0x020617 && defined __sh__) + # define __ASSUME_FUTEX_LOCK_PI 1 + #endif + +--- a/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h ++++ b/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h +@@ -51,6 +51,16 @@ + # define __ASSUME_SIGFRAME_V2 1 + #endif + ++/* Support for inter-process robust mutexes was added in 2.6.28. */ ++#if __LINUX_KERNEL_VERSION >= 132636 ++ # define __ASSUME_SET_ROBUST_LIST 1 ++#endif ++ ++/* Support for PI futexes was added in 2.6.28. */ ++#if __LINUX_KERNEL_VERSION >= 132636 ++ # define __ASSUME_FUTEX_LOCK_PI 1 ++#endif ++ + #include_next + + /* These syscalls are not implemented yet for ARM. */ +--- a/ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h ++++ b/ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h +@@ -36,4 +36,14 @@ + # define __ASSUME_LWS_CAS 1 + #endif + ++/* Support for inter-process robust mutexes was added in 2.6.19 */ ++#if __LINUX_KERNEL_VERSION >= 0x020613 ++ # define __ASSUME_SET_ROBUST_LIST 1 ++#endif ++ ++/* Support for PI futexes was added in 2.6.19 */ ++#if __LINUX_KERNEL_VERSION >= 0x020613 ++ # define __ASSUME_FUTEX_LOCK_PI 1 ++#endif ++ + #include_next +--- a/ports/sysdeps/unix/sysv/linux/mips/kernel-features.h ++++ b/ports/sysdeps/unix/sysv/linux/mips/kernel-features.h +@@ -31,4 +31,15 @@ + # define __ASSUME_FCNTL64 1 + #endif + ++/* Support for inter-process robust mutexes was added in 2.6.18. */ ++#if __LINUX_KERNEL_VERSION >= 132626 ++ # define __ASSUME_SET_ROBUST_LIST 1 ++#endif ++ ++ ++/* Support for PI futexes was added in 2.6.18. */ ++#if __LINUX_KERNEL_VERSION >= 132626 ++ # define __ASSUME_FUTEX_LOCK_PI 1 ++#endif ++ + #include_next --- eglibc-2.12.1.orig/debian/patches/any/cvs-__block.diff +++ eglibc-2.12.1/debian/patches/any/cvs-__block.diff @@ -0,0 +1,36 @@ +2010-06-24 Mark Heily + + * crypt/crypt.h, posix/unistd.h: Use __libc_block instead of + __block. + +--- a/crypt/crypt.h ++++ b/crypt/crypt.h +@@ -38,7 +38,7 @@ + + /* Encrypt data in BLOCK in place if EDFLAG is zero; otherwise decrypt + block in place. */ +-extern void encrypt (char *__block, int __edflag) __THROW __nonnull ((1)); ++extern void encrypt (char *__libc_block, int __edflag) __THROW __nonnull ((1)); + + #ifdef __USE_GNU + /* Reentrant versions of the functions above. The additional argument +@@ -65,7 +65,7 @@ + struct crypt_data * __restrict __data) + __THROW __nonnull ((1, 2)); + +-extern void encrypt_r (char *__block, int __edflag, ++extern void encrypt_r (char *__libc_block, int __edflag, + struct crypt_data * __restrict __data) + __THROW __nonnull ((1, 3)); + #endif +--- a/posix/unistd.h ++++ b/posix/unistd.h +@@ -1132,7 +1132,7 @@ + + /* Encrypt data in BLOCK in place if EDFLAG is zero; otherwise decrypt + block in place. */ +-extern void encrypt (char *__block, int __edflag) __THROW __nonnull ((1)); ++extern void encrypt (char *__libc_block, int __edflag) __THROW __nonnull ((1)); + + + /* Swab pairs bytes in the first N bytes of the area pointed to by --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-stacksize.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-stacksize.diff @@ -0,0 +1,15 @@ +--- + linuxthreads/pthread.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/linuxthreads/pthread.c ++++ b/linuxthreads/pthread.c +@@ -429,6 +429,8 @@ + #ifdef FLOATING_STACKS + if (limit.rlim_cur == RLIM_INFINITY) + limit.rlim_cur = ARCH_STACK_MAX_SIZE; ++ if (limit.rlim_cur > 4 * ARCH_STACK_MAX_SIZE) ++ limit.rlim_cur = 4 * ARCH_STACK_MAX_SIZE; + # ifdef NEED_SEPARATE_REGISTER_STACK + max_stack = limit.rlim_cur / 2; + # else --- eglibc-2.12.1.orig/debian/patches/any/local-ldso-disable-hwcap.diff +++ eglibc-2.12.1/debian/patches/any/local-ldso-disable-hwcap.diff @@ -0,0 +1,79 @@ +# DP: Allow hwcap's to be disabled with the existence of a file. This +# DP: makes it easier to do upgrades with optimized (hwcap) library +# DP: packages. +# DP: Author: Rewritten by Daniel Jacobowitz +# DP: Upstream status: Debian-Specific +# DP: Status Details: This isn't going to be acceptable upstream, we +# DP: only need it because we support in-place upgrades. +# DP: Date: 2003-10-28, (Updated 2005-01-02 gotom, 2007-05-20 aurel32) + +--- + elf/dl-cache.c | 6 ++++++ + elf/dl-sysdep.c | 21 +++++++++++++++++++-- + 2 files changed, 25 insertions(+), 2 deletions(-) + +--- a/elf/dl-sysdep.c ++++ b/elf/dl-sysdep.c +@@ -417,6 +417,20 @@ + /* For TLS enabled builds always add 'tls'. */ + ++cnt; + ++ if (__access ("/etc/ld.so.nohwcap", F_OK) == 0) ++ { ++ /* If hwcap is disabled, we only have the base directory to search. */ ++ result = (struct r_strlenpair *) malloc (sizeof (*result)); ++ if (result == NULL) ++ goto no_memory; ++ ++ result[0].str = (char *) result; /* Does not really matter. */ ++ result[0].len = 0; ++ ++ *sz = 1; ++ return result; ++ } ++ + /* Create temporary data structure to generate result table. */ + temp = (struct r_strlenpair *) alloca (cnt * sizeof (*temp)); + m = 0; +@@ -491,8 +505,11 @@ + *sz = 1 << cnt; + result = (struct r_strlenpair *) malloc (*sz * sizeof (*result) + total); + if (result == NULL) +- _dl_signal_error (ENOMEM, NULL, NULL, +- N_("cannot create capability list")); ++ { ++ no_memory: ++ _dl_signal_error (ENOMEM, NULL, NULL, ++ N_("cannot create capability list")); ++ } + + if (cnt == 1) + { +--- a/elf/dl-cache.c ++++ b/elf/dl-cache.c +@@ -245,6 +245,7 @@ + if (cache_new != (void *) -1) + { + uint64_t platform; ++ int disable_hwcap = 0; + + /* This is where the strings start. */ + cache_data = (const char *) cache_new; +@@ -260,12 +261,17 @@ + uint64_t hwcap_exclude = ~((GLRO(dl_hwcap) & GLRO(dl_hwcap_mask)) + | _DL_HWCAP_PLATFORM | _DL_HWCAP_TLS_MASK); + ++ if (__access ("/etc/ld.so.nohwcap", F_OK) == 0) ++ disable_hwcap = 1; ++ + /* Only accept hwcap if it's for the right platform. */ + #define HWCAP_CHECK \ + if (lib->hwcap & hwcap_exclude) \ + continue; \ + if (GLRO(dl_osversion) && lib->osversion > GLRO(dl_osversion)) \ + continue; \ ++ if (disable_hwcap && lib->hwcap != 0) \ ++ continue; \ + if (_DL_PLATFORMS_COUNT \ + && (lib->hwcap & _DL_HWCAP_PLATFORM) != 0 \ + && (lib->hwcap & _DL_HWCAP_PLATFORM) != platform) \ --- eglibc-2.12.1.orig/debian/patches/any/local-ld-multiarch.diff +++ eglibc-2.12.1/debian/patches/any/local-ld-multiarch.diff @@ -0,0 +1,52 @@ +2009-08-23 Samuel Thibault + + * Makeconfig: convert back gnu-gnu into gnu. + Look for gnu-gnu in configure.in for the reason (easier matching). + +2009-08-09 Aurelien Jarno + + * Makeconfig: convert i586 and i686 into i486. + +2005-01-20 Tollef Fog Heen + + * Makeconfig: add multiarch support + +--- + Makeconfig | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -191,6 +191,21 @@ + endif + inst_libdir = $(install_root)$(libdir) + ++# Multiarch places to look for libraries ++ifndef extra_libdir ++ifneq (,$(findstring $(config-machine),i586 i686)) ++multiarch-machine = i486 ++else ++multiarch-machine = $(config-machine) ++endif ++ifeq ($(config-os),gnu-gnu) ++multiarch-os = gnu ++else ++multiarch-os = $(config-os) ++endif ++extra_libdir = /lib/$(multiarch-machine)-$(multiarch-os):$(exec_prefix)/lib/$(multiarch-machine)-$(multiarch-os) ++endif ++ + # Where to install the shared library and dynamic linker. + ifndef slibdir + slibdir = $(exec_prefix)/lib +@@ -514,6 +529,10 @@ + default-rpath = $(libdir) + endif + ++ifdef extra_libdir ++default-rpath += :$(extra_libdir) ++endif ++ + ifndef link-extra-libs + link-extra-libs = $(LDLIBS-$(@F)) + link-extra-libs-static = $(link-extra-libs) --- eglibc-2.12.1.orig/debian/patches/any/local-disable-nscd-host-caching.diff +++ eglibc-2.12.1/debian/patches/any/local-disable-nscd-host-caching.diff @@ -0,0 +1,17 @@ +--- + nscd/nscd.conf | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/nscd/nscd.conf ++++ b/nscd/nscd.conf +@@ -60,7 +60,9 @@ + max-db-size group 33554432 + auto-propagate group yes + +- enable-cache hosts yes ++# hosts caching is broken with gethostby* calls, hence is now disabled ++# per default. See /usr/share/doc/nscd/NEWS.Debian. ++ enable-cache hosts no + positive-time-to-live hosts 3600 + negative-time-to-live hosts 20 + suggested-size hosts 211 --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-ptw.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-ptw.diff @@ -0,0 +1,15 @@ +--- + linuxthreads/Makeconfig | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/linuxthreads/Makeconfig ++++ b/linuxthreads/Makeconfig +@@ -9,3 +9,8 @@ + bounded-thread-library = $(common-objpfx)linuxthreads/libpthread_b.a + + rpath-dirs += linuxthreads ++ ++# This makes for ptw-*.? object rules in sysd-rules. ++ptw-CPPFLAGS := -DPTW ++sysd-rules-patterns += ptw-%:% ++ --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-signals.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-signals.diff @@ -0,0 +1,18 @@ +--- + linuxthreads/signals.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/linuxthreads/signals.c ++++ b/linuxthreads/signals.c +@@ -99,9 +99,11 @@ + if (act->sa_handler != SIG_IGN && act->sa_handler != SIG_DFL + && sig > 0 && sig < NSIG) + { ++#if !defined(__FreeBSD_kernel__) + if (act->sa_flags & SA_SIGINFO) + newact.sa_handler = (__sighandler_t) __pthread_sighandler_rt; + else ++#endif + newact.sa_handler = (__sighandler_t) __pthread_sighandler; + if (old == SIG_IGN || old == SIG_DFL || old == SIG_ERR) + __sighandler[sig].old = (arch_sighandler_t) act->sa_handler; --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-defines.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-defines.diff @@ -0,0 +1,22 @@ + + linuxthreads still uses these defines + apply only for glibc 2.6 and above + +--- + config.make.in | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/config.make.in ++++ b/config.make.in +@@ -43,6 +43,11 @@ + all-warnings = @all_warnings@ + + elf = @elf@ ++have-protected = yes ++have-z-nodelete = yes ++have-z-nodlopen = yes ++have-z-initfirst = yes ++have-z-relro = yes + have-z-combreloc = @libc_cv_z_combreloc@ + have-z-execstack = @libc_cv_z_execstack@ + have-initfini = @libc_cv_have_initfini@ --- eglibc-2.12.1.orig/debian/patches/any/local-rtld.diff +++ eglibc-2.12.1/debian/patches/any/local-rtld.diff @@ -0,0 +1,48 @@ +2006-01-21 Aurelien Jarno + + * Makeconfig: new configuration variable rtlddir to change the + dynamic linker in the ELF binaries, which defaults to slibdir + +2005-08-30 Andreas Jochen + * Makeconfig: use rtlddir instead of slibdir + * elf/Makefile: likewise + +--- + Makeconfig | 7 ++++++- + elf/Makefile | 2 +- + 2 files changed, 7 insertions(+), 2 deletions(-) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -212,6 +212,11 @@ + endif + inst_slibdir = $(install_root)$(slibdir) + ++# Directory of the dynamic linker in the ELF binaries ++ifndef rtlddir ++rtlddir := $(slibdir) ++endif ++ + # Prefix to put on files installed in $(libdir). For libraries `libNAME.a', + # the prefix is spliced between `lib' and the name, so the linker switch + # `-l$(libprefix)NAME' finds the library; for other files the prefix is +@@ -488,7 +493,7 @@ + endif + ifndef config-LDFLAGS + ifeq (yesyes,$(build-shared)$(elf)) +-config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name) ++config-LDFLAGS = -Wl,-dynamic-linker=$(rtlddir)/$(rtld-installed-name) + endif + endif + ifndef link-libc +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -380,7 +380,7 @@ + | $(AWK) '($$7 ~ /^UND(|EF)$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }' + + # interp.c exists just to get this string into the libraries. +-CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"' \ ++CFLAGS-interp.c = -D'RUNTIME_LINKER="$(rtlddir)/$(rtld-installed-name)"' \ + -DNOT_IN_libc=1 + $(objpfx)interp.os: $(common-objpfx)config.make + --- eglibc-2.12.1.orig/debian/patches/any/submitted-etc-resolv.conf.diff +++ eglibc-2.12.1/debian/patches/any/submitted-etc-resolv.conf.diff @@ -0,0 +1,42 @@ +2009-11-08 Aurelien Jarno + + * resolv/res_init.c (__res_vinit): Initialize nameserver to the + loopback address if none specified. + +--- + resolv/res_init.c | 17 ++++++++++------- + 1 file changed, 10 insertions(+), 7 deletions(-) + +--- a/resolv/res_init.c ++++ b/resolv/res_init.c +@@ -176,13 +176,6 @@ + statp->id = res_randomid(); + } + +-#ifdef USELOOPBACK +- statp->nsaddr.sin_addr = inet_makeaddr(IN_LOOPBACKNET, 1); +-#else +- statp->nsaddr.sin_addr.s_addr = INADDR_ANY; +-#endif +- statp->nsaddr.sin_family = AF_INET; +- statp->nsaddr.sin_port = htons(NAMESERVER_PORT); + statp->nscount = 0; + statp->ndots = 1; + statp->pfcode = 0; +@@ -433,6 +426,16 @@ + #endif + (void) fclose(fp); + } ++ if (statp->nscount == 0) { ++ statp->nscount = 1; ++#ifdef USELOOPBACK ++ statp->nsaddr.sin_addr = inet_makeaddr(IN_LOOPBACKNET, 1); ++#else ++ statp->nsaddr.sin_addr.s_addr = INADDR_ANY; ++#endif ++ statp->nsaddr.sin_family = AF_INET; ++ statp->nsaddr.sin_port = htons(NAMESERVER_PORT); ++ } + if (statp->defdname[0] == 0 && + __gethostname(buf, sizeof(statp->defdname) - 1) == 0 && + (cp = strchr(buf, '.')) != NULL) --- eglibc-2.12.1.orig/debian/patches/any/submitted-localedef-mmap.diff +++ eglibc-2.12.1/debian/patches/any/submitted-localedef-mmap.diff @@ -0,0 +1,39 @@ +2009-10-27 Aurelien Jarno + + * locale/programs/locarchive.c: use MMAP_SHARED to reserve memory + used later with MMAP_FIXED | MMAP_SHARED to cope with different + alignment restrictions. + +--- + locale/programs/locarchive.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/locale/programs/locarchive.c ++++ b/locale/programs/locarchive.c +@@ -134,7 +134,7 @@ + size_t reserved = RESERVE_MMAP_SIZE; + int xflags = 0; + if (total < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else +@@ -397,7 +397,7 @@ + size_t reserved = RESERVE_MMAP_SIZE; + int xflags = 0; + if (total < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else +@@ -624,7 +624,7 @@ + int xflags = 0; + void *p; + if (st.st_size < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else --- eglibc-2.12.1.orig/debian/patches/any/local-mktemp.diff +++ eglibc-2.12.1/debian/patches/any/local-mktemp.diff @@ -0,0 +1,12 @@ +--- + misc/mktemp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/misc/mktemp.c ++++ b/misc/mktemp.c +@@ -33,4 +33,4 @@ + return template; + } + +-link_warning (mktemp, "the use of `mktemp' is dangerous, better use `mkstemp'") ++link_warning (mktemp, "the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'") --- eglibc-2.12.1.orig/debian/patches/any/submitted-clock-settime.diff +++ eglibc-2.12.1/debian/patches/any/submitted-clock-settime.diff @@ -0,0 +1,16 @@ +http://sourceware.org/bugzilla/show_bug.cgi?id=4026 + +--- + sysdeps/unix/sysv/linux/clock_settime.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sysdeps/unix/sysv/linux/clock_settime.c ++++ b/sysdeps/unix/sysv/linux/clock_settime.c +@@ -18,6 +18,7 @@ + + #include + #include ++#include + + #include "kernel-posix-cpu-timers.h" + #include --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-lowlevellock.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-lowlevellock.diff @@ -0,0 +1,160 @@ +--- + linuxthreads/sysdeps/unix/sysv/linux/rtld-lowlevel.h | 153 +++++++++++++++++++ + 1 file changed, 153 insertions(+) + +--- /dev/null ++++ b/linuxthreads/sysdeps/unix/sysv/linux/rtld-lowlevel.h +@@ -0,0 +1,153 @@ ++/* Defintions for lowlevel handling in ld.so. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _RTLD_LOWLEVEL_H ++#define _RTLD_LOWLEVEL_H 1 ++ ++#include ++#include ++ ++ ++/* Special multi-reader lock used in ld.so. */ ++#define __RTLD_MRLOCK_WRITER 1 ++#define __RTLD_MRLOCK_RWAIT 2 ++#define __RTLD_MRLOCK_WWAIT 4 ++#define __RTLD_MRLOCK_RBITS \ ++ ~(__RTLD_MRLOCK_WRITER | __RTLD_MRLOCK_RWAIT | __RTLD_MRLOCK_WWAIT) ++#define __RTLD_MRLOCK_INC 8 ++#define __RTLD_MRLOCK_TRIES 5 ++ ++ ++typedef int __rtld_mrlock_t; ++ ++ ++#define __rtld_mrlock_define(CLASS,NAME) \ ++ CLASS __rtld_mrlock_t NAME; ++ ++ ++#define _RTLD_MRLOCK_INITIALIZER 0 ++#define __rtld_mrlock_initialize(NAME) \ ++ (void) ((NAME) = 0) ++ ++ ++#define __rtld_mrlock_lock(lock) \ ++ do { \ ++ __label__ out; \ ++ while (1) \ ++ { \ ++ int oldval; \ ++ for (int tries = 0; tries < __RTLD_MRLOCK_TRIES; ++tries) \ ++ { \ ++ oldval = lock; \ ++ while (__builtin_expect ((oldval \ ++ & (__RTLD_MRLOCK_WRITER \ ++ | __RTLD_MRLOCK_WWAIT)) \ ++ == 0, 1)) \ ++ { \ ++ int newval = ((oldval & __RTLD_MRLOCK_RBITS) \ ++ + __RTLD_MRLOCK_INC); \ ++ int ret = atomic_compare_and_exchange_val_acq (&(lock), \ ++ newval, \ ++ oldval); \ ++ if (__builtin_expect (ret == oldval, 1)) \ ++ goto out; \ ++ oldval = ret; \ ++ } \ ++ atomic_delay (); \ ++ } \ ++ if ((oldval & __RTLD_MRLOCK_RWAIT) == 0) \ ++ { \ ++ atomic_or (&(lock), __RTLD_MRLOCK_RWAIT); \ ++ oldval |= __RTLD_MRLOCK_RWAIT; \ ++ } \ ++ lll_futex_wait (lock, oldval); \ ++ } \ ++ out:; \ ++ } while (0) ++ ++ ++#define __rtld_mrlock_unlock(lock) \ ++ do { \ ++ int oldval = atomic_exchange_and_add (&(lock), -__RTLD_MRLOCK_INC); \ ++ if (__builtin_expect ((oldval \ ++ & (__RTLD_MRLOCK_RBITS | __RTLD_MRLOCK_WWAIT)) \ ++ == (__RTLD_MRLOCK_INC | __RTLD_MRLOCK_WWAIT), 0)) \ ++ /* We have to wake all threads since there might be some queued \ ++ readers already. */ \ ++ lll_futex_wake (&(lock), 0x7fffffff); \ ++ } while (0) ++ ++ ++/* There can only ever be one thread trying to get the exclusive lock. */ ++#define __rtld_mrlock_change(lock) \ ++ do { \ ++ __label__ out; \ ++ while (1) \ ++ { \ ++ int oldval; \ ++ for (int tries = 0; tries < __RTLD_MRLOCK_TRIES; ++tries) \ ++ { \ ++ oldval = lock; \ ++ while (__builtin_expect ((oldval & __RTLD_MRLOCK_RBITS) == 0, 1)) \ ++ { \ ++ int newval = ((oldval & __RTLD_MRLOCK_RWAIT) \ ++ + __RTLD_MRLOCK_WRITER); \ ++ int ret = atomic_compare_and_exchange_val_acq (&(lock), \ ++ newval, \ ++ oldval); \ ++ if (__builtin_expect (ret == oldval, 1)) \ ++ goto out; \ ++ oldval = ret; \ ++ } \ ++ atomic_delay (); \ ++ } \ ++ atomic_or (&(lock), __RTLD_MRLOCK_WWAIT); \ ++ oldval |= __RTLD_MRLOCK_WWAIT; \ ++ lll_futex_wait (lock, oldval); \ ++ } \ ++ out:; \ ++ } while (0) ++ ++ ++#define __rtld_mrlock_done(lock) \ ++ do { \ ++ int oldval = atomic_exchange_and_add (&(lock), -__RTLD_MRLOCK_WRITER); \ ++ if (__builtin_expect ((oldval & __RTLD_MRLOCK_RWAIT) != 0, 0)) \ ++ lll_futex_wake (&(lock), 0x7fffffff); \ ++ } while (0) ++ ++ ++/* Function to wait for variable become zero. Used in ld.so for ++ reference counters. */ ++#define __rtld_waitzero(word) \ ++ do { \ ++ while (1) \ ++ { \ ++ int val = word; \ ++ if (val == 0) \ ++ break; \ ++ lll_futex_wait (&(word), val); \ ++ } \ ++ } while (0) ++ ++ ++#define __rtld_notify(word) \ ++ lll_futex_wake (&(word), 1) ++ ++#endif --- eglibc-2.12.1.orig/debian/patches/any/local-base.diff +++ eglibc-2.12.1/debian/patches/any/local-base.diff @@ -0,0 +1,64 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: hjl libc-base patch + +2003-05-15 + + * elf/do-lookup.h (FCT): Try the base version, the first + version and then the default version, in that order, for + the old unversioned reference. + +--- elf/do-lookup.h.base 2003-05-15 09:29:25.000000000 -0700 ++++ elf/do-lookup.h 2003-05-15 09:24:24.000000000 -0700 +@@ -52,7 +52,8 @@ FCT (const char *undef_name, unsigned lo + const ElfW(Sym) *sym; + #if ! VERSIONED + int num_versions = 0; +- const ElfW(Sym) *versioned_sym = NULL; ++ const ElfW(Sym) *default_version = NULL; ++ const ElfW(Sym) *first_version = NULL; + #endif + + map = list[i]; +@@ -155,16 +156,29 @@ FCT (const char *undef_name, unsigned lo + public interface should be returned. */ + if (verstab != NULL) + { +- if ((verstab[symidx] & 0x7fff) +- >= ((flags & DL_LOOKUP_RETURN_NEWEST) ? 2 : 3)) ++ ElfW(Half) ndx = verstab[symidx] & 0x7fff; ++ if (ndx >= ((flags & DL_LOOKUP_RETURN_NEWEST) ? 2 : 3)) + { + /* Don't accept hidden symbols. */ + if ((verstab[symidx] & 0x8000) == 0 && num_versions++ == 0) + /* No version so far. */ +- versioned_sym = sym; ++ default_version = sym; + + continue; + } ++ if ((flags & DL_LOOKUP_RETURN_NEWEST) == 0 && ndx != 0) ++ { ++ /* ndx == 1 is the base version. We will use it for ++ old unversioned application. */ ++ if (ndx != 1) ++ { ++ /* We remember the first version and keep looking ++ for the base version. */ ++ if (ndx == 2) ++ first_version = sym; ++ continue; ++ } ++ } + } + #endif + +@@ -179,7 +193,8 @@ FCT (const char *undef_name, unsigned lo + #if VERSIONED + sym = NULL; + #else +- sym = num_versions == 1 ? versioned_sym : NULL; ++ sym = first_version ?: (num_versions == 1 ++ ? default_version : NULL); + #endif + + if (sym != NULL) --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-unwind.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-unwind.diff @@ -0,0 +1,84 @@ +--- + linuxthreads/sysdeps/pthread/Makefile | 6 ++ + linuxthreads/sysdeps/pthread/unwind-resume.c | 64 +++++++++++++++++++++++++++ + 2 files changed, 70 insertions(+) + +--- /dev/null ++++ b/linuxthreads/sysdeps/pthread/unwind-resume.c +@@ -0,0 +1,64 @@ ++/* Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Jakub Jelinek . ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++#include ++ ++static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); ++static _Unwind_Reason_Code (*libgcc_s_personality) ++ (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *, ++ struct _Unwind_Context *); ++ ++static void ++init (void) ++{ ++ void *resume, *personality; ++ void *handle; ++ ++ handle = __libc_dlopen ("libgcc_s.so.1"); ++ ++ if (handle == NULL ++ || (resume = __libc_dlsym (handle, "_Unwind_Resume")) == NULL ++ || (personality = __libc_dlsym (handle, "__gcc_personality_v0")) == NULL) ++ __libc_fatal ("libgcc_s.so.1 must be installed for pthread_cancel to work\n"); ++ ++ libgcc_s_resume = resume; ++ libgcc_s_personality = personality; ++} ++ ++void ++_Unwind_Resume (struct _Unwind_Exception *exc) ++{ ++ if (__builtin_expect (libgcc_s_resume == NULL, 0)) ++ init (); ++ libgcc_s_resume (exc); ++} ++ ++_Unwind_Reason_Code ++__gcc_personality_v0 (int version, _Unwind_Action actions, ++ _Unwind_Exception_Class exception_class, ++ struct _Unwind_Exception *ue_header, ++ struct _Unwind_Context *context) ++{ ++ if (__builtin_expect (libgcc_s_personality == NULL, 0)) ++ init (); ++ return libgcc_s_personality (version, actions, exception_class, ++ ue_header, context); ++} +--- a/linuxthreads/sysdeps/pthread/Makefile ++++ b/linuxthreads/sysdeps/pthread/Makefile +@@ -1,3 +1,9 @@ ++ifeq ($(subdir),csu) ++routines += unwind-resume ++shared-only-routines += unwind-resume ++CFLAGS-unwind-resume.c += -fexceptions -fasynchronous-unwind-tables ++endif ++ + ifeq ($(subdir),rt) + librt-sysdep_routines += timer_routines + CPPFLAGS += -DBROKEN_THREAD_SIGNALS --- eglibc-2.12.1.orig/debian/patches/any/dst-expansion-fix.diff +++ eglibc-2.12.1/debian/patches/any/dst-expansion-fix.diff @@ -0,0 +1,116 @@ +Description: do not expand DST in setuid binaries (CVE-2010-3847). +Origin: http://sourceware.org/ml/libc-hacker/2010-10/msg00007.html +Origin: http://sourceware.org/ml/libc-hacker/2010-10/msg00008.html + +Index: eglibc-2.12.1/elf/dl-load.c +=================================================================== +--- eglibc-2.12.1.orig/elf/dl-load.c 2010-10-21 12:48:43.810968423 -0700 ++++ eglibc-2.12.1/elf/dl-load.c 2010-10-21 14:23:16.127016025 -0700 +@@ -169,8 +169,7 @@ + + + static size_t +-is_dst (const char *start, const char *name, const char *str, +- int is_path, int secure) ++is_dst (const char *start, const char *name, const char *str, int is_path) + { + size_t len; + bool is_curly = false; +@@ -199,11 +198,6 @@ + && (!is_path || name[len] != ':')) + return 0; + +- if (__builtin_expect (secure, 0) +- && ((name[len] != '\0' && (!is_path || name[len] != ':')) +- || (name != start + 1 && (!is_path || name[-2] != ':')))) +- return 0; +- + return len; + } + +@@ -218,13 +212,12 @@ + { + size_t len; + +- /* $ORIGIN is not expanded for SUID/GUID programs (except if it +- is $ORIGIN alone) and it must always appear first in path. */ ++ /* $ORIGIN is not expanded for SUID/GUID programs. */ + ++name; +- if ((len = is_dst (start, name, "ORIGIN", is_path, +- INTUSE(__libc_enable_secure))) != 0 +- || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0 +- || (len = is_dst (start, name, "LIB", is_path, 0)) != 0) ++ if (((len = is_dst (start, name, "ORIGIN", is_path)) != 0 ++ && !INTUSE(__libc_enable_secure)) ++ || (len = is_dst (start, name, "PLATFORM", is_path)) != 0 ++ || (len = is_dst (start, name, "LIB", is_path)) != 0) + ++cnt; + + name = strchr (name + len, '$'); +@@ -256,9 +249,12 @@ + size_t len; + + ++name; +- if ((len = is_dst (start, name, "ORIGIN", is_path, +- INTUSE(__libc_enable_secure))) != 0) ++ if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0) + { ++ /* Ignore this path element in SUID/SGID programs. */ ++ if (INTUSE(__libc_enable_secure)) ++ repl = (const char *) -1; ++ else + #ifndef SHARED + if (l == NULL) + repl = _dl_get_origin (); +@@ -266,9 +262,9 @@ + #endif + repl = l->l_origin; + } +- else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) ++ else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0) + repl = GLRO(dl_platform); +- else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0) ++ else if ((len = is_dst (start, name, "LIB", is_path)) != 0) + repl = DL_DST_LIB; + + if (repl != NULL && repl != (const char *) -1) +Index: eglibc-2.12.1/elf/dl-open.c +=================================================================== +--- eglibc-2.12.1.orig/elf/dl-open.c 2010-10-21 14:23:23.687449322 -0700 ++++ eglibc-2.12.1/elf/dl-open.c 2010-10-21 14:23:29.407777166 -0700 +@@ -221,35 +221,6 @@ + + assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT); + +- /* Maybe we have to expand a DST. */ +- if (__builtin_expect (dst != NULL, 0)) +- { +- size_t len = strlen (file); +- +- /* Determine how much space we need. We have to allocate the +- memory locally. */ +- size_t required = DL_DST_REQUIRED (call_map, file, len, +- _dl_dst_count (dst, 0)); +- +- /* Get space for the new file name. */ +- char *new_file = (char *) alloca (required + 1); +- +- /* Generate the new file name. */ +- _dl_dst_substitute (call_map, file, new_file, 0); +- +- /* If the substitution failed don't try to load. */ +- if (*new_file == '\0') +- _dl_signal_error (0, "dlopen", NULL, +- N_("empty dynamic string token substitution")); +- +- /* Now we have a new file name. */ +- file = new_file; +- +- /* It does not matter whether call_map is set even if we +- computed it only because of the DST. Since the path contains +- a slash the value is not used. See dl-load.c. */ +- } +- + /* Load the named object. */ + struct link_map *new; + args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0, --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-tst-sighandler.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-tst-sighandler.diff @@ -0,0 +1,15 @@ +--- + linuxthreads/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/linuxthreads/Makefile ++++ b/linuxthreads/Makefile +@@ -111,7 +111,7 @@ + ex17 ex18 tst-cancel tst-context bug-sleep \ + tst-cancel1 tst-cancel2 tst-cancel3 tst-cancel4 tst-cancel5 \ + tst-cancel6 tst-cancel7 tst-cancel8 tst-popen tst-popen2 tst-attr1 \ +- tst-stack1 tst-align tst-tsd1 tst-sighandler1 tst-sighandler2 ++ tst-stack1 tst-align tst-tsd1 + test-srcs = tst-signal + # These tests are linked with libc before libpthread + tests-reverse += tst-cancel5 --- eglibc-2.12.1.orig/debian/patches/any/local-globfree-clear.diff +++ eglibc-2.12.1/debian/patches/any/local-globfree-clear.diff @@ -0,0 +1,24 @@ +# DP: Description: Workaround patch to make globfree() clear pglob->gl_pathc +# DP: Related bugs: #264884 +# DP: Dpatch author: Jeff Licquia +# DP: Patch author: Jeff Licquia +# DP: Upstream status: Not submitted +# DP: Status Details: (gotom) I think it's harmless, but I doubt it's sanity. +# It's applied for sarge LFS conformance. +# However my test does not show any problems. Moreover, +# if gl_pathv is not cleared after GLOB_ABORTED under +# gl_pathc == 0, it's glob() bug. +# This patch should be reconsidered to apply after sarge. +# DP: Date: 2004-07-22 + +--- glibc-2.3.2-old/sysdeps/generic/glob.c 2004-07-26 17:49:07.000000000 -0400 ++++ glibc-2.3.2/sysdeps/generic/glob.c 2004-07-26 17:51:14.000000000 -0400 +@@ -1105,6 +1105,8 @@ + if (pglob->gl_pathv[pglob->gl_offs + i] != NULL) + free ((__ptr_t) pglob->gl_pathv[pglob->gl_offs + i]); + free ((__ptr_t) pglob->gl_pathv); ++ pglob->gl_pathc = 0; ++ pglob->gl_pathv = NULL; + } + } + #if defined _LIBC && !defined globfree --- eglibc-2.12.1.orig/debian/patches/any/local-stubs_h.diff +++ eglibc-2.12.1/debian/patches/any/local-stubs_h.diff @@ -0,0 +1,15 @@ +--- + include/stubs-prologue.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/include/stubs-prologue.h ++++ b/include/stubs-prologue.h +@@ -8,7 +8,7 @@ + every time called, usually setting errno to ENOSYS. */ + + #ifdef _LIBC +- #error Applications may not define the macro _LIBC ++# error Applications may not define the macro _LIBC + #endif + + @ Placeholder line so we remember to keep the preceding blank line here. --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-gscope.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-gscope.diff @@ -0,0 +1,38 @@ +--- + linuxthreads/descr.h | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +--- a/linuxthreads/descr.h ++++ b/linuxthreads/descr.h +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + + /* Fast thread-specific data internal to libc. */ +@@ -123,12 +124,23 @@ + uintptr_t sysinfo; + uintptr_t stack_guard; + uintptr_t pointer_guard; ++# ifdef __FreeBSD_kernel__ ++ long gscope_flag; ++# else ++ int gscope_flag; ++# endif + } data; + void *__padding[16]; + } p_header; + # define p_multiple_threads p_header.data.multiple_threads ++# define p_gscope_flag p_header.data.gscope_flag + #elif TLS_MULTIPLE_THREADS_IN_TCB + int p_multiple_threads; ++# ifdef __FreeBSD_kernel__ ++ long p_gscope_flag; ++# else ++ int p_gscope_flag; ++# endif + #endif + + pthread_descr p_nextlive, p_prevlive; --- eglibc-2.12.1.orig/debian/patches/any/local-no-pagesize.diff +++ eglibc-2.12.1/debian/patches/any/local-no-pagesize.diff @@ -0,0 +1,65 @@ +--- + ports/sysdeps/unix/sysv/linux/mips/sys/user.h | 4 ++-- + sysdeps/unix/sysv/linux/ia64/sys/user.h | 3 ++- + sysdeps/unix/sysv/linux/x86_64/sys/user.h | 4 ++-- + 4 files changed, 8 insertions(+), 7 deletions(-) + +--- a/sysdeps/unix/sysv/linux/ia64/sys/user.h ++++ b/sysdeps/unix/sysv/linux/ia64/sys/user.h +@@ -21,6 +21,7 @@ + + #include + #include ++#include + + /* This definition comes directly from the kernel headers. If + anything changes in them this header has to be changed, too. */ +@@ -45,7 +46,7 @@ + char u_comm[32]; /* User command name. */ + }; + +-#define NBPG PAGE_SIZE ++#define NBPG (sysconf(_SC_PAGESIZE)) + #define UPAGES 1 + #define HOST_TEXT_START_ADDR (u.start_code) + #define HOST_DATA_START_ADDR (u.start_data) +--- a/ports/sysdeps/unix/sysv/linux/mips/sys/user.h ++++ b/ports/sysdeps/unix/sysv/linux/mips/sys/user.h +@@ -20,6 +20,7 @@ + #define _SYS_USER_H 1 + + #include ++#include + + /* The whole purpose of this file is for GDB and GDB only. Don't read + too much into it. Don't use it for anything other than GDB unless +@@ -207,8 +208,7 @@ + + #endif + +-#define PAGE_SHIFT 12 +-#define PAGE_SIZE (1UL << PAGE_SHIFT) ++#define PAGE_SIZE (sysconf(_SC_PAGESIZE)) + #define PAGE_MASK (~(PAGE_SIZE-1)) + #define NBPG PAGE_SIZE + #define UPAGES 1 +--- a/sysdeps/unix/sysv/linux/x86_64/sys/user.h ++++ b/sysdeps/unix/sysv/linux/x86_64/sys/user.h +@@ -24,6 +24,7 @@ + you know what you are doing. */ + + #include ++#include + + #if __WORDSIZE == 64 + +@@ -164,8 +165,7 @@ + }; + #endif /* __WORDSIZE */ + +-#define PAGE_SHIFT 12 +-#define PAGE_SIZE (1UL << PAGE_SHIFT) ++#define PAGE_SIZE (sysconf(_SC_PAGESIZE)) + #define PAGE_MASK (~(PAGE_SIZE-1)) + #define NBPG PAGE_SIZE + #define UPAGES 1 --- eglibc-2.12.1.orig/debian/patches/any/local-bindresvport_blacklist.diff +++ eglibc-2.12.1/debian/patches/any/local-bindresvport_blacklist.diff @@ -0,0 +1,156 @@ +Patch from the OpenSUSE glibc + +--- + sunrpc/bindrsvprt.c | 107 ++++++++++++++++++++++++++++++++++++++++++++++++---- + 1 file changed, 99 insertions(+), 8 deletions(-) + +--- a/sunrpc/bindrsvprt.c ++++ b/sunrpc/bindrsvprt.c +@@ -29,28 +29,108 @@ + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#include ++#include + #include ++#include + #include + #include + #include + #include + #include + ++#define STARTPORT 600 ++#define LOWPORT 512 ++#define ENDPORT (IPPORT_RESERVED - 1) ++#define NPORTS (ENDPORT - STARTPORT + 1) ++ ++/* ++ * Read the file /etc/rpc.blacklisted, so that we don't bind ++ * to this ports. ++ */ ++ ++static int blacklist_read; ++static int *list; ++static int list_size = 0; ++ ++static void ++load_blacklist (void) ++{ ++ FILE *fp; ++ char *buf = NULL; ++ size_t buflen = 0; ++ int size = 0, ptr = 0; ++ ++ blacklist_read = 1; ++ ++ fp = fopen ("/etc/bindresvport.blacklist", "r"); ++ if (NULL == fp) ++ return; ++ ++ while (!feof (fp)) ++ { ++ unsigned long port; ++ char *tmp, *cp; ++ ssize_t n = __getline (&buf, &buflen, fp); ++ if (n < 1) ++ break; ++ ++ cp = buf; ++ tmp = strchr (cp, '#'); /* remove comments */ ++ if (tmp) ++ *tmp = '\0'; ++ while (isspace ((int)*cp)) /* remove spaces and tabs */ ++ ++cp; ++ if (*cp == '\0') /* ignore empty lines */ ++ continue; ++ if (cp[strlen (cp) - 1] == '\n') ++ cp[strlen (cp) - 1] = '\0'; ++ ++ port = strtoul (cp, &tmp, 0); ++ while (isspace(*tmp)) ++ ++tmp; ++ if (*tmp != '\0' || (port == ULONG_MAX && errno == ERANGE)) ++ continue; ++ ++ /* Don't bother with out-of-range ports */ ++ if (port < LOWPORT || port > ENDPORT) ++ continue; ++ ++ if (ptr >= size) ++ { ++ size += 10; ++ list = realloc (list, size * sizeof (int)); ++ if (list == NULL) ++ { ++ free (buf); ++ return; ++ } ++ } ++ ++ list[ptr++] = port; ++ } ++ ++ fclose (fp); ++ ++ if (buf) ++ free (buf); ++ ++ list_size = ptr; ++} ++ + /* + * Bind a socket to a privileged IP port + */ + int + bindresvport (int sd, struct sockaddr_in *sin) + { ++ static short startport = STARTPORT; + static short port; + struct sockaddr_in myaddr; + int i; + +-#define STARTPORT 600 +-#define LOWPORT 512 +-#define ENDPORT (IPPORT_RESERVED - 1) +-#define NPORTS (ENDPORT - STARTPORT + 1) +- static short startport = STARTPORT; ++ if (!blacklist_read) ++ load_blacklist (); + + if (sin == (struct sockaddr_in *) 0) + { +@@ -69,6 +149,7 @@ + port = (__getpid () % NPORTS) + STARTPORT; + } + ++ __set_errno (EADDRINUSE); + /* Initialize to make gcc happy. */ + int res = -1; + +@@ -77,12 +158,22 @@ + again: + for (i = 0; i < nports; ++i) + { +- sin->sin_port = htons (port++); +- if (port > endport) +- port = startport; ++ int j; ++ ++ sin->sin_port = htons (port); ++ ++ /* Check, if this port is not blacklisted. */ ++ for (j = 0; j < list_size; j++) ++ if (port == list[j]) ++ goto try_next_port; ++ + res = __bind (sd, sin, sizeof (struct sockaddr_in)); + if (res >= 0 || errno != EADDRINUSE) + break; ++ ++try_next_port: ++ if (++port > endport) ++ port = startport; + } + + if (i == nports && startport != LOWPORT) --- eglibc-2.12.1.orig/debian/patches/any/local-ldconfig.diff +++ eglibc-2.12.1/debian/patches/any/local-ldconfig.diff @@ -0,0 +1,70 @@ +# DP: Make it so that a missing /etc/ld.so.conf does not cause an error +# DP: message, unless --verbose is enabled. This keeps the debian +# DP: installer from barfing during bootstrap of the system. +# DP: +# DP: Updated by gotom, the previous one seems being wrong because it supresses +# DP: _all_ warnings about "can't open configuration file". otoh, I introduce +# DP: newer patches. it should be checked using chroot and should be contacted +# DP: to the upstream. +# DP: Date: (Updated 2005-01-02 gotom) + +# previous patch. +#--- elf/ldconfig.c 2003-07-08 23:26:27.000000000 +0900 +#+++ elf/ldconfig.c.debian 2003-07-08 23:29:43.000000000 +0900 +#@@ -920,26 +920,24 @@ +# { +# FILE *file = NULL; +# char *line = NULL; +#- const char *canon; +#+ const char *canon = filename; +# size_t len = 0; +#+ int file_fd; +# +# if (opt_chroot) +# { +# canon = chroot_canon (opt_chroot, filename); +#- if (canon) +#- file = fopen (canon, "r"); +#- else +#+ if (!canon) +# canon = filename; +# } +#- else +#- { +#- canon = filename; +#- file = fopen (filename, "r"); +#- } +#+ +#+ if ((file_fd = open(canon, O_RDONLY | O_EXCL, 0022)) != -1) +#+ file = fdopen (file_fd, "r"); +# +# if (file == NULL) +# { +#- error (0, errno, _("Can't open configuration file %s"), canon); +#+ if (opt_verbose) +#+ error (0, errno, _("Can't open configuration file %s"), canon); +# if (canon != filename) +# free ((char *) canon); +# return; + +2004-10-25 GOTO Masanori + + * elf/ldconfig.c: Don't print error when default ld.so.conf + is not existed. + +--- + elf/ldconfig.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/elf/ldconfig.c ++++ b/elf/ldconfig.c +@@ -1066,7 +1066,8 @@ + + if (file == NULL) + { +- error (0, errno, _("Can't open configuration file %s"), canon); ++ if (strcmp(canon, LD_SO_CONF) != 0 || opt_verbose) ++ error (0, errno, _("Can't open configuration file %s"), canon); + if (canon != filename) + free ((char *) canon); + return; --- eglibc-2.12.1.orig/debian/patches/any/local-dlfptr.diff +++ eglibc-2.12.1/debian/patches/any/local-dlfptr.diff @@ -0,0 +1,57 @@ +--- + elf/dl-fptr.c | 18 +++++++++++++++++- + sysdeps/generic/dl-fptr.h | 3 +++ + 3 files changed, 20 insertions(+), 1 deletions(-) + +--- a/elf/dl-fptr.c ++++ b/elf/dl-fptr.c +@@ -1,5 +1,5 @@ + /* Manage function descriptors. Generic version. +- Copyright (C) 1999-2004, 2006 Free Software Foundation, Inc. ++ Copyright (C) 1999-2004, 2006, 2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -56,7 +56,12 @@ + } + local = + { ++#ifndef SHARED + .root = &local.boot_table, ++#else ++ /* Address of .boot_table is not known until runtime. */ ++ .root = 0, ++#endif + .npages = 2, + .boot_table = + { +@@ -93,6 +98,17 @@ + return new_table; + } + ++/* Must call _dl_fptr_init before using any other function. */ ++void ++_dl_fptr_init (void) ++{ ++ struct local *l; ++ ++ ELF_MACHINE_LOAD_ADDRESS (l, local); ++ /* Initialize root once. */ ++ if (__builtin_expect (l->root == 0, 0)) ++ l->root = &l->boot_table; ++} + + static ElfW(Addr) + make_fdesc (ElfW(Addr) ip, ElfW(Addr) gp) +--- a/sysdeps/generic/dl-fptr.h ++++ b/sysdeps/generic/dl-fptr.h +@@ -40,6 +40,9 @@ + + extern ElfW(Addr) _dl_boot_fptr_table []; + ++/* Must be called before any other function. */ ++extern void _dl_fptr_init (void); ++ + extern ElfW(Addr) _dl_make_fptr (struct link_map *, const ElfW(Sym) *, + ElfW(Addr)); + --- eglibc-2.12.1.orig/debian/patches/any/local-asserth-decls.diff +++ eglibc-2.12.1/debian/patches/any/local-asserth-decls.diff @@ -0,0 +1,36 @@ +# DP: Description: /usr/include/assert.h +# DP: One must be allowed to include multiple times with different +# DP: values for NDEBUG, so the file is not protected against multiple +# DP: inclusions. Unfortunately this means that the declarations for +# DP: __assert_fail() and the like may occur multiple times in a compilation +# DP: unit, causing gcc to issue a batch of warnings. +# DP: I believe this can be fixed by protecting the declarations (but only +# DP: those declarations) against repetition. +# DP: Author: Jeroen T. Vermeulen +# DP: Upstream status: Not submitted +# DP: Status Details: Plan to submit +# DP: Date: 2003-01-01 + +--- + assert/assert.h | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/assert/assert.h ++++ b/assert/assert.h +@@ -63,6 +63,8 @@ + + #else /* Not NDEBUG. */ + ++#ifndef _ASSERT_H_DECLS ++#define _ASSERT_H_DECLS + __BEGIN_DECLS + + /* This prints an "Assertion failed" message and aborts. */ +@@ -84,6 +86,7 @@ + + + __END_DECLS ++#endif /* Not _ASSERT_H_DECLS */ + + # define assert(expr) \ + ((expr) \ --- eglibc-2.12.1.orig/debian/patches/any/submitted-accept4-hidden.diff +++ eglibc-2.12.1/debian/patches/any/submitted-accept4-hidden.diff @@ -0,0 +1,19 @@ +2009-05-23 Aurelien Jarno + + * socket/accept4.c (accept4): Remove libc_hidden_def. + +--- + socket/accept4.c | 2 -- + 1 file changed, 2 deletions(-) + +--- a/socket/accept4.c ++++ b/socket/accept4.c +@@ -35,8 +35,6 @@ + __set_errno (ENOSYS); + return -1; + } +-libc_hidden_def (accept4) +- + + stub_warning (accept4) + #include --- eglibc-2.12.1.orig/debian/patches/any/local-o_cloexec.diff +++ eglibc-2.12.1/debian/patches/any/local-o_cloexec.diff @@ -0,0 +1,22 @@ +--- + sysdeps/unix/opendir.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/sysdeps/unix/opendir.c ++++ b/sysdeps/unix/opendir.c +@@ -146,6 +146,7 @@ + #ifdef __ASSUME_O_CLOEXEC + # define check_have_o_cloexec(fd) 1 + #else ++#ifdef O_CLOEXEC + static int + check_have_o_cloexec (int fd) + { +@@ -154,6 +155,7 @@ + return __have_o_cloexec > 0; + } + #endif ++#endif + + + DIR * --- eglibc-2.12.1.orig/debian/patches/any/submitted-popen.diff +++ eglibc-2.12.1/debian/patches/any/submitted-popen.diff @@ -0,0 +1,58 @@ +http://bugs.gentoo.org/250342 +http://sources.redhat.com/bugzilla/show_bug.cgi?id=9685 + +we cant assume sock_cloexec and pipe2 are bound together as the former defines +are found in glibc only while the latter are a combo of kernel headers and +glibc. so if we do a runtime detection of SOCK_CLOEXEC, but pipe2() is a stub +inside of glibc, we hit a problem. for example: + +#include +#include +main() +{ + getgrnam("portage"); + if (!popen("ls", "r")) + perror("popen()"); +} + +getgrnam() will detect that the kernel supports SOCK_CLOEXEC and then set both +__have_sock_cloexec and __have_pipe2 to true. but if glibc was built against +older kernel headers where __NR_pipe2 does not exist, glibc will have a ENOSYS +stub for it. so popen() will always fail as glibc assumes pipe2() works. + +--- + include/unistd.h | 5 +---- + socket/have_sock_cloexec.c | 5 +++++ + 2 files changed, 6 insertions(+), 4 deletions(-) + +--- a/include/unistd.h ++++ b/include/unistd.h +@@ -171,10 +171,7 @@ + extern int __pause_nocancel (void) attribute_hidden; + + extern int __have_sock_cloexec; +-/* At lot of other functionality became available at the same time as +- SOCK_CLOEXEC. Avoid defining separate variables for all of them +- unless it is really necessary. */ +-#define __have_pipe2 __have_sock_cloexec ++extern int __have_pipe2; + + __END_DECLS + +--- a/socket/have_sock_cloexec.c ++++ b/socket/have_sock_cloexec.c +@@ -16,9 +16,14 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++#include + #include + #include + + #if defined SOCK_CLOEXEC && !defined __ASSUME_SOCK_CLOEXEC + int __have_sock_cloexec; + #endif ++ ++#if defined O_CLOEXEC && !defined __ASSUME_PIPE2 ++int __have_pipe2; ++#endif --- eglibc-2.12.1.orig/debian/patches/any/submitted-getaddrinfo-lo.diff +++ eglibc-2.12.1/debian/patches/any/submitted-getaddrinfo-lo.diff @@ -0,0 +1,27 @@ +2009-03-15 Aurelien Jarno + + * sysdeps/posix/getaddrinfo.c (getaddrinfo): correctly detect + interface for all 127.X.Y.Z addresses. + +--- + sysdeps/posix/getaddrinfo.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +--- a/sysdeps/posix/getaddrinfo.c ++++ b/sysdeps/posix/getaddrinfo.c +@@ -2262,7 +2262,14 @@ + tmp.addr[0] = 0; + tmp.addr[1] = 0; + tmp.addr[2] = htonl (0xffff); +- tmp.addr[3] = sinp->sin_addr.s_addr; ++ /* Special case for lo interface, the source address ++ being possibly different than the interface ++ address. */ ++ if ((ntohl(sinp->sin_addr.s_addr) & 0xff000000) ++ == 0x7f000000) ++ tmp.addr[3] = htonl(0x7f000001); ++ else ++ tmp.addr[3] = sinp->sin_addr.s_addr; + } + else + { --- eglibc-2.12.1.orig/debian/patches/any/local-stdio-lock.diff +++ eglibc-2.12.1/debian/patches/any/local-stdio-lock.diff @@ -0,0 +1,32 @@ +--- + bits/stdio-lock.h | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +--- a/bits/stdio-lock.h ++++ b/bits/stdio-lock.h +@@ -47,12 +47,21 @@ + + #if defined _LIBC && !defined NOT_IN_libc + # define _IO_acquire_lock(_fp) \ +- _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \ +- _IO_flockfile (_fp) ++ { \ ++ _IO_FILE *_IO_acquire_lock_file = _fp; \ ++ __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_fct, &_IO_acquire_lock_file); \ ++ _IO_flockfile (_IO_acquire_lock_file) ++ ++# define _IO_acquire_lock_clear_flags2(_fp) \ ++ { \ ++ _IO_FILE *_IO_acquire_lock_file = _fp; \ ++ __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_clear_flags2_fct, &_IO_acquire_lock_file); \ ++ _IO_flockfile (_IO_acquire_lock_file) + + # define _IO_release_lock(_fp) \ +- _IO_funlockfile (_fp); \ +- _IO_cleanup_region_end (0) ++ __libc_cleanup_region_end (1); \ ++ } ++ + #endif + + #endif /* bits/stdio-lock.h */ --- eglibc-2.12.1.orig/debian/patches/any/submitted-nptl-invalid-td.patch +++ eglibc-2.12.1/debian/patches/any/submitted-nptl-invalid-td.patch @@ -0,0 +1,22 @@ +2010-02-27 Aurelien Jarno + + * pthreadP.h(INVALID_TD_P, INVALID_NOT_TERMINATED_TD_P): detect + NULL pointers. + +--- + nptl/pthreadP.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/nptl/pthreadP.h ++++ b/nptl/pthreadP.h +@@ -207,8 +207,8 @@ + /* Simplified test. This will not catch all invalid descriptors but + is better than nothing. And if the test triggers the thread + descriptor is guaranteed to be invalid. */ +-# define INVALID_TD_P(pd) __builtin_expect ((pd)->tid <= 0, 0) +-# define INVALID_NOT_TERMINATED_TD_P(pd) __builtin_expect ((pd)->tid < 0, 0) ++# define INVALID_TD_P(pd) __builtin_expect (!pd || ((pd)->tid <= 0), 0) ++# define INVALID_NOT_TERMINATED_TD_P(pd) __builtin_expect (!pd || ((pd)->tid < 0), 0) + #endif + + --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-thread_self.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-thread_self.diff @@ -0,0 +1,22 @@ +2009-01-21 Aurelien Jarno + + * linuxthreads/descr.h (thread_self): Remove static to prevent + warning. + +--- + linuxthreads/descr.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/linuxthreads/descr.h ++++ b/linuxthreads/descr.h +@@ -260,8 +260,8 @@ + + extern pthread_descr __pthread_find_self (void) __attribute__ ((pure)); + +-static inline pthread_descr thread_self (void) __attribute__ ((pure)); +-static inline pthread_descr thread_self (void) ++extern inline pthread_descr thread_self (void) __attribute__ ((pure)); ++extern inline pthread_descr thread_self (void) + { + #ifdef THREAD_SELF + return THREAD_SELF; --- eglibc-2.12.1.orig/debian/patches/any/cvs-gai-rfc3484.diff +++ eglibc-2.12.1/debian/patches/any/cvs-gai-rfc3484.diff @@ -0,0 +1,59 @@ +2010-04-06 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c (default_scopes): Assign global + scope to RFC 1918 addresses. + * posix/gai.conf: Document difference from RFC 3484. + + +--- ./posix/gai.conf.orig 2010-04-16 16:12:00.022336293 +0200 ++++ ./posix/gai.conf 2010-04-16 16:20:06.761085950 +0200 +@@ -41,7 +41,7 @@ + # + # precedence + # Add another rule to the RFC 3484 precedence table. See section 2.1 +-# and 10.3 in RFC 3484. The default is: ++# and 10.3 in RFC 3484. The RFC requires: + # + #precedence ::1/128 50 + #precedence ::/0 40 +@@ -56,9 +56,7 @@ + # + # scopev4 + # Add another rule to the RFC 3484 scope table for IPv4 addresses. +-# By default the scope IDs described in section 3.2 in RFC 3484 are +-# used. Changing these defaults should hardly ever be necessary. +-# The defaults are equivalent to: ++# The definitions in RFC 3484 are equivalent to: + # + #scopev4 ::ffff:169.254.0.0/112 2 + #scopev4 ::ffff:127.0.0.0/104 2 +@@ -66,3 +64,14 @@ + #scopev4 ::ffff:172.16.0.0/108 5 + #scopev4 ::ffff:192.168.0.0/112 5 + #scopev4 ::ffff:0.0.0.0/96 14 ++# ++# For sites which use site-local IPv4 addresses behind NAT there is ++# the problem that even if IPv4 addresses are preferred they do not ++# have the same scope and are therefore not sorted first. To change ++# this use only these rules: ++# ++#scopev4 ::ffff:169.254.0.0/112 2 ++#scopev4 ::ffff:127.0.0.0/104 2 ++#scopev4 ::ffff:0.0.0.0/96 14 ++# ++# This is what the Red Hat / Ubuntu setting currently uses. +--- ./sysdeps/posix/getaddrinfo.c.orig 2010-04-16 16:12:09.543586079 +0200 ++++ ./sysdeps/posix/getaddrinfo.c 2010-04-16 16:19:31.941086318 +0200 +@@ -1102,10 +1102,12 @@ + /* Link-local addresses: scope 2. */ + { { { 169, 254, 0, 0 } }, htonl_c (0xffff0000), 2 }, + { { { 127, 0, 0, 0 } }, htonl_c (0xff000000), 2 }, ++#if 0 + /* Site-local addresses: scope 5. */ + { { { 10, 0, 0, 0 } }, htonl_c (0xff000000), 5 }, + { { { 172, 16, 0, 0 } }, htonl_c (0xfff00000), 5 }, + { { { 192, 168, 0, 0 } }, htonl_c (0xffff0000), 5 }, ++#endif + /* Default: scope 14. */ + { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 } + }; --- eglibc-2.12.1.orig/debian/patches/any/submitted-fileops-and-signals.diff +++ eglibc-2.12.1/debian/patches/any/submitted-fileops-and-signals.diff @@ -0,0 +1,26 @@ +Index: glibc-2.7/libio/fileops.c +=================================================================== +--- glibc-2.7.orig/libio/fileops.c 2007-10-23 08:46:13.000000000 -0400 ++++ glibc-2.7/libio/fileops.c 2007-10-23 08:50:51.000000000 -0400 +@@ -522,10 +522,19 @@ + fp->_cur_column = INTUSE(_IO_adjust_column) (fp->_cur_column - 1, data, + count) + 1; + _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base, fp->_IO_buf_base); +- fp->_IO_write_base = fp->_IO_write_ptr = fp->_IO_buf_base; +- fp->_IO_write_end = (fp->_mode <= 0 ++ if (__builtin_expect (count == to_do, 1)) ++ { ++ fp->_IO_write_base = fp->_IO_write_ptr = fp->_IO_buf_base; ++ fp->_IO_write_end = (fp->_mode <= 0 + && (fp->_flags & (_IO_LINE_BUF+_IO_UNBUFFERED)) + ? fp->_IO_buf_base : fp->_IO_buf_end); ++ } ++ else if (count > 0 && fp->_IO_write_base == data) ++ { ++ memmove (data, data+count, ++ fp->_IO_write_ptr - fp->_IO_write_base - count); ++ fp->_IO_write_ptr -= count; ++ } + return count; + } + --- eglibc-2.12.1.orig/debian/patches/any/local-libgcc-compat-ports.diff +++ eglibc-2.12.1/debian/patches/any/local-libgcc-compat-ports.diff @@ -0,0 +1,153 @@ +# DP: Description: libgcc-compat symbols for mips, arm, m68k +# DP: Author: Guido Guenther, GOTO Masanori +# DP: Upstream status: Not submitted +# DP: Date: 2002-10-13, updated 2006-08-27 + +--- + ports/sysdeps/arm/Makefile | 7 + + ports/sysdeps/arm/Versions | 16 ++++ + ports/sysdeps/arm/libgcc-compat.c | 111 ++++++++++++++++++++++++++++++ + +--- /dev/null ++++ b/ports/sysdeps/arm/Makefile +@@ -0,0 +1,7 @@ ++ifeq ($(subdir),csu) ++ifeq (yes,$(build-shared)) ++# Compatibility ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat ++endif ++endif +--- /dev/null ++++ b/ports/sysdeps/arm/Versions +@@ -0,0 +1,16 @@ ++libc { ++ GLIBC_2.0 { ++ # Functions from libgcc. ++ __ashldi3; __ashrdi3; ++ __cmpdi2; ++ __divsi3; ++ __fixdfdi; ++ __floatdidf; ++ __floatdisf; ++ __modsi3; ++ __muldi3; ++ __ucmpdi2; ++ __udivsi3; ++ __umodsi3; ++ } ++} +--- /dev/null ++++ b/ports/sysdeps/arm/libgcc-compat.c +@@ -0,0 +1,111 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by GOTO Masanori ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6) ++ ++extern int64_t __ashldi3 (int64_t, int32_t); ++int64_t __ashldi3_internal (int64_t u, int32_t b) ++{ ++ return __ashldi3 (u, b); ++} ++symbol_version (__ashldi3_internal, __ashldi3, GLIBC_2.0); ++ ++extern int64_t __ashrdi3 (int64_t, int32_t); ++int32_t __ashrdi3_internal (int64_t u, int32_t b) ++{ ++ return __ashrdi3 (u, b); ++} ++symbol_version (__ashrdi3_internal, __ashrdi3, GLIBC_2.0); ++ ++extern int32_t __cmpdi2 (int64_t, int64_t); ++int32_t __cmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __cmpdi2 (u, v); ++} ++symbol_version (__cmpdi2_internal, __cmpdi2, GLIBC_2.0); ++ ++extern int32_t __divsi3 (int32_t, int32_t); ++int32_t __divsi3_internal (int32_t u, int32_t v) ++{ ++ return __divsi3 (u, v); ++} ++symbol_version (__divsi3_internal, __divsi3, GLIBC_2.0); ++ ++extern int64_t __fixdfdi (double); ++int64_t __fixdfdi_internal (double d) ++{ ++ return __fixdfdi (d); ++} ++symbol_version (__fixdfdi_internal, __fixdfdi, GLIBC_2.0); ++ ++extern double __floatdidf (int64_t); ++double __floatdidf_internal (int64_t u) ++{ ++ return __floatdidf (u); ++} ++symbol_version (__floatdidf_internal, __floatdidf, GLIBC_2.0); ++ ++extern float __floatdisf (int64_t); ++float __floatdisf_internal (int64_t u) ++{ ++ return __floatdisf (u); ++} ++symbol_version (__floatdisf_internal, __floatdisf, GLIBC_2.0); ++ ++extern int32_t __modsi3 (int32_t, int32_t); ++int32_t __modsi3_internal (int32_t u, int32_t v) ++{ ++ return __modsi3 (u, v); ++} ++symbol_version (__modsi3_internal, __modsi3, GLIBC_2.0); ++ ++extern int64_t __muldi3 (int64_t, int64_t); ++int64_t __muldi3_internal (int64_t u, int64_t v) ++{ ++ return __muldi3 (u, v); ++} ++symbol_version (__muldi3_internal, __muldi3, GLIBC_2.0); ++ ++extern int32_t __ucmpdi2 (int64_t, int64_t); ++int32_t __ucmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __ucmpdi2 (u, v); ++} ++symbol_version (__ucmpdi2_internal, __ucmpdi2, GLIBC_2.0); ++ ++extern int32_t __udivsi3 (int32_t, int32_t); ++int32_t __udivsi3_internal (int32_t u, int32_t v) ++{ ++ return __udivsi3 (u, v); ++} ++symbol_version (__udivsi3_internal, __udivsi3, GLIBC_2.0); ++ ++extern int32_t __umodsi3 (int32_t, int32_t); ++int32_t __umodsi3_internal (int32_t u, int32_t v) ++{ ++ return __umodsi3 (u, v); ++} ++symbol_version (__umodsi3_internal, __umodsi3, GLIBC_2.0); ++ ++#endif --- eglibc-2.12.1.orig/debian/patches/any/disable-ld_audit.diff +++ eglibc-2.12.1/debian/patches/any/disable-ld_audit.diff @@ -0,0 +1,16 @@ +Description: pro-actively disable LD_AUDIT for setuid binaries. +Author: Kees Cook + +Index: eglibc-2.12.1/elf/rtld.c +=================================================================== +--- eglibc-2.12.1.orig/elf/rtld.c 2010-10-21 12:48:16.429357188 -0700 ++++ eglibc-2.12.1/elf/rtld.c 2010-10-21 12:48:36.260524091 -0700 +@@ -2488,7 +2488,7 @@ + while ((p = (strsep) (&str, ":")) != NULL) + if (p[0] != '\0' + && (__builtin_expect (! INTUSE(__libc_enable_secure), 1) +- || strchr (p, '/') == NULL)) ++ )) + { + /* This is using the local malloc, not the system malloc. The + memory can never be freed. */ --- eglibc-2.12.1.orig/debian/patches/any/submitted-sched_h.diff +++ eglibc-2.12.1/debian/patches/any/submitted-sched_h.diff @@ -0,0 +1,20 @@ +2007-11-02 Aurelien Jarno + + * bits/sched.h (__CPU_ALLOC_SIZE): Define. + +--- + bits/sched.h | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/bits/sched.h ++++ b/bits/sched.h +@@ -69,6 +69,9 @@ + # define __CPU_ISSET(cpu, cpusetp) \ + (((cpusetp)->__bits[__CPUELT (cpu)] & __CPUMASK (cpu)) != 0) + ++# define __CPU_ALLOC_SIZE(count) \ ++ ((((count) + __NCPUBITS - 1) / __NCPUBITS) * 8) ++ + __BEGIN_DECLS + + extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) --- eglibc-2.12.1.orig/debian/patches/any/cvs-issue12092.diff +++ eglibc-2.12.1/debian/patches/any/cvs-issue12092.diff @@ -0,0 +1,77 @@ +From: Eric Blake +Subject: [PATCH] Fix strstr and memmem algorithm. + +From: Ulrich Drepper +Subject: [PATCH] Add test case for strstr problem. + +2010-10-06 Ulrich Drepper + + * string/bug-strstr1.c: New file. + * string/Makefile: Add rules to build and run bug-strstr1. + +2010-10-05 Eric Blake + + [BZ #12092] + * string/str-two-way.h (two_way_long_needle): Always clear memory + when skipping input due to the shift table. + +--- /dev/null ++++ b/string/bug-strstr1.c +@@ -0,0 +1,26 @@ ++#include ++#include ++ ++int main (int argc, char** argv) ++{ ++ const char haystack[] = ++ "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD_C3_A7_20_EF_BF_BD"; ++ ++ const char needle[] = ++ "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"; ++ ++ const char* sub = strstr (haystack, needle); ++ ++ if (sub != NULL) ++ { ++ int j; ++ ++ fprintf (stderr, "BUG: expected NULL, got:\n%s\n%s\n", sub, needle); ++ for (j = 0; needle[j] != '\0'; ++j) ++ putchar (needle[j] == sub[j] ? ' ' : '^'); ++ puts (""); ++ return 1; ++ } ++ ++ return 0; ++} +--- a/string/str-two-way.h ++++ b/string/str-two-way.h +@@ -350,8 +350,8 @@ two_way_long_needle (const unsigned char *haystack, size_t haystack_len, + a byte out of place, there can be no match until + after the mismatch. */ + shift = needle_len - period; +- memory = 0; + } ++ memory = 0; + j += shift; + continue; + } +--- a/string/Makefile ++++ b/string/Makefile +@@ -58,7 +58,7 @@ + bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \ + tst-strtok tst-strfry \ + bug-strtok1 $(addprefix test-,$(strop-tests)) \ +- tst-strxfrm2 tst-endian tst-svc2 ++ tst-strxfrm2 tst-endian tst-svc2 bug-strstr1 + tests-$(OPTION_EGLIBC_ENVZ) += bug-envz1 + tests-$(OPTION_EGLIBC_LOCALE_CODE) \ + += tst-strxfrm bug-strcoll1 +@@ -81,6 +81,7 @@ + CFLAGS-stratcliff.c = -fno-builtin + CFLAGS-test-ffs.c = -fno-builtin + CFLAGS-tst-inlcall.c = -fno-builtin ++CFLAGS-bug-strstr1.c = -fno-builtin + + # eglibc: ifeq ($(cross-compiling),no) + tests: $(objpfx)tst-svc.out --- eglibc-2.12.1.orig/debian/patches/any/local-disable-test-tgmath2.diff +++ eglibc-2.12.1/debian/patches/any/local-disable-test-tgmath2.diff @@ -0,0 +1,15 @@ +--- + math/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/math/Makefile ++++ b/math/Makefile +@@ -92,7 +92,7 @@ + # Rules for the test suite. + tests = test-matherr test-fenv basic-test \ + test-misc test-fpucw tst-definitions test-tgmath test-tgmath-ret \ +- bug-nextafter bug-nexttoward bug-tgmath1 test-tgmath-int test-tgmath2 \ ++ bug-nextafter bug-nexttoward bug-tgmath1 test-tgmath-int \ + test-dbl-wrap + tests-$(OPTION_EGLIBC_LIBM_BIG) += atest-exp atest-sincos atest-exp2 + # We do the `long double' tests only if this data type is available and --- eglibc-2.12.1.orig/debian/patches/any/submitted-missing-etc-hosts.diff +++ eglibc-2.12.1/debian/patches/any/submitted-missing-etc-hosts.diff @@ -0,0 +1,15 @@ +--- + nss/nss_files/files-hosts.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/nss/nss_files/files-hosts.c ++++ b/nss/nss_files/files-hosts.c +@@ -431,7 +431,7 @@ + else + { + *errnop = errno; +- *herrnop = NO_DATA; ++ *herrnop = HOST_NOT_FOUND; + } + + __libc_lock_unlock (lock); --- eglibc-2.12.1.orig/debian/patches/any/local-nss-overflow.diff +++ eglibc-2.12.1/debian/patches/any/local-nss-overflow.diff @@ -0,0 +1,51 @@ +2009-01-12 Arthur Loiret + + nss/nss_files/files-parse.c: Include . + (INT_FIELD): Convert field to uintmax_t and check for 32-bit overflow. + (INT_FIELD_MAYBE_NULL): Likewise. + +--- + nss/nss_files/files-parse.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +--- a/nss/nss_files/files-parse.c ++++ b/nss/nss_files/files-parse.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + /* These symbols are defined by the including source file: + +@@ -160,7 +161,12 @@ + # define INT_FIELD(variable, terminator_p, swallow, base, convert) \ + { \ + char *endp; \ +- variable = convert (strtou32 (line, &endp, base)); \ ++ unsigned long long tmp; \ ++ /* Prevent from 32-bit overflow. */ \ ++ tmp = __strtoull_internal (line, &endp, base, 0); \ ++ if (tmp > UINT_MAX) \ ++ return 0; \ ++ variable = convert ((unsigned long int)tmp); \ + if (endp == line) \ + return 0; \ + else if (terminator_p (*endp)) \ +@@ -175,10 +181,15 @@ + # define INT_FIELD_MAYBE_NULL(variable, terminator_p, swallow, base, convert, default) \ + { \ + char *endp; \ ++ unsigned long long tmp; \ + if (*line == '\0') \ + /* We expect some more input, so don't allow the string to end here. */ \ + return 0; \ +- variable = convert (strtou32 (line, &endp, base)); \ ++ /* Prevent from 32-bit overflow. */ \ ++ tmp = __strtoull_internal (line, &endp, base, 0); \ ++ if (tmp > UINT_MAX) \ ++ return 0; \ ++ variable = convert ((unsigned long int)tmp); \ + if (endp == line) \ + variable = default; \ + if (terminator_p (*endp)) \ --- eglibc-2.12.1.orig/debian/patches/any/local-tcsetaddr.diff +++ eglibc-2.12.1/debian/patches/any/local-tcsetaddr.diff @@ -0,0 +1,83 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: tcsetattr sanity check on PARENB/CREAD/CSIZE for ptys +# DP: Related bugs: 218131 +# DP: Author: Jeff Licquia +# DP: Upstream status: [In CVS | Debian-Specific | Pending | Not submitted ] +# DP: Status Details: +# DP: Date: 2003-10-29 + +--- + sysdeps/unix/sysv/linux/tcsetattr.c | 55 +++++++++++++++++++++++++++++++++++- + 1 file changed, 54 insertions(+), 1 deletion(-) + +--- a/sysdeps/unix/sysv/linux/tcsetattr.c ++++ b/sysdeps/unix/sysv/linux/tcsetattr.c +@@ -48,7 +48,12 @@ + const struct termios *termios_p; + { + struct __kernel_termios k_termios; ++ struct __kernel_termios k_termios_old; + unsigned long int cmd; ++ int retval, old_retval; ++ ++ /* Preserve the previous termios state if we can. */ ++ old_retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios_old); + + switch (optional_actions) + { +@@ -80,6 +85,54 @@ + memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0], + __KERNEL_NCCS * sizeof (cc_t)); + +- return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ retval = INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ ++ /* The Linux kernel silently ignores the invalid c_cflag on pty. ++ We have to check it here, and return an error. But if some other ++ setting was successfully changed, POSIX requires us to report ++ success. */ ++ if ((retval == 0) && (old_retval == 0)) ++ { ++ int save = errno; ++ retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios); ++ if (retval) ++ { ++ /* We cannot verify if the setting is ok. We don't return ++ an error (?). */ ++ __set_errno (save); ++ retval = 0; ++ } ++ else if ((k_termios_old.c_oflag != k_termios.c_oflag) || ++ (k_termios_old.c_lflag != k_termios.c_lflag) || ++ (k_termios_old.c_line != k_termios.c_line) || ++ ((k_termios_old.c_iflag | IBAUD0) != (k_termios.c_iflag | IBAUD0))) ++ { ++ /* Some other setting was successfully changed, which ++ means we should not return an error. */ ++ __set_errno (save); ++ retval = 0; ++ } ++ else if ((k_termios_old.c_cflag | (PARENB & CREAD & CSIZE)) != ++ (k_termios.c_cflag | (PARENB & CREAD & CSIZE))) ++ { ++ /* Some other c_cflag setting was successfully changed, which ++ means we should not return an error. */ ++ __set_errno (save); ++ retval = 0; ++ } ++ else if ((termios_p->c_cflag & (PARENB | CREAD)) ++ != (k_termios.c_cflag & (PARENB | CREAD)) ++ || ((termios_p->c_cflag & CSIZE) ++ && (termios_p->c_cflag & CSIZE) ++ != (k_termios.c_cflag & CSIZE))) ++ { ++ /* It looks like the Linux kernel silently changed the ++ PARENB/CREAD/CSIZE bits in c_cflag. Report it as an ++ error. */ ++ __set_errno (EINVAL); ++ retval = -1; ++ } ++ } ++ return retval; + } + libc_hidden_def (tcsetattr) --- eglibc-2.12.1.orig/debian/patches/any/local-fhs-nscd.diff +++ eglibc-2.12.1/debian/patches/any/local-fhs-nscd.diff @@ -0,0 +1,21 @@ +--- + nscd/nscd.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/nscd/nscd.h ++++ b/nscd/nscd.h +@@ -103,10 +103,10 @@ + + + /* Paths of the file for the persistent storage. */ +-#define _PATH_NSCD_PASSWD_DB "/var/db/nscd/passwd" +-#define _PATH_NSCD_GROUP_DB "/var/db/nscd/group" +-#define _PATH_NSCD_HOSTS_DB "/var/db/nscd/hosts" +-#define _PATH_NSCD_SERVICES_DB "/var/db/nscd/services" ++#define _PATH_NSCD_PASSWD_DB "/var/cache/nscd/passwd" ++#define _PATH_NSCD_GROUP_DB "/var/cache/nscd/group" ++#define _PATH_NSCD_HOSTS_DB "/var/cache/nscd/hosts" ++#define _PATH_NSCD_SERVICES_DB "/var/cache/nscd/services" + + /* Path used when not using persistent storage. */ + #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX" --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-fd.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-fd.diff @@ -0,0 +1,36 @@ +--- + linuxthreads/pthread.c | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +--- a/linuxthreads/pthread.c ++++ b/linuxthreads/pthread.c +@@ -662,6 +662,29 @@ + free(__pthread_manager_thread_bos); + return -1; + } ++ /* Make sure the file descriptors of the pipe doesn't collide ++ with stdin, stdout or stderr if they have been closed. */ ++ if (manager_pipe[0] < 3) { ++ int new_fd; ++ new_fd = fcntl(manager_pipe[0], F_DUPFD, 3); ++ close(manager_pipe[0]); ++ if (new_fd == -1) { ++ free(__pthread_manager_thread_bos); ++ return -1; ++ } ++ manager_pipe[0] = new_fd; ++ } ++ if (manager_pipe[1] < 3) { ++ int new_fd; ++ new_fd = fcntl(manager_pipe[1], F_DUPFD, 3); ++ close(manager_pipe[1]); ++ if (new_fd == -1) { ++ close(manager_pipe[0]); ++ free(__pthread_manager_thread_bos); ++ return -1; ++ } ++ manager_pipe[1] = new_fd; ++ } + + #ifdef USE_TLS + /* Allocate memory for the thread descriptor and the dtv. */ --- eglibc-2.12.1.orig/debian/patches/any/submitted-nis-shadow.diff +++ eglibc-2.12.1/debian/patches/any/submitted-nis-shadow.diff @@ -0,0 +1,302 @@ +2010-01-06 Christoph Pleger + Aurelien Jarno + + * nis/nss_nis/nis-pwd.c (internal_nis_getpwent_r): When adjunct + style secret password is returned, mangle 'x' instead of the + encrypted password. + (_nss_nis_getpwnam_r): Likewise. + (_nss_nis_getpwuid_r): Likewise. + * nis/nss_nis/nis-spwd.c (internal_nis_getspent_r): When shadow.byname + does not exist, look in passwd.adjunct.byname and adapt the result. + (_nss_nis_getspnam_r): Likewise. + +--- + nis/nss_nis/nis-pwd.c | 99 ++++++++++++------------------------------------- + nis/nss_nis/nis-spwd.c | 55 ++++++++++++++++++++++++--- + 2 files changed, 74 insertions(+), 80 deletions(-) + +--- a/nis/nss_nis/nis-pwd.c ++++ b/nis/nss_nis/nis-pwd.c +@@ -266,49 +266,32 @@ + /* Check for adjunct style secret passwords. They can be + recognized by a password starting with "##". */ + char *p = strchr (result, ':'); +- size_t namelen; +- char *result2; +- int len2; + if (p != NULL /* This better should be true in all cases. */ +- && p[1] == '#' && p[2] == '#' +- && (namelen = p - result, +- yp_match (domain, "passwd.adjunct.byname", result, namelen, +- &result2, &len2)) == YPERR_SUCCESS) ++ && p[1] == '#' && p[2] == '#') + { +- /* We found a passwd.adjunct entry. Merge encrypted +- password therein into original result. */ +- char *encrypted = strchr (result2, ':'); +- char *endp; +- size_t restlen; +- +- if (encrypted == NULL +- || (endp = strchr (++encrypted, ':')) == NULL +- || (p = strchr (p + 1, ':')) == NULL) ++ size_t namelen = p - result; ++ if ((p = strchr (p + 1, ':')) == NULL) + { + /* Invalid format of the entry. This never should happen + unless the data from which the NIS table is generated is + wrong. We simply ignore it. */ +- free (result2); + goto non_adjunct; + } + +- restlen = len - (p - result); +- if (__builtin_expect ((size_t) (namelen + (endp - encrypted) +- + restlen + 2) > buflen, 0)) ++ /* We found an adjunct style secret password. Replace ++ it by 'x' into the result. */ ++ size_t restlen = len - (p - result); ++ if (__builtin_expect ((size_t) (namelen + restlen + 3) > buflen, 0)) + { +- free (result2); + free (result); + *errnop = ERANGE; + return NSS_STATUS_TRYAGAIN; + } + +- mempcpy (mempcpy (mempcpy (mempcpy (buffer, result, namelen), +- ":", 1), +- encrypted, endp - encrypted), ++ mempcpy (mempcpy (mempcpy (buffer, result, namelen), ++ ":x", 2), + p, restlen + 1); + p = buffer; +- +- free (result2); + } + else + { +@@ -400,47 +383,32 @@ + + /* Check for adjunct style secret passwords. They can be recognized + by a password starting with "##". */ +- char *result2; +- int len2; + char *p = strchr (result, ':'); + if (p != NULL /* This better should be true in all cases. */ +- && p[1] == '#' && p[2] == '#' +- && yp_match (domain, "passwd.adjunct.byname", name, namelen, +- &result2, &len2) == YPERR_SUCCESS) ++ && p[1] == '#' && p[2] == '#') + { +- /* We found a passwd.adjunct entry. Merge encrypted password +- therein into original result. */ +- char *encrypted = strchr (result2, ':'); +- char *endp; +- +- if (encrypted == NULL +- || (endp = strchr (++encrypted, ':')) == NULL +- || (p = strchr (p + 1, ':')) == NULL) ++ if ((p = strchr (p + 1, ':')) == NULL) + { + /* Invalid format of the entry. This never should happen + unless the data from which the NIS table is generated is + wrong. We simply ignore it. */ +- free (result2); + goto non_adjunct; + } + ++ /* We found an adjunct style secret password. Replace ++ it by 'x' into the result. */ + size_t restlen = len - (p - result); +- if (__builtin_expect ((size_t) (namelen + (endp - encrypted) +- + restlen + 2) > buflen, 0)) ++ if (__builtin_expect ((size_t) (namelen + restlen + 3) > buflen, 0)) + { +- free (result2); + free (result); + *errnop = ERANGE; + return NSS_STATUS_TRYAGAIN; + } + +- __mempcpy (__mempcpy (__mempcpy (__mempcpy (buffer, name, namelen), +- ":", 1), +- encrypted, endp - encrypted), ++ __mempcpy (__mempcpy (__mempcpy (buffer, result, namelen), ++ ":x", 2), + p, restlen + 1); + p = buffer; +- +- free (result2); + } + else + { +@@ -499,50 +467,33 @@ + + /* Check for adjunct style secret passwords. They can be recognized + by a password starting with "##". */ +- char *result2; +- int len2; +- size_t namelen; + char *p = strchr (result, ':'); + if (p != NULL /* This better should be true in all cases. */ +- && p[1] == '#' && p[2] == '#' +- && (namelen = p - result, +- yp_match (domain, "passwd.adjunct.byname", result, namelen, +- &result2, &len2)) == YPERR_SUCCESS) ++ && p[1] == '#' && p[2] == '#') + { +- /* We found a passwd.adjunct entry. Merge encrypted password +- therein into original result. */ +- char *encrypted = strchr (result2, ':'); +- char *endp; +- size_t restlen; +- +- if (encrypted == NULL +- || (endp = strchr (++encrypted, ':')) == NULL +- || (p = strchr (p + 1, ':')) == NULL) ++ size_t namelen = p - result; ++ if ((p = strchr (p + 1, ':')) == NULL) + { + /* Invalid format of the entry. This never should happen + unless the data from which the NIS table is generated is + wrong. We simply ignore it. */ +- free (result2); + goto non_adjunct; + } + +- restlen = len - (p - result); +- if (__builtin_expect ((size_t) (namelen + (endp - encrypted) +- + restlen + 2) > buflen, 0)) ++ /* We found an adjunct style secret password. Replace ++ it by 'x' into the result. */ ++ size_t restlen = len - (p - result); ++ if (__builtin_expect ((size_t) (namelen + restlen + 3) > buflen, 0)) + { +- free (result2); + free (result); + *errnop = ERANGE; + return NSS_STATUS_TRYAGAIN; + } + +- __mempcpy (__mempcpy (__mempcpy (__mempcpy (buffer, result, namelen), +- ":", 1), +- encrypted, endp - encrypted), ++ __mempcpy (__mempcpy (__mempcpy (buffer, result, namelen), ++ ":x", 2), + p, restlen + 1); + p = buffer; +- +- free (result2); + } + else + { +--- a/nis/nss_nis/nis-spwd.c ++++ b/nis/nss_nis/nis-spwd.c +@@ -81,13 +81,38 @@ + int len; + int keylen; + int yperr; ++ int adjunct_used = 0; + + if (new_start) +- yperr = yp_first (domain, "shadow.byname", &outkey, &keylen, &result, +- &len); ++ { ++ yperr = yp_first (domain, "shadow.byname", &outkey, &keylen, &result, ++ &len); ++ ++ if (yperr == YPERR_MAP) ++ { ++ if (result != NULL) ++ free(result); ++ ++ yperr = yp_first (domain, "passwd.adjunct.byname", &outkey, &keylen, ++ &result, &len); ++ adjunct_used = 1; ++ } ++ } + else +- yperr = yp_next (domain, "shadow.byname", oldkey, oldkeylen, &outkey, +- &keylen, &result, &len); ++ { ++ yperr = yp_next (domain, "shadow.byname", oldkey, oldkeylen, &outkey, ++ &keylen, &result, &len); ++ ++ if (yperr == YPERR_MAP) ++ { ++ if (result != NULL) ++ free(result); ++ ++ yperr = yp_next (domain, "passwd.adjunct.byname", oldkey, oldkeylen, ++ &outkey, &keylen, &result, &len); ++ adjunct_used = 1; ++ } ++ } + + if (__builtin_expect (yperr != YPERR_SUCCESS, 0)) + { +@@ -98,7 +123,7 @@ + return retval; + } + +- if (__builtin_expect ((size_t) (len + 1) > buflen, 0)) ++ if (__builtin_expect ((size_t) (len + (adjunct_used ? 3 : 1)) > buflen, 0)) + { + free (result); + *errnop = ERANGE; +@@ -107,6 +132,9 @@ + + char *p = strncpy (buffer, result, len); + buffer[len] = '\0'; ++ if (adjunct_used) ++ p = strcat (buffer, "::"); ++ + while (isspace (*p)) + ++p; + free (result); +@@ -149,6 +177,8 @@ + _nss_nis_getspnam_r (const char *name, struct spwd *sp, + char *buffer, size_t buflen, int *errnop) + { ++ int adjunct_used = 0; ++ + if (name == NULL) + { + *errnop = EINVAL; +@@ -164,6 +194,16 @@ + int yperr = yp_match (domain, "shadow.byname", name, strlen (name), &result, + &len); + ++ if (yperr == YPERR_MAP) ++ { ++ if (result != NULL) ++ free(result); ++ ++ yperr = yp_match (domain, "passwd.adjunct.byname", name, strlen (name), &result, ++ &len); ++ adjunct_used = 1; ++ } ++ + if (__builtin_expect (yperr != YPERR_SUCCESS, 0)) + { + enum nss_status retval = yperr2nss (yperr); +@@ -173,7 +213,7 @@ + return retval; + } + +- if (__builtin_expect ((size_t) (len + 1) > buflen, 0)) ++ if (__builtin_expect ((size_t) (len + (adjunct_used ? 3 : 1)) > buflen, 0)) + { + free (result); + *errnop = ERANGE; +@@ -182,6 +222,9 @@ + + char *p = strncpy (buffer, result, len); + buffer[len] = '\0'; ++ if (adjunct_used) ++ p = strcat (buffer, "::"); ++ + while (isspace (*p)) + ++p; + free (result); --- eglibc-2.12.1.orig/debian/patches/any/local-nss-upgrade.diff +++ eglibc-2.12.1/debian/patches/any/local-nss-upgrade.diff @@ -0,0 +1,33 @@ +# DP: This patch makes future upgrades easier. It resolves problems with +# DP: running daemons having NSS modules upgraded out from under them. + +--- + nss/nsswitch.c | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +--- a/nss/nsswitch.c ++++ b/nss/nsswitch.c +@@ -405,9 +405,20 @@ + ni->library->lib_handle = __libc_dlopen (shlib_name); + if (ni->library->lib_handle == NULL) + { +- /* Failed to load the library. */ +- ni->library->lib_handle = (void *) -1l; +- __set_errno (saved_errno); ++ /* Failed to load the library. Try a fallback. */ ++ int n = __snprintf(shlib_name, shlen, "libnss_%s.so.%d.%d", ++ ni->library->name, __GLIBC__, __GLIBC_MINOR__); ++ if (n >= shlen) ++ ni->library->lib_handle = NULL; ++ else ++ ni->library->lib_handle = __libc_dlopen (shlib_name); ++ ++ if (ni->library->lib_handle == NULL) ++ { ++ /* Ok, really fail now. */ ++ ni->library->lib_handle = (void *) -1l; ++ __set_errno (saved_errno); ++ } + } + } + --- eglibc-2.12.1.orig/debian/patches/any/submitted-bits-fcntl_h-at.diff +++ eglibc-2.12.1/debian/patches/any/submitted-bits-fcntl_h-at.diff @@ -0,0 +1,395 @@ +2009-11-19 Aurelien Jarno + + * io/fcntl.h: Move AT_* defines to... + * sysdeps/mach/hurd/bits/fcntl.h: ...here. + * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: ...here. + * sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: ...here. + * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: ...here. + * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: ...here. + * sysdeps/unix/sysv/linux/sh/bits/fcntl.h: ...here. + * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: ...here. + * sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: ...here. + +2009-11-19 Aurelien Jarno + + * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Define AT_* + constants. + * sysdeps/unix/sysv/linux/am33/bits/fcntl.h: Define AT_* + constants. + * sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Define AT_* + constants. + * sysdeps/unix/sysv/linux/cris/bits/fcntl.h: Define AT_* + constants. + * sysdeps/unix/sysv/linux/hppa/bits/fcntl.h: Define AT_* + constants. + * sysdeps/unix/sysv/linux/m68k/bits/fcntl.h: Define AT_* + constants. + * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Define AT_* + constants. + +--- + io/fcntl.h | 12 ------------ + ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h | 13 +++++++++++++ + ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h | 15 +++++++++++++++ + ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h | 13 +++++++++++++ + ports/sysdeps/unix/sysv/linux/cris/bits/fcntl.h | 13 +++++++++++++ + ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h | 13 +++++++++++++ + ports/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h | 13 +++++++++++++ + ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h | 13 +++++++++++++ + sysdeps/mach/hurd/bits/fcntl.h | 13 +++++++++++++ + sysdeps/unix/sysv/linux/i386/bits/fcntl.h | 13 +++++++++++++ + sysdeps/unix/sysv/linux/ia64/bits/fcntl.h | 13 +++++++++++++ + sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h | 13 +++++++++++++ + sysdeps/unix/sysv/linux/s390/bits/fcntl.h | 13 +++++++++++++ + sysdeps/unix/sysv/linux/sh/bits/fcntl.h | 13 +++++++++++++ + sysdeps/unix/sysv/linux/sparc/bits/fcntl.h | 13 +++++++++++++ + sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h | 13 +++++++++++++ + 16 files changed, 197 insertions(+), 12 deletions(-) + +--- a/io/fcntl.h ++++ b/io/fcntl.h +@@ -56,18 +56,6 @@ + # define SEEK_END 2 /* Seek from end of file. */ + #endif /* XPG */ + +-#ifdef __USE_ATFILE +-# define AT_FDCWD -100 /* Special value used to indicate +- the *at functions should use the +- current working directory. */ +-# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ +-# define AT_REMOVEDIR 0x200 /* Remove directory instead of +- unlinking file. */ +-# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ +-# define AT_EACCESS 0x200 /* Test access permitted for +- effective IDs, not real IDs. */ +-#endif +- + /* Do the file control operation described by CMD on FD. + The remaining arguments are interpreted depending on CMD. + +--- a/sysdeps/mach/hurd/bits/fcntl.h ++++ b/sysdeps/mach/hurd/bits/fcntl.h +@@ -219,3 +219,16 @@ + # define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */ + # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ + #endif ++ ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif +--- a/sysdeps/unix/sysv/linux/i386/bits/fcntl.h ++++ b/sysdeps/unix/sysv/linux/i386/bits/fcntl.h +@@ -227,6 +227,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU +--- a/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h ++++ b/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h +@@ -221,6 +221,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU +--- a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h ++++ b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h +@@ -227,6 +227,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU +--- a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h ++++ b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h +@@ -247,6 +247,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU +--- a/sysdeps/unix/sysv/linux/sh/bits/fcntl.h ++++ b/sysdeps/unix/sysv/linux/sh/bits/fcntl.h +@@ -227,6 +227,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU +--- a/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h ++++ b/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h +@@ -246,6 +246,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU +--- a/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h ++++ b/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h +@@ -241,6 +241,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU +--- a/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h ++++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h +@@ -215,6 +215,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU +--- a/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h ++++ b/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h +@@ -179,3 +179,18 @@ + # define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */ + # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ + #endif ++ ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ ++ +--- a/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h ++++ b/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h +@@ -227,6 +227,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU +--- a/ports/sysdeps/unix/sysv/linux/cris/bits/fcntl.h ++++ b/ports/sysdeps/unix/sysv/linux/cris/bits/fcntl.h +@@ -182,6 +182,19 @@ + # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + /* Provide kernel hint to read ahead. */ +--- a/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h ++++ b/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h +@@ -198,6 +198,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU +--- a/ports/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h ++++ b/ports/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h +@@ -226,6 +226,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU +--- a/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h ++++ b/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h +@@ -240,6 +240,19 @@ + # define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ + #endif + ++/* Values for `*at' functions. */ ++#ifdef __USE_ATFILE ++# define AT_FDCWD -100 /* Special value used to indicate ++ the *at functions should use the ++ current working directory. */ ++# define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ ++# define AT_REMOVEDIR 0x200 /* Remove directory instead of ++ unlinking file. */ ++# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ ++# define AT_EACCESS 0x200 /* Test access permitted for ++ effective IDs, not real IDs. */ ++#endif ++ + __BEGIN_DECLS + + #ifdef __USE_GNU --- eglibc-2.12.1.orig/debian/patches/any/local-localedef-fix-trampoline.diff +++ eglibc-2.12.1/debian/patches/any/local-localedef-fix-trampoline.diff @@ -0,0 +1,57 @@ +# DP: Description: Fix localedef segfault when run under exec-shield, +# PaX or similar. (#231438, #198099) +# DP: Dpatch Author: James Troup +# DP: Patch Author: (probably) Jakub Jelinek +# DP: Upstream status: Unknown +# DP: Status Details: Unknown +# DP: Date: 2004-03-16 + +--- + locale/programs/3level.h | 36 ++++++++++++++++++++++++++++++++++++ + 1 file changed, 36 insertions(+) + +--- a/locale/programs/3level.h ++++ b/locale/programs/3level.h +@@ -201,6 +201,42 @@ + } + } + } ++ ++/* GCC ATM seems to do a poor job with pointers to nested functions passed ++ to inlined functions. Help it a little bit with this hack. */ ++#define wchead_table_iterate(tp, fn) \ ++do \ ++ { \ ++ struct wchead_table *t = (tp); \ ++ uint32_t index1; \ ++ for (index1 = 0; index1 < t->level1_size; index1++) \ ++ { \ ++ uint32_t lookup1 = t->level1[index1]; \ ++ if (lookup1 != ((uint32_t) ~0)) \ ++ { \ ++ uint32_t lookup1_shifted = lookup1 << t->q; \ ++ uint32_t index2; \ ++ for (index2 = 0; index2 < (1 << t->q); index2++) \ ++ { \ ++ uint32_t lookup2 = t->level2[index2 + lookup1_shifted]; \ ++ if (lookup2 != ((uint32_t) ~0)) \ ++ { \ ++ uint32_t lookup2_shifted = lookup2 << t->p; \ ++ uint32_t index3; \ ++ for (index3 = 0; index3 < (1 << t->p); index3++) \ ++ { \ ++ struct element_t *lookup3 \ ++ = t->level3[index3 + lookup2_shifted]; \ ++ if (lookup3 != NULL) \ ++ fn ((((index1 << t->q) + index2) << t->p) + index3, \ ++ lookup3); \ ++ } \ ++ } \ ++ } \ ++ } \ ++ } \ ++ } while (0) ++ + #endif + + #ifndef NO_FINALIZE --- eglibc-2.12.1.orig/debian/patches/any/submitted-longdouble.diff +++ eglibc-2.12.1/debian/patches/any/submitted-longdouble.diff @@ -0,0 +1,46 @@ +--- + math/Makefile | 20 ++++++++++++++------ + 1 file changed, 14 insertions(+), 6 deletions(-) + +--- a/math/Makefile ++++ b/math/Makefile +@@ -95,13 +95,17 @@ + bug-nextafter bug-nexttoward bug-tgmath1 test-tgmath-int \ + test-dbl-wrap + tests-$(OPTION_EGLIBC_LIBM_BIG) += atest-exp atest-sincos atest-exp2 +-# We do the `long double' tests only if this data type is available and +-# distinct from `double'. ++# We do the `long double' tests only if this data type is available. + test-longdouble-yes = test-ldouble test-ildoubl + distribute += $(test-longdouble-yes:=.c) + ++ifeq ($(long-double-fcts),yes) ++# If we have distinct types then enable testing. ++test-long-double-fcts = yes ++endif ++ + ifneq (no,$(PERL)) +-libm-tests = test-float test-double $(test-longdouble-$(long-double-fcts)) \ ++libm-tests = test-float test-double $(test-longdouble-$(test-long-double-fcts)) \ + test-ifloat test-idouble + libm-tests.o = $(addsuffix .o,$(libm-tests)) + +@@ -178,11 +182,15 @@ + ifneq ($(long-double-fcts),yes) + # The `double' and `long double' types are the same on this machine. + # We won't compile the `long double' code at all. Tell the `double' code +-# to define aliases for the `FUNCl' names. To avoid type conflicts in +-# defining those aliases, tell to declare the `FUNCl' names with +-# `double' instead of `long double'. ++# to define aliases for the `FUNCl' names. ++ifeq ($(header-long-double-fcts),yes) ++math-CPPFLAGS += -DNO_LONG_DOUBLE ++else ++# To avoid type conflicts in defining those aliases, tell to ++# declare the `FUNCl' names with `double' instead of `long double'. + math-CPPFLAGS += -DNO_LONG_DOUBLE -D_Mlong_double_=double + endif ++endif + + # The fdlibm code generates a lot of these warnings but is otherwise clean. + override CFLAGS += -Wno-uninitialized --- eglibc-2.12.1.orig/debian/patches/any/submitted-string2-strcmp.diff +++ eglibc-2.12.1/debian/patches/any/submitted-string2-strcmp.diff @@ -0,0 +1,30 @@ +2010-06-07 Aurelien Jarno + + * string/bits/string2.h (strcmp): Use __builtin_strlen instead of + strlen for values known at compile-time. + +diff --git a/string/bits/string2.h b/string/bits/string2.h +index d298bed..a798acf 100644 +--- a/string/bits/string2.h ++++ b/string/bits/string2.h +@@ -801,17 +801,17 @@ __stpcpy_small (char *__dest, + __extension__ \ + ({ size_t __s1_len, __s2_len; \ + (__builtin_constant_p (s1) && __builtin_constant_p (s2) \ +- && (__s1_len = strlen (s1), __s2_len = strlen (s2), \ ++ && (__s1_len = __builtin_strlen (s1), __s2_len = __builtin_strlen (s2), \ + (!__string2_1bptr_p (s1) || __s1_len >= 4) \ + && (!__string2_1bptr_p (s2) || __s2_len >= 4)) \ + ? __builtin_strcmp (s1, s2) \ + : (__builtin_constant_p (s1) && __string2_1bptr_p (s1) \ +- && (__s1_len = strlen (s1), __s1_len < 4) \ ++ && (__s1_len = __builtin_strlen (s1), __s1_len < 4) \ + ? (__builtin_constant_p (s2) && __string2_1bptr_p (s2) \ + ? __builtin_strcmp (s1, s2) \ + : __strcmp_cg (s1, s2, __s1_len)) \ + : (__builtin_constant_p (s2) && __string2_1bptr_p (s2) \ +- && (__s2_len = strlen (s2), __s2_len < 4) \ ++ && (__s2_len = __builtin_strlen (s2), __s2_len < 4) \ + ? (__builtin_constant_p (s1) && __string2_1bptr_p (s1) \ + ? __builtin_strcmp (s1, s2) \ + : __strcmp_gc (s1, s2, __s2_len)) \ --- eglibc-2.12.1.orig/debian/patches/any/cvs-issue11968.diff +++ eglibc-2.12.1/debian/patches/any/cvs-issue11968.diff @@ -0,0 +1,76 @@ +commit c044aa75354b48d4b7aaffe465706282192e54c2 +Author: Chung-Lin Tang +Date: Wed Sep 8 15:49:50 2010 -0700 + + Fix _FORITY_SOURCE version of longjmp for Linux/x86-64. + +2010-09-08 Chung-Lin Tang + Ulrich Drepper + + [BZ #11968] + * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S + (____longjmp_chk): Use %ebx for saving value across system call. + Add unwind info. + +diff --git a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S +index 5e11540..da35115 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S ++++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2001,2004,2005,2006,2009 Free Software Foundation, Inc. ++/* Copyright (C) 2001,2004,2005,2006,2009,2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -49,9 +49,9 @@ longjmp_msg: + .text + ENTRY(____longjmp_chk) + /* Restore registers. */ +- movq (JB_RSP*8)(%rdi),%r8 +- movq (JB_RBP*8)(%rdi),%r9 +- movq (JB_PC*8)(%rdi),%rdx ++ movq (JB_RSP*8)(%rdi), %r8 ++ movq (JB_RBP*8)(%rdi), %r9 ++ movq (JB_PC*8)(%rdi), %rdx + #ifdef PTR_DEMANGLE + PTR_DEMANGLE (%r8) + PTR_DEMANGLE (%r9) +@@ -63,7 +63,9 @@ ENTRY(____longjmp_chk) + + /* Save function parameters. */ + movq %rdi, %r10 +- movl %esi, %ecx ++ cfi_register (%rdi, %r10) ++ movl %esi, %ebx ++ cfi_register (%rsi, %rbx) + + xorl %edi, %edi + leaq -24(%rsp), %rsi +@@ -84,7 +86,9 @@ ENTRY(____longjmp_chk) + .Lfail: CALL_FAIL + + .Lok2: movq %r10, %rdi +- movl %ecx, %esi ++ cfi_restore (%rdi) ++ movl %ebx, %esi ++ cfi_restore (%rsi) + + .Lok: /* We add unwind information for the target here. */ + cfi_def_cfa(%rdi, 0) +@@ -96,11 +100,11 @@ ENTRY(____longjmp_chk) + cfi_offset(%r13,JB_R13*8) + cfi_offset(%r14,JB_R14*8) + cfi_offset(%r15,JB_R15*8) +- movq (JB_RBX*8)(%rdi),%rbx +- movq (JB_R12*8)(%rdi),%r12 +- movq (JB_R13*8)(%rdi),%r13 +- movq (JB_R14*8)(%rdi),%r14 +- movq (JB_R15*8)(%rdi),%r15 ++ movq (JB_RBX*8)(%rdi), %rbx ++ movq (JB_R12*8)(%rdi), %r12 ++ movq (JB_R13*8)(%rdi), %r13 ++ movq (JB_R14*8)(%rdi), %r14 ++ movq (JB_R15*8)(%rdi), %r15 + /* Set return value for setjmp. */ + movl %esi, %eax + movq %r8,%rsp --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-kill_other.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-kill_other.diff @@ -0,0 +1,35 @@ + + + fixes ruby 1.9 testsuite failure t916 from #542927 + + +--- + linuxthreads/pthread.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/linuxthreads/pthread.c ++++ b/linuxthreads/pthread.c +@@ -1222,6 +1222,15 @@ + /* Reset the signal handlers behaviour for the signals the + implementation uses since this would be passed to the new + process. */ ++#if 1 ++ /* ++ do not do it as it is wrong. ++ the __pthread_kill_other_threads_np() is used just before exec, ++ the successfull one resets signals with handler into DFL behaviour anyway (in kernel), ++ the failed one needs the signal handler as before to allow creating of new threads ++ as already noted above ++ */ ++#else + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + sa.sa_handler = SIG_DFL; +@@ -1229,6 +1238,7 @@ + __libc_sigaction(__pthread_sig_cancel, &sa, NULL); + if (__pthread_sig_debug > 0) + __libc_sigaction(__pthread_sig_debug, &sa, NULL); ++#endif + } + weak_alias (__pthread_kill_other_threads_np, pthread_kill_other_threads_np) + --- eglibc-2.12.1.orig/debian/patches/any/local-tst-mktime2.diff +++ eglibc-2.12.1/debian/patches/any/local-tst-mktime2.diff @@ -0,0 +1,14 @@ +--- + time/tst-mktime2.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/time/tst-mktime2.c ++++ b/time/tst-mktime2.c +@@ -2,6 +2,7 @@ + #include + #include + #include ++#include + + static time_t time_t_max; + static time_t time_t_min; --- eglibc-2.12.1.orig/debian/patches/any/local-sysctl.diff +++ eglibc-2.12.1/debian/patches/any/local-sysctl.diff @@ -0,0 +1,81 @@ +--- linuxthreads/sysdeps/unix/sysv/linux/smp.h.orig ++++ linuxthreads/sysdeps/unix/sysv/linux/smp.h +@@ -25,24 +25,6 @@ + static inline int + is_smp_system (void) + { +- static const int sysctl_args[] = { CTL_KERN, KERN_VERSION }; +- char buf[512]; +- size_t reslen = sizeof (buf); +- +- /* Try reading the number using `sysctl' first. */ +- if (__sysctl ((int *) sysctl_args, +- sizeof (sysctl_args) / sizeof (sysctl_args[0]), +- buf, &reslen, NULL, 0) < 0) +- { +- /* This was not successful. Now try reading the /proc filesystem. */ +- int fd = __open ("/proc/sys/kernel/version", O_RDONLY); +- if (__builtin_expect (fd, 0) == -1 +- || (reslen = __read (fd, buf, sizeof (buf))) <= 0) +- /* This also didn't work. We give up and say it's a UP machine. */ +- buf[0] = '\0'; +- +- __close (fd); +- } +- +- return strstr (buf, "SMP") != NULL; ++ /* Assume all machines are SMP and/or CMT and/or SMT. */ ++ return 1; + } +--- ports/sysdeps/unix/sysv/linux/arm/ioperm.c.orig ++++ ports/sysdeps/unix/sysv/linux/arm/ioperm.c +@@ -49,6 +49,8 @@ + + #define PATH_ARM_SYSTYPE "/etc/arm_systype" + #define PATH_CPUINFO "/proc/cpuinfo" ++#define PATH_PORTBASE "/proc/bus/isa/portbase" ++#define PATH_PORTSHIFT "/proc/bus/isa/portshift" + + #define MAX_PORT 0x10000 + +@@ -100,15 +102,25 @@ + { + char systype[256]; + int i, n; +- static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE }; +- static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT }; ++ FILE * fp; ++ + size_t len = sizeof(io.base); + +- if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0) +- && ! sysctl (ioshift_name, 3, &io.shift, &len, NULL, 0)) ++ if ((fp = fopen (PATH_PORTBASE, "r"))) + { +- io.initdone = 1; +- return 0; ++ n = fscanf (fp, "%li", &io.io_base); ++ fclose(fp); ++ ++ if (n == 1 && (fp = fopen(PATH_PORTSHIFT, "r"))) ++ { ++ n = fscanf (fp, "%i", &io.shift); ++ fclose(fp); ++ if (n == 1) ++ { ++ io.initdone = 1; ++ return 0; ++ } ++ } + } + + n = readlink (PATH_ARM_SYSTYPE, systype, sizeof (systype) - 1); +@@ -127,8 +139,6 @@ + } + else + { +- FILE * fp; +- + fp = fopen (PATH_CPUINFO, "r"); + if (! fp) + return -1; --- eglibc-2.12.1.orig/debian/patches/any/local-disable-gethostbyname4.diff +++ eglibc-2.12.1/debian/patches/any/local-disable-gethostbyname4.diff @@ -0,0 +1,13 @@ +https://bugzilla.redhat.com/show_bug.cgi?id=459756 + +--- a/resolv/Versions ++++ b/resolv/Versions +@@ -102,7 +102,7 @@ + _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r; + _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r; + _nss_dns_gethostbyaddr2_r; +- _nss_dns_gethostbyname4_r; ++# _nss_dns_gethostbyname4_r; + } + } + --- eglibc-2.12.1.orig/debian/patches/any/cvs-revert-flush-cache-textrels.diff +++ eglibc-2.12.1/debian/patches/any/cvs-revert-flush-cache-textrels.diff @@ -0,0 +1,20 @@ +--- a/elf/dl-reloc.c.orig 2010-07-13 16:58:06.400795038 +0200 ++++ b/elf/dl-reloc.c 2010-07-13 16:59:07.053295334 +0200 +@@ -1,5 +1,5 @@ + /* Relocate a shared object and resolve its references to other loaded objects. +- Copyright (C) 1995-2006, 2008, 2009, 2010 Free Software Foundation, Inc. ++ Copyright (C) 1995-2006, 2008, 2009 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -319,10 +319,6 @@ + goto call_error; + } + +-#ifdef CLEAR_CACHE +- CLEAR_CACHE (textrels->start, textrels->start + textrels->len); +-#endif +- + textrels = textrels->next; + } + --- eglibc-2.12.1.orig/debian/patches/any/local-csu-init.diff +++ eglibc-2.12.1/debian/patches/any/local-csu-init.diff @@ -0,0 +1,132 @@ +2009-04-01 Carlos O'Donell + + * csu/init.c: Rename to ... + * csu/csu-init.c: ... here. + * csu/Makefile: Use csu-init. + * Version.def: Add GLIBC_2.9. + +Index: Versions.def +=================================================================== +RCS file: /cvs/glibc/libc/Versions.def,v +retrieving revision 1.74 +diff -u -p -r1.74 Versions.def +--- a/Versions.def 3 Dec 2008 04:19:06 -0000 1.74 ++++ b/Versions.def 2 Apr 2009 02:36:54 -0000 +@@ -88,6 +88,7 @@ libpthread { + GLIBC_2.3.4 + GLIBC_2.4 + GLIBC_2.6 ++ GLIBC_2.9 + GLIBC_PRIVATE + } + libresolv { +Index: csu/init.c +=================================================================== +RCS file: csu/init.c +diff -N csu/init.c +--- a/csu/init.c 6 Jul 2001 04:54:45 -0000 1.4 ++++ /dev/null 1 Jan 1970 00:00:00 -0000 +@@ -1,27 +0,0 @@ +-/* Special startup support. +- Copyright (C) 1997, 1998 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#if defined USE_IN_LIBIO && defined __GNUC__ && __GNUC__ >= 2 +- +-#include <_G_config.h> +- +-/* This records which stdio is linked against in the application. */ +-const int _IO_stdin_used = _G_IO_IO_FILE_VERSION; +- +-#endif +Index: csu/csu-init.c +=================================================================== +RCS file: csu/csu-init.c +diff -N csu/csu-init.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ b/csu/csu-init.c 2 Apr 2009 02:36:55 -0000 +@@ -0,0 +1,27 @@ ++/* Special startup support. ++ Copyright (C) 1997, 1998 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if defined USE_IN_LIBIO && defined __GNUC__ && __GNUC__ >= 2 ++ ++#include <_G_config.h> ++ ++/* This records which stdio is linked against in the application. */ ++const int _IO_stdin_used = _G_IO_IO_FILE_VERSION; ++ ++#endif +Index: csu/Makefile +=================================================================== +RCS file: /cvs/glibc/libc/csu/Makefile,v +retrieving revision 1.79 +diff -u -p -r1.79 Makefile +--- a/csu/Makefile 1 Mar 2006 10:35:47 -0000 1.79 ++++ b/csu/Makefile 2 Apr 2009 02:36:55 -0000 +@@ -40,7 +40,7 @@ omit-deps = $(patsubst %.o,%,$(start-ins + S$(start-installed-name)) + install-lib = $(start-installed-name) g$(start-installed-name) $(csu-dummies) + distribute = initfini.c gmon-start.c start.c defs.awk \ +- abi-note.S init.c c not-cancel.h ++ abi-note.S csu-init.c c not-cancel.h + generated = version-info.h + before-compile = $(objpfx)version-info.h + +@@ -125,7 +125,7 @@ $(objpfx)defs.h: $(objpfx)initfini.s + endif + + ifeq (yes,$(elf)) +-extra-objs += abi-note.o init.o ++extra-objs += abi-note.o csu-init.o + asm-CPPFLAGS += -I$(objpfx). + endif + +@@ -143,13 +143,13 @@ ifeq (yes,$(elf)) + # We link the ELF startfile along with a SHT_NOTE section indicating + # the kernel ABI the binaries linked with this library will require. + $(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \ +- $(objpfx)init.o ++ $(objpfx)csu-init.o + $(link-relocatable) + $(objpfx)S$(start-installed-name): $(objpfx)start.os $(objpfx)abi-note.o \ +- $(objpfx)init.o ++ $(objpfx)csu-init.o + $(link-relocatable) + $(objpfx)b$(start-installed-name): $(objpfx)start.ob $(objpfx)abi-note.ob \ +- $(objpfx)init.ob ++ $(objpfx)csu-init.ob + $(link-relocatable) + else + # The startfile is installed under different names, so we just call our --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-fatalprepare.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-fatalprepare.diff @@ -0,0 +1,46 @@ +--- + linuxthreads/sysdeps/unix/sysv/linux/fatal-prepare.h | 39 +++++++++++++++++++ + 1 file changed, 39 insertions(+) + +--- /dev/null ++++ b/linuxthreads/sysdeps/unix/sysv/linux/fatal-prepare.h +@@ -0,0 +1,39 @@ ++/* Copyright (C) 2003, 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++/* We have to completely disable cancellation. assert() must not be a ++ cancellation point but the implementation uses write() etc. */ ++#ifdef SHARED ++# include ++# define FATAL_PREPARE \ ++ { \ ++ int (*fp) (int, int *); \ ++ fp = __libc_pthread_functions.ptr_pthread_setcancelstate; \ ++ if (fp != NULL) \ ++ fp (PTHREAD_CANCEL_DISABLE, NULL); \ ++ } ++#else ++# pragma weak pthread_setcancelstate ++# define FATAL_PREPARE \ ++ { \ ++ if (pthread_setcancelstate != NULL) \ ++ pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, NULL); \ ++ } ++#endif --- eglibc-2.12.1.orig/debian/patches/any/local-no-SOCK_NONBLOCK.diff +++ eglibc-2.12.1/debian/patches/any/local-no-SOCK_NONBLOCK.diff @@ -0,0 +1,105 @@ +--- + nscd/connections.c | 9 ++++++++- + resolv/res_send.c | 12 ++++++++++-- + 2 files changed, 18 insertions(+), 3 deletions(-) + +--- a/resolv/res_send.c ++++ b/resolv/res_send.c +@@ -103,13 +103,13 @@ + #define MAXPACKET 65536 + #endif + +- ++#ifdef SOCK_NONBLOCK + #ifndef __ASSUME_SOCK_CLOEXEC + static int __have_o_nonblock; + #else + # define __have_o_nonblock 0 + #endif +- ++#endif + + /* From ev_streams.c. */ + +@@ -913,6 +913,7 @@ + + /* only try IPv6 if IPv6 NS and if not failed before */ + if (nsap->sa_family == AF_INET6 && !statp->ipv6_unavail) { ++#ifdef SOCK_NONBLOCK + if (__builtin_expect (__have_o_nonblock >= 0, 1)) { + EXT(statp).nssocks[ns] = + socket(PF_INET6, SOCK_DGRAM|SOCK_NONBLOCK, +@@ -925,12 +926,14 @@ + #endif + } + if (__builtin_expect (__have_o_nonblock < 0, 0)) ++#endif + EXT(statp).nssocks[ns] = + socket(PF_INET6, SOCK_DGRAM, 0); + if (EXT(statp).nssocks[ns] < 0) + statp->ipv6_unavail = errno == EAFNOSUPPORT; + slen = sizeof (struct sockaddr_in6); + } else if (nsap->sa_family == AF_INET) { ++#ifdef SOCK_NONBLOCK + if (__builtin_expect (__have_o_nonblock >= 0, 1)) { + EXT(statp).nssocks[ns] + = socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, +@@ -943,6 +946,7 @@ + #endif + } + if (__builtin_expect (__have_o_nonblock < 0, 0)) ++#endif + EXT(statp).nssocks[ns] + = socket(PF_INET, SOCK_DGRAM, 0); + slen = sizeof (struct sockaddr_in); +@@ -969,7 +973,11 @@ + __res_iclose(statp, false); + return (0); + } ++#ifdef SOCK_NONBLOCK + if (__builtin_expect (__have_o_nonblock < 0, 0)) { ++#else ++ { ++#endif + /* Make socket non-blocking. */ + int fl = __fcntl (EXT(statp).nssocks[ns], F_GETFL); + if (fl != -1) +--- a/nscd/connections.c ++++ b/nscd/connections.c +@@ -1835,6 +1835,7 @@ + /* We have a new incoming connection. Accept the connection. */ + int fd; + ++#ifdef SOCK_NONBLOCK + #ifndef __ASSUME_ACCEPT4 + fd = -1; + if (have_accept4 >= 0) +@@ -1851,6 +1852,9 @@ + if (have_accept4 < 0) + fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL)); + #endif ++#else ++ fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL)); ++#endif + + /* Use the descriptor if we have not reached the limit. */ + if (fd >= 0) +@@ -2040,7 +2044,7 @@ + { + /* A new connection. */ + int fd; +- ++#ifdef SOCK_NONBLOCK + # ifndef __ASSUME_ACCEPT4 + fd = -1; + if (have_accept4 >= 0) +@@ -2057,6 +2061,9 @@ + if (have_accept4 < 0) + fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL)); + # endif ++#else ++ fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL)); ++#endif + + /* Use the descriptor if we have not reached the limit. */ + if (fd >= 0) --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-weak.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-weak.diff @@ -0,0 +1,49 @@ +--- + linuxthreads/sysdeps/pthread/bits/libc-lock.h | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +--- a/linuxthreads/sysdeps/pthread/bits/libc-lock.h ++++ b/linuxthreads/sysdeps/pthread/bits/libc-lock.h +@@ -25,6 +25,10 @@ + + #if defined _LIBC && !defined NOT_IN_libc + #include ++#else ++/* This function is called to initialize the pthread library. */ ++/* We need a prototype before it is bellow marked as weak */ ++extern void __pthread_initialize (void); + #endif + + /* Mutex type. */ +@@ -158,6 +162,9 @@ + #define __rtld_lock_init_recursive(NAME) \ + __libc_lock_init_recursive (NAME) + ++#define __rtld_lock_initialize(NAME) \ ++ (void) ((NAME) = (__rtld_lock_recursive_t) _RTLD_LOCK_RECURSIVE_INITIALIZER) ++ + /* Finalize the named lock variable, which must be locked. It cannot be + used again until __libc_lock_init is called again on it. This must be + called on a lock variable before the containing storage is reused. */ +@@ -379,8 +386,10 @@ + weak_extern (__pthread_atfork) + weak_extern (BP_SYM (_pthread_cleanup_push)) + weak_extern (BP_SYM (_pthread_cleanup_pop)) ++#ifdef __USE_GNU + weak_extern (BP_SYM (_pthread_cleanup_push_defer)) + weak_extern (BP_SYM (_pthread_cleanup_pop_restore)) ++#endif + # else + # pragma weak __pthread_mutex_init + # pragma weak __pthread_mutex_destroy +@@ -402,8 +411,10 @@ + # pragma weak __pthread_once + # pragma weak __pthread_initialize + # pragma weak __pthread_atfork ++#ifdef __USE_GNU + # pragma weak _pthread_cleanup_push_defer + # pragma weak _pthread_cleanup_pop_restore ++#endif + # pragma weak _pthread_cleanup_push + # pragma weak _pthread_cleanup_pop + # endif --- eglibc-2.12.1.orig/debian/patches/any/submitted-stack-guard-quick-randomization.diff +++ eglibc-2.12.1/debian/patches/any/submitted-stack-guard-quick-randomization.diff @@ -0,0 +1,115 @@ +Description: when AT_RANDOM is not available, attempt to build randomization + of stack guard value from the ASLR of stack and heap locations, and finally + the hp_timing_t value. Upstream glibc does not want this patch, as they + feel AT_RANDOM is sufficient. +Author: Jakub Jelinek +Origin: http://cvs.fedora.redhat.com/viewvc/devel/glibc/ +Forwarded: not-needed + +--- + elf/tst-stackguard1.c | 8 ++++++-- + nptl/tst-stackguard1.c | 8 ++++++-- + sysdeps/unix/sysv/linux/dl-osinfo.h | 29 +++++++++++++++++++++++++++++ + 3 files changed, 41 insertions(+), 4 deletions(-) + +--- a/sysdeps/unix/sysv/linux/dl-osinfo.h ++++ b/sysdeps/unix/sysv/linux/dl-osinfo.h +@@ -17,10 +17,13 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++#include + #include + #include + #include + #include ++#include ++#include + + #ifndef MIN + # define MIN(a,b) (((a)<(b))?(a):(b)) +@@ -80,6 +83,32 @@ + unsigned char *p = (unsigned char *) &ret; + p[sizeof (ret) - 1] = 255; + p[sizeof (ret) - 2] = '\n'; ++#ifdef HP_TIMING_NOW ++ hp_timing_t hpt; ++ HP_TIMING_NOW (hpt); ++ hpt = (hpt & 0xffff) << 8; ++ ret ^= hpt; ++#endif ++ uintptr_t stk; ++ /* Avoid GCC being too smart. */ ++ asm ("" : "=r" (stk) : "r" (p)); ++ stk &= 0x7ffff0; ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++ stk <<= (__WORDSIZE - 23); ++#elif __WORDSIZE == 64 ++ stk <<= 31; ++#endif ++ ret ^= stk; ++ /* Avoid GCC being too smart. */ ++ p = (unsigned char *) &errno; ++ asm ("" : "=r" (stk) : "r" (p)); ++ stk &= 0x7fff00; ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++ stk <<= (__WORDSIZE - 29); ++#else ++ stk >>= 8; ++#endif ++ ret ^= stk; + } + else + #endif +--- a/elf/tst-stackguard1.c ++++ b/elf/tst-stackguard1.c +@@ -160,17 +160,21 @@ + the 16 runs, something is very wrong. */ + int ndifferences = 0; + int ndefaults = 0; ++ int npartlyrandomized = 0; + for (i = 0; i < N; ++i) + { + if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1]) + ndifferences++; + else if (child_stack_chk_guards[i] == default_guard) + ndefaults++; ++ else if (*(char *) &child_stack_chk_guards[i] == 0) ++ npartlyrandomized++; + } + +- printf ("differences %d defaults %d\n", ndifferences, ndefaults); ++ printf ("differences %d defaults %d partly randomized %d\n", ++ ndifferences, ndefaults, npartlyrandomized); + +- if (ndifferences < N / 2 && ndefaults < N / 2) ++ if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4) + { + puts ("stack guard canaries are not randomized enough"); + puts ("nor equal to the default canary value"); +--- a/nptl/tst-stackguard1.c ++++ b/nptl/tst-stackguard1.c +@@ -190,17 +190,21 @@ + the 16 runs, something is very wrong. */ + int ndifferences = 0; + int ndefaults = 0; ++ int npartlyrandomized = 0; + for (i = 0; i < N; ++i) + { + if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1]) + ndifferences++; + else if (child_stack_chk_guards[i] == default_guard) + ndefaults++; ++ else if (*(char *) &child_stack_chk_guards[i] == 0) ++ npartlyrandomized++; + } + +- printf ("differences %d defaults %d\n", ndifferences, ndefaults); ++ printf ("differences %d defaults %d partly randomized %d\n", ++ ndifferences, ndefaults, npartlyrandomized); + +- if (ndifferences < N / 2 && ndefaults < N / 2) ++ if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4) + { + puts ("stack guard canaries are not randomized enough"); + puts ("nor equal to the default canary value"); --- eglibc-2.12.1.orig/debian/patches/any/local-ipv6-lookup.diff +++ eglibc-2.12.1/debian/patches/any/local-ipv6-lookup.diff @@ -0,0 +1,12 @@ +--- sysdeps/unix/sysv/linux/check_pf.c~ 2010-04-15 16:09:03.661086635 +0200 ++++ sysdeps/unix/sysv/linux/check_pf.c 2010-04-15 17:50:08.401085393 +0200 +@@ -178,7 +178,8 @@ + } + else + { +- if (!IN6_IS_ADDR_LOOPBACK (address)) ++ if (!IN6_IS_ADDR_LOOPBACK (address) ++ && !IN6_IS_ADDR_LINKLOCAL(address)) + *seen_ipv6 = true; + } + } --- eglibc-2.12.1.orig/debian/patches/any/local-missing-linux_types.h.diff +++ eglibc-2.12.1/debian/patches/any/local-missing-linux_types.h.diff @@ -0,0 +1,14 @@ +--- + sysdeps/unix/sysv/linux/netinet/if_fddi.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/sysdeps/unix/sysv/linux/netinet/if_fddi.h ++++ b/sysdeps/unix/sysv/linux/netinet/if_fddi.h +@@ -23,6 +23,7 @@ + #include + #include + ++#include + #include + + #ifdef __USE_BSD --- eglibc-2.12.1.orig/debian/patches/any/submitted-autotools.diff +++ eglibc-2.12.1/debian/patches/any/submitted-autotools.diff @@ -0,0 +1,671 @@ +2009-05-10 Aurelien Jarno + + * scripts/config.guess: update to version 2009-04-27. + * scripts/config.sub: ditto. + +--- + scripts/config.guess | 117 ++++++++++++++++++++++++++++--------- + scripts/config.sub | 159 +++++++++++++++++++++++++++++++++++++-------------- + 2 files changed, 208 insertions(+), 68 deletions(-) + +--- a/scripts/config.guess ++++ b/scripts/config.guess +@@ -1,10 +1,10 @@ + #! /bin/sh + # Attempt to guess a canonical system name. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +-# Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ++# Free Software Foundation, Inc. + +-timestamp='2006-02-27' ++timestamp='2009-04-27' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +@@ -56,8 +56,8 @@ + GNU config.guess ($timestamp) + + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +-Free Software Foundation, Inc. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, ++2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -161,6 +161,7 @@ + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; ++ sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched +@@ -211,7 +212,7 @@ + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) +- echo powerppc-unknown-mirbsd${UNAME_RELEASE} ++ echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} +@@ -323,14 +324,30 @@ + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; ++ s390x:SunOS:*:*) ++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; +- i86pc:SunOS:5.*:*) +- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) ++ eval $set_cc_for_build ++ SUN_ARCH="i386" ++ # If there is a compiler, see if it is configured for 64-bit objects. ++ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. ++ # This test works for both compilers. ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ SUN_ARCH="x86_64" ++ fi ++ fi ++ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize +@@ -531,7 +548,7 @@ + echo rs6000-ibm-aix3.2 + fi + exit ;; +- *:AIX:*:[45]) ++ *:AIX:*:[456]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 +@@ -771,6 +788,8 @@ + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ amd64) ++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac +@@ -778,10 +797,7 @@ + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; +- i*:MINGW*:*) +- echo ${UNAME_MACHINE}-pc-mingw32 +- exit ;; +- i*:MSYS_NT-*:*:*) ++ *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) +@@ -791,12 +807,18 @@ + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; +- x86:Interix*:[345]*) +- echo i586-pc-interix${UNAME_RELEASE} +- exit ;; +- EM64T:Interix*:[345]*) +- echo x86_64-unknown-interix${UNAME_RELEASE} +- exit ;; ++ *:Interix*:[3456]*) ++ case ${UNAME_MACHINE} in ++ x86) ++ echo i586-pc-interix${UNAME_RELEASE} ++ exit ;; ++ EM64T | authenticamd | genuineintel) ++ echo x86_64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ IA64) ++ echo ia64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; +@@ -830,6 +852,16 @@ + echo ${UNAME_MACHINE}-pc-minix + exit ;; + arm*:Linux:*:*) ++ eval $set_cc_for_build ++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_EABI__ ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ fi ++ exit ;; ++ avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) +@@ -919,6 +951,9 @@ + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; ++ padre:Linux:*:*) ++ echo sparc-unknown-linux-gnu ++ exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in +@@ -948,6 +983,9 @@ + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; ++ xtensa*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent +@@ -966,9 +1004,6 @@ + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit ;; +- coff-i386) +- echo "${UNAME_MACHINE}-pc-linux-gnucoff" +- exit ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. +@@ -990,7 +1025,7 @@ + LIBC=gnulibc1 + # endif + #else +- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun) ++ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + LIBC=gnu + #else + LIBC=gnuaout +@@ -1083,8 +1118,11 @@ + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about +- # the processor, so we play safe by assuming i386. +- echo i386-pc-msdosdjgpp ++ # the processor, so we play safe by assuming i586. ++ # Note: whatever this is, it MUST be the same as what config.sub ++ # prints for the "djgpp" host, or else GDB configury will decide that ++ # this is a cross-build. ++ echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 +@@ -1122,6 +1160,16 @@ + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; ++ NCR*:*:4.2:* | MPRAS*:*:4.2:*) ++ OS_REL='.3' ++ test -r /etc/.relid \ ++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; +@@ -1197,6 +1245,9 @@ + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; ++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. ++ echo i586-pc-haiku ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; +@@ -1206,6 +1257,15 @@ + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; ++ SX-7:SUPER-UX:*:*) ++ echo sx7-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8:SUPER-UX:*:*) ++ echo sx8-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8R:SUPER-UX:*:*) ++ echo sx8r-nec-superux${UNAME_RELEASE} ++ exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; +@@ -1296,6 +1356,9 @@ + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; ++ i*86:AROS:*:*) ++ echo ${UNAME_MACHINE}-pc-aros ++ exit ;; + esac + + #echo '(No uname command or uname output not recognized.)' 1>&2 +@@ -1456,9 +1519,9 @@ + the operating system you are using. It is advised that you + download the most up to date version of the config scripts from + +- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + and +- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + + If the version you run ($0) is already up to date, please + send the following data and any information you think might be +--- a/scripts/config.sub ++++ b/scripts/config.sub +@@ -1,10 +1,10 @@ + #! /bin/sh + # Configuration validation subroutine script. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +-# Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ++# Free Software Foundation, Inc. + +-timestamp='2006-02-27' ++timestamp='2009-04-17' + + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software +@@ -72,8 +72,8 @@ + version="\ + GNU config.sub ($timestamp) + +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +-Free Software Foundation, Inc. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, ++2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -122,6 +122,7 @@ + case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ ++ kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` +@@ -241,20 +242,24 @@ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ +- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ ++ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ +- | fr30 | frv \ ++ | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ +- | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \ ++ | lm32 \ ++ | m32c | m32r | m32rle | m68000 | m68k | m88k \ ++ | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ +- | mips64vr | mips64vrel \ ++ | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ ++ | mips64r5900 | mips64r5900el \ ++ | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ +@@ -267,6 +272,7 @@ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ ++ | moxie \ + | mt \ + | msp430 \ + | nios | nios2 \ +@@ -275,19 +281,17 @@ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ +- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ ++ | score \ ++ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ +- | sparc | sparc64 | sparc64b | sparc64v | sparc64v2 | sparc86x | sparclet | sparclite \ +- | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sparcv9v2 \ +- | strongarm \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ++ | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ +- | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ +- | z8k) +- basic_machine=$basic_machine-unknown +- ;; +- m32c) ++ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ ++ | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) +@@ -319,25 +323,28 @@ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* \ ++ | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ +- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ ++ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ +- | m32r-* | m32rle-* \ ++ | lm32-* \ ++ | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | maxq-* | mcore-* \ ++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ +- | mips64vr-* | mips64vrel-* \ ++ | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ ++ | mips64r5900-* | mips64r5900el-* \ ++ | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ +@@ -359,22 +366,24 @@ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ +- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ ++ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc64v2-* | sparc86x-* | sparclet-* \ ++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sparcv9v2-* | strongarm-* | sv1-* | sx?-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ +- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ +- | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ +- | xstormy16-* | xtensa-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | xstormy16-* | xtensa*-* \ + | ymp-* \ +- | z8k-*) ++ | z8k-* | z80-*) + ;; +- m32c-*) ++ # Recognize the basic CPU types without company name, with glob match. ++ xtensa*) ++ basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. +@@ -438,6 +447,10 @@ + basic_machine=m68k-apollo + os=-bsd + ;; ++ aros) ++ basic_machine=i386-pc ++ os=-aros ++ ;; + aux) + basic_machine=m68k-apple + os=-aux +@@ -446,10 +459,22 @@ + basic_machine=ns32k-sequent + os=-dynix + ;; ++ blackfin) ++ basic_machine=bfin-unknown ++ os=-linux ++ ;; ++ blackfin-*) ++ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; ++ cegcc) ++ basic_machine=arm-unknown ++ os=-cegcc ++ ;; + convex-c1) + basic_machine=c1-convex + os=-bsd +@@ -478,8 +503,8 @@ + basic_machine=craynv-cray + os=-unicosmp + ;; +- cr16c) +- basic_machine=cr16c-unknown ++ cr16) ++ basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) +@@ -517,6 +542,10 @@ + basic_machine=m88k-motorola + os=-sysv3 + ;; ++ dicos) ++ basic_machine=i686-pc ++ os=-dicos ++ ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp +@@ -671,6 +700,14 @@ + basic_machine=m68k-isi + os=-sysv + ;; ++ m68knommu) ++ basic_machine=m68k-unknown ++ os=-linux ++ ;; ++ m68knommu-*) ++ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; + m88k-omron*) + basic_machine=m88k-omron + ;; +@@ -686,6 +723,10 @@ + basic_machine=i386-pc + os=-mingw32 + ;; ++ mingw32ce) ++ basic_machine=arm-unknown ++ os=-mingw32ce ++ ;; + miniframe) + basic_machine=m68000-convergent + ;; +@@ -812,6 +853,14 @@ + basic_machine=i860-intel + os=-osf + ;; ++ parisc) ++ basic_machine=hppa-unknown ++ os=-linux ++ ;; ++ parisc-*) ++ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; + pbd) + basic_machine=sparc-tti + ;; +@@ -913,6 +962,10 @@ + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; ++ sde) ++ basic_machine=mipsisa32-sde ++ os=-elf ++ ;; + sei) + basic_machine=mips-sei + os=-seiux +@@ -924,6 +977,9 @@ + basic_machine=sh-hitachi + os=-hms + ;; ++ sh5el) ++ basic_machine=sh5le-unknown ++ ;; + sh64) + basic_machine=sh64-unknown + ;; +@@ -1013,6 +1069,10 @@ + basic_machine=tic6x-unknown + os=-coff + ;; ++ tile*) ++ basic_machine=tile-unknown ++ os=-linux-gnu ++ ;; + tx39) + basic_machine=mipstx39-unknown + ;; +@@ -1088,6 +1148,10 @@ + basic_machine=z8k-unknown + os=-sim + ;; ++ z80-*-coff) ++ basic_machine=z80-unknown ++ os=-sim ++ ;; + none) + basic_machine=none-none + os=-none +@@ -1126,10 +1190,10 @@ + we32k) + basic_machine=we32k-att + ;; +- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) ++ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; +- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sparcv9v2) ++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) +@@ -1198,8 +1262,9 @@ + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ ++ | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ +- | -aos* \ ++ | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ +@@ -1208,7 +1273,7 @@ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ +- | -chorusos* | -chorusrdb* \ ++ | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ +@@ -1218,7 +1283,7 @@ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ +- | -skyos* | -haiku* | -rdos*) ++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) +@@ -1348,6 +1413,9 @@ + -zvmoe) + os=-zvmoe + ;; ++ -dicos*) ++ os=-dicos ++ ;; + -none) + ;; + *) +@@ -1370,6 +1438,12 @@ + # system, and we'll never get to this point. + + case $basic_machine in ++ score-*) ++ os=-elf ++ ;; ++ spu-*) ++ os=-elf ++ ;; + *-acorn) + os=-riscix1.2 + ;; +@@ -1379,9 +1453,9 @@ + arm*-semi) + os=-aout + ;; +- c4x-* | tic4x-*) +- os=-coff +- ;; ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 +@@ -1407,6 +1481,9 @@ + m68*-cisco) + os=-aout + ;; ++ mep-*) ++ os=-elf ++ ;; + mips*-cisco) + os=-elf + ;; --- eglibc-2.12.1.orig/debian/patches/any/local-linuxthreads-semaphore_h.diff +++ eglibc-2.12.1/debian/patches/any/local-linuxthreads-semaphore_h.diff @@ -0,0 +1,186 @@ +--- + linuxthreads/semaphore.h | 87 ------------------------------ + linuxthreads/sysdeps/pthread/semaphore.h | 88 ++++++++++++++++++++++++++++++- + 2 files changed, 87 insertions(+), 88 deletions(-) + +--- a/linuxthreads/semaphore.h ++++ /dev/null +@@ -1,87 +0,0 @@ +-/* Linuxthreads - a simple clone()-based implementation of Posix */ +-/* threads for Linux. */ +-/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) */ +-/* */ +-/* This program is free software; you can redistribute it and/or */ +-/* modify it under the terms of the GNU Library General Public License */ +-/* as published by the Free Software Foundation; either version 2 */ +-/* of the License, or (at your option) any later version. */ +-/* */ +-/* This program is distributed in the hope that it will be useful, */ +-/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +-/* GNU Library General Public License for more details. */ +- +-#ifndef _SEMAPHORE_H +-#define _SEMAPHORE_H 1 +- +-#include +-#include +-#ifdef __USE_XOPEN2K +-# define __need_timespec +-# include +-#endif +- +-#ifndef _PTHREAD_DESCR_DEFINED +-/* Thread descriptors. Needed for `sem_t' definition. */ +-typedef struct _pthread_descr_struct *_pthread_descr; +-# define _PTHREAD_DESCR_DEFINED +-#endif +- +-/* System specific semaphore definition. */ +-typedef struct +-{ +- struct _pthread_fastlock __sem_lock; +- int __sem_value; +- _pthread_descr __sem_waiting; +-} sem_t; +- +- +- +-/* Value returned if `sem_open' failed. */ +-#define SEM_FAILED ((sem_t *) 0) +- +-/* Maximum value the semaphore can have. */ +-#define SEM_VALUE_MAX (2147483647) +- +- +-__BEGIN_DECLS +- +-/* Initialize semaphore object SEM to VALUE. If PSHARED then share it +- with other processes. */ +-extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value) __THROW; +- +-/* Free resources associated with semaphore object SEM. */ +-extern int sem_destroy (sem_t *__sem) __THROW; +- +-/* Open a named semaphore NAME with open flaot OFLAG. */ +-extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW; +- +-/* Close descriptor for named semaphore SEM. */ +-extern int sem_close (sem_t *__sem) __THROW; +- +-/* Remove named semaphore NAME. */ +-extern int sem_unlink (__const char *__name) __THROW; +- +-/* Wait for SEM being posted. */ +-extern int sem_wait (sem_t *__sem); +- +-#ifdef __USE_XOPEN2K +-/* Similar to `sem_wait' but wait only until ABSTIME. */ +-extern int sem_timedwait (sem_t *__restrict __sem, +- __const struct timespec *__restrict __abstime); +-#endif +- +-/* Test whether SEM is posted. */ +-extern int sem_trywait (sem_t *__sem) __THROW; +- +-/* Post SEM. */ +-extern int sem_post (sem_t *__sem) __THROW; +- +-/* Get current value of SEM and store it in *SVAL. */ +-extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval) +- __THROW; +- +-__END_DECLS +- +-#endif /* semaphore.h */ +--- a/linuxthreads/sysdeps/pthread/semaphore.h ++++ b/linuxthreads/sysdeps/pthread/semaphore.h +@@ -1 +1,87 @@ +-#include ++/* Linuxthreads - a simple clone()-based implementation of Posix */ ++/* threads for Linux. */ ++/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) */ ++/* */ ++/* This program is free software; you can redistribute it and/or */ ++/* modify it under the terms of the GNU Library General Public License */ ++/* as published by the Free Software Foundation; either version 2 */ ++/* of the License, or (at your option) any later version. */ ++/* */ ++/* This program is distributed in the hope that it will be useful, */ ++/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ ++/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ ++/* GNU Library General Public License for more details. */ ++ ++#ifndef _SEMAPHORE_H ++#define _SEMAPHORE_H 1 ++ ++#include ++#include ++#ifdef __USE_XOPEN2K ++# define __need_timespec ++# include ++#endif ++ ++#ifndef _PTHREAD_DESCR_DEFINED ++/* Thread descriptors. Needed for `sem_t' definition. */ ++typedef struct _pthread_descr_struct *_pthread_descr; ++# define _PTHREAD_DESCR_DEFINED ++#endif ++ ++/* System specific semaphore definition. */ ++typedef struct ++{ ++ struct _pthread_fastlock __sem_lock; ++ int __sem_value; ++ _pthread_descr __sem_waiting; ++} sem_t; ++ ++ ++ ++/* Value returned if `sem_open' failed. */ ++#define SEM_FAILED ((sem_t *) 0) ++ ++/* Maximum value the semaphore can have. */ ++#define SEM_VALUE_MAX (2147483647) ++ ++ ++__BEGIN_DECLS ++ ++/* Initialize semaphore object SEM to VALUE. If PSHARED then share it ++ with other processes. */ ++extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value) __THROW; ++ ++/* Free resources associated with semaphore object SEM. */ ++extern int sem_destroy (sem_t *__sem) __THROW; ++ ++/* Open a named semaphore NAME with open flaot OFLAG. */ ++extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW; ++ ++/* Close descriptor for named semaphore SEM. */ ++extern int sem_close (sem_t *__sem) __THROW; ++ ++/* Remove named semaphore NAME. */ ++extern int sem_unlink (__const char *__name) __THROW; ++ ++/* Wait for SEM being posted. */ ++extern int sem_wait (sem_t *__sem); ++ ++#ifdef __USE_XOPEN2K ++/* Similar to `sem_wait' but wait only until ABSTIME. */ ++extern int sem_timedwait (sem_t *__restrict __sem, ++ __const struct timespec *__restrict __abstime); ++#endif ++ ++/* Test whether SEM is posted. */ ++extern int sem_trywait (sem_t *__sem) __THROW; ++ ++/* Post SEM. */ ++extern int sem_post (sem_t *__sem) __THROW; ++ ++/* Get current value of SEM and store it in *SVAL. */ ++extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval) ++ __THROW; ++ ++__END_DECLS ++ ++#endif /* semaphore.h */ --- eglibc-2.12.1.orig/debian/patches/any/local-allocalim-header.diff +++ eglibc-2.12.1/debian/patches/any/local-allocalim-header.diff @@ -0,0 +1,15 @@ +--- + sysdeps/unix/sysv/linux/check_pf.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/sysdeps/unix/sysv/linux/check_pf.c ++++ b/sysdeps/unix/sysv/linux/check_pf.c +@@ -25,6 +25,8 @@ + #include + #include + #include ++#include ++#include + #include + + #include --- eglibc-2.12.1.orig/debian/patches/any/local-ldconfig-fsync.diff +++ eglibc-2.12.1/debian/patches/any/local-ldconfig-fsync.diff @@ -0,0 +1,14 @@ +--- + elf/cache.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/elf/cache.c ++++ b/elf/cache.c +@@ -426,6 +426,7 @@ + } + + if (write (fd, strings, total_strlen) != (ssize_t) total_strlen ++ || fsync (fd) + || close (fd)) + error (EXIT_FAILURE, errno, _("Writing of cache data failed")); + --- eglibc-2.12.1.orig/debian/patches/any/submitted-group_member.diff +++ eglibc-2.12.1/debian/patches/any/submitted-group_member.diff @@ -0,0 +1,20 @@ +2010-06-13 Aurelien Jarno + + * posix/group_member.c(__group_member): Correct off-by-one + error. + +diff --git a/posix/group_member.c b/posix/group_member.c +index 7bd9c46..104a055 100644 +--- a/posix/group_member.c ++++ b/posix/group_member.c +@@ -41,8 +41,8 @@ __group_member (gid) + size *= 2; + } while (n == size / 2); + +- while (n >= 0) +- if (groups[n--] == gid) ++ while (n > 0) ++ if (groups[--n] == gid) + return 1; + + return 0; --- eglibc-2.12.1.orig/debian/patches/any/local-libgcc-compat-main.diff +++ eglibc-2.12.1/debian/patches/any/local-libgcc-compat-main.diff @@ -0,0 +1,889 @@ +# DP: Description: libgcc-compat symbols for i386, sparc, +# alpha, ia64 (derived from RedHat's), s390 +# DP: Author: Guido Guenther, GOTO Masanori +# DP: Upstream status: Not submitted +# DP: Date: 2002-10-13, updated 2006-05-28 + +--- + sysdeps/i386/Makefile | 5 + sysdeps/i386/Versions | 3 + sysdeps/i386/libgcc-compat.c | 75 +++++++ + sysdeps/ia64/Makefile | 4 + sysdeps/ia64/Versions | 4 + sysdeps/ia64/ia64libgcc.S | 350 ---------------------------------- + sysdeps/ia64/libgcc-compat.c | 112 ++++++++++ + sysdeps/s390/s390-32/Makefile | 8 + sysdeps/s390/s390-32/Versions | 8 + sysdeps/s390/s390-32/libgcc-compat.c | 83 ++++++++ + sysdeps/sparc/sparc32/Makefile | 8 + sysdeps/sparc/sparc32/Versions | 4 + sysdeps/sparc/sparc32/libgcc-compat.c | 121 +++++++++++ + 13 files changed, 433 insertions(+), 352 deletions(-) + +--- /dev/null ++++ b/sysdeps/i386/libgcc-compat.c +@@ -0,0 +1,75 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Guido Guenther ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6) ++ ++extern int32_t __cmpdi2 (int64_t, int64_t); ++int32_t __cmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __cmpdi2 (u, v); ++} ++symbol_version (__cmpdi2_internal, __cmpdi2, GLIBC_2.0); ++ ++ ++extern int32_t __ucmpdi2 (int64_t, int64_t); ++int32_t __ucmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __ucmpdi2 (u, v); ++} ++symbol_version (__ucmpdi2_internal, __ucmpdi2, GLIBC_2.0); ++ ++ ++extern int64_t __fixunsdfdi (double); ++int64_t __fixunsdfdi_internal (double d) ++{ ++ return __fixunsdfdi (d); ++} ++symbol_version (__fixunsdfdi_internal, __fixunsdfdi, GLIBC_2.0); ++ ++extern int64_t __fixunssfdi (float); ++int64_t __fixunssfdi_internal (float d) ++{ ++ return __fixunssfdi (d); ++} ++ ++symbol_version (__fixunsfdi_internal, __fixunsfdi, GLIBC_2.0); ++ ++typedef float XFtype __attribute__ ((mode (XF))); ++ ++extern int64_t __fixunsxfdi (XFtype); ++int64_t __fixunsxfdi_internal (XFtype d) ++{ ++ return __fixunsxfdi (d); ++} ++ ++symbol_version (__fixunsxfdi_internal, __fixunsxfdi, GLIBC_2.0); ++ ++extern double __floatdidf (int64_t); ++double __floatdidf_internal (int64_t u) ++{ ++ return __floatdidf (u); ++} ++symbol_version (__floatdidf_internal, __floatdidf, GLIBC_2.0); ++ ++#endif +--- a/sysdeps/i386/Makefile ++++ b/sysdeps/i386/Makefile +@@ -9,6 +9,11 @@ + # On i686 we must avoid generating the trampoline functions generated + # to get the GOT pointer. + CFLAGS-initfini.s += -march=i386 -mtune=i386 -fno-asynchronous-unwind-tables -fno-unwind-tables ++ifeq (yes,$(build-shared)) ++# Compatibility ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat ++endif + endif + + ifeq ($(subdir),nptl) +--- a/sysdeps/i386/Versions ++++ b/sysdeps/i386/Versions +@@ -2,6 +2,9 @@ + GLIBC_2.0 { + # Functions from libgcc. + __divdi3; __moddi3; __udivdi3; __umoddi3; ++ __cmpdi2; __ucmpdi2; ++ __fixunsdfdi; __fixunssfdi; __fixunsxfdi; ++ __floatdidf; + } + GLIBC_2.1 { + # global variable +--- /dev/null ++++ b/sysdeps/sparc/sparc32/libgcc-compat.c +@@ -0,0 +1,121 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Guido Guenther ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6) ++ ++extern int64_t __ashldi3 (int64_t, int32_t); ++int64_t __ashldi3_internal (int64_t u, int32_t b) ++{ ++ return __ashldi3 (u, b); ++} ++symbol_version (__ashldi3_internal, __ashldi3, GLIBC_2.0); ++ ++ ++extern int64_t __ashrdi3 (int64_t, int32_t); ++int64_t __ashrdi3_internal (int64_t u, int32_t b) ++{ ++ return __ashrdi3 (u, b); ++} ++symbol_version (__ashrdi3_internal, __ashrdi3, GLIBC_2.0); ++ ++ ++extern int64_t __lshrdi3 (int64_t, int32_t); ++int64_t __lshrdi3_internal (int64_t u, int32_t b) ++{ ++ return __lshrdi3 (u, b); ++} ++symbol_version (__lshrdi3_internal, __lshrdi3, GLIBC_2.0); ++ ++extern int32_t __cmpdi2 (int64_t, int64_t); ++int32_t __cmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __cmpdi2 (u, v); ++} ++symbol_version (__cmpdi2_internal, __cmpdi2, GLIBC_2.0); ++ ++ ++extern int32_t __ucmpdi2 (int64_t, int64_t); ++int32_t __ucmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __ucmpdi2 (u, v); ++} ++symbol_version (__ucmpdi2_internal, __ucmpdi2, GLIBC_2.0); ++ ++ ++extern int64_t __fixdfdi (double); ++int64_t __fixdfdi_internal (double d) ++{ ++ return __fixdfdi (d); ++} ++symbol_version (__fixdfdi_internal, __fixdfdi, GLIBC_2.0); ++ ++ ++extern int64_t __fixsfdi (float); ++int64_t __fixsfdi_internal (float d) ++{ ++ return __fixsfdi (d); ++} ++symbol_version (__fixsfdi_internal, __fixsfdi, GLIBC_2.0); ++ ++ ++extern int64_t __fixunsdfdi (double); ++int64_t __fixunsdfdi_internal (double d) ++{ ++ return __fixunsdfdi (d); ++} ++symbol_version (__fixunsdfdi_internal, __fixunsdfdi, GLIBC_2.0); ++ ++extern int64_t __fixunssfdi (float); ++int64_t __fixunssfdi_internal (float d) ++{ ++ return __fixunssfdi (d); ++} ++ ++symbol_version (__fixunssfdi_internal, __fixunssfdi, GLIBC_2.0); ++ ++ ++extern double __floatdidf (int64_t); ++double __floatdidf_internal (int64_t u) ++{ ++ return __floatdidf (u); ++} ++symbol_version (__floatdidf_internal, __floatdidf, GLIBC_2.0); ++ ++ ++extern float floatdisf (int64_t); ++float __floatdisf_internal (int64_t u) ++{ ++ return __floatdisf (u); ++} ++symbol_version (__floatdisf_internal, __floatdisf, GLIBC_2.0); ++ ++ ++extern int64_t __muldi3 (int64_t, int64_t); ++int64_t __muldi3_internal (int64_t u, int64_t v) ++{ ++ return __muldi3 (u, v); ++} ++symbol_version (__muldi3_internal, __muldi3, GLIBC_2.0); ++ ++#endif +--- a/sysdeps/sparc/sparc32/Makefile ++++ b/sysdeps/sparc/sparc32/Makefile +@@ -24,6 +24,14 @@ + CFLAGS-initfini.s += -mcpu=v7 + endif + ++ifeq ($(subdir),csu) ++ifeq (yes,$(build-shared)) ++# Compatibility ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat ++endif ++endif ++ + # We distribute these files, even though they are generated, + # so as to avoid the need for a functioning m4 to build the library. + divrem := sdiv udiv rem urem +--- a/sysdeps/sparc/sparc32/Versions ++++ b/sysdeps/sparc/sparc32/Versions +@@ -1,5 +1,9 @@ + libc { + GLIBC_2.0 { + .div; .mul; .rem; .udiv; .umul; .urem; ++ __divdi3; __moddi3; __udivdi3; __umoddi3; __muldi3; ++ __ashldi3; __ashrdi3; __lshrdi3; __cmpdi2; __ucmpdi2; ++ __fixdfdi; __fixsfdi; __fixunsdfdi; __fixunssfdi; ++ __floatdidf; __floatdisf; + } + } +--- a/sysdeps/ia64/Makefile ++++ b/sysdeps/ia64/Makefile +@@ -12,8 +12,8 @@ + + ifeq (yes,$(build-shared)) + # Compatibility +-sysdep_routines += ia64libgcc +-shared-only-routines += ia64libgcc ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat + endif + endif + +--- a/sysdeps/ia64/Versions ++++ b/sysdeps/ia64/Versions +@@ -10,6 +10,10 @@ + # Functions from libgcc. + __divtf3; __divdf3; __divsf3; __divdi3; __moddi3; __udivdi3; __umoddi3; + __multi3; ++ __divsi3; ++ __modsi3; ++ __udivsi3; ++ __umodsi3; + } + } + libm { +--- a/sysdeps/ia64/ia64libgcc.S ++++ /dev/null +@@ -1,350 +0,0 @@ +-/* From the Intel IA-64 Optimization Guide, choose the minimum latency +- alternative. */ +- +-#include +-#undef ret +- +-#include +- +-#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6) +- +-/* __divtf3 +- Compute a 80-bit IEEE double-extended quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divtf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fnma.s1 f11 = farg1, f10, f1 +-(p6) fma.s1 f12 = farg0, f10, f0 +- ;; +-(p6) fma.s1 f13 = f11, f11, f0 +-(p6) fma.s1 f14 = f11, f11, f11 +- ;; +-(p6) fma.s1 f11 = f13, f13, f11 +-(p6) fma.s1 f13 = f14, f10, f10 +- ;; +-(p6) fma.s1 f10 = f13, f11, f10 +-(p6) fnma.s1 f11 = farg1, f12, farg0 +- ;; +-(p6) fma.s1 f11 = f11, f10, f12 +-(p6) fnma.s1 f12 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f10 = f12, f10, f10 +-(p6) fnma.s1 f12 = farg1, f11, farg0 +- ;; +-(p6) fma.s0 fret0 = f12, f10, f11 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +-END(___divtf3) +- .symver ___divtf3, __divtf3@GLIBC_2.2 +- +-/* __divdf3 +- Compute a 64-bit IEEE double quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divdf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fmpy.s1 f11 = farg0, f10 +-(p6) fnma.s1 f12 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f11 = f12, f11, f11 +-(p6) fmpy.s1 f13 = f12, f12 +- ;; +-(p6) fma.s1 f10 = f12, f10, f10 +-(p6) fma.s1 f11 = f13, f11, f11 +- ;; +-(p6) fmpy.s1 f12 = f13, f13 +-(p6) fma.s1 f10 = f13, f10, f10 +- ;; +-(p6) fma.d.s1 f11 = f12, f11, f11 +-(p6) fma.s1 f10 = f12, f10, f10 +- ;; +-(p6) fnma.d.s1 f8 = farg1, f11, farg0 +- ;; +-(p6) fma.d fret0 = f8, f10, f11 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divdf3) +- .symver ___divdf3, __divdf3@GLIBC_2.2 +- +-/* __divsf3 +- Compute a 32-bit IEEE float quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divsf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fmpy.s1 f8 = farg0, f10 +-(p6) fnma.s1 f9 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f8 = f9, f8, f8 +-(p6) fmpy.s1 f9 = f9, f9 +- ;; +-(p6) fma.s1 f8 = f9, f8, f8 +-(p6) fmpy.s1 f9 = f9, f9 +- ;; +-(p6) fma.d.s1 f10 = f9, f8, f8 +- ;; +-(p6) fnorm.s.s0 fret0 = f10 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divsf3) +- .symver ___divsf3, __divsf3@GLIBC_2.2 +- +-/* __divdi3 +- Compute a 64-bit integer quotient. +- in0 holds the dividend. in1 holds the divisor. */ +- +-ENTRY(___divdi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f8 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, so that they won't be treated as +- unsigned. */ +- fcvt.xf f8 = f8 +- fcvt.xf f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fnma.s1 f11 = f9, f10, f1 +-(p6) fmpy.s1 f12 = f8, f10 +- ;; +-(p6) fmpy.s1 f13 = f11, f11 +-(p6) fma.s1 f12 = f11, f12, f12 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an integer. */ +- fcvt.fx.trunc.s1 f10 = f10 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divdi3) +- .symver ___divdi3, __divdi3@GLIBC_2.2 +- +-/* __moddi3 +- Compute a 64-bit integer modulus. +- in0 holds the dividend (a). in1 holds the divisor (b). */ +- +-ENTRY(___moddi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f14 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, so that they won't be treated as +- unsigned. */ +- fcvt.xf f8 = f14 +- fcvt.xf f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fmpy.s1 f12 = f8, f10 +-(p6) fnma.s1 f11 = f9, f10, f1 +- ;; +-(p6) fma.s1 f12 = f11, f12, f12 +-(p6) fmpy.s1 f13 = f11, f11 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +- sub in1 = r0, in1 +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +- setf.sig f9 = in1 +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- fcvt.fx.trunc.s1 f10 = f10 +- ;; +- /* r = q * (-b) + a */ +- xma.l f10 = f10, f9, f14 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___moddi3) +- .symver ___moddi3, __moddi3@GLIBC_2.2 +- +-/* __udivdi3 +- Compute a 64-bit unsigned integer quotient. +- in0 holds the dividend. in1 holds the divisor. */ +- +-ENTRY(___udivdi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f8 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, to avoid FP software-assist faults. */ +- fcvt.xuf.s1 f8 = f8 +- fcvt.xuf.s1 f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fnma.s1 f11 = f9, f10, f1 +-(p6) fmpy.s1 f12 = f8, f10 +- ;; +-(p6) fmpy.s1 f13 = f11, f11 +-(p6) fma.s1 f12 = f11, f12, f12 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an unsigned integer. */ +- fcvt.fxu.trunc.s1 f10 = f10 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___udivdi3) +- .symver ___udivdi3, __udivdi3@GLIBC_2.2 +- +-/* __umoddi3 +- Compute a 64-bit unsigned integer modulus. +- in0 holds the dividend (a). in1 holds the divisor (b). */ +- +-ENTRY(___umoddi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f14 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, to avoid FP software assist faults. */ +- fcvt.xuf.s1 f8 = f14 +- fcvt.xuf.s1 f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fmpy.s1 f12 = f8, f10 +-(p6) fnma.s1 f11 = f9, f10, f1 +- ;; +-(p6) fma.s1 f12 = f11, f12, f12 +-(p6) fmpy.s1 f13 = f11, f11 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +- sub in1 = r0, in1 +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +- setf.sig f9 = in1 +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an unsigned integer. */ +- fcvt.fxu.trunc.s1 f10 = f10 +- ;; +- /* r = q * (-b) + a */ +- xma.l f10 = f10, f9, f14 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___umoddi3) +- .symver ___umoddi3, __umoddi3@GLIBC_2.2 +- +-/* __multi3 +- Compute a 128-bit multiply of 128-bit multiplicands. +- in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b). */ +- +-ENTRY(___multi3) +- .regstk 4,0,0,0 +- setf.sig f6 = in1 +- movl r19 = 0xffffffff +- setf.sig f7 = in2 +- ;; +- and r14 = r19, in0 +- ;; +- setf.sig f10 = r14 +- and r14 = r19, in2 +- xmpy.l f9 = f6, f7 +- ;; +- setf.sig f6 = r14 +- shr.u r14 = in0, 32 +- ;; +- setf.sig f7 = r14 +- shr.u r14 = in2, 32 +- ;; +- setf.sig f8 = r14 +- xmpy.l f11 = f10, f6 +- xmpy.l f6 = f7, f6 +- ;; +- getf.sig r16 = f11 +- xmpy.l f7 = f7, f8 +- ;; +- shr.u r14 = r16, 32 +- and r16 = r19, r16 +- getf.sig r17 = f6 +- setf.sig f6 = in0 +- ;; +- setf.sig f11 = r14 +- getf.sig r21 = f7 +- setf.sig f7 = in3 +- ;; +- xma.l f11 = f10, f8, f11 +- xma.l f6 = f6, f7, f9 +- ;; +- getf.sig r18 = f11 +- ;; +- add r18 = r18, r17 +- ;; +- and r15 = r19, r18 +- cmp.ltu p7, p6 = r18, r17 +- ;; +- getf.sig r22 = f6 +-(p7) adds r14 = 1, r19 +- ;; +-(p7) add r21 = r21, r14 +- shr.u r14 = r18, 32 +- shl r15 = r15, 32 +- ;; +- add r20 = r21, r14 +- ;; +- add ret0 = r15, r16 +- add ret1 = r22, r20 +- br.ret.sptk rp +- ;; +-END(___multi3) +- .symver ___multi3, __multi3@GLIBC_2.2 +- +-#endif +--- /dev/null ++++ b/sysdeps/ia64/libgcc-compat.c +@@ -0,0 +1,112 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6) ++ ++typedef int int128_t __attribute__((__mode__(TI))); ++ ++extern long double __divtf3 (long double, long double) attribute_hidden; ++long double INTUSE (__divtf3) (long double x, long double y) ++{ ++ return __divtf3 (x, y); ++} ++symbol_version (INTUSE (__divtf3), __divtf3, GLIBC_2.2); ++ ++extern double __divdf3 (double, double) attribute_hidden; ++double INTUSE (__divdf3) (double x, double y) ++{ ++ return __divdf3 (x, y); ++} ++symbol_version (INTUSE (__divdf3), __divdf3, GLIBC_2.2); ++ ++extern float __divsf3 (float, float) attribute_hidden; ++float INTUSE (__divsf3) (float x, float y) ++{ ++ return __divsf3 (x, y); ++} ++symbol_version (INTUSE (__divsf3), __divsf3, GLIBC_2.2); ++ ++extern int64_t __divdi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__divdi3) (int64_t x, int64_t y) ++{ ++ return __divdi3 (x, y); ++} ++symbol_version (INTUSE (__divdi3), __divdi3, GLIBC_2.2); ++ ++extern int64_t __moddi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__moddi3) (int64_t x, int64_t y) ++{ ++ return __moddi3 (x, y); ++} ++symbol_version (INTUSE (__moddi3), __moddi3, GLIBC_2.2); ++ ++extern uint64_t __udivdi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__udivdi3) (uint64_t x, uint64_t y) ++{ ++ return __udivdi3 (x, y); ++} ++symbol_version (INTUSE (__udivdi3), __udivdi3, GLIBC_2.2); ++ ++extern uint64_t __umoddi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__umoddi3) (uint64_t x, uint64_t y) ++{ ++ return __umoddi3 (x, y); ++} ++symbol_version (INTUSE (__umoddi3), __umoddi3, GLIBC_2.2); ++ ++extern int128_t __multi3 (int128_t, int128_t) attribute_hidden; ++int128_t INTUSE (__multi3) (int128_t x, int128_t y) ++{ ++ return __multi3 (x, y); ++} ++symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2); ++ ++extern int64_t __divsi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__divsi3) (int64_t x, int64_t y) ++{ ++ return __divsi3 (x, y); ++} ++symbol_version (INTUSE (__divsi3), __divsi3, GLIBC_2.2); ++ ++extern int64_t __modsi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__modsi3) (int64_t x, int64_t y) ++{ ++ return __modsi3 (x, y); ++} ++symbol_version (INTUSE (__modsi3), __modsi3, GLIBC_2.2); ++ ++extern uint64_t __udivsi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__udivsi3) (uint64_t x, uint64_t y) ++{ ++ return __udivsi3 (x, y); ++} ++symbol_version (INTUSE (__udivsi3), __udivsi3, GLIBC_2.2); ++ ++extern uint64_t __umodsi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__umodsi3) (uint64_t x, uint64_t y) ++{ ++ return __umodsi3 (x, y); ++} ++symbol_version (INTUSE (__umodsi3), __umodsi3, GLIBC_2.2); ++ ++#endif +--- a/sysdeps/s390/s390-32/Makefile ++++ b/sysdeps/s390/s390-32/Makefile +@@ -9,3 +9,11 @@ + CFLAGS-dl-load.c += -Wno-unused + CFLAGS-dl-reloc.c += -Wno-unused + endif ++ ++ifeq ($(subdir),csu) ++ifeq (yes,$(build-shared)) ++# Compatibility ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat ++endif ++endif +--- a/sysdeps/s390/s390-32/Versions ++++ b/sysdeps/s390/s390-32/Versions +@@ -2,5 +2,13 @@ + GLIBC_2.0 { + # Functions from libgcc. + __divdi3; __moddi3; __udivdi3; __umoddi3; ++ __cmpdi2; ++ __fixdfdi; ++ __fixsfdi; ++ __fixunsdfdi; ++ __fixunssfdi; ++ __floatdidf; ++ __floatdisf; ++ __ucmpdi2; + } + } +--- /dev/null ++++ b/sysdeps/s390/s390-32/libgcc-compat.c +@@ -0,0 +1,83 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by GOTO Masanori ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6) ++ ++extern int32_t __cmpdi2 (int64_t, int64_t); ++int32_t __cmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __cmpdi2 (u, v); ++} ++symbol_version (__cmpdi2_internal, __cmpdi2, GLIBC_2.0); ++ ++extern int64_t __fixdfdi (double); ++int64_t __fixdfdi_internal (double d) ++{ ++ return __fixdfdi (d); ++} ++symbol_version (__fixdfdi_internal, __fixdfdi, GLIBC_2.0); ++ ++extern int64_t __fixsfdi (float); ++int64_t __fixsfdi_internal (float d) ++{ ++ return __fixsfdi (d); ++} ++symbol_version (__fixsfdi_internal, __fixsfdi, GLIBC_2.0); ++ ++extern int64_t __fixunsdfdi (double); ++int64_t __fixunsdfdi_internal (double d) ++{ ++ return __fixunsdfdi (d); ++} ++symbol_version (__fixunsdfdi_internal, __fixunsdfdi, GLIBC_2.0); ++ ++extern int64_t __fixunssfdi (float); ++int64_t __fixunssfdi_internal (float d) ++{ ++ return __fixunssfdi (d); ++} ++symbol_version (__fixunssfdi_internal, __fixunssfdi, GLIBC_2.0); ++ ++extern double __floatdidf (int64_t); ++double __floatdidf_internal (int64_t u) ++{ ++ return __floatdidf (u); ++} ++symbol_version (__floatdidf_internal, __floatdidf, GLIBC_2.0); ++ ++extern float __floatdisf (int64_t); ++float __floatdisf_internal (int64_t u) ++{ ++ return __floatdisf (u); ++} ++symbol_version (__floatdisf_internal, __floatdisf, GLIBC_2.0); ++ ++extern int32_t __ucmpdi2 (int64_t, int64_t); ++int32_t __ucmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __ucmpdi2 (u, v); ++} ++symbol_version (__ucmpdi2_internal, __ucmpdi2, GLIBC_2.0); ++ ++#endif --- eglibc-2.12.1.orig/debian/patches/any/revert-cvs-futimens.diff +++ eglibc-2.12.1/debian/patches/any/revert-cvs-futimens.diff @@ -0,0 +1,20 @@ +Revert (powerpc buildds still run 2.6.15 kernels): + +2009-12-21 Ulrich Drepper + + * sysdeps/unix/sysv/linux/futimens.c: Handle AT_FDCWD. + +--- a/sysdeps/unix/sysv/linux/futimens.c.orig 2010-01-05 09:18:42.882336689 +0000 ++++ b/sysdeps/unix/sysv/linux/futimens.c 2010-01-05 09:19:20.562336504 +0000 +@@ -33,11 +33,6 @@ + futimens (int fd, const struct timespec tsp[2]) + { + #ifdef __NR_utimensat +- if (fd < 0) +- { +- __set_errno (EBADF); +- return -1; +- } + return INLINE_SYSCALL (utimensat, 4, fd, NULL, tsp, 0); + #else + __set_errno (ENOSYS); --- eglibc-2.12.1.orig/debian/patches/any/local-getaddrinfo-interface.diff +++ eglibc-2.12.1/debian/patches/any/local-getaddrinfo-interface.diff @@ -0,0 +1,27 @@ +2009-04-26 Aurelien Jarno + + * sysdeps/posix/getaddrinfo.c (rfc3484_sort): don't assign native + result if the result has no associated interface. + +--- + sysdeps/posix/getaddrinfo.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/sysdeps/posix/getaddrinfo.c ++++ b/sysdeps/posix/getaddrinfo.c +@@ -1453,13 +1453,13 @@ + + /* Fill in the results in all the records. */ + for (int i = 0; i < src->nresults; ++i) +- if (src->results[i].index == a1_index) ++ if (a1_index != -1 && src->results[i].index == a1_index) + { + assert (src->results[i].native == -1 + || src->results[i].native == a1_native); + src->results[i].native = a1_native; + } +- else if (src->results[i].index == a2_index) ++ else if (a2_index != -1 && src->results[i].index == a2_index) + { + assert (src->results[i].native == -1 + || src->results[i].native == a2_native); --- eglibc-2.12.1.orig/debian/patches/any/submitted-leading-zero-stack-guard.diff +++ eglibc-2.12.1/debian/patches/any/submitted-leading-zero-stack-guard.diff @@ -0,0 +1,58 @@ +Description: require that the first byte in the stack guard in a NULL byte, + to improve mitigation of NULL-terminated string overflows. +Bug: http://sourceware.org/bugzilla/show_bug.cgi?id=10149 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/413278 +Author: Kees Cook + +--- + sysdeps/unix/sysv/linux/dl-osinfo.h | 21 +++++++++++++-------- + 1 file changed, 13 insertions(+), 8 deletions(-) + +--- a/sysdeps/unix/sysv/linux/dl-osinfo.h ++++ b/sysdeps/unix/sysv/linux/dl-osinfo.h +@@ -65,7 +65,12 @@ + static inline uintptr_t __attribute__ ((always_inline)) + _dl_setup_stack_chk_guard (void *dl_random) + { +- uintptr_t ret; ++ uintptr_t ret = 0; ++ /* Having a leading zero byte protects the stack guard from being ++ overwritten with str* write operations or exposed by an ++ unterminated str* read operation. */ ++ unsigned char *p = ((unsigned char *) &ret) + 1; ++ int size = sizeof (ret) - 1; + #ifndef __ASSUME_AT_RANDOM + if (__builtin_expect (dl_random == NULL, 0)) + { +@@ -73,16 +78,16 @@ + int fd = __open ("/dev/urandom", O_RDONLY); + if (fd >= 0) + { +- ssize_t reslen = __read (fd, &ret, sizeof (ret)); ++ ssize_t reslen = __read (fd, p, size); + __close (fd); +- if (reslen == (ssize_t) sizeof (ret)) ++ if (reslen == (ssize_t) size) + return ret; + } + # endif +- ret = 0; +- unsigned char *p = (unsigned char *) &ret; +- p[sizeof (ret) - 1] = 255; +- p[sizeof (ret) - 2] = '\n'; ++ /* Lacking any other form of randomized stack guard, add other ++ terminators in an attempt to block things like fgets, etc. */ ++ p[size - 1] = 255; ++ p[size - 2] = '\n'; + #ifdef HP_TIMING_NOW + hp_timing_t hpt; + HP_TIMING_NOW (hpt); +@@ -115,7 +120,7 @@ + /* We need in the moment only 8 bytes on 32-bit platforms and 16 + bytes on 64-bit platforms. Therefore we can use the data + directly and not use the kernel-provided data to seed a PRNG. */ +- memcpy (&ret, dl_random, sizeof (ret)); ++ memcpy (p, dl_random, size); + return ret; + } + --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-_dl_random.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-_dl_random.diff @@ -0,0 +1,16 @@ +Add dummy _dl_random. + +--- + sysdeps/mach/hurd/dl-sysdep.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sysdeps/mach/hurd/dl-sysdep.c ++++ b/sysdeps/mach/hurd/dl-sysdep.c +@@ -56,6 +56,7 @@ + of init-first. */ + /* This variable containts the lowest stack address ever used. */ + void *__libc_stack_end; ++void *_dl_random attribute_relro = NULL; /* TODO */ + + #if HP_TIMING_AVAIL + hp_timing_t _dl_cpuclock_offset; --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-libc_once.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-libc_once.diff @@ -0,0 +1,78 @@ +2007-10-28 Aurelien Jarno + + * bits/libc-lock.h (__libc_once_get): New definiton. + * linuxthreads/sysdeps/pthread/bits/libc-lock.h: Likewise + * nptl/sysdeps/pthread/bits/libc-lock.h: Likewise. + * sysdeps/mach/bits/libc-lock.h: Likewise. + * sysdeps/mach/hurd/bits/libc-lock.h: Likewise. + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Use __libc_once_get + instead of using implementational details. + +--- + bits/libc-lock.h | 3 +++ + linuxthreads/sysdeps/pthread/bits/libc-lock.h | 3 +++ + nptl/sysdeps/pthread/bits/libc-lock.h | 3 +++ + sysdeps/mach/hurd/bits/libc-lock.h | 4 ++++ + sysdeps/posix/getaddrinfo.c | 2 +- + 5 files changed, 14 insertions(+), 1 deletion(-) + +--- a/bits/libc-lock.h ++++ b/bits/libc-lock.h +@@ -98,6 +98,9 @@ + } \ + } while (0) + ++/* Get once control variable. */ ++#define __libc_once_get(ONCE_CONTROL) \ ++ ((ONCE_CONTROL) == 1) + + /* Start a critical region with a cleanup function */ + #define __libc_cleanup_region_start(DOIT, FCT, ARG) \ +--- a/linuxthreads/sysdeps/pthread/bits/libc-lock.h ++++ b/linuxthreads/sysdeps/pthread/bits/libc-lock.h +@@ -242,6 +242,9 @@ + } \ + } while (0) + ++/* Get once control variable. */ ++#define __libc_once_get(ONCE_CONTROL) \ ++ ((ONCE_CONTROL) != PTHREAD_ONCE_INIT) + + /* Start critical region with cleanup. */ + #define __libc_cleanup_region_start(DOIT, FCT, ARG) \ +--- a/nptl/sysdeps/pthread/bits/libc-lock.h ++++ b/nptl/sysdeps/pthread/bits/libc-lock.h +@@ -451,6 +451,9 @@ + } \ + } while (0) + ++/* Get once control variable. */ ++#define __libc_once_get(ONCE_CONTROL) \ ++ ((ONCE_CONTROL) != PTHREAD_ONCE_INIT) + + /* Note that for I/O cleanup handling we are using the old-style + cancel handling. It does not have to be integrated with C++ snce +--- a/sysdeps/mach/hurd/bits/libc-lock.h ++++ b/sysdeps/mach/hurd/bits/libc-lock.h +@@ -188,6 +188,10 @@ + __libc_lock_unlock (ONCE_CONTROL.lock); \ + } while (0) + ++/* Get once control variable. */ ++#define __libc_once_get(ONCE_CONTROL) \ ++ (!ONCE_CONTROL.done) ++ + #ifdef _LIBC + /* We need portable names for some functions. E.g., when they are + used as argument to __libc_cleanup_region_start. */ +--- a/sysdeps/posix/getaddrinfo.c ++++ b/sysdeps/posix/getaddrinfo.c +@@ -2335,7 +2335,7 @@ + __libc_lock_define_initialized (static, lock); + + __libc_lock_lock (lock); +- if (old_once && gaiconf_reload_flag) ++ if (__libc_once_get(old_once) && gaiconf_reload_flag) + gaiconf_reload (); + qsort_r (order, nresults, sizeof (order[0]), rfc3484_sort, &src); + __libc_lock_unlock (lock); --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-dl-sysdep.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-dl-sysdep.diff @@ -0,0 +1,25 @@ +2009-01-31 Samuel Thibault + + * sysdeps/mach/hurd/dl-sysdep.c: Include code only #ifdef SHARED. + +--- + sysdeps/mach/hurd/dl-sysdep.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/sysdeps/mach/hurd/dl-sysdep.c ++++ b/sysdeps/mach/hurd/dl-sysdep.c +@@ -42,6 +42,8 @@ + #include + #include + ++#ifdef SHARED ++ + extern void __mach_init (void); + + extern int _dl_argc; +@@ -668,3 +670,5 @@ + { + /* This no-op definition only gets used if libc is not linked in. */ + } ++ ++#endif /* SHARED */ --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-pthread.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-pthread.diff @@ -0,0 +1,28 @@ +Add LIBPTHREAD_SO macro to gnu/lib-names.h and disable nscd build +--- + nscd/Makefile | 2 +- + scripts/lib-names.awk | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +--- a/scripts/lib-names.awk ++++ b/scripts/lib-names.awk +@@ -61,6 +61,8 @@ END { + cmd = "LC_ALL=C sort"; print lines["DEFAULT"] | cmd; close(cmd); + } + ++ print "#define LIBPTHREAD_SO \"libpthread.so.0.3\"" ++ + print ""; + print "#endif /* gnu/lib-names.h */" + } +--- a/nscd/Makefile ++++ b/nscd/Makefile +@@ -36,7 +36,7 @@ nscd-modules := nscd connections pwdcache getpwnam_r getpwuid_r grpcache \ + # own copy of nis_hash. + nscd-modules += nis_hash + endif +-ifeq ($(have-thread-library),yes) ++ifeq ($(have-thread-library),yesreallyyes) + + ifneq (yesyes,$(have-fpie)$(build-shared)) + others-$(OPTION_EGLIBC_INET) += nscd --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-check_native.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-check_native.diff @@ -0,0 +1,36 @@ +Stub implementation of __check_native + +--- + sysdeps/mach/hurd/check_native.c | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +--- /dev/null ++++ b/sysdeps/mach/hurd/check_native.c +@@ -0,0 +1,27 @@ ++/* Determine whether interfaces use native transport. Dummy version. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++void ++__check_native (uint32_t a1_index, int *a1_native, ++ uint32_t a2_index, int *a2_native) ++{ ++#warning __check_native() not yet implemented ++} --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff @@ -0,0 +1,38 @@ +Add some basic types for ioctls. + +--- + sysdeps/mach/hurd/bits/ioctls.h | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +--- a/sysdeps/mach/hurd/bits/ioctls.h ++++ b/sysdeps/mach/hurd/bits/ioctls.h +@@ -149,9 +149,17 @@ + #define _IOT_SIMPLE(type) _IOT (_IOTS (type), 1, 0, 0, 0, 0) + + /* Basic C types. */ +-#define _IOT__IOTBASE_int _IOT_SIMPLE (int) + #define _IOT__IOTBASE_char _IOT_SIMPLE (char) ++#define _IOT__IOTBASE_int _IOT_SIMPLE (int) + #define _IOT__IOTBASE_short _IOT_SIMPLE (short) ++#define _IOT__IOTBASE_long _IOT_SIMPLE (long) ++#define _IOT_char _IOT_SIMPLE (char) ++#define _IOT_int _IOT_SIMPLE (int) ++#define _IOT_short _IOT_SIMPLE (short) ++#define _IOT_long _IOT_SIMPLE (long) ++ ++#define _IOT__IOTBASE_size_t _IOT_SIMPLE (size_t) ++#define _IOT__IOTBASE_ssize_t _IOT_SIMPLE (ssize_t) + + + /* Standard flavors of ioctls. +@@ -174,6 +182,10 @@ + #define _IOC_ENCODE_TYPE_1(typespec) _IOC_ENCODE_TYPE_2(typespec) + #define _IOC_ENCODE_TYPE_2(typespec) _IOT_##typespec + ++/* Also, ignore signedness. */ ++#define _IOTBASE_unsigned ++#define _IOTBASE_signed ++ + + /* ioctls verbatim from 4.4 . */ + --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-rtld_lock_recursive.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-rtld_lock_recursive.diff @@ -0,0 +1,29 @@ +2010-01-17 Samuel Thibault + + * sysdeps/mach/hurd/bits/libc-lock.h (__rtld_lock_recursive_t): New + type. + (__rtld_lock_initialize): New macro. + +--- + sysdeps/mach/hurd/bits/libc-lock.h | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/sysdeps/mach/hurd/bits/libc-lock.h ++++ b/sysdeps/mach/hurd/bits/libc-lock.h +@@ -34,6 +34,7 @@ + void *owner; + int count; + } __libc_lock_recursive_t; ++typedef __libc_lock_recursive_t __rtld_lock_recursive_t; + + #define __libc_lock_owner_self() ((void *) __hurd_threadvar_location (0)) + +@@ -124,6 +125,8 @@ + + #define __rtld_lock_init_recursive(NAME) \ + __libc_lock_init_recursive (NAME) ++#define __rtld_lock_initialize(NAME) \ ++ (void) ((NAME) = (__rtld_lock_recursive_t) _RTLD_LOCK_RECURSIVE_INITIALIZER) + #define __rtld_lock_trylock_recursive(NAME) \ + __libc_lock_trylock_recursive (NAME) + #define __rtld_lock_lock_recursive(NAME) \ --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-null-pathname.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-null-pathname.diff @@ -0,0 +1,42 @@ +2009-09-13 Samuel Thibault + + * hurd/hurdchdir.c (_hurd_change_directory_port_from_name): + Return ENOENT when name is empty. + * sysdeps/mach/hurd/chroot.c (chroot): Return ENOENT when path + is empty. + +--- + hurd/hurdchdir.c | 6 ++++++ + sysdeps/mach/hurd/chroot.c | 6 ++++++ + 2 files changed, 12 insertions(+) + +--- a/hurd/hurdchdir.c ++++ b/hurd/hurdchdir.c +@@ -38,6 +38,12 @@ + len = strlen (name); + if (len >= 2 && name[len - 2] == '/' && name[len - 1] == '.') + lookup = name; ++ else if (len == 0) ++ { ++ /* Special-case null pathname according to POSIX */ ++ errno = ENOENT; ++ return -1; ++ } + else + { + char *n = alloca (len + 3); +--- a/sysdeps/mach/hurd/chroot.c ++++ b/sysdeps/mach/hurd/chroot.c +@@ -38,6 +38,12 @@ + len = strlen (path); + if (len >= 2 && path[len - 2] == '/' && path[len - 1] == '.') + lookup = path; ++ else if (len == 0) ++ { ++ /* Special-case null pathname according to POSIX */ ++ errno = ENOENT; ++ return -1; ++ } + else + { + char *n = alloca (len + 3); --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-pthread_types.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-pthread_types.diff @@ -0,0 +1,9 @@ +We do have pthread types. +--- + sysdeps/mach/hurd/bits/pthreadtypes.h | 1 + + 1 file changed, 1 insertion(+) + +--- /dev/null ++++ b/sysdeps/mach/hurd/bits/pthreadtypes.h +@@ -0,0 +1 @@ ++#include --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-ioctl-decode-argument.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-ioctl-decode-argument.diff @@ -0,0 +1,63 @@ +2005-07-28 Samuel Thibault + + * ioctl.c (__ioctl): Add handling of parameter-less ioctls. + +2005-07-28 Samuel Thibault + + * ioctls.h (_IOIW): New macro for immediate-write ioctls. + +--- + sysdeps/mach/hurd/bits/ioctls.h | 1 + + sysdeps/mach/hurd/ioctl.c | 16 ++++++++++------ + 2 files changed, 11 insertions(+), 6 deletions(-) + +--- a/sysdeps/mach/hurd/ioctl.c ++++ b/sysdeps/mach/hurd/ioctl.c +@@ -89,7 +89,7 @@ + void *p; + #endif + +- void *arg; ++ void *arg = NULL; + + error_t err; + +@@ -140,7 +140,7 @@ + in (_IOT_COUNT1 (type), _IOT_TYPE1 (type)); + in (_IOT_COUNT2 (type), _IOT_TYPE2 (type)); + } +- else if (_IOC_INOUT (request) == IOC_VOID) ++ else if ((_IOC_INOUT (request) == IOC_VOID) && _IOT_COUNT0 (type)) + { + /* The RPC takes a single integer_t argument. + Rather than pointing to the value, ARG is the value itself. */ +@@ -209,11 +209,15 @@ + return msg.header.RetCode; + } + +- va_list ap; ++ if (_IOT_COUNT0 (type)) ++ { ++ /* Data need either be sent, received, or even both. */ ++ va_list ap; + +- va_start (ap, request); +- arg = va_arg (ap, void *); +- va_end (ap); ++ va_start (ap, request); ++ arg = va_arg (ap, void *); ++ va_end (ap); ++ } + + { + /* Check for a registered handler for REQUEST. */ +--- a/sysdeps/mach/hurd/bits/ioctls.h ++++ b/sysdeps/mach/hurd/bits/ioctls.h +@@ -158,6 +158,7 @@ + _IOT_foobar is defined either in this file, + or where struct foobar is defined. */ + #define _IO(g, n) _IOC (IOC_VOID, (g), (n), 0) ++#define _IOIW(g, n, t) _IOC (IOC_VOID, (g), (n), _IOC_ENCODE_TYPE (t)) + #define _IOR(g, n, t) _IOC (IOC_OUT, (g), (n), _IOC_ENCODE_TYPE (t)) + #define _IOW(g, n, t) _IOC (IOC_IN, (g), (n), _IOC_ENCODE_TYPE (t)) + #define _IOWR(g, n, t) _IOC (IOC_INOUT, (g), (n), _IOC_ENCODE_TYPE (t)) --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-readlinkat.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-readlinkat.diff @@ -0,0 +1,79 @@ +2009-09-27 Samuel Thibault + + * sysdeps/mach/hurd/readlinkat.c: New file, heavily inherited from + sysdeps/mach/hurd/readlink.c + +--- + sysdeps/mach/hurd/readlinkat.c | 67 +++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 67 insertions(+) + +--- /dev/null ++++ b/sysdeps/mach/hurd/readlinkat.c +@@ -0,0 +1,67 @@ ++/* Copyright (C) 1991,92,93,94,95,97,2002,2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Read the contents of the symbolic link FILE_NAME relative to FD into no more ++ than LEN bytes of BUF. The contents are not null-terminated. ++ Returns the number of characters read, or -1 for errors. */ ++ssize_t ++readlinkat (fd, file_name, buf, len) ++ int fd; ++ const char *file_name; ++ char *buf; ++ size_t len; ++{ ++ error_t err; ++ file_t file; ++ struct stat64 st; ++ ++ file = __file_name_lookup_at (fd, 0, file_name, O_READ | O_NOLINK, 0); ++ if (file == MACH_PORT_NULL) ++ return -1; ++ ++ err = __io_stat (file, &st); ++ if (! err) ++ if (S_ISLNK (st.st_mode)) ++ { ++ char *rbuf = buf; ++ ++ err = __io_read (file, &rbuf, &len, 0, len); ++ if (!err && rbuf != buf) ++ { ++ memcpy (buf, rbuf, len); ++ __vm_deallocate (__mach_task_self (), (vm_address_t)rbuf, len); ++ } ++ } ++ else ++ err = EINVAL; ++ ++ __mach_port_deallocate (__mach_task_self (), file); ++ ++ if (err) ++ return __hurd_fail (err); ++ else ++ return len; ++} ++libc_hidden_def (readlinkat); --- eglibc-2.12.1.orig/debian/patches/hurd-i386/cvs-linkat.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/cvs-linkat.diff @@ -0,0 +1,68 @@ +This fixes linkat() with AT_SYMLINK_FOLLOW in flags, which is currently +returning EINVAL. + +2010-06-02 Emilio Pozuelo Monfort + + * hurd/lookup-at.c (__file_name_lookup_at): Accept + AT_SYMLINK_FOLLOW in at_flags. Fail with EINVAL if both + AT_SYMLINK_FOLLOW and AT_SYMLINK_NOFOLLOW are present + in at_flags. + * hurd/hurd/fd.h (__file_name_lookup_at): Update comment. + * sysdeps/mach/hurd/linkat.c (linkat): Pass O_NOLINK in flags. + +--- + hurd/hurd/fd.h | 5 +++-- + hurd/lookup-at.c | 6 ++++++ + sysdeps/mach/hurd/linkat.c | 4 +++- + 3 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/hurd/hurd/fd.h b/hurd/hurd/fd.h +index d1aa867..2473476 100644 +--- a/hurd/hurd/fd.h ++++ b/hurd/hurd/fd.h +@@ -254,8 +254,9 @@ extern int _hurd_select (int nfds, struct pollfd *pollfds, + const sigset_t *sigmask); + + /* Variant of file_name_lookup used in *at function implementations. +- AT_FLAGS should contain only AT_SYMLINK_NOFOLLOW; other bits +- cause EINVAL. */ ++ AT_FLAGS may only contain AT_SYMLINK_FOLLOW or AT_SYMLINK_NOFOLLOW, ++ which will remove and add O_NOLINK from FLAGS respectively. ++ Other bits cause EINVAL. */ + extern file_t __file_name_lookup_at (int fd, int at_flags, + const char *file_name, + int flags, mode_t mode); +diff --git a/hurd/lookup-at.c b/hurd/lookup-at.c +index 7f55527..728a970 100644 +--- a/hurd/lookup-at.c ++++ b/hurd/lookup-at.c +@@ -30,8 +30,14 @@ __file_name_lookup_at (int fd, int at_flags, + error_t err; + file_t result; + ++ if ((at_flags & AT_SYMLINK_FOLLOW) && (at_flags & AT_SYMLINK_NOFOLLOW)) ++ return (__hurd_fail (EINVAL), MACH_PORT_NULL); ++ + flags |= (at_flags & AT_SYMLINK_NOFOLLOW) ? O_NOLINK : 0; + at_flags &= ~AT_SYMLINK_NOFOLLOW; ++ if (at_flags & AT_SYMLINK_FOLLOW) ++ flags &= ~O_NOLINK; ++ at_flags &= ~AT_SYMLINK_FOLLOW; + if (at_flags != 0) + return (__hurd_fail (EINVAL), MACH_PORT_NULL); + +diff --git a/sysdeps/mach/hurd/linkat.c b/sysdeps/mach/hurd/linkat.c +index 1942144..f8406a5 100644 +--- a/sysdeps/mach/hurd/linkat.c ++++ b/sysdeps/mach/hurd/linkat.c +@@ -38,7 +38,9 @@ linkat (fromfd, from, tofd, to, flags) + file_t oldfile, linknode, todir; + char *toname; + +- oldfile = __file_name_lookup_at (fromfd, flags, from, 0, 0); ++ /* POSIX says linkat() doesn't follow symlinks by default, so pass ++ O_NOLINK. That can be overriden by AT_SYMLINK_FOLLOW in FLAGS. */ ++ oldfile = __file_name_lookup_at (fromfd, flags, from, O_NOLINK, 0); + if (oldfile == MACH_PORT_NULL) + return -1; + --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-sbrk.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-sbrk.diff @@ -0,0 +1,46 @@ +2009-09-14 Samuel Thibault + + * sysdeps/mach/hurd/brk.c (_hurd_set_brk): When more space needs to be + allocated, call __vm_protect to finish enabling the existing space, and + pass a copy of _hurd_data_end instead of pagebrk to __vm_allocate to + allocate the remainder. + +--- + sysdeps/mach/hurd/brk.c | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +--- a/sysdeps/mach/hurd/brk.c ++++ b/sysdeps/mach/hurd/brk.c +@@ -64,7 +64,7 @@ + int + _hurd_set_brk (vm_address_t addr) + { +- error_t err; ++ error_t err = 0; + vm_address_t pagend = round_page (addr); + vm_address_t pagebrk = round_page (_hurd_brk); + long int rlimit; +@@ -101,8 +101,22 @@ + + if (pagend > _hurd_data_end) + { ++ vm_address_t alloc_start = _hurd_data_end; ++ + /* We didn't allocate enough space! Hopefully we can get some more! */ +- err = __vm_allocate (__mach_task_self (), &pagebrk, pagend - pagebrk, 0); ++ ++ if (_hurd_data_end > pagebrk) ++ /* First finish allocation */ ++ err = __vm_protect (__mach_task_self (), pagebrk, ++ alloc_start - pagebrk, 0, ++ VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE); ++ if (! err) ++ _hurd_brk = alloc_start; ++ ++ if (! err) ++ err = __vm_allocate (__mach_task_self (), &alloc_start, ++ pagend - alloc_start, 0); ++ + if (! err) + _hurd_data_end = pagend; + } --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-getnprocs.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-getnprocs.diff @@ -0,0 +1,42 @@ +2010-01-26 Samuel Thibault + + * sysdeps/mach/getsysstats.c (get_nprocs_conf, get_nprocs, + get_phys_pages, get_avphys_pages): Add weak aliases. + +--- + getsysstats.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/sysdeps/mach/getsysstats.c b/sysdeps/mach/getsysstats.c +index d2bebb6..a7e0804 100644 +--- a/sysdeps/mach/getsysstats.c ++++ b/sysdeps/mach/getsysstats.c +@@ -40,6 +40,7 @@ __get_nprocs_conf () + + return hbi.max_cpus; + } ++weak_alias (__get_nprocs_conf, get_nprocs_conf) + + /* Return the number of processors currently available on the system. */ + int +@@ -58,6 +59,7 @@ __get_nprocs () + + return hbi.avail_cpus; + } ++weak_alias (__get_nprocs, get_nprocs) + + /* Return the number of physical pages on the system. */ + long int +@@ -76,6 +78,7 @@ __get_phys_pages () + + return hbi.memory_size / __vm_page_size; + } ++weak_alias (__get_phys_pages, get_phys_pages) + + /* Return the number of available physical pages */ + long int +@@ -100,3 +103,4 @@ __get_avphys_pages () + + return vs.free_count; + } ++weak_alias (__get_avphys_pages, get_avphys_pages) --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-gscope.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-gscope.diff @@ -0,0 +1,61 @@ +Poor-man's global scope switch support: just busy-waits. +--- + elf/dl-support.c | 1 + + sysdeps/generic/ldsodefs.h | 1 + + sysdeps/mach/hurd/sysdep-cancel.h | 9 +++++++++ + sysdeps/mach/hurd/tls.h | 13 +++++++++++++ + 4 files changed, 24 insertions(+) + +--- a/elf/dl-support.c ++++ b/elf/dl-support.c +@@ -141,6 +141,7 @@ + /* Function in libpthread to wait for termination of lookups. */ + void (*_dl_wait_lookup_done) (void); + ++int volatile _dl_thread_gscope_count; + struct dl_scope_free_list *_dl_scope_free_list; + + #ifdef NEED_DL_SYSINFO +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -493,6 +493,7 @@ + size_t count; + void *list[50]; + } *_dl_scope_free_list; ++ EXTERN volatile int _dl_thread_gscope_count; + #ifdef SHARED + }; + # define __rtld_global_attribute__ +--- a/sysdeps/mach/hurd/tls.h ++++ b/sysdeps/mach/hurd/tls.h +@@ -74,5 +74,18 @@ + + #endif /* HAVE_TLS_SUPPORT */ + ++#ifndef __ASSEMBLER__ ++#include ++#include ++/* Temporary poor-man's global scope switch support: just busy-waits */ ++#define THREAD_GSCOPE_SET_FLAG() \ ++ asm volatile ("lock incl %0":"=m"(GL(dl_thread_gscope_count))) ++#define THREAD_GSCOPE_RESET_FLAG() \ ++ asm volatile ("lock decl %0":"=m"(GL(dl_thread_gscope_count))) ++#define THREAD_GSCOPE_WAIT() \ ++ while (GL(dl_thread_gscope_count)) { \ ++ __swtch_pri (0); \ ++ } ++#endif + + #endif /* tls.h */ +--- /dev/null ++++ b/sysdeps/mach/hurd/sysdep-cancel.h +@@ -0,0 +1,9 @@ ++#include ++ ++/* Always multi-thread (since there's at least the sig handler), but no ++ handling enabled. */ ++#define SINGLE_THREAD_P (0) ++#define RTLD_SINGLE_THREAD_P (0) ++#define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */ ++#define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */ ++#define LIBC_CANCEL_HANDLED() /* Nothing. */ --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-mlock.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-mlock.diff @@ -0,0 +1,22 @@ +2006-01-18 Samuel Thibault + + Fix mlock() in all cases except non-readable pages. + + * glibc/sysdeps/mach/hurd/mlock.c (mlock): Give VM_PROT_READ + instead of VM_PROT_ALL as parameter to __vm_wire function. + +--- + sysdeps/mach/hurd/mlock.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sysdeps/mach/hurd/mlock.c ++++ b/sysdeps/mach/hurd/mlock.c +@@ -40,7 +40,7 @@ + page = trunc_page ((vm_address_t) addr); + len = round_page ((vm_address_t) addr + len) - page; + err = __vm_wire (hostpriv, __mach_task_self (), page, len, +- VM_PROT_ALL); /* XXX ? */ ++ VM_PROT_READ); + __mach_port_deallocate (__mach_task_self (), hostpriv); + + return err ? __hurd_fail (err) : 0; --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-strtoul.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-strtoul.diff @@ -0,0 +1,20 @@ +2007-11-02 Aurelien Jarno + + * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Use + __strtoul_internal instead of strtoul. + +--- + hurd/lookup-retry.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/hurd/lookup-retry.c ++++ b/hurd/lookup-retry.c +@@ -194,7 +194,7 @@ + char *end; + int save = errno; + errno = 0; +- fd = (int) strtoul (&retryname[3], &end, 10); ++ fd = (int) __strtoul_internal (&retryname[3], &end, 10, 0); + if (end == NULL || errno || /* Malformed number. */ + /* Check for excess text after the number. A slash + is valid; it ends the component. Anything else --- eglibc-2.12.1.orig/debian/patches/hurd-i386/cvs-setsid.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/cvs-setsid.diff @@ -0,0 +1,77 @@ +commit e87e2f48effefe5e70a9a21bc13d7187608d0365 +Author: Samuel Thibault +Date: Tue Dec 22 11:51:44 2009 -0800 + + Hurd: Fix possibly uninitialized variable in _hurd_locked_install_cttyid. + +--- + ChangeLog | 5 +++++ + hurd/hurdioctl.c | 24 ++++++++++-------------- + 2 files changed, 15 insertions(+), 14 deletions(-) + +--- a/ChangeLog ++++ b/ChangeLog +@@ -283,6 +283,11 @@ + + * dirent/dirent.h: Fix typo in feature selection macro use. + ++2009-12-22 Samuel Thibault ++ ++ * hurd/hurdioctl.c (_hurd_locked_install_cttyid): Set newctty to ++ MACH_PORT_NULL when id != cttyid. ++ + 2009-12-15 Ulrich Drepper + + * include/link.h (struct link_map): Move l_used into its own word. +--- a/hurd/hurdioctl.c ++++ b/hurd/hurdioctl.c +@@ -1,5 +1,6 @@ + /* ioctl commands which must be done in the C library. +- Copyright (C) 1994,95,96,97,99,2001,02 Free Software Foundation, Inc. ++ Copyright (C) 1994,95,96,97,99,2001,2002,2009 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -169,33 +170,28 @@ + for (i = 0; i < _hurd_dtablesize; ++i) + { + struct hurd_fd *const d = _hurd_dtable[i]; +- mach_port_t newctty; ++ mach_port_t newctty = MACH_PORT_NULL; + + if (d == NULL) + /* Nothing to do for an unused descriptor cell. */ + continue; + +- if (cttyid == MACH_PORT_NULL) +- /* We now have no controlling tty at all. */ +- newctty = MACH_PORT_NULL; +- else ++ if (cttyid != MACH_PORT_NULL) ++ /* We do have some controlling tty. */ + HURD_PORT_USE (&d->port, + ({ mach_port_t id; + /* Get the io object's cttyid port. */ + if (! __term_getctty (port, &id)) + { +- if (id == cttyid && /* Is it ours? */ ++ if (id == cttyid /* Is it ours? */ + /* Get the ctty io port. */ +- __term_open_ctty (port, +- _hurd_pid, _hurd_pgrp, +- &newctty)) ++ && __term_open_ctty (port, ++ _hurd_pid, _hurd_pgrp, ++ &newctty)) + /* XXX it is our ctty but the call failed? */ + newctty = MACH_PORT_NULL; +- __mach_port_deallocate +- (__mach_task_self (), (mach_port_t) id); ++ __mach_port_deallocate (__mach_task_self (), id); + } +- else +- newctty = MACH_PORT_NULL; + 0; + })); + --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-regex_internal.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-regex_internal.diff @@ -0,0 +1,19 @@ +2010-05-26 Aurelien Jarno + + * posix/regex_internal.h: include to get MAX + definition. + +--- + posix/regex_internal.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/posix/regex_internal.h ++++ b/posix/regex_internal.h +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #if defined _LIBC + # include --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-longjmp_chk.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-longjmp_chk.diff @@ -0,0 +1,143 @@ +From Thomas Schwinge. + +Provide ____longjmp_chk, still WIP. +--- + sysdeps/mach/hurd/i386/Makefile | 4 + + sysdeps/mach/hurd/i386/____longjmp_chk.S | 108 ++++++++++++++++++++++++++++++ + sysdeps/mach/hurd/i386/signal-defines.sym | 10 ++ + 3 files changed, 122 insertions(+) + +--- /dev/null ++++ b/sysdeps/mach/hurd/i386/____longjmp_chk.S +@@ -0,0 +1,108 @@ ++/* Copyright (C) 2001,2004,2005,2006,2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++ ++#include ++/* #include */ ++#define SS_ONSTACK 1 ++ ++ ++ .section .rodata.str1.1,"aMS",@progbits,1 ++ .type longjmp_msg,@object ++longjmp_msg: ++ .string "longjmp causes uninitialized stack frame" ++ .size longjmp_msg, .-longjmp_msg ++ ++ ++#ifdef PIC ++# define CALL_FAIL movl %ebx, %ecx; /* TODO: what's this mov good for? */ \ ++ cfi_register(%ebx,%ecx); \ ++ LOAD_PIC_REG (bx); \ ++ leal longjmp_msg@GOTOFF(%ebx), %eax; \ ++ call HIDDEN_JUMPTARGET(__fortify_fail) ++#else ++# define CALL_FAIL movl $longjmp_msg, %eax; \ ++ call HIDDEN_JUMPTARGET(__fortify_fail) ++#endif ++ ++ ++ .text ++ENTRY (____longjmp_chk) ++ movl 4(%esp), %ecx /* User's jmp_buf in %ecx. */ ++ ++ /* Save the return address now. */ ++ movl (JB_PC*4)(%ecx), %edx ++ /* Get the stack pointer. */ ++ movl (JB_SP*4)(%ecx), %edi ++ cfi_undefined(%edi) ++ PTR_DEMANGLE (%edx) ++ PTR_DEMANGLE (%edi) ++ ++ cmpl %edi, %esp ++ /* Jumping to a higher-address frame is always allowed. */ ++ jbe .Lok ++ ++ /* Passing here, we're either about to do something invalid, or we're ++ executing on an alternative signal stack. */ ++ ++ /* TODO: need locking? */ ++ /* struct hurd_sigstate * _hurd_self_sigstate (void) */ ++ call _hurd_self_sigstate ++ /* TODO: %eax and %eax->sigaltstack are always valid? */ ++ ++ testl $SS_ONSTACK, (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_FLAGS__OFFSET)(%eax) ++ /* Fail if SS_ONSTACK is not set. */ ++ jz .Lfail ++ ++ movl (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_SP__OFFSET)(%eax), %ebx ++ addl (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_SIZE__OFFSET)(%eax), %ebx ++ subl %edi, %ebx ++ cmpl (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_SIZE__OFFSET)(%eax), %ebx ++ /* TODO: comment this calculation. */ ++ jae .Lok ++ ++.Lfail: CALL_FAIL ++ ++.Lok: /* We add unwind information for the target here. */ ++ cfi_def_cfa(%ecx, 0) ++ cfi_register(%eip, %edx) ++ cfi_register(%esp, %edi) ++ cfi_offset(%ebx, JB_BX*4) ++ cfi_offset(%esi, JB_SI*4) ++ cfi_offset(%edi, JB_DI*4) ++ cfi_offset(%ebp, JB_BP*4) ++ ++ movl 8(%esp), %eax /* Second argument is return value. */ ++ movl %edi, %esp ++ ++ /* Restore registers. */ ++ movl (JB_BX*4)(%ecx), %ebx ++ movl (JB_SI*4)(%ecx), %esi ++ movl (JB_DI*4)(%ecx), %edi ++ movl (JB_BP*4)(%ecx), %ebp ++ cfi_restore(%ebx) ++ cfi_restore(%esi) ++ cfi_restore(%edi) ++ cfi_restore(%ebp) ++ ++ /* Jump to saved PC. */ ++ jmp *%edx ++END (____longjmp_chk) +--- /dev/null ++++ b/sysdeps/mach/hurd/i386/signal-defines.sym +@@ -0,0 +1,10 @@ ++#include ++#include ++ ++-- ++ ++HURD_SIGSTATE__SIGALTSTACK__OFFSET offsetof(struct hurd_sigstate, sigaltstack) ++ ++SIGALTSTACK__SS_SP__OFFSET offsetof(struct sigaltstack, ss_sp) ++SIGALTSTACK__SS_SIZE__OFFSET offsetof(struct sigaltstack, ss_size) ++SIGALTSTACK__SS_FLAGS__OFFSET offsetof(struct sigaltstack, ss_flags) +--- a/sysdeps/mach/hurd/i386/Makefile ++++ b/sysdeps/mach/hurd/i386/Makefile +@@ -2,3 +2,7 @@ + sysdep_routines += ioperm + sysdep_headers += sys/io.h + endif ++ ++ifeq ($(subdir),debug) ++gen-as-const-headers += signal-defines.sym ++endif --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-msg-nosignal.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-msg-nosignal.diff @@ -0,0 +1,22 @@ +This is not a proper fix, but a workaround that is needed on HEAD. (Have +to check glibc-2_5-branch.) Reported on +. + +We need to keep this until a newer hurd package gets compiled with MSG_NOSIGNAL +support (>= 20080921). + +--- + resolv/res_send.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/resolv/res_send.c ++++ b/resolv/res_send.c +@@ -102,6 +102,8 @@ + #define MAXPACKET 65536 + #endif + ++#undef MSG_NOSIGNAL ++#define MSG_NOSIGNAL 0 + + /* From ev_streams.c. */ + --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-mkdir_root.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-mkdir_root.diff @@ -0,0 +1,55 @@ +Fix mkdir / error value (needed for busybox's mkdir -p) + +In the / case, directory_name_split can't really split that into an +absolute ROOT file_t and ".", since name is supposed to be a pointer in +file_name... Changing the interface is being proposed. + +--- + mkdir.c | 6 +++++- + mkdirat.c | 6 +++++- + 2 files changed, 10 insertions(+), 2 deletions(-) + +--- eglibc/sysdeps/mach/hurd/mkdir.c.orig 2010-06-12 00:48:27.000000000 +0000 ++++ eglibc/sysdeps/mach/hurd/mkdir.c 2010-06-12 00:55:00.000000000 +0000 +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + + /* Create a directory named FILE_NAME with protections MODE. */ + int +@@ -29,7 +30,10 @@ + { + error_t err; + const char *name; +- file_t parent = __directory_name_split (file_name, (char **) &name); ++ file_t parent; ++ if (!strcmp(file_name, "/")) ++ return EEXIST; ++ parent = __directory_name_split (file_name, (char **) &name); + if (parent == MACH_PORT_NULL) + return -1; + err = __dir_mkdir (parent, name, mode & ~_hurd_umask); +--- eglibc/sysdeps/mach/hurd/mkdirat.c.orig 2010-06-12 00:49:02.000000000 +0000 ++++ eglibc/sysdeps/mach/hurd/mkdirat.c 2010-06-12 00:54:45.000000000 +0000 +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + int + mkdirat (fd, path, mode) +@@ -32,7 +33,10 @@ + { + error_t err; + const char *name; +- file_t parent = __directory_name_split_at (fd, path, (char **) &name); ++ file_t parent; ++ if (!strcmp(path, "/")) ++ return EEXIST; ++ parent = __directory_name_split_at (fd, path, (char **) &name); + if (parent == MACH_PORT_NULL) + return -1; + err = __dir_mkdir (parent, name, mode & ~_hurd_umask); --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-gcc-4.1-init-first.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-gcc-4.1-init-first.diff @@ -0,0 +1,66 @@ +2007-07-22 Thomas Schwinge + + * sysdeps/mach/hurd/i386/init-first.c: Undo parts of Roland's `r 1.43' + to `r 1.44' changes. + (_hurd_stack_setup): Take a ``void *'' argument. Save the caller into + CALLER and pass that one on. + (init): Avoid an ugly typecast. + +--- + sysdeps/mach/hurd/i386/init-first.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +--- a/sysdeps/mach/hurd/i386/init-first.c ++++ b/sysdeps/mach/hurd/i386/init-first.c +@@ -334,11 +334,11 @@ + stack set up just as the user will see it, so it can switch stacks. */ + + void +-_dl_init_first (void) ++_dl_init_first (int argc, ...) + { + first_init (); + +- init ((int *) __builtin_frame_address (0) + 2); ++ init (&argc); + } + #endif + +@@ -365,23 +365,23 @@ + This poorly-named function is called by static-start.S, + which should not exist at all. */ + void +-_hurd_stack_setup (void) ++_hurd_stack_setup (void *arg, ...) + { +- intptr_t caller = (intptr_t) __builtin_return_address (0); ++ void *caller = (&arg)[-1]; + + void doinit (intptr_t *data) + { + /* This function gets called with the argument data at TOS. */ +- void doinit1 (void) ++ void doinit1 (volatile int argc, ...) + { +- init ((int *) __builtin_frame_address (0) + 2); ++ init ((int *) &argc); + } + + /* Push the user return address after the argument data, and then + jump to `doinit1' (above), so it is as if __libc_init_first's + caller had called `doinit1' with the argument data already on the + stack. */ +- *--data = caller; ++ *--data = (intptr_t) caller; + asm volatile ("movl %0, %%esp\n" /* Switch to new outermost stack. */ + "movl $0, %%ebp\n" /* Clear outermost frame pointer. */ + "jmp *%1" : : "r" (data), "r" (&doinit1) : "sp"); +@@ -390,7 +390,7 @@ + + first_init (); + +- _hurd_startup ((void **) __builtin_frame_address (0) + 2, &doinit); ++ _hurd_startup (&arg, &doinit); + } + #endif + --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-enable-ldconfig.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-enable-ldconfig.diff @@ -0,0 +1,77 @@ +# DP: Description: Enable ldconfig and such on hurd-i386 +# DP: Author: Jeff Bailey +# DP: Related Bugs: #309489 +# DP: Upstream status: Not submitted +# DP: Status Details: Upstream disagrees with this patch, but I'm +# DP: putting it in so that we have expected Debian behaviour on the +# DP: Hurd. We should review this when the ELF standard supports runpath. +# DP: Date: 08 Apr 2003 + +--- + elf/ldconfig.c | 4 ++++ + sysdeps/mach/hurd/configure | 2 ++ + sysdeps/mach/hurd/configure.in | 2 ++ + sysdeps/mach/hurd/dl-cache.c | 29 ----------------------------- + 4 files changed, 8 insertions(+), 29 deletions(-) + +--- a/sysdeps/mach/hurd/configure ++++ b/sysdeps/mach/hurd/configure +@@ -87,3 +87,5 @@ + $as_echo "$as_me: error: Hurd headers not installed or too old" >&2;} + { (exit 1); exit 1; }; } + fi ++ ++use_ldconfig=yes +--- a/sysdeps/mach/hurd/configure.in ++++ b/sysdeps/mach/hurd/configure.in +@@ -36,3 +36,5 @@ + if test "x$libc_cv_hurd_version" != xok; then + AC_MSG_ERROR(Hurd headers not installed or too old) + fi ++ ++use_ldconfig=yes +--- a/sysdeps/mach/hurd/dl-cache.c ++++ /dev/null +@@ -1,29 +0,0 @@ +-/* Stubby version of dl-cache; the Hurd doesn't support this "feature". +- Copyright (C) 1996, 1997 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-const char * +-_dl_load_cache_lookup (const char *name) +-{ +- return 0; +-} +- +-void +-_dl_unload_cache (void) +-{ +-} +--- a/elf/ldconfig.c ++++ b/elf/ldconfig.c +@@ -59,6 +59,10 @@ + + #define PACKAGE _libc_intl_domainname + ++#ifndef PATH_MAX ++#define PATH_MAX 1024 ++#endif ++ + static const struct + { + const char *name; --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-unwind-resume.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-unwind-resume.diff @@ -0,0 +1,98 @@ +Unwind resume support + +--- + sysdeps/mach/hurd/Makefile | 12 ++++++ + sysdeps/mach/hurd/rt-unwind-resume.c | 1 + sysdeps/mach/hurd/unwind-resume.c | 64 +++++++++++++++++++++++++++++++++++ + 3 files changed, 77 insertions(+) + +--- /dev/null ++++ b/sysdeps/mach/hurd/rt-unwind-resume.c +@@ -0,0 +1 @@ ++#include +--- /dev/null ++++ b/sysdeps/mach/hurd/unwind-resume.c +@@ -0,0 +1,64 @@ ++/* Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Jakub Jelinek . ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++#include ++ ++static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); ++static _Unwind_Reason_Code (*libgcc_s_personality) ++ (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *, ++ struct _Unwind_Context *); ++ ++static void ++init (void) ++{ ++ void *resume, *personality; ++ void *handle; ++ ++ handle = __libc_dlopen ("libgcc_s.so.1"); ++ ++ if (handle == NULL ++ || (resume = __libc_dlsym (handle, "_Unwind_Resume")) == NULL ++ || (personality = __libc_dlsym (handle, "__gcc_personality_v0")) == NULL) ++ __libc_fatal ("libgcc_s.so.1 must be installed for pthread_cancel to work\n"); ++ ++ libgcc_s_resume = resume; ++ libgcc_s_personality = personality; ++} ++ ++void ++_Unwind_Resume (struct _Unwind_Exception *exc) ++{ ++ if (__builtin_expect (libgcc_s_resume == NULL, 0)) ++ init (); ++ libgcc_s_resume (exc); ++} ++ ++_Unwind_Reason_Code ++__gcc_personality_v0 (int version, _Unwind_Action actions, ++ _Unwind_Exception_Class exception_class, ++ struct _Unwind_Exception *ue_header, ++ struct _Unwind_Context *context) ++{ ++ if (__builtin_expect (libgcc_s_personality == NULL, 0)) ++ init (); ++ return libgcc_s_personality (version, actions, exception_class, ++ ue_header, context); ++} +--- a/sysdeps/mach/hurd/Makefile ++++ b/sysdeps/mach/hurd/Makefile +@@ -211,4 +211,16 @@ + net/route.h + endif + ++ifeq ($(subdir),csu) ++routines += unwind-resume ++shared-only-routines += unwind-resume ++CFLAGS-unwind-resume.c += -fexceptions -fasynchronous-unwind-tables ++endif ++ ++ifeq ($(subdir),rt) ++librt-sysdep_routines += rt-unwind-resume ++librt-shared-only-routines += rt-unwind-resume ++CFLAGS-rt-unwind-resume.c += -fexceptions -fasynchronous-unwind-tables ++endif ++ + endif # in-Makerules --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-sysvshm.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-sysvshm.diff @@ -0,0 +1,778 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Implement SysV shared memory for GNU/Hurd. +# DP: Dpatch author: Michael Banck +# DP: Patch author: Marcus Brinkmann +# DP: Upstream status: Unsubmitted, copyright assignments needed +# DP: Date: 2005-07-11 + +2005-07-11 Marcus Brinkmann + + * hurd/Makefile (routines): Add sysvshm. + (distribute): Add sysvshm.h. + * hurd/sysvshm.h: New file. + * hurd/sysvshm.c: New file. + * sysdeps/mach/hurd/bits/stat.h (S_IMMAP0): New macro. + (S_ISPARE): Unset the S_IMMAP0 flag. + * sysdeps/mach/hurd/ftok.c: New file. + * sysdeps/mach/hurd/shmat.c: New file. + * sysdeps/mach/hurd/shmctl.c: New file. + * sysdeps/mach/hurd/shmdt.c: New file. + * sysdeps/mach/hurd/bits/posix_opt.h: Define _XOPEN_SHM to 1. + +--- + hurd/Makefile | 3 + hurd/sysvshm.c | 96 ++++++++++++++ + hurd/sysvshm.h | 47 +++++++ + sysdeps/mach/hurd/bits/posix_opt.h | 4 + sysdeps/mach/hurd/ftok.c | 43 ++++++ + sysdeps/mach/hurd/shmat.c | 78 +++++++++++ + sysdeps/mach/hurd/shmctl.c | 132 +++++++++++++++++++ + sysdeps/mach/hurd/shmdt.c | 51 +++++++ + sysdeps/mach/hurd/shmget.c | 245 +++++++++++++++++++++++++++++++++++++ + 9 files changed, 696 insertions(+), 3 deletions(-) + +--- a/hurd/Makefile ++++ b/hurd/Makefile +@@ -60,6 +60,7 @@ + vpprintf \ + ports-get ports-set hurdports hurdmsg \ + errno-loc \ ++ sysvshm \ + $(sig) $(dtable) $(inlines) port-cleanup report-wait xattr + sig = hurdsig hurdfault siginfo hurd-raise preempt-sig \ + trampoline longjmp-ts catch-exc exc2signal hurdkill sigunwind \ +@@ -68,7 +69,7 @@ + getdport openport \ + fd-close fd-read fd-write hurdioctl ctty-input ctty-output + inlines = $(inline-headers:%.h=%-inlines) +-distribute = hurdstartup.h hurdfault.h hurdhost.h \ ++distribute = hurdstartup.h hurdfault.h hurdhost.h sysvshm.h \ + faultexc.defs intr-rpc.defs intr-rpc.h intr-msg.h Notes + + # XXX this is a temporary hack; see hurdmalloc.h +--- /dev/null ++++ b/hurd/sysvshm.c +@@ -0,0 +1,96 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++/* Description of an shm attachment. */ ++struct sysvshm_attach ++{ ++ /* Linked list. */ ++ struct sysvshm_attach *next; ++ ++ /* Map address. */ ++ void *addr; ++ ++ /* Map size. */ ++ size_t size; ++}; ++ ++/* List of attachments. */ ++static struct sysvshm_attach *attach_list; ++ ++/* A lock to protect the linked list of shared memory attachments. */ ++static struct mutex sysvshm_lock = MUTEX_INITIALIZER; ++ ++ ++/* Adds a segment attachment. */ ++error_t ++__sysvshm_add (void *addr, size_t size) ++{ ++ struct sysvshm_attach *shm; ++ ++ shm = malloc (sizeof (*shm)); ++ if (!shm) ++ return errno; ++ ++ __mutex_lock (&sysvshm_lock); ++ shm->addr = addr; ++ shm->size = size; ++ shm->next = attach_list; ++ attach_list = shm; ++ __mutex_unlock (&sysvshm_lock); ++ ++ return 0; ++} ++ ++/* Removes a segment attachment. Returns its size if found, or EINVAL ++ otherwise. */ ++error_t ++__sysvshm_remove (void *addr, size_t *size) ++{ ++ struct sysvshm_attach *shm; ++ struct sysvshm_attach **pshm = &attach_list; ++ ++ __mutex_lock (&sysvshm_lock); ++ shm = attach_list; ++ while (shm) ++ { ++ shm = *pshm; ++ if (shm->addr == addr) ++ { ++ *pshm = shm->next; ++ *size = shm->size; ++ __mutex_unlock (&sysvshm_lock); ++ return 0; ++ } ++ pshm = &shm->next; ++ shm = shm->next; ++ } ++ __mutex_unlock (&sysvshm_lock); ++ return EINVAL; ++} +--- /dev/null ++++ b/hurd/sysvshm.h +@@ -0,0 +1,47 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* The area (from top to bottom) that is used for private keys. These ++ are all keys that have the second highest bit set. */ ++#define SHM_PRIV_KEY_START INT_MAX ++#define SHM_PRIV_KEY_END ((INT_MAX / 2) + 1) ++ ++#define SHM_PREFIX "shm-" ++#define SHM_DIR _PATH_DEV "shm/" ++ ++/* The maximum number of characters in a shared memory segment file name. ++ 32 is the max number of characters in a 128 bit number in hex. */ ++#if __WORDSIZE > 128 ++#error Need to increase SHM_NAMEMAX. ++#else ++#define SHM_NAMEMAX (sizeof (SHM_PREFIX) - 1 + 32 + 1) ++#endif ++ ++/* Use this with printf and its variants. */ ++#define SHM_NAMEPRI SHM_PREFIX "%0x" ++ ++ ++/* Adds a segment attachment. */ ++error_t __sysvshm_add (void *addr, size_t size); ++ ++/* Removes a segment attachment. Returns its size if found, or EINVAL ++ otherwise. */ ++error_t __sysvshm_remove (void *addr, size_t *size); +--- /dev/null ++++ b/sysdeps/mach/hurd/ftok.c +@@ -0,0 +1,43 @@ ++/* Copyright (C) 1995, 1996, 2000, 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++ ++/* In the Hurd, we use the second-to-most-significant bit as flag for ++ private keys. We use a different order of the components so that ++ the biggest one---the inode number---is affected by this. */ ++ ++key_t ++ftok (pathname, proj_id) ++ const char *pathname; ++ int proj_id; ++{ ++ struct stat64 st; ++ key_t key; ++ ++ if (__xstat64 (_STAT_VER, pathname, &st) < 0) ++ return (key_t) -1; ++ ++ key = ((st.st_dev & 0xff) | ((proj_id & 0xff) << 8) ++ | ((st.st_ino & 0x3fff) << 16)); ++ ++ return key; ++} +--- /dev/null ++++ b/sysdeps/mach/hurd/shmat.c +@@ -0,0 +1,78 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "sysvshm.h" ++ ++/* Attach the shared memory segment associated with SHMID to the data ++ segment of the calling process. SHMADDR and SHMFLG determine how ++ and where the segment is attached. */ ++void * ++__shmat (int shmid, const void *shmaddr, int shmflg) ++{ ++ error_t err; ++ char filename[sizeof (SHM_DIR) - 1 + SHM_NAMEMAX]; ++ int fd; ++ void *addr; ++ struct stat statbuf; ++ int res; ++ ++ sprintf (filename, SHM_DIR SHM_NAMEPRI, shmid); ++ fd = __open (filename, (shmflg & SHM_RDONLY) ? O_RDONLY : O_RDWR); ++ if (fd < 0) ++ { ++ if (errno == ENOENT) ++ errno = EINVAL; ++ return (void *) -1; ++ } ++ ++ res = __fstat (fd, &statbuf); ++ if (res < 0) ++ { ++ __close (fd); ++ return (void *) -1; ++ } ++ ++ addr = __mmap ((void *) shmaddr, statbuf.st_size, ++ PROT_READ | ((shmflg & SHM_RDONLY) ? 0 : PROT_WRITE), ++ MAP_SHARED, fd, 0); ++ __close (fd); ++ if (addr == MAP_FAILED) ++ return (void *) -1; ++ ++ err = __sysvshm_add (addr, statbuf.st_size); ++ if (err) ++ { ++ munmap (addr, statbuf.st_size); ++ return (void *) -1; ++ } ++ ++ return addr; ++} ++ ++weak_alias(__shmat, shmat) +--- /dev/null ++++ b/sysdeps/mach/hurd/shmctl.c +@@ -0,0 +1,132 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "sysvshm.h" ++ ++/* Provide operations to control over shared memory segments. */ ++int ++__shmctl (int id, int cmd, struct shmid_ds *buf) ++{ ++ error_t err = 0; ++ int fd; ++ int res; ++ char filename[sizeof (SHM_DIR) - 1 + SHM_NAMEMAX]; ++ struct stat statbuf; ++ ++ sprintf (filename, SHM_DIR SHM_NAMEPRI, id); ++ /* SysV requires read access for IPC_STAT. */ ++ fd = __open (filename, O_NORW); ++ if (fd < 0) ++ { ++ if (errno == ENOENT) ++ errno = EINVAL; ++ return -1; ++ } ++ ++ res = __fstat (fd, &statbuf); ++ if (res < 0) ++ { ++ err = errno; ++ __close (fd); ++ errno = err; ++ return -1; ++ } ++ ++ switch (cmd) ++ { ++ case IPC_STAT: ++ ++ buf->shm_perm.__key = id; ++ buf->shm_perm.uid = statbuf.st_uid; ++ buf->shm_perm.gid = statbuf.st_gid; ++ ++ /* We do not support the creator. */ ++ buf->shm_perm.cuid = statbuf.st_uid; ++ buf->shm_perm.cgid = statbuf.st_gid; ++ ++ /* We just want the protection bits. */ ++ buf->shm_perm.mode = statbuf.st_mode & 0777; ++ /* Hopeless. We do not support a sequence number. */ ++ buf->shm_perm.__seq = statbuf.st_ino; ++ buf->shm_segsz = statbuf.st_size; ++ ++ /* Hopeless. We do not support any of these. */ ++ buf->shm_atime = statbuf.st_atime; ++ buf->shm_dtime = statbuf.st_mtime; ++ /* Well, this comes at least close. */ ++ buf->shm_ctime = statbuf.st_ctime; ++ ++ /* We do not support the PID. */ ++ buf->shm_cpid = 0; ++ buf->shm_lpid = 0; ++ ++ if (statbuf.st_mode & S_IMMAP0) ++ buf->shm_nattch = 0; ++ else ++ /* 42 is the answer. Of course this is bogus, but for most ++ applications, this should be fine. */ ++ buf->shm_nattch = 42; ++ ++ break; ++ ++ case IPC_SET: ++ if (statbuf.st_uid != buf->shm_perm.uid ++ || statbuf.st_gid != buf->shm_perm.gid) ++ { ++ res = __fchown (fd, ++ (statbuf.st_uid != buf->shm_perm.uid) ++ ? buf->shm_perm.uid : -1, ++ (statbuf.st_gid != buf->shm_perm.gid) ++ ? buf->shm_perm.gid : -1); ++ if (res < 0) ++ err = errno; ++ } ++ ++ if (!err && statbuf.st_mode & 0777 != buf->shm_perm.mode & 0777) ++ { ++ res = __fchmod (fd, (statbuf.st_mode & ~0777) ++ | (buf->shm_perm.mode & 0777)); ++ if (res < 0) ++ err = errno; ++ } ++ break; ++ ++ case IPC_RMID: ++ res = __unlink (filename); ++ /* FIXME: Check error (mapping ENOENT to EINVAL). */ ++ break; ++ ++ default: ++ err = EINVAL; ++ } ++ ++ __close (fd); ++ errno = err; ++ return err ? -1 : 0; ++} ++ ++weak_alias(__shmctl, shmctl) +--- /dev/null ++++ b/sysdeps/mach/hurd/shmdt.c +@@ -0,0 +1,51 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "sysvshm.h" ++ ++/* Detach shared memory segment starting at address specified by ++ SHMADDR from the caller's data segment. */ ++int ++__shmdt (const void *shmaddr) ++{ ++ error_t err; ++ size_t size; ++ ++ err = __sysvshm_remove ((void *) shmaddr, &size); ++ if (err) ++ { ++ errno = err; ++ return -1; ++ } ++ ++ __munmap ((void *) shmaddr, size); ++ return 0; ++} ++ ++weak_alias(__shmdt, shmdt) +--- /dev/null ++++ b/sysdeps/mach/hurd/shmget.c +@@ -0,0 +1,245 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "sysvshm.h" ++ ++/* Create a new shared memory segment file without linking it into the ++ filesystem. Return the directory and file ports in R_DIR and R_FILE. */ ++static error_t ++create_shm_file (size_t size, int flags, file_t *r_dir, file_t *r_file) ++{ ++ error_t err; ++ file_t dir; ++ file_t file; ++ ++ flags &= 0777; ++ ++ /* Get a port to the directory that will contain the file. */ ++ dir = __file_name_lookup (SHM_DIR, 0, 0); ++ if (dir == MACH_PORT_NULL) ++ return errno; ++ ++ /* Create an unnamed file in the directory. */ ++ err = __dir_mkfile (dir, O_RDWR, flags, &file); ++ if (err) ++ { ++ __mach_port_deallocate (__mach_task_self (), dir); ++ return err; ++ } ++ ++ err = __file_set_size (file, size); ++ if (err) ++ { ++ __mach_port_deallocate (__mach_task_self (), file); ++ __mach_port_deallocate (__mach_task_self (), dir); ++ ++ return err; ++ } ++ ++ *r_dir = dir; ++ *r_file = file; ++ ++ return 0; ++} ++ ++ ++/* Open the shared memory segment *R_KEY and return a file descriptor ++ to it in R_FD. If KEY is IPC_PRIVATE, use a private key and return ++ it in R_KEY. */ ++static error_t ++get_exclusive (int shmflags, size_t size, key_t *r_key, int *r_fd) ++{ ++ error_t err; ++ file_t dir; ++ file_t file; ++ char filename[SHM_NAMEMAX]; ++ key_t key = *r_key; ++ bool is_private; ++ ++ /* Create the shared memory segment. */ ++ err = create_shm_file (size, shmflags, &dir, &file); ++ if (err) ++ return err; ++ ++ if (key == IPC_PRIVATE) ++ { ++ is_private = true; ++ key = SHM_PRIV_KEY_START; ++ ++ /* Try to link the shared memory segment into the filesystem ++ (exclusively). Private segments have negative keys. */ ++ do ++ { ++ sprintf (filename, SHM_NAMEPRI, key); ++ err = __dir_link (dir, file, filename, 1); ++ if (!err) ++ { ++ /* We are done. */ ++ *r_key = key; ++ break; ++ } ++ else if (err == EEXIST) ++ { ++ /* Check if we ran out of keys. If not, try again with new ++ key. */ ++ if (key == SHM_PRIV_KEY_END) ++ err = ENOSPC; ++ else ++ err = 0; ++ ++ key--; ++ } ++ } ++ while (!err); ++ } ++ else ++ { ++ /* Try to link the shared memory segment into the filesystem ++ (exclusively) under the given key. */ ++ sprintf (filename, SHM_NAMEPRI, key); ++ err = __dir_link (dir, file, filename, 1); ++ } ++ ++ __mach_port_deallocate (__mach_task_self (), dir); ++ ++ if (!err) ++ { ++ int fd; ++ ++ /* Get a file descriptor for that port. */ ++ fd = _hurd_intern_fd (file, O_RDWR, 1); /* dealloc on error */ ++ if (fd < 0) ++ err = errno; ++ else ++ *r_fd = fd; ++ } ++ ++ return err; ++} ++ ++ ++/* Open the shared memory segment KEY (creating it if it doesn't yet ++ exist) and return a file descriptor to it in R_FD. */ ++static error_t ++get_shared (int shmflags, size_t size, key_t key, int *r_fd) ++{ ++ error_t err = 0; ++ char filename[sizeof (SHM_DIR) - 1 + SHM_NAMEMAX]; ++ int fd = -1; ++ int create_flag; ++ ++ create_flag = (shmflags & IPC_CREAT) ? O_CREAT : 0; ++ sprintf (filename, SHM_DIR SHM_NAMEPRI, key); ++ ++ do ++ { ++ fd = __open (filename, O_NORW | create_flag, shmflags & 0777); ++ ++ if (fd < 0 && errno != ENOENT) ++ /* We give up. */ ++ return errno; ++ else if (fd >= 0) ++ { ++ int res; ++ struct stat statbuf; ++ ++ /* Check the size (we only need to do this if we did not ++ create the shared memory segment file ourselves). */ ++ res = __fstat (fd, &statbuf); ++ if (res < 0) ++ { ++ err = errno; ++ __close (fd); ++ return err; ++ } ++ ++ if (statbuf.st_size < size) ++ { ++ __close (fd); ++ return EINVAL; ++ } ++ } ++ else ++ { ++ /* The memory segment doesn't exist. */ ++ if (create_flag) ++ { ++ /* Try to create it exclusively. */ ++ err = get_exclusive (shmflags, size, &key, &fd); ++ if (err == EEXIST) ++ /* If somebody created it in the meanwhile, just try again. */ ++ err = 0; ++ } ++ else ++ err = ENOENT; ++ } ++ } ++ while (fd < 0 && !err); ++ ++ if (!err) ++ *r_fd = fd; ++ else ++ *r_fd = -1; ++ ++ return err; ++} ++ ++/* Return an identifier for an shared memory segment of at least size ++ SIZE which is associated with KEY. */ ++int ++__shmget (key_t key, size_t size, int shmflags) ++{ ++ error_t err; ++ int fd; ++ ++ if (key == IPC_PRIVATE || shmflags & IPC_EXCL) ++ /* An exclusive shared memory segment must be created. */ ++ err = get_exclusive (shmflags, size, &key, &fd); ++ else ++ err = get_shared (shmflags, size, key, &fd); ++ ++ if (err) ++ { ++ errno = err; ++ return -1; ++ } ++ ++ /* From here, we can't fail. That's important, as otherwise we ++ would need to unlink the file if we created it (in that case, the ++ code above would have to be changed to pass a "created" flag down ++ to the caller). */ ++ ++ __close (fd); ++ ++ return key; ++} ++ ++weak_alias(__shmget, shmget) +--- a/sysdeps/mach/hurd/bits/posix_opt.h ++++ b/sysdeps/mach/hurd/bits/posix_opt.h +@@ -69,8 +69,8 @@ + /* X/Open thread realtime support is not supported. */ + #undef _XOPEN_REALTIME_THREADS + +-/* XPG4.2 shared memory is not supported. */ +-#undef _XOPEN_SHM ++/* XPG4.2 shared memory is supported. */ ++#define _XOPEN_SHM 1 + + /* We do not have the POSIX threads interface. */ + #define _POSIX_THREADS -1 --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-itimer-lock.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-itimer-lock.diff @@ -0,0 +1,20 @@ +2009-02-01 Samuel Thibault + + * sysdeps/mach/hurd/setitimer.c (setitimer_locked): Use common exit path + instead of returning without unlocking. + +--- + sysdeps/mach/hurd/setitimer.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sysdeps/mach/hurd/setitimer.c ++++ b/sysdeps/mach/hurd/setitimer.c +@@ -220,7 +220,7 @@ + /* Start up the itimer thread running `timer_thread' (below). */ + if (err = __thread_create (__mach_task_self (), + &_hurd_itimer_thread)) +- return __hurd_fail (err); ++ goto out; + _hurd_itimer_thread_stack_base = 0; /* Anywhere. */ + _hurd_itimer_thread_stack_size = __vm_page_size; /* Small stack. */ + if ((err = __mach_setup_thread (__mach_task_self (), --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-stat.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-stat.diff @@ -0,0 +1,120 @@ +Needed for HEAD and glibc-2_7-branch. + + + + +Reported on . + + +2007-10-05 Thomas Schwinge + + * sysdeps/mach/hurd/bits/stat.h (struct stat): Align to what is done + for Linux: use nsec instead of usec, as well as: + [__USE_MISC] (st_atim, st_mtim, st_ctim): Provide these ``struct + timespec''s. + (struct stat64): Likewise. + (_STATBUF_ST_NSEC): Define. + * sysdeps/mach/hurd/xstatconv.c (xstat64_conv): Adapt to that. + +--- + sysdeps/mach/hurd/bits/stat.h | 56 ++++++++++++++++++++++++++++++++---------- + sysdeps/mach/hurd/xstatconv.c | 9 ++---- + 2 files changed, 46 insertions(+), 19 deletions(-) + +--- a/sysdeps/mach/hurd/xstatconv.c ++++ b/sysdeps/mach/hurd/xstatconv.c +@@ -42,12 +42,9 @@ + buf->st_uid = buf64->st_uid; + buf->st_gid = buf64->st_gid; + buf->st_size = buf64->st_size; +- buf->st_atime = buf64->st_atime; +- buf->st_atime_usec = buf64->st_atime_usec; +- buf->st_mtime = buf64->st_mtime; +- buf->st_mtime_usec = buf64->st_mtime_usec; +- buf->st_ctime = buf64->st_ctime; +- buf->st_ctime_usec = buf64->st_ctime_usec; ++ buf->st_atim = buf64->st_atim; ++ buf->st_mtim = buf64->st_mtim; ++ buf->st_ctim = buf64->st_ctim; + buf->st_blksize = buf64->st_blksize; + buf->st_blocks = buf64->st_blocks; + buf->st_author = buf64->st_author; +--- a/sysdeps/mach/hurd/bits/stat.h ++++ b/sysdeps/mach/hurd/bits/stat.h +@@ -55,12 +55,27 @@ + __off64_t st_size; /* Size in bytes. */ + #endif + +- __time_t st_atime; /* Access time, seconds */ +- unsigned long int st_atime_usec; /* and microseconds. */ +- __time_t st_mtime; /* Modification time, seconds */ +- unsigned long int st_mtime_usec; /* and microseconds. */ +- __time_t st_ctime; /* Status change time, seconds */ +- unsigned long int st_ctime_usec; /* and microseconds. */ ++#ifdef __USE_MISC ++ /* Nanosecond resolution timestamps are stored in a format ++ equivalent to 'struct timespec'. This is the type used ++ whenever possible but the Unix namespace rules do not allow the ++ identifier 'timespec' to appear in the header. ++ Therefore we have to handle the use of this header in strictly ++ standard-compliant sources special. */ ++ struct timespec st_atim; /* Time of last access. */ ++ struct timespec st_mtim; /* Time of last modification. */ ++ struct timespec st_ctim; /* Time of last status change. */ ++# define st_atime st_atim.tv_sec /* Backward compatibility. */ ++# define st_mtime st_mtim.tv_sec ++# define st_ctime st_ctim.tv_sec ++#else ++ __time_t st_atime; /* Time of last access. */ ++ unsigned long int st_atimensec; /* Nscecs of last access. */ ++ __time_t st_mtime; /* Time of last modification. */ ++ unsigned long int st_mtimensec; /* Nsecs of last modification. */ ++ __time_t st_ctime; /* Time of last status change. */ ++ unsigned long int st_ctimensec; /* Nsecs of last status change. */ ++#endif + + __blksize_t st_blksize; /* Optimal size for I/O. */ + +@@ -104,12 +119,24 @@ + + __off64_t st_size; /* Size in bytes. */ + +- __time_t st_atime; /* Access time, seconds */ +- unsigned long int st_atime_usec; /* and microseconds. */ +- __time_t st_mtime; /* Modification time, seconds */ +- unsigned long int st_mtime_usec; /* and microseconds. */ +- __time_t st_ctime; /* Status change time, seconds */ +- unsigned long int st_ctime_usec; /* and microseconds. */ ++#ifdef __USE_MISC ++ /* Nanosecond resolution timestamps are stored in a format ++ equivalent to 'struct timespec'. This is the type used ++ whenever possible but the Unix namespace rules do not allow the ++ identifier 'timespec' to appear in the header. ++ Therefore we have to handle the use of this header in strictly ++ standard-compliant sources special. */ ++ struct timespec st_atim; /* Time of last access. */ ++ struct timespec st_mtim; /* Time of last modification. */ ++ struct timespec st_ctim; /* Time of last status change. */ ++#else ++ __time_t st_atime; /* Time of last access. */ ++ unsigned long int st_atimensec; /* Nscecs of last access. */ ++ __time_t st_mtime; /* Time of last modification. */ ++ unsigned long int st_mtimensec; /* Nsecs of last modification. */ ++ __time_t st_ctime; /* Time of last status change. */ ++ unsigned long int st_ctimensec; /* Nsecs of last status change. */ ++#endif + + __blksize_t st_blksize; /* Optimal size for I/O. */ + +@@ -127,7 +154,10 @@ + }; + #endif + +-#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */ ++/* Tell code we have these members. */ ++#define _STATBUF_ST_BLKSIZE ++/* Nanosecond resolution time values are supported. */ ++#define _STATBUF_ST_NSEC + + /* Encoding of the file mode. */ + --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-tls.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-tls.diff @@ -0,0 +1,17 @@ +For now errno is still a threadvar variable. + +--- + include/errno.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/include/errno.h ++++ b/include/errno.h +@@ -21,7 +21,7 @@ + + # include + +-# if USE___THREAD ++# if USE___THREAD && !defined(__GNU__) + # undef errno + # ifndef NOT_IN_libc + # define errno __libc_errno --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-unlockpt-chroot.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-unlockpt-chroot.diff @@ -0,0 +1,17 @@ +when e.g. using a chroot, the pty path is not so short. + +--- + sysdeps/unix/bsd/unlockpt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sysdeps/unix/bsd/unlockpt.c ++++ b/sysdeps/unix/bsd/unlockpt.c +@@ -28,7 +28,7 @@ + int + unlockpt (int fd) + { +- char buf[sizeof (_PATH_TTY) + 2]; ++ char buf[1024]; /* XXX */ + + /* BSD doesn't have a lock, but it does have `revoke'. */ + if (__ptsname_r (fd, buf, sizeof (buf))) --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-pthread_stubs.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-pthread_stubs.diff @@ -0,0 +1,36 @@ +This provides so-called "pthread stubs", which permit thread-safe libraries to +not have to explicitely link with libpthread, and just rely on libc providing +e.g. void pthread_mutex_lock/unlock. However, because of weak ELF symbols +rules, this will only work as long as we set _dl_dynamic_weak to 1 (see +local-dl-dynamic-weak.diff), so the plan is + +- once glibc has integrated Hurd's libpthread and thus is able to provide the +pthread stubs itself, this patch can be dropped. +- once we see that all packages got recompiled with that new glibc (i.e. +apt-cache rdepends libpthread-stubs0 is empty), the local-dl-dynamic-weak.diff +patch can be dropped. + +--- + Makerules | 3 ++- + sysdeps/mach/hurd/libc-ldscript | 1 + + 2 files changed, 3 insertions(+), 1 deletion(-) + +--- a/Makerules ++++ b/Makerules +@@ -979,7 +979,8 @@ + cat $<; \ + echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \ + '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\ +- ' AS_NEEDED (' $(slibdir)/$(rtld-installed-name) ') )' \ ++ ' AS_NEEDED (' $(slibdir)/$(rtld-installed-name) ') )' ;\ ++ echo 'INPUT ( AS_NEEDED ( -lpthread-stubs ) )' \ + ) > $@.new + mv -f $@.new $@ + +--- a/sysdeps/mach/hurd/libc-ldscript ++++ b/sysdeps/mach/hurd/libc-ldscript +@@ -4,3 +4,4 @@ + */ + + GROUP ( libcrt.a libmachuser.a libhurduser.a ) ++INPUT ( -lpthread-stubs ) --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-IPV6_PKTINFO.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-IPV6_PKTINFO.diff @@ -0,0 +1,29 @@ +Add more ipv6 macros. + +--- + bits/in.h | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/bits/in.h ++++ b/bits/in.h +@@ -50,7 +50,7 @@ + + /* IPV6 socket options. */ + #define IPV6_ADDRFORM 1 +-#define IPV6_RXINFO 2 ++#define IPV6_PKTINFO 2 + #define IPV6_HOPOPTS 3 + #define IPV6_DSTOPTS 4 + #define IPV6_RTHDR 5 +@@ -58,8 +58,9 @@ + #define IPV6_CHECKSUM 7 + #define IPV6_HOPLIMIT 8 + +-#define IPV6_TXINFO IPV6_RXINFO +-#define SCM_SRCINFO IPV6_TXINFO ++#define IPV6_RXINFO IPV6_PKTINFO ++#define IPV6_TXINFO IPV6_PKTINFO ++#define SCM_SRCINFO IPV6_PKTINFO + #define SCM_SRCRT IPV6_RXSRCRT + + #define IPV6_UNICAST_HOPS 16 --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-dup2-fix.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-dup2-fix.diff @@ -0,0 +1,42 @@ +Mutex locking fix. + +--- + sysdeps/mach/hurd/dup2.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +--- a/sysdeps/mach/hurd/dup2.c ++++ b/sysdeps/mach/hurd/dup2.c +@@ -68,15 +68,14 @@ + /* Get a hold of the destination descriptor. */ + struct hurd_fd *d2; + ++ __mutex_lock (&_hurd_dtable_lock); ++ + if (fd2 >= _hurd_dtablesize) + { + /* The table is not large enough to hold the destination + descriptor. Enlarge it as necessary to allocate this + descriptor. */ + __mutex_unlock (&_hurd_dtable_lock); +- /* We still hold FD1's lock, but this is safe because +- _hurd_alloc_fd will only examine the cells starting +- at FD2. */ + d2 = _hurd_alloc_fd (NULL, fd2); + if (d2) + __spin_unlock (&d2->port.lock); +@@ -96,6 +95,7 @@ + MACH_PORT_NULL); + } + } ++ __mutex_unlock (&_hurd_dtable_lock); + + if (d2 == NULL) + { +@@ -119,7 +119,6 @@ + _hurd_port_locked_set (&d2->port, port); /* Unlocks D2. */ + } + } +- __mutex_unlock (&_hurd_dtable_lock); + + _hurd_port_free (&d->port, &ulink, port); + if (ctty != MACH_PORT_NULL) --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-extern_inline.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-extern_inline.diff @@ -0,0 +1,721 @@ +Fix compilation of extern inlines with recent gcc. + +--- + hurd/hurd.h | 4 ++++ + hurd/hurd/fd.h | 20 ++++++++++++++++++++ + hurd/hurd/port.h | 31 +++++++++++++++++++++++++++++++ + hurd/hurd/signal.h | 16 +++++++++++++--- + hurd/hurd/threadvar.h | 5 +++++ + hurd/hurd/userlink.h | 14 ++++++++++++++ + mach/lock-intern.h | 20 ++++++++++++++++++++ + mach/mach/mig_support.h | 3 +++ + mach/spin-lock.c | 1 + + ports/sysdeps/mach/alpha/machine-lock.h | 12 ++++++++++++ + ports/sysdeps/mach/alpha/machine-sp.h | 4 ++++ + sysdeps/generic/machine-lock.h | 12 ++++++++++++ + sysdeps/generic/machine-sp.h | 4 ++++ + sysdeps/mach/i386/machine-lock.h | 12 ++++++++++++ + sysdeps/mach/powerpc/machine-lock.h | 12 ++++++++++++ + sysdeps/mach/powerpc/machine-sp.h | 4 ++++ + 16 files changed, 171 insertions(+), 3 deletions(-) + +--- a/hurd/hurd.h ++++ b/hurd/hurd.h +@@ -48,6 +48,9 @@ + #define _HURD_H_EXTERN_INLINE __extern_inline + #endif + ++int __hurd_fail (error_t err); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_H_EXTERN_INLINE int + __hurd_fail (error_t err) + { +@@ -77,6 +80,7 @@ + errno = err; + return -1; + } ++#endif + + /* Basic ports and info, initialized by startup. */ + +--- a/hurd/hurd/fd.h ++++ b/hurd/hurd/fd.h +@@ -60,6 +60,9 @@ + NULL. The cell is unlocked; when ready to use it, lock it and check for + it being unused. */ + ++struct hurd_fd *_hurd_fd_get (int fd); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_FD_H_EXTERN_INLINE struct hurd_fd * + _hurd_fd_get (int fd) + { +@@ -90,6 +93,7 @@ + + return descriptor; + } ++#endif + + + /* Evaluate EXPR with the variable `descriptor' bound to a pointer to the +@@ -137,6 +141,9 @@ + /* Check if ERR should generate a signal. + Returns the signal to take, or zero if none. */ + ++int _hurd_fd_error_signal (error_t err); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_FD_H_EXTERN_INLINE int + _hurd_fd_error_signal (error_t err) + { +@@ -153,11 +160,15 @@ + return 0; + } + } ++#endif + + /* Handle an error from an RPC on a file descriptor's port. You should + always use this function to handle errors from RPCs made on file + descriptor ports. Some errors are translated into signals. */ + ++error_t _hurd_fd_error (int fd, error_t err); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_FD_H_EXTERN_INLINE error_t + _hurd_fd_error (int fd, error_t err) + { +@@ -170,20 +181,28 @@ + } + return err; + } ++#endif + + /* Handle error code ERR from an RPC on file descriptor FD's port. + Set `errno' to the appropriate error code, and always return -1. */ + ++int __hurd_dfail (int fd, error_t err); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_FD_H_EXTERN_INLINE int + __hurd_dfail (int fd, error_t err) + { + errno = _hurd_fd_error (fd, err); + return -1; + } ++#endif + + /* Likewise, but do not raise SIGPIPE on EPIPE if flags contain + MSG_NOSIGNAL. */ + ++int __hurd_sockfail (int fd, int flags, error_t err); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_FD_H_EXTERN_INLINE int + __hurd_sockfail (int fd, int flags, error_t err) + { +@@ -192,6 +211,7 @@ + errno = err; + return -1; + } ++#endif + + /* Set up *FD to have PORT its server port, doing appropriate ctty magic. + Does no locking or unlocking. */ +--- a/hurd/hurd/port.h ++++ b/hurd/hurd/port.h +@@ -62,6 +62,9 @@ + + /* Initialize *PORT to INIT. */ + ++void _hurd_port_init (struct hurd_port *port, mach_port_t init); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE void + _hurd_port_init (struct hurd_port *port, mach_port_t init) + { +@@ -69,6 +72,7 @@ + port->users = NULL; + port->port = init; + } ++#endif + + + /* Cleanup function for non-local exits. */ +@@ -77,6 +81,11 @@ + /* Get a reference to *PORT, which is locked. + Pass return value and LINK to _hurd_port_free when done. */ + ++mach_port_t ++_hurd_port_locked_get (struct hurd_port *port, ++ struct hurd_userlink *link); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE mach_port_t + _hurd_port_locked_get (struct hurd_port *port, + struct hurd_userlink *link) +@@ -92,9 +101,15 @@ + __spin_unlock (&port->lock); + return result; + } ++#endif + + /* Same, but locks PORT first. */ + ++mach_port_t ++_hurd_port_get (struct hurd_port *port, ++ struct hurd_userlink *link); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE mach_port_t + _hurd_port_get (struct hurd_port *port, + struct hurd_userlink *link) +@@ -106,10 +121,17 @@ + HURD_CRITICAL_END; + return result; + } ++#endif + + + /* Free a reference gotten with `USED_PORT = _hurd_port_get (PORT, LINK);' */ + ++void ++_hurd_port_free (struct hurd_port *port, ++ struct hurd_userlink *link, ++ mach_port_t used_port); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE void + _hurd_port_free (struct hurd_port *port, + struct hurd_userlink *link, +@@ -129,11 +151,15 @@ + if (dealloc) + __mach_port_deallocate (__mach_task_self (), used_port); + } ++#endif + + + /* Set *PORT's port to NEWPORT. NEWPORT's reference is consumed by PORT->port. + PORT->lock is locked. */ + ++void _hurd_port_locked_set (struct hurd_port *port, mach_port_t newport); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE void + _hurd_port_locked_set (struct hurd_port *port, mach_port_t newport) + { +@@ -144,9 +170,13 @@ + if (old != MACH_PORT_NULL) + __mach_port_deallocate (__mach_task_self (), old); + } ++#endif + + /* Same, but locks PORT first. */ + ++void _hurd_port_set (struct hurd_port *port, mach_port_t newport); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE void + _hurd_port_set (struct hurd_port *port, mach_port_t newport) + { +@@ -155,6 +185,7 @@ + _hurd_port_locked_set (port, newport); + HURD_CRITICAL_END; + } ++#endif + + + #endif /* hurd/port.h */ +--- a/hurd/hurd/signal.h ++++ b/hurd/hurd/signal.h +@@ -131,15 +131,17 @@ + #define _HURD_SIGNAL_H_EXTERN_INLINE __extern_inline + #endif + ++#ifdef __USE_EXTERN_INLINES + _HURD_SIGNAL_H_EXTERN_INLINE struct hurd_sigstate * + _hurd_self_sigstate (void) + { +- struct hurd_sigstate **location = ++ struct hurd_sigstate **location = (struct hurd_sigstate **) + (void *) __hurd_threadvar_location (_HURD_THREADVAR_SIGSTATE); + if (*location == NULL) + *location = _hurd_thread_sigstate (__mach_thread_self ()); + return *location; + } ++#endif + + /* Thread listening on our message port; also called the "signal thread". */ + +@@ -166,10 +168,13 @@ + interrupted lest the signal handler try to take the same lock and + deadlock result. */ + ++void *_hurd_critical_section_lock (void); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_SIGNAL_H_EXTERN_INLINE void * + _hurd_critical_section_lock (void) + { +- struct hurd_sigstate **location = ++ struct hurd_sigstate **location = (struct hurd_sigstate **) + (void *) __hurd_threadvar_location (_HURD_THREADVAR_SIGSTATE); + struct hurd_sigstate *ss = *location; + if (ss == NULL) +@@ -191,7 +196,11 @@ + _hurd_critical_section_unlock to unlock it. */ + return ss; + } ++#endif + ++void _hurd_critical_section_unlock (void *our_lock); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_SIGNAL_H_EXTERN_INLINE void + _hurd_critical_section_unlock (void *our_lock) + { +@@ -201,7 +210,7 @@ + else + { + /* It was us who acquired the critical section lock. Unlock it. */ +- struct hurd_sigstate *ss = our_lock; ++ struct hurd_sigstate *ss = (struct hurd_sigstate *) our_lock; + sigset_t pending; + __spin_lock (&ss->lock); + __spin_unlock (&ss->critical_section_lock); +@@ -214,6 +223,7 @@ + __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ()); + } + } ++#endif + + /* Convenient macros for simple uses of critical sections. + These two must be used as a pair at the same C scoping level. */ +--- a/hurd/hurd/threadvar.h ++++ b/hurd/hurd/threadvar.h +@@ -82,6 +82,8 @@ + + extern unsigned long int *__hurd_threadvar_location_from_sp + (enum __hurd_threadvar_index __index, void *__sp); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_THREADVAR_H_EXTERN_INLINE unsigned long int * + __hurd_threadvar_location_from_sp (enum __hurd_threadvar_index __index, + void *__sp) +@@ -93,6 +95,7 @@ + : (unsigned long int *) ((__stack & __hurd_threadvar_stack_mask) + + __hurd_threadvar_stack_offset))[__index]; + } ++#endif + + #include /* Define __thread_stack_pointer. */ + +@@ -106,12 +109,14 @@ + the same stack frame by different threads. */ + __attribute__ ((__const__)); + ++#ifdef __USE_EXTERN_INLINES + _HURD_THREADVAR_H_EXTERN_INLINE unsigned long int * + __hurd_threadvar_location (enum __hurd_threadvar_index __index) + { + return __hurd_threadvar_location_from_sp (__index, + __thread_stack_pointer ()); + } ++#endif + + + #endif /* hurd/threadvar.h */ +--- a/hurd/hurd/userlink.h ++++ b/hurd/hurd/userlink.h +@@ -77,6 +77,11 @@ + + /* Attach LINK to the chain of users at *CHAINP. */ + ++void ++_hurd_userlink_link (struct hurd_userlink **chainp, ++ struct hurd_userlink *link); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_USERLINK_H_EXTERN_INLINE void + _hurd_userlink_link (struct hurd_userlink **chainp, + struct hurd_userlink *link) +@@ -97,11 +102,15 @@ + link->thread.prevp = thread_chainp; + *thread_chainp = link; + } ++#endif + + + /* Detach LINK from its chain. Returns nonzero iff this was the + last user of the resource and it should be deallocated. */ + ++int _hurd_userlink_unlink (struct hurd_userlink *link); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_USERLINK_H_EXTERN_INLINE int + _hurd_userlink_unlink (struct hurd_userlink *link) + { +@@ -124,6 +133,7 @@ + + return dealloc; + } ++#endif + + + /* Clear all users from *CHAINP. Call this when the resource *CHAINP +@@ -132,6 +142,9 @@ + value is zero, someone is still using the resource and they will + deallocate it when they are finished. */ + ++int _hurd_userlink_clear (struct hurd_userlink **chainp); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_USERLINK_H_EXTERN_INLINE int + _hurd_userlink_clear (struct hurd_userlink **chainp) + { +@@ -144,5 +157,6 @@ + *chainp = NULL; + return 0; + } ++#endif + + #endif /* hurd/userlink.h */ +--- a/mach/lock-intern.h ++++ b/mach/lock-intern.h +@@ -29,11 +29,15 @@ + + /* Initialize LOCK. */ + ++void __spin_lock_init (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_lock_init (__spin_lock_t *__lock) + { + *__lock = __SPIN_LOCK_INITIALIZER; + } ++#endif + + + /* Lock LOCK, blocking if we can't get it. */ +@@ -41,12 +45,16 @@ + + /* Lock the spin lock LOCK. */ + ++void __spin_lock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_lock (__spin_lock_t *__lock) + { + if (! __spin_try_lock (__lock)) + __spin_lock_solid (__lock); + } ++#endif + + /* Name space-clean internal interface to mutex locks. + +@@ -71,27 +79,39 @@ + + /* Lock the mutex lock LOCK. */ + ++void __mutex_lock (void *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __mutex_lock (void *__lock) + { + if (! __spin_try_lock ((__spin_lock_t *) __lock)) + __mutex_lock_solid (__lock); + } ++#endif + + /* Unlock the mutex lock LOCK. */ + ++void __mutex_unlock (void *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __mutex_unlock (void *__lock) + { + __spin_unlock ((__spin_lock_t *) __lock); + __mutex_unlock_solid (__lock); + } ++#endif ++ + ++int __mutex_trylock (void *__lock); + ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __mutex_trylock (void *__lock) + { + return __spin_try_lock ((__spin_lock_t *) __lock); + } ++#endif + + #endif /* lock-intern.h */ +--- a/mach/mach/mig_support.h ++++ b/mach/mach/mig_support.h +@@ -67,6 +67,8 @@ + /* Idiocy support function. */ + extern vm_size_t mig_strncpy (char *__dst, const char *__src, vm_size_t __len); + extern vm_size_t __mig_strncpy (char *__dst, const char *__src, vm_size_t); ++ ++#ifdef __USE_EXTERN_INLINES + __extern_inline vm_size_t + __mig_strncpy (char *__dst, const char *__src, vm_size_t __len) + { +@@ -77,6 +79,7 @@ + { + return __mig_strncpy (__dst, __src, __len); + } ++#endif + + + +--- a/sysdeps/generic/machine-lock.h ++++ b/sysdeps/generic/machine-lock.h +@@ -35,14 +35,21 @@ + + /* Unlock LOCK. */ + ++void __spin_unlock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_unlock (__spin_lock_t *__lock) + { + *__lock = 0; + } ++#endif + + /* Try to lock LOCK; return nonzero if we locked it, zero if another has. */ + ++int __spin_try_lock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_try_lock (__spin_lock_t *__lock) + { +@@ -51,14 +58,19 @@ + *__lock = 1; + return 1; + } ++#endif + + /* Return nonzero if LOCK is locked. */ + ++int __spin_lock_locked (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_lock_locked (__spin_lock_t *__lock) + { + return *__lock != 0; + } ++#endif + + + #endif /* machine-lock.h */ +--- a/sysdeps/generic/machine-sp.h ++++ b/sysdeps/generic/machine-sp.h +@@ -26,11 +26,15 @@ + #define _EXTERN_INLINE __extern_inline + #endif + ++void * __thread_stack_pointer (void); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void * + __thread_stack_pointer (void) + { + register void *__sp__ ("{STACK-POINTER}"); + return __sp__; + } ++#endif + + #endif /* machine-sp.h */ +--- a/ports/sysdeps/mach/alpha/machine-lock.h ++++ b/ports/sysdeps/mach/alpha/machine-lock.h +@@ -35,15 +35,22 @@ + + /* Unlock LOCK. */ + ++void __spin_unlock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_unlock (__spin_lock_t *__lock) + { + __asm__ __volatile__ ("mb; stq $31, %0; mb" + : "=m" (__lock)); + } ++#endif + + /* Try to lock LOCK; return nonzero if we locked it, zero if another has. */ + ++int __spin_try_lock (register __spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_try_lock (register __spin_lock_t *__lock) + { +@@ -67,14 +74,19 @@ + /* RTN is now nonzero; we have the lock. */ + return __rtn; + } ++#endif + + /* Return nonzero if LOCK is locked. */ + ++int __spin_lock_locked (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_lock_locked (__spin_lock_t *__lock) + { + return *__lock != 0; + } ++#endif + + + #endif /* machine-lock.h */ +--- a/ports/sysdeps/mach/alpha/machine-sp.h ++++ b/ports/sysdeps/mach/alpha/machine-sp.h +@@ -26,11 +26,15 @@ + #define _EXTERN_INLINE __extern_inline + #endif + ++void * __thread_stack_pointer (void); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void * + __thread_stack_pointer (void) + { + register void *__sp__ __asm__ ("$30"); + return __sp__; + } ++#endif + + #endif /* machine-sp.h */ +--- a/sysdeps/mach/i386/machine-lock.h ++++ b/sysdeps/mach/i386/machine-lock.h +@@ -35,6 +35,9 @@ + + /* Unlock LOCK. */ + ++void __spin_unlock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_unlock (__spin_lock_t *__lock) + { +@@ -43,9 +46,13 @@ + : "=&r" (__unlocked), "=m" (*__lock) : "0" (0) + : "memory"); + } ++#endif + + /* Try to lock LOCK; return nonzero if we locked it, zero if another has. */ + ++int __spin_try_lock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_try_lock (__spin_lock_t *__lock) + { +@@ -55,14 +62,19 @@ + : "memory"); + return !__locked; + } ++#endif + + /* Return nonzero if LOCK is locked. */ + ++int __spin_lock_locked (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_lock_locked (__spin_lock_t *__lock) + { + return *__lock != 0; + } ++#endif + + + #endif /* machine-lock.h */ +--- a/sysdeps/mach/powerpc/machine-lock.h ++++ b/sysdeps/mach/powerpc/machine-lock.h +@@ -35,6 +35,9 @@ + + /* Unlock LOCK. */ + ++void __spin_unlock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_unlock (__spin_lock_t *__lock) + { +@@ -45,9 +48,13 @@ + bne- 0b\n\ + " : "=&r" (__locked) : "r" (__lock), "r" (0) : "cr0"); + } ++#endif + + /* Try to lock LOCK; return nonzero if we locked it, zero if another has. */ + ++int __spin_try_lock (register __spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_try_lock (register __spin_lock_t *__lock) + { +@@ -59,9 +66,13 @@ + " : "=&r" (__rtn) : "r" (__lock), "r" (1) : "cr0"); + return !__rtn; + } ++#endif + + /* Return nonzero if LOCK is locked. */ + ++int __spin_lock_locked (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_lock_locked (__spin_lock_t *__lock) + { +@@ -73,6 +84,7 @@ + " : "=&r" (__rtn) : "r" (__lock) : "cr0"); + return __rtn; + } ++#endif + + + #endif /* machine-lock.h */ +--- a/sysdeps/mach/powerpc/machine-sp.h ++++ b/sysdeps/mach/powerpc/machine-sp.h +@@ -31,6 +31,9 @@ + # endif + #endif + ++void * __thread_stack_pointer (void); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void * + __thread_stack_pointer (void) + { +@@ -38,5 +41,6 @@ + __asm__ ("mr %0, 1" : "=r" (__sp__)); + return __sp__; + } ++#endif + + #endif /* machine-sp.h */ +--- a/mach/spin-lock.c ++++ b/mach/spin-lock.c +@@ -1,3 +1,4 @@ ++#define __USE_EXTERN_INLINES 1 + #define _EXTERN_INLINE /* Empty to define the real functions. */ + #include "spin-lock.h" + --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-ttyname.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-ttyname.diff @@ -0,0 +1,52 @@ +2010-06-06 Samuel Thibault + + * sysdeps/mach/hurd/ttyname.c (ttyname): Replace MIG_BAD_ID and + EOPNOTSUPP errors with ENOTTY. + * sysdeps/mach/hurd/ttyname_r.c (__ttyname_r): Replace MIG_BAD_ID and + EOPNOTSUPP errors with ENOTTY. + +--- + ttyname.c | 8 ++++++-- + ttyname_r.c | 8 ++++++-- + 2 files changed, 12 insertions(+), 4 deletions(-) + +diff --git a/sysdeps/mach/hurd/ttyname.c b/sysdeps/mach/hurd/ttyname.c +index 927851e..6e2e5bf 100644 +--- a/sysdeps/mach/hurd/ttyname.c ++++ b/sysdeps/mach/hurd/ttyname.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc. ++/* Copyright (C) 1994, 1997, 2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -32,7 +32,11 @@ ttyname (int fd) + + nodename[0] = '\0'; + if (err = HURD_DPORT_USE (fd, __term_get_nodename (port, nodename))) +- return __hurd_dfail (fd, err), NULL; ++ { ++ if (err == MIG_BAD_ID || err == EOPNOTSUPP) ++ err = ENOTTY; ++ return __hurd_dfail (fd, err), NULL; ++ } + + return nodename; + } +diff --git a/sysdeps/mach/hurd/ttyname_r.c b/sysdeps/mach/hurd/ttyname_r.c +index 8896252..5f6c9c3 100644 +--- a/sysdeps/mach/hurd/ttyname_r.c ++++ b/sysdeps/mach/hurd/ttyname_r.c +@@ -34,7 +34,11 @@ __ttyname_r (int fd, char *buf, size_t buflen) + + nodename[0] = '\0'; + if (err = HURD_DPORT_USE (fd, __term_get_nodename (port, nodename))) +- return __hurd_dfail (fd, err), errno; ++ { ++ if (err == MIG_BAD_ID || err == EOPNOTSUPP) ++ err = ENOTTY; ++ return __hurd_dfail (fd, err), errno; ++ } + + len = strlen (nodename) + 1; + if (len > buflen) --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-thread-cancel.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-thread-cancel.diff @@ -0,0 +1,16 @@ +The critical section lock _can_ be held in that place. + +--- + hurd/thread-cancel.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/hurd/thread-cancel.c ++++ b/hurd/thread-cancel.c +@@ -52,7 +52,6 @@ + return 0; + } + +- assert (! __spin_lock_locked (&ss->critical_section_lock)); + __spin_lock (&ss->critical_section_lock); + __spin_lock (&ss->lock); + err = __thread_suspend (thread); --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-disable-ioctls.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-disable-ioctls.diff @@ -0,0 +1,37 @@ +struct ortentry and struct ifalias req are actually not defined +struct arpreq is defined, but can not be passed to an ioctl on the Hurd. + +--- + sysdeps/mach/hurd/bits/ioctls.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/sysdeps/mach/hurd/bits/ioctls.h ++++ b/sysdeps/mach/hurd/bits/ioctls.h +@@ -273,8 +273,10 @@ + #define SIOCSPGRP _IOW('s', 8, int) /* set process group */ + #define SIOCGPGRP _IOR('s', 9, int) /* get process group */ + ++#if 0 + #define SIOCADDRT _IOW('r', 10, struct ortentry) /* add route */ + #define SIOCDELRT _IOW('r', 11, struct ortentry) /* delete route */ ++#endif + + #define SIOCSIFADDR _IOW('i', 12, struct ifreq) /* set ifnet address */ + #define OSIOCGIFADDR _IOWR('i',13, struct ifreq) /* get ifnet address */ +@@ -296,12 +298,16 @@ + #define SIOCGIFMETRIC _IOWR('i',23, struct ifreq_int) /* get IF metric */ + #define SIOCSIFMETRIC _IOW('i',24, struct ifreq_int) /* set IF metric */ + #define SIOCDIFADDR _IOW('i',25, struct ifreq) /* delete IF addr */ ++#if 0 + #define SIOCAIFADDR _IOW('i',26, struct ifaliasreq) /* add/chg IF alias */ ++#endif + ++#if 0 + #define SIOCSARP _IOW('i', 30, struct arpreq) /* set arp entry */ + #define OSIOCGARP _IOWR('i',31, struct arpreq) /* get arp entry */ + #define SIOCGARP _IOWR('i',38, struct arpreq) /* get arp entry */ + #define SIOCDARP _IOW('i', 32, struct arpreq) /* delete arp entry */ ++#endif + + #define SIOCGIFMTU _IOWR('i', 51, struct ifreq_int)/* get IF mtu */ + #define SIOCSIFMTU _IOW('i', 52, struct ifreq_int) /* set IF mtu */ --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-posix_opt.h.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-posix_opt.h.diff @@ -0,0 +1,120 @@ +2010-01-10 Samuel Thibault + + * posix/tst-sysconf.c (posix_options): Only use + _POSIX_PRIORITIZED_IO, _POSIX_PRIORITY_SCHEDULING, and + _POSIX_SYNCHRONIZED_IO when they are defined + * sysdeps/mach/hurd/bits/posix_opt.h: + (_POSIX_PRIORITY_SCHEDULING): Undefine macro. + (_XOPEN_REALTIME): Undefine macro. + (_XOPEN_REALTIME_THREADS): Undefine macro. + (_XOPEN_SHM): Undefine macro. + [__USE_XOPEN2K8] (_POSIX_THREAD_ROBUST_PRIO_INHERIT): Define + macro to -1. + [__USE_XOPEN2K8] (_POSIX_THREAD_ROBUST_PRIO_PROTECT): Define + macro to -1. + (_POSIX_ASYNC_IO): Undefine macro. + (_POSIX_PRIORITIZED_IO): Undefine macro. + (_POSIX_SPIN_LOCKS): Define macro to -1. + +--- + posix/tst-sysconf.c | 6 ++++++ + sysdeps/mach/hurd/bits/posix_opt.h | 28 +++++++++++++++++++++++----- + 2 files changed, 29 insertions(+), 5 deletions(-) + +--- a/posix/tst-sysconf.c ++++ b/posix/tst-sysconf.c +@@ -29,8 +29,12 @@ + N (MEMORY_PROTECTION), + N (MESSAGE_PASSING), + N (MONOTONIC_CLOCK), ++#ifdef _POSIX_PRIORITIZED_IO + N (PRIORITIZED_IO), ++#endif ++#ifdef _POSIX_PRIORITY_SCHEDULING + N (PRIORITY_SCHEDULING), ++#endif + N (RAW_SOCKETS), + N (READER_WRITER_LOCKS), + N (REALTIME_SIGNALS), +@@ -42,7 +46,9 @@ + N (SPAWN), + N (SPIN_LOCKS), + N (SPORADIC_SERVER), ++#ifdef _POSIX_SYNCHRONIZED_IO + N (SYNCHRONIZED_IO), ++#endif + N (THREAD_ATTR_STACKADDR), + N (THREAD_ATTR_STACKSIZE), + N (THREAD_CPUTIME), +--- a/sysdeps/mach/hurd/bits/posix_opt.h ++++ b/sysdeps/mach/hurd/bits/posix_opt.h +@@ -31,6 +31,9 @@ + /* Processes have a saved set-user-ID and a saved set-group-ID. */ + #define _POSIX_SAVED_IDS 1 + ++/* Priority scheduling is not supported. */ ++#undef _POSIX_PRIORITY_SCHEDULING ++ + /* Synchronizing file data is supported, but msync is missing. */ + #undef _POSIX_SYNCHRONIZED_IO + +@@ -60,6 +63,14 @@ + #undef _POSIX_NO_TRUNC /* Overlong file names get error? */ + #undef _POSIX_SYNC_IO /* File supports O_SYNC et al? */ + ++/* X/Open realtime support is not supported. */ ++#undef _XOPEN_REALTIME ++ ++/* X/Open thread realtime support is not supported. */ ++#undef _XOPEN_REALTIME_THREADS ++ ++/* XPG4.2 shared memory is not supported. */ ++#undef _XOPEN_SHM + + /* We do not have the POSIX threads interface. */ + #define _POSIX_THREADS -1 +@@ -72,6 +83,12 @@ + #define _POSIX_THREAD_PRIORITY_SCHEDULING -1 + #define _POSIX_THREAD_ATTR_STACKSIZE -1 + #define _POSIX_THREAD_ATTR_STACKADDR -1 ++#define _POSIX_THREAD_PRIO_INHERIT -1 ++#define _POSIX_THREAD_PRIO_PROTECT -1 ++#ifdef __USE_XOPEN2K8 ++# define _POSIX_THREAD_ROBUST_PRIO_INHERIT -1 ++# define _POSIX_THREAD_ROBUST_PRIO_PROTECT -1 ++#endif + #define _POSIX_SEMAPHORES -1 + + /* Real-time signals are not yet supported. */ +@@ -79,8 +96,11 @@ + + /* Asynchronous I/O might supported with the existing ABI. */ + #define _POSIX_ASYNCHRONOUS_IO 0 ++#undef _POSIX_ASYNC_IO + /* Alternative name for Unix98. */ + #define _LFS_ASYNCHRONOUS_IO _POSIX_ASYNCHRONOUS_IO ++/* Support for prioritization is not available. */ ++#undef _POSIX_PRIORITIZED_IO + + /* The LFS support in asynchronous I/O is also available. */ + #define _LFS64_ASYNCHRONOUS_IO _POSIX_ASYNCHRONOUS_IO +@@ -111,6 +131,9 @@ + /* We cannot support the Timeouts option without _POSIX_THREADS. */ + #define _POSIX_TIMEOUTS -1 + ++/* We do not support spinlocks. */ ++#define _POSIX_SPIN_LOCKS -1 ++ + /* The `spawn' function family is supported. */ + #define _POSIX_SPAWN 200809L + +@@ -157,9 +180,4 @@ + /* Typed memory objects are not available. */ + #define _POSIX_TYPED_MEMORY_OBJECTS -1 + +-/* No support for priority inheritance or protection so far. */ +-#define _POSIX_THREAD_PRIO_INHERIT -1 +-#define _POSIX_THREAD_PRIO_PROTECT -1 +- +- + #endif /* bits/posix_opt.h */ --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-ptr-mangle.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-ptr-mangle.diff @@ -0,0 +1,27 @@ +2007-11-12 Aurelien Jarno + Thomas Schwinge + + * sysdeps/mach/i386/sysdep.h (PTR_MANGLE, PTR_DEMANGLE): Define. + +--- + sysdeps/mach/i386/sysdep.h | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/sysdeps/mach/i386/sysdep.h ++++ b/sysdeps/mach/i386/sysdep.h +@@ -55,6 +55,15 @@ + + #define STACK_GROWTH_DOWN + ++/* Pointer mangling is not yet supported for Hurd. */ ++#ifdef __ASSEMBLER__ ++#define PTR_MANGLE(var) ++#define PTR_DEMANGLE(var) ++#else ++#define PTR_MANGLE(var) (void) (var) ++#define PTR_DEMANGLE(var) (void) (var) ++#endif ++ + /* Get the machine-independent Mach definitions. */ + #include + --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-tls-support.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-tls-support.diff @@ -0,0 +1,541 @@ +TLS support + +--- + csu/libc-start.c | 2 + + hurd/hurdfault.c | 2 + + hurd/hurdsig.c | 4 +- + mach/mach.h | 3 + + mach/setup-thread.c | 30 +++++++++++++++- + ports/sysdeps/mach/alpha/thread_state.h | 1 + sysdeps/generic/thread_state.h | 1 + sysdeps/mach/hurd/bits/libc-lock.h | 3 + + sysdeps/mach/hurd/bits/libc-tsd.h | 35 ------------------ + sysdeps/mach/hurd/fork.c | 7 +++ + sysdeps/mach/hurd/i386/init-first.c | 60 +++++++++++++++++++------------- + sysdeps/mach/hurd/i386/tls.h | 55 ++++++++++++++++++++++++----- + sysdeps/mach/hurd/i386/tlsdesc.sym | 17 +++++++++ + sysdeps/mach/hurd/i386/trampoline.c | 2 - + sysdeps/mach/hurd/profil.c | 2 + + sysdeps/mach/hurd/setitimer.c | 3 + + sysdeps/mach/hurd/tls.h | 2 + + sysdeps/mach/i386/thread_state.h | 11 +++++ + sysdeps/mach/powerpc/thread_state.h | 1 + sysdeps/mach/thread_state.h | 3 + + 20 files changed, 169 insertions(+), 75 deletions(-) + +--- a/csu/libc-start.c ++++ b/csu/libc-start.c +@@ -140,10 +140,12 @@ + /* Performe IREL{,A} relocations. */ + __libc_csu_irel (); + ++#ifndef __GNU__ + /* Initialize the thread library at least a bit since the libgcc + functions are using thread functions if these are available and + we need to setup errno. */ + __pthread_initialize_minimal (); ++#endif + + /* Set up the stack checker's canary. */ + uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random); +--- a/hurd/hurdfault.c ++++ b/hurd/hurdfault.c +@@ -206,6 +206,8 @@ + /* This state will be restored when we fault. + It runs the function above. */ + memset (&state, 0, sizeof state); ++ ++ MACHINE_THREAD_STATE_FIX_NEW (&state); + MACHINE_THREAD_STATE_SET_PC (&state, faulted); + MACHINE_THREAD_STATE_SET_SP (&state, faultstack, sizeof faultstack); + +--- a/hurd/hurdsig.c ++++ b/hurd/hurdsig.c +@@ -1268,6 +1268,8 @@ + (vm_address_t *) &__hurd_sigthread_stack_base, + &stacksize); + assert_perror (err); ++ err = __mach_setup_tls (_hurd_msgport_thread); ++ assert_perror (err); + + __hurd_sigthread_stack_end = __hurd_sigthread_stack_base + stacksize; + __hurd_sigthread_variables = +@@ -1276,8 +1278,6 @@ + __libc_fatal ("hurd: Can't allocate threadvars for signal thread\n"); + memset (__hurd_sigthread_variables, 0, + __hurd_threadvar_max * sizeof (unsigned long int)); +- __hurd_sigthread_variables[_HURD_THREADVAR_LOCALE] +- = (unsigned long int) &_nl_global_locale; + + /* Reinitialize the MiG support routines so they will use a per-thread + variable for the cached reply port. */ +--- a/mach/mach.h ++++ b/mach/mach.h +@@ -101,5 +101,8 @@ + vm_address_t *stack_base, + vm_size_t *stack_size); + ++/* Give THREAD a TLS area. */ ++kern_return_t __mach_setup_tls (thread_t thread); ++kern_return_t mach_setup_tls (thread_t thread); + + #endif /* mach.h */ +--- a/mach/setup-thread.c ++++ b/mach/setup-thread.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include "sysdep.h" /* Defines stack direction. */ + + #define STACK_SIZE (16 * 1024 * 1024) /* 16MB, arbitrary. */ +@@ -73,8 +74,35 @@ + if (error = __vm_protect (task, stack, __vm_page_size, 0, VM_PROT_NONE)) + return error; + +- return __thread_set_state (thread, MACHINE_THREAD_STATE_FLAVOR, ++ return __thread_set_state (thread, MACHINE_NEW_THREAD_STATE_FLAVOR, + (natural_t *) &ts, tssize); + } + + weak_alias (__mach_setup_thread, mach_setup_thread) ++ ++/* Give THREAD a TLS area. */ ++kern_return_t ++__mach_setup_tls (thread_t thread) ++{ ++ kern_return_t error; ++ struct machine_thread_state ts; ++ mach_msg_type_number_t tssize = MACHINE_THREAD_STATE_COUNT; ++ tcbhead_t *tcb; ++ ++ if (error = __thread_get_state (thread, MACHINE_THREAD_STATE_FLAVOR, ++ (natural_t *) &ts, &tssize)) ++ return error; ++ assert (tssize == MACHINE_THREAD_STATE_COUNT); ++ ++ tcb = _dl_allocate_tls(NULL); ++ if (!tcb) ++ return KERN_RESOURCE_SHORTAGE; ++ ++ _hurd_tls_new(thread, &ts, tcb); ++ ++ error = __thread_set_state (thread, MACHINE_THREAD_STATE_FLAVOR, ++ (natural_t *) &ts, tssize); ++ return error; ++} ++ ++weak_alias (__mach_setup_tls, mach_setup_tls) +--- a/sysdeps/generic/thread_state.h ++++ b/sysdeps/generic/thread_state.h +@@ -23,6 +23,7 @@ + + /* Replace with "i386" or "mips" or whatever. */ + ++#define MACHINE_NEW_THREAD_STATE_FLAVOR _NEW_THREAD_STATE + #define MACHINE_THREAD_STATE_FLAVOR _THREAD_STATE + #define MACHINE_THREAD_STATE_COUNT _THREAD_STATE_COUNT + +--- a/ports/sysdeps/mach/alpha/thread_state.h ++++ b/ports/sysdeps/mach/alpha/thread_state.h +@@ -19,6 +19,7 @@ + + #include + ++#define MACHINE_NEW_THREAD_STATE_FLAVOR ALPHA_THREAD_STATE + #define MACHINE_THREAD_STATE_FLAVOR ALPHA_THREAD_STATE + #define MACHINE_THREAD_STATE_COUNT ALPHA_THREAD_STATE_COUNT + +--- a/sysdeps/mach/hurd/bits/libc-tsd.h ++++ /dev/null +@@ -1,35 +0,0 @@ +-/* libc-internal interface for thread-specific data. Hurd version. +- Copyright (C) 1998,2002,2008 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#ifndef _BITS_LIBC_TSD_H +-#define _BITS_LIBC_TSD_H 1 +- +-#include +- +-#define __libc_tsd_define(CLASS, TYPE, KEY) /* nothing, always have threadvars */ +- +-#define __libc_tsd_address(TYPE, KEY) \ +- ((TYPE *) __hurd_threadvar_location (_HURD_THREADVAR_##KEY)) +- +-#define __libc_tsd_get(TYPE, KEY) \ +- (*__libc_tsd_address (TYPE, KEY)) +-#define __libc_tsd_set(TYPE, KEY, VALUE) \ +- (*__libc_tsd_address (TYPE, KEY) = (VALUE)) +- +-#endif /* bits/libc-tsd.h */ +--- a/sysdeps/mach/hurd/fork.c ++++ b/sysdeps/mach/hurd/fork.c +@@ -523,6 +523,11 @@ + #endif + MACHINE_THREAD_STATE_SET_PC (&state, + (unsigned long int) _hurd_msgport_receive); ++ ++ /* Do special thread setup for TLS if needed. */ ++ if (err = _hurd_tls_fork (sigthread, _hurd_msgport_thread, &state)) ++ LOSE; ++ + if (err = __thread_set_state (sigthread, MACHINE_THREAD_STATE_FLAVOR, + (natural_t *) &state, statecount)) + LOSE; +@@ -533,7 +538,7 @@ + _hurd_longjmp_thread_state (&state, env, 1); + + /* Do special thread setup for TLS if needed. */ +- if (err = _hurd_tls_fork (thread, &state)) ++ if (err = _hurd_tls_fork (thread, __mach_thread_self (), &state)) + LOSE; + + if (err = __thread_set_state (thread, MACHINE_THREAD_STATE_FLAVOR, +--- a/sysdeps/mach/hurd/i386/init-first.c ++++ b/sysdeps/mach/hurd/i386/init-first.c +@@ -104,10 +104,6 @@ + char **argv = &arg0; + char **envp = &argv[argc + 1]; + struct hurd_startup_data *d; +-#ifndef SHARED +- extern ElfW(Phdr) *_dl_phdr; +- extern size_t _dl_phnum; +-#endif + + while (*envp) + ++envp; +@@ -118,27 +114,9 @@ + data block; the argument strings start there. */ + if ((void *) d == argv[0]) + { +-#ifndef SHARED +- /* We may need to see our own phdrs, e.g. for TLS setup. +- Try the usual kludge to find the headers without help from +- the exec server. */ +- extern const void _start; +- const ElfW(Ehdr) *const ehdr = &_start; +- _dl_phdr = (ElfW(Phdr) *) ((const void *) ehdr + ehdr->e_phoff); +- _dl_phnum = ehdr->e_phnum; +- assert (ehdr->e_phentsize == sizeof (ElfW(Phdr))); +-#endif + return; + } + +-#ifndef SHARED +- __libc_enable_secure = d->flags & EXEC_SECURE; +- +- _dl_phdr = (ElfW(Phdr) *) d->phdr; +- _dl_phnum = d->phdrsz / sizeof (ElfW(Phdr)); +- assert (d->phdrsz % sizeof (ElfW(Phdr)) == 0); +-#endif +- + _hurd_init_dtable = d->dtable; + _hurd_init_dtablesize = d->dtablesize; + +@@ -172,13 +150,16 @@ + char **envp = &argv[argc + 1]; + struct hurd_startup_data *d; + unsigned long int threadvars[_HURD_THREADVAR_MAX]; ++#ifndef SHARED ++ extern ElfW(Phdr) *_dl_phdr; ++ extern size_t _dl_phnum; ++#endif + + /* Provide temporary storage for thread-specific variables on the + startup stack so the cthreads initialization code can use them + for malloc et al, or so we can use malloc below for the real + threadvars array. */ + memset (threadvars, 0, sizeof threadvars); +- threadvars[_HURD_THREADVAR_LOCALE] = (unsigned long int) &_nl_global_locale; + __hurd_threadvar_stack_offset = (unsigned long int) threadvars; + + /* Since the cthreads initialization code uses malloc, and the +@@ -192,6 +173,39 @@ + ++envp; + d = (void *) ++envp; + ++ /* If we are the bootstrap task started by the kernel, ++ then after the environment pointers there is no Hurd ++ data block; the argument strings start there. */ ++ if ((void *) d == argv[0]) ++ { ++#ifndef SHARED ++ /* We may need to see our own phdrs, e.g. for TLS setup. ++ Try the usual kludge to find the headers without help from ++ the exec server. */ ++ extern const void __executable_start; ++ const ElfW(Ehdr) *const ehdr = &__executable_start; ++ _dl_phdr = (ElfW(Phdr) *) ((const void *) ehdr + ehdr->e_phoff); ++ _dl_phnum = ehdr->e_phnum; ++ assert (ehdr->e_phentsize == sizeof (ElfW(Phdr))); ++#endif ++ } ++ else ++ { ++#ifndef SHARED ++ __libc_enable_secure = d->flags & EXEC_SECURE; ++ ++ _dl_phdr = (ElfW(Phdr) *) d->phdr; ++ _dl_phnum = d->phdrsz / sizeof (ElfW(Phdr)); ++ assert (d->phdrsz % sizeof (ElfW(Phdr)) == 0); ++#endif ++ } ++ ++#ifndef SHARED ++ /* We need to setup TLS before starting sigthread */ ++ extern void __pthread_initialize_minimal(void); ++ __pthread_initialize_minimal(); ++#endif ++ + /* The user might have defined a value for this, to get more variables. + Otherwise it will be zero on startup. We must make sure it is set + properly before before cthreads initialization, so cthreads can know +--- a/sysdeps/mach/hurd/i386/tls.h ++++ b/sysdeps/mach/hurd/i386/tls.h +@@ -31,6 +31,8 @@ + + # ifndef __ASSEMBLER__ + ++#include ++ + /* Use i386-specific RPCs to arrange that %gs segment register prefix + addresses the TCB in each thread. */ + # include +@@ -72,7 +74,7 @@ + + /* Get the first available selector. */ + int sel = -1; +- error_t err = __i386_set_gdt (tcb->self, &sel, desc); ++ kern_return_t err = __i386_set_gdt (tcb->self, &sel, desc); + if (err == MIG_BAD_ID) + { + /* Old kernel, use a per-thread LDT. */ +@@ -96,16 +98,16 @@ + /* Fetch the selector set by the first call. */ + int sel; + asm ("mov %%gs, %w0" : "=q" (sel) : "0" (0)); +- if (__builtin_expect (sel, 0x50) & 4) /* LDT selector */ ++ if (__builtin_expect (sel, 0x48) & 4) /* LDT selector */ + { +- error_t err = __i386_set_ldt (tcb->self, sel, &desc, 1); ++ kern_return_t err = __i386_set_ldt (tcb->self, sel, &desc, 1); + assert_perror (err); + if (err) + return "i386_set_ldt failed"; + } + else + { +- error_t err = __i386_set_gdt (tcb->self, &sel, desc); ++ kern_return_t err = __i386_set_gdt (tcb->self, &sel, desc); + assert_perror (err); + if (err) + return "i386_set_gdt failed"; +@@ -142,9 +144,40 @@ + + #include + +-/* Set up TLS in the new thread of a fork child, copying from our own. */ +-static inline error_t __attribute__ ((unused)) +-_hurd_tls_fork (thread_t child, struct i386_thread_state *state) ++/* Set up TLS in the new thread of a fork child, copying from the original. */ ++static inline kern_return_t __attribute__ ((unused)) ++_hurd_tls_fork (thread_t child, thread_t orig, struct i386_thread_state *state) ++{ ++ /* Fetch the selector set by _hurd_tls_init. */ ++ int sel; ++ asm ("mov %%gs, %w0" : "=q" (sel) : "0" (0)); ++ if (sel == state->ds) /* _hurd_tls_init was never called. */ ++ return 0; ++ ++ struct descriptor desc, *_desc = &desc; ++ int err; ++ unsigned int count; ++ ++ if (__builtin_expect (sel, 0x48) & 4) /* LDT selector */ ++ err = __i386_get_ldt (orig, sel, 1, &_desc, &count); ++ else ++ err = __i386_get_gdt (orig, sel, &desc); ++ ++ assert_perror (err); ++ if (err) ++ return err; ++ ++ if (__builtin_expect (sel, 0x48) & 4) /* LDT selector */ ++ err = __i386_set_ldt (child, sel, &desc, 1); ++ else ++ err = __i386_set_gdt (child, &sel, desc); ++ ++ state->gs = sel; ++ return err; ++} ++ ++static inline kern_return_t __attribute__ ((unused)) ++_hurd_tls_new (thread_t child, struct i386_thread_state *state, tcbhead_t *tcb) + { + /* Fetch the selector set by _hurd_tls_init. */ + int sel; +@@ -152,11 +185,13 @@ + if (sel == state->ds) /* _hurd_tls_init was never called. */ + return 0; + +- tcbhead_t *const tcb = THREAD_SELF; + HURD_TLS_DESC_DECL (desc, tcb); +- error_t err; ++ kern_return_t err; ++ ++ tcb->tcb = tcb; ++ tcb->self = child; + +- if (__builtin_expect (sel, 0x50) & 4) /* LDT selector */ ++ if (__builtin_expect (sel, 0x48) & 4) /* LDT selector */ + err = __i386_set_ldt (child, sel, &desc, 1); + else + err = __i386_set_gdt (child, &sel, desc); +--- a/sysdeps/mach/hurd/i386/trampoline.c ++++ b/sysdeps/mach/hurd/i386/trampoline.c +@@ -65,7 +65,7 @@ + sizeof (state->basic)); + memcpy (&state->fpu, &ss->context->sc_i386_float_state, + sizeof (state->fpu)); +- state->set |= (1 << i386_THREAD_STATE) | (1 << i386_FLOAT_STATE); ++ state->set |= (1 << i386_REGS_SEGS_STATE) | (1 << i386_FLOAT_STATE); + } + } + +--- a/sysdeps/mach/hurd/profil.c ++++ b/sysdeps/mach/hurd/profil.c +@@ -69,6 +69,8 @@ + if (! err) + err = __mach_setup_thread (__mach_task_self (), profile_thread, + &profile_waiter, NULL, NULL); ++ if (! err) ++ err = __mach_setup_tls(profile_thread); + } + else + err = 0; +--- a/sysdeps/mach/hurd/setitimer.c ++++ b/sysdeps/mach/hurd/setitimer.c +@@ -223,11 +223,12 @@ + return __hurd_fail (err); + _hurd_itimer_thread_stack_base = 0; /* Anywhere. */ + _hurd_itimer_thread_stack_size = __vm_page_size; /* Small stack. */ +- if (err = __mach_setup_thread (__mach_task_self (), ++ if ((err = __mach_setup_thread (__mach_task_self (), + _hurd_itimer_thread, + &timer_thread, + &_hurd_itimer_thread_stack_base, + &_hurd_itimer_thread_stack_size)) ++ || (err = __mach_setup_tls(_hurd_itimer_thread))) + { + __thread_terminate (_hurd_itimer_thread); + _hurd_itimer_thread = MACH_PORT_NULL; +--- a/sysdeps/mach/i386/thread_state.h ++++ b/sysdeps/mach/i386/thread_state.h +@@ -19,7 +19,8 @@ + + #include + +-#define MACHINE_THREAD_STATE_FLAVOR i386_THREAD_STATE ++#define MACHINE_NEW_THREAD_STATE_FLAVOR i386_THREAD_STATE ++#define MACHINE_THREAD_STATE_FLAVOR i386_REGS_SEGS_STATE + #define MACHINE_THREAD_STATE_COUNT i386_THREAD_STATE_COUNT + + #define machine_thread_state i386_thread_state +@@ -28,6 +29,14 @@ + #define SP uesp + #define SYSRETURN eax + ++#define MACHINE_THREAD_STATE_FIX_NEW(ts) do { \ ++ asm ("mov %%cs, %w0" : "=q" ((ts)->cs)); \ ++ asm ("mov %%ds, %w0" : "=q" ((ts)->ds)); \ ++ asm ("mov %%es, %w0" : "=q" ((ts)->es)); \ ++ asm ("mov %%fs, %w0" : "=q" ((ts)->fs)); \ ++ asm ("mov %%gs, %w0" : "=q" ((ts)->gs)); \ ++} while(0) ++ + struct machine_thread_all_state + { + int set; /* Mask of bits (1 << FLAVOR). */ +--- a/sysdeps/mach/powerpc/thread_state.h ++++ b/sysdeps/mach/powerpc/thread_state.h +@@ -19,6 +19,7 @@ + + #include + ++#define MACHINE_NEW_THREAD_STATE_FLAVOR PPC_THREAD_STATE + #define MACHINE_THREAD_STATE_FLAVOR PPC_THREAD_STATE + #define MACHINE_THREAD_STATE_COUNT PPC_THREAD_STATE_COUNT + +--- a/sysdeps/mach/thread_state.h ++++ b/sysdeps/mach/thread_state.h +@@ -38,6 +38,9 @@ + ((ts)->SP = (unsigned long int) (stack) + (size)) + #endif + #endif ++#ifndef MACHINE_THREAD_STATE_FIX_NEW ++#define MACHINE_THREAD_STATE_FIX_NEW(ts) ++#endif + + /* These functions are of use in machine-dependent signal trampoline + implementations. */ +--- a/sysdeps/mach/hurd/bits/libc-lock.h ++++ b/sysdeps/mach/hurd/bits/libc-lock.h +@@ -21,6 +21,9 @@ + #define _BITS_LIBC_LOCK_H 1 + + #if (_LIBC - 0) || (_CTHREADS_ - 0) ++#if (_LIBC - 0) ++#include ++#endif + #include + #include + +--- a/sysdeps/mach/hurd/tls.h ++++ b/sysdeps/mach/hurd/tls.h +@@ -23,7 +23,9 @@ + #if defined HAVE_TLS_SUPPORT && !defined __ASSEMBLER__ + + # include ++# include + # include ++# include + # include + # include + +--- /dev/null ++++ b/sysdeps/mach/hurd/i386/tlsdesc.sym +@@ -0,0 +1,17 @@ ++#include ++#include ++#include ++#include ++#include ++ ++-- ++ ++-- Abuse tls.h macros to derive offsets relative to the thread register. ++ ++DTV_OFFSET offsetof(tcbhead_t, dtv) ++ ++TLSDESC_ARG offsetof(struct tlsdesc, arg) ++ ++TLSDESC_GEN_COUNT offsetof(struct tlsdesc_dynamic_arg, gen_count) ++TLSDESC_MODID offsetof(struct tlsdesc_dynamic_arg, tlsinfo.ti_module) ++TLSDESC_MODOFF offsetof(struct tlsdesc_dynamic_arg, tlsinfo.ti_offset) --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-pthread_posix-option.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-pthread_posix-option.diff @@ -0,0 +1,157 @@ +Even if glibc doesn't have an integrated pthread library, it depends on the hurd +packages which have a pthread library. + +Avoid letting glibc try to install its own headers for libpthread. + +--- + sysdeps/mach/hurd/Makeconfig | 14 +++++++++++ + sysdeps/mach/hurd/bits/posix_opt.h | 40 +++++++++++++++++++++++----------- + sysdeps/mach/hurd/gai_misc.h | 43 +++++++++++++++++++++++++++++++++++++ + 3 files changed, 80 insertions(+), 13 deletions(-) + +--- a/sysdeps/mach/hurd/bits/posix_opt.h ++++ b/sysdeps/mach/hurd/bits/posix_opt.h +@@ -72,24 +72,38 @@ + /* XPG4.2 shared memory is supported. */ + #define _XOPEN_SHM 1 + +-/* We do not have the POSIX threads interface. */ +-#define _POSIX_THREADS -1 ++/* Tell we have POSIX threads. */ ++#define _POSIX_THREADS 200112L + + /* We have the reentrant functions described in POSIX. */ + #define _POSIX_REENTRANT_FUNCTIONS 1 + #define _POSIX_THREAD_SAFE_FUNCTIONS 200809L + +-/* These are all things that won't be supported when _POSIX_THREADS is not. */ ++/* We do not provide priority scheduling for threads. */ + #define _POSIX_THREAD_PRIORITY_SCHEDULING -1 +-#define _POSIX_THREAD_ATTR_STACKSIZE -1 +-#define _POSIX_THREAD_ATTR_STACKADDR -1 ++ ++/* We support user-defined stack sizes. */ ++#define _POSIX_THREAD_ATTR_STACKSIZE 200112L ++ ++/* We support user-defined stacks. */ ++#define _POSIX_THREAD_ATTR_STACKADDR 200112L ++ ++/* We do not support priority inheritence. */ + #define _POSIX_THREAD_PRIO_INHERIT -1 ++ ++/* We do not support priority protection. */ + #define _POSIX_THREAD_PRIO_PROTECT -1 ++ + #ifdef __USE_XOPEN2K8 ++/* We do not support priority inheritence for robust mutexes. */ + # define _POSIX_THREAD_ROBUST_PRIO_INHERIT -1 ++ ++/* We do not support priority protection for robust mutexes. */ + # define _POSIX_THREAD_ROBUST_PRIO_PROTECT -1 + #endif +-#define _POSIX_SEMAPHORES -1 ++ ++/* We support POSIX.1b semaphores. */ ++#define _POSIX_SEMAPHORES 200112L + + /* Real-time signals are not yet supported. */ + #define _POSIX_REALTIME_SIGNALS -1 +@@ -122,17 +136,17 @@ + /* GNU libc provides regular expression handling. */ + #define _POSIX_REGEXP 1 + +-/* Reader/Writer locks are not available. */ +-#define _POSIX_READER_WRITER_LOCKS -1 ++/* Reader/Writer locks are available. */ ++#define _POSIX_READER_WRITER_LOCKS 200112L + + /* We have a POSIX shell. */ + #define _POSIX_SHELL 1 + +-/* We cannot support the Timeouts option without _POSIX_THREADS. */ +-#define _POSIX_TIMEOUTS -1 ++/* We support the Timeouts option. */ ++#define _POSIX_TIMEOUTS 200112L + +-/* We do not support spinlocks. */ +-#define _POSIX_SPIN_LOCKS -1 ++/* We support spinlocks. */ ++#define _POSIX_SPIN_LOCKS 200112L + + /* The `spawn' function family is supported. */ + #define _POSIX_SPAWN 200809L +@@ -141,7 +155,7 @@ + #define _POSIX_TIMERS 0 + + /* The barrier functions are not available. */ +-#define _POSIX_BARRIERS -1 ++#define _POSIX_BARRIERS 200112L + + /* POSIX message queues could be available in future. */ + #define _POSIX_MESSAGE_PASSING 0 +--- a/sysdeps/mach/hurd/Makeconfig ++++ b/sysdeps/mach/hurd/Makeconfig +@@ -2,3 +2,17 @@ + # See Makefile in this directory for the rule that builds this. + # We must define this variable earlier than sysdeps Makefiles are included. + static-start-installed-name = crt0.o ++ ++have-thread-library = yes ++shared-thread-library = /lib/libpthread.so ++static-thread-library = /lib/libpthread.a ++bounded-thread-library = $(static-thread-library) ++ ++$(shared-thread-library): ++ true ++$(static-thread-library): ++ true ++$(inst_includedir)/pthread.h: ++ true ++ +++force = +--- /dev/null ++++ b/sysdeps/mach/hurd/gai_misc.h +@@ -0,0 +1,43 @@ ++#include ++ ++#define gai_start_notify_thread __gai_start_notify_thread ++#define gai_create_helper_thread __gai_create_helper_thread ++ ++extern inline void ++__gai_start_notify_thread (void) ++{ ++ sigset_t ss; ++ sigemptyset (&ss); ++ sigprocmask(SIG_SETMASK, &ss, NULL); ++} ++ ++extern inline int ++__gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), ++ void *arg) ++{ ++ pthread_attr_t attr; ++ ++ /* Make sure the thread is created detached. */ ++ pthread_attr_init (&attr); ++ pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED); ++ ++ /* The helper thread needs only very little resources. */ ++ (void) pthread_attr_setstacksize (&attr, 0x10000); ++ ++ /* Block all signals in the helper thread. To do this thoroughly we ++ temporarily have to block all signals here. */ ++ sigset_t ss; ++ sigset_t oss; ++ sigfillset (&ss); ++ sigprocmask(SIG_SETMASK, &ss, &oss); ++ ++ int ret = pthread_create (threadp, &attr, tf, arg); ++ ++ /* Restore the signal mask. */ ++ sigprocmask(SIG_SETMASK, &oss, NULL); ++ ++ (void) pthread_attr_destroy (&attr); ++ return ret; ++} ++ ++#include_next --- eglibc-2.12.1.orig/debian/patches/hurd-i386/cvs-getcwd.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/cvs-getcwd.diff @@ -0,0 +1,17 @@ +The patch below fixes a spurious call to mach_port_deallocate: rootdevid +is already deallocated as soon as it is fetched through __io_identity. + +--- + sysdeps/mach/hurd/getcwd.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/sysdeps/mach/hurd/getcwd.c ++++ b/sysdeps/mach/hurd/getcwd.c +@@ -60,7 +60,6 @@ + __mach_port_deallocate (__mach_task_self (), thisid); + __mach_port_deallocate (__mach_task_self (), thisdevid); + __mach_port_deallocate (__mach_task_self (), rootid); +- __mach_port_deallocate (__mach_task_self (), rootdevid); + + if (dirbuf != NULL) + __vm_deallocate (__mach_task_self (), --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-ECANCELED.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-ECANCELED.diff @@ -0,0 +1,28 @@ +Regenerate errnos. + +--- + sysdeps/mach/hurd/bits/errno.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/sysdeps/mach/hurd/bits/errno.h ++++ b/sysdeps/mach/hurd/bits/errno.h +@@ -212,8 +212,8 @@ + #define EPROTO _HURD_ERRNO (116)/* Protocol error */ + ETIME = _HURD_ERRNO (117), + #define ETIME _HURD_ERRNO (117)/* Timer expired */ +- ECANCELED = _HURD_ERRNO (118), +-#define ECANCELED _HURD_ERRNO (118)/* Operation canceled */ ++ ECANCELED = _HURD_ERRNO (119), ++#define ECANCELED _HURD_ERRNO (119)/* Operation canceled */ + + /* Errors from . */ + EMACH_SEND_IN_PROGRESS = 0x10000001, +@@ -297,7 +297,7 @@ + + }; + +-#define _HURD_ERRNOS 119 ++#define _HURD_ERRNOS 120 + + /* User-visible type of error codes. It is ok to use `int' or + `kern_return_t' for these, but with `error_t' the debugger prints --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-pthread-unsupported-stubs.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-pthread-unsupported-stubs.diff @@ -0,0 +1,13 @@ +There are additional stubs in libpthread. +--- + include/stubs-biarch.h | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/include/stubs-biarch.h ++++ b/include/stubs-biarch.h +@@ -10,3 +10,5 @@ + #else + # error "unexpected value for __WORDSIZE macro" + #endif ++ ++#include --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-bigmem.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-bigmem.diff @@ -0,0 +1,41 @@ +Allow the kernel to start earlier than VM_MAX_ADDRESS + +--- + sysdeps/mach/hurd/dl-sysdep.c | 26 ++++++++++++++++++++------ + 1 file changed, 20 insertions(+), 6 deletions(-) + +--- a/sysdeps/mach/hurd/dl-sysdep.c ++++ b/sysdeps/mach/hurd/dl-sysdep.c +@@ -105,12 +105,26 @@ + max=a; break;} + fmha=a+=fmhs;} + if (err) assert(err==KERN_NO_SPACE); +- if (!fmha)fmhs=0;else{ +- fmhs=max-fmha; +- err = __vm_map (__mach_task_self (), +- &fmha, fmhs, 0, 0, MACH_PORT_NULL, 0, 1, +- VM_PROT_NONE, VM_PROT_NONE, VM_INHERIT_COPY); +- assert_perror(err);} ++ if (!fmha) ++ fmhs=0; ++ else ++ while (1) { ++ fmhs=max-fmha; ++ err = __vm_map (__mach_task_self (), ++ &fmha, fmhs, 0, 0, MACH_PORT_NULL, 0, 1, ++ VM_PROT_NONE, VM_PROT_NONE, VM_INHERIT_COPY); ++ if (!err) ++ break; ++ if (err != KERN_INVALID_ADDRESS && err != KERN_NO_SPACE) ++ assert_perror(err); ++ vm_address_t new_max = (max - 1) & 0xf0000000U; ++ if (new_max >= max) { ++ fmhs = 0; ++ fmha = 0; ++ break; ++ } ++ max = new_max; ++ } + } + /* XXX loser kludge for vm_map kernel bug */ + #endif --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-dl-dynamic-weak.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-dl-dynamic-weak.diff @@ -0,0 +1,38 @@ +For now, libpthread is not compiled at the same time as glibc, so that pthread_* +stubs call forwarding can not work. + +--- + elf/dl-support.c | 6 ++++++ + elf/rtld.c | 5 +++++ + 2 files changed, 11 insertions(+) + +--- a/elf/dl-support.c ++++ b/elf/dl-support.c +@@ -43,7 +43,13 @@ + int _dl_debug_mask; + int _dl_lazy; + ElfW(Addr) _dl_use_load_bias = -2; ++#ifdef __GNU__ ++/* GNU/Hurd needs this because otherwise libpthread's pthread_mutex_lock gets ++ * overridden by libX11's stubs. */ ++int _dl_dynamic_weak = 1; ++#else + int _dl_dynamic_weak; ++#endif + + /* If nonzero print warnings about problematic situations. */ + int _dl_verbose; +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -151,6 +151,11 @@ + #ifdef NEED_DL_SYSINFO + ._dl_sysinfo = DL_SYSINFO_DEFAULT, + #endif ++#ifdef __GNU__ ++/* GNU/Hurd needs this because otherwise libpthread's pthread_mutex_lock gets ++ * * overridden by libX11's stubs. */ ++ ._dl_dynamic_weak = 1, ++#endif + ._dl_debug_fd = STDERR_FILENO, + ._dl_use_load_bias = -2, + ._dl_correct_cache_id = _DL_CACHE_DEFAULT_ID, --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-critical-sections.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-critical-sections.diff @@ -0,0 +1,59 @@ +Missing critical region locks. + +--- + hurd/hurd/fd.h | 2 ++ + sysdeps/mach/hurd/dirfd.c | 3 +++ + sysdeps/mach/hurd/opendir.c | 2 ++ + 3 files changed, 7 insertions(+) + +--- a/hurd/hurd/fd.h ++++ b/hurd/hurd/fd.h +@@ -68,6 +68,7 @@ + { + struct hurd_fd *descriptor; + ++ HURD_CRITICAL_BEGIN; + __mutex_lock (&_hurd_dtable_lock); + if (fd < 0 || fd >= _hurd_dtablesize) + descriptor = NULL; +@@ -90,6 +91,7 @@ + } + } + __mutex_unlock (&_hurd_dtable_lock); ++ HURD_CRITICAL_END; + + return descriptor; + } +--- a/sysdeps/mach/hurd/dirfd.c ++++ b/sysdeps/mach/hurd/dirfd.c +@@ -26,6 +26,8 @@ + dirfd (DIR *dirp) + { + int fd; ++ ++ HURD_CRITICAL_BEGIN; + __mutex_lock (&_hurd_dtable_lock); + for (fd = 0; fd < _hurd_dtablesize; ++fd) + if (_hurd_dtable[fd] == dirp->__fd) +@@ -36,6 +38,7 @@ + fd = -1; + } + __mutex_unlock (&_hurd_dtable_lock); ++ HURD_CRITICAL_END; + + return fd; + } +--- a/sysdeps/mach/hurd/opendir.c ++++ b/sysdeps/mach/hurd/opendir.c +@@ -51,9 +51,11 @@ + return NULL; + + /* Set the descriptor to close on exec. */ ++ HURD_CRITICAL_BEGIN; + __spin_lock (&d->port.lock); + d->flags |= FD_CLOEXEC; + __spin_unlock (&d->port.lock); ++ HURD_CRITICAL_END; + + dirp->__fd = d; + dirp->__data = dirp->__ptr = NULL; --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-net.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-net.diff @@ -0,0 +1,2330 @@ +commit b4da06a7e200d0cf8d132a83852e473b7795f691 +Author: Samuel Thibault +Date: Sun Jan 10 23:55:28 2010 +0100 + + Factorize ethernet,if_arp,if_ether,if_ppp,route.h + + 2010-01-10 Samuel Thibault + + * sysdeps/mach/hurd/Makefile (sysdep_headers) [subdir=socket]: + Remove net/ethernet.h net/if_arp.h net/if_ether.h net/if_ppp.h + net/route.h. + * sysdeps/gnu/Makefile (sysdep_headers) [subdir=socket]: + Add net/ethernet.h net/if_arp.h net/if_ether.h net/if_ppp.h + net/route.h. + * sysdeps/unix/sysv/linux/Makefile (sysdep_headers) + [subdir=socket]: Remove net/ethernet.h net/if_arp.h net/if_ppp.h + net/route.h + + * sysdeps/mach/hurd/net/ethernet.h: Remove file. + * sysdeps/unix/sysv/linux/net/ethernet.h: Move file to... + * sysdeps/gnu/net/ethernet.h: ... this, and include + instead of . + + * sysdeps/mach/hurd/net/if_ether.h: Move file to... + * sysdeps/gnu/net/if_ether.h: ... this. + (ETH_FCS_LEN,ETH_P_PUPAT,ETH_P_IEEEPUP,ETH_P_IEEEPUPAT, + ETH_P_8021Q,ETH_P_PAUSE,ETH_P_SLOW,ETH_P_WCCP,ETH_P_PPP_DISC, + ETH_P_PPP_SES,ETH_P_MPLS_UC,ETH_P_MPLS_MC,ETH_P_ATMMPOA, + ETH_P_ATMFATE,ETH_P_PAE,ETH_P_AOE,ETH_P_TIPC,ETH_P_FCOE, + ETH_P_EDSA,ETH_P_CAN,ETH_P_MOBITEX,ETH_P_CONTROL,ETH_P_IRDA, + ETH_P_ECONET,ETH_P_HDLC,ETH_P_ARCNET,ETH_P_DSA,ETH_P_TRAILER, + ETH_P_PHONET): New macros. + (ETH_P_ECHO): Remove macro. + (ETH_P_PUP): Change value from 0x0400 to 0x0200. + (struct ethhdr): Add packed attribute. + * sysdeps/unix/sysv/linux/net/if_ether.h: New file, includes + . + + * sysdeps/unix/sysv/linux/net/if_arp.h: Move file to... + * sysdeps/gnu/net/if_arp.h: ... this. + * sysdeps/mach/hurd/net/if_arp.h: Remove file. + + * sysdeps/unix/sysv/linux/net/if_ppp.h: Move file to... + * sysdeps/gnu/net/if_ppp.h: ... this. + * sysdeps/mach/hurd/net/if_ppp.h: Remove file. + + * sysdeps/unix/sysv/linux/net/route.h: Move file to... + * sysdeps/gnu/net/route.h: ... this. + * sysdeps/mach/hurd/net/route.h: Remove file. + +--- + b/sysdeps/gnu/Makefile | 5 + b/sysdeps/gnu/net/ethernet.h | 84 +++++++++++++ + b/sysdeps/gnu/net/if_arp.h | 184 +++++++++++++++++++++++++++++ + b/sysdeps/gnu/net/if_ether.h | 116 ++++++++++++++++++ + b/sysdeps/gnu/net/if_ppp.h | 169 ++++++++++++++++++++++++++ + b/sysdeps/gnu/net/route.h | 145 ++++++++++++++++++++++ + b/sysdeps/gnu/netinet/if_ether.h | 104 ++++++++++++++++ + b/sysdeps/mach/hurd/Makefile | 5 + b/sysdeps/unix/sysv/linux/Makefile | 3 + b/sysdeps/unix/sysv/linux/net/if_ether.h | 7 + + sysdeps/mach/hurd/net/ethernet.h | 76 ----------- + sysdeps/mach/hurd/net/if_arp.h | 145 ---------------------- + sysdeps/mach/hurd/net/if_ether.h | 85 ------------- + sysdeps/mach/hurd/net/if_ppp.h | 169 -------------------------- + sysdeps/mach/hurd/net/route.h | 141 ---------------------- + sysdeps/unix/sysv/linux/net/ethernet.h | 84 ------------- + sysdeps/unix/sysv/linux/net/if_arp.h | 184 ----------------------------- + sysdeps/unix/sysv/linux/net/if_ppp.h | 169 -------------------------- + sysdeps/unix/sysv/linux/net/route.h | 145 ---------------------- + sysdeps/unix/sysv/linux/netinet/if_ether.h | 105 ---------------- + 20 files changed, 815 insertions(+), 1310 deletions(-) + +diff --git a/sysdeps/gnu/Makefile b/sysdeps/gnu/Makefile +index 5b9a0a5..b8ded38 100644 +--- a/sysdeps/gnu/Makefile ++++ b/sysdeps/gnu/Makefile +@@ -77,3 +77,8 @@ endif + ifeq ($(subdir),misc) + sysdep_headers += sys/mtio.h + endif ++ ++ifeq ($(subdir),socket) ++sysdep_headers += net/ethernet.h net/if_arp.h net/if_ether.h net/if_ppp.h \ ++ net/route.h ++endif +diff --git a/sysdeps/gnu/net/ethernet.h b/sysdeps/gnu/net/ethernet.h +new file mode 100644 +index 0000000..450d519 +--- /dev/null ++++ b/sysdeps/gnu/net/ethernet.h +@@ -0,0 +1,84 @@ ++/* Copyright (C) 1997, 1999, 2001, 2008, 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Based on the FreeBSD version of this file. Curiously, that file ++ lacks a copyright in the header. */ ++ ++#ifndef __NET_ETHERNET_H ++#define __NET_ETHERNET_H 1 ++ ++#include ++#include ++#include /* IEEE 802.3 Ethernet constants */ ++ ++__BEGIN_DECLS ++ ++/* This is a name for the 48 bit ethernet address available on many ++ systems. */ ++struct ether_addr ++{ ++ u_int8_t ether_addr_octet[ETH_ALEN]; ++} __attribute__ ((__packed__)); ++ ++/* 10Mb/s ethernet header */ ++struct ether_header ++{ ++ u_int8_t ether_dhost[ETH_ALEN]; /* destination eth addr */ ++ u_int8_t ether_shost[ETH_ALEN]; /* source ether addr */ ++ u_int16_t ether_type; /* packet type ID field */ ++} __attribute__ ((__packed__)); ++ ++/* Ethernet protocol ID's */ ++#define ETHERTYPE_PUP 0x0200 /* Xerox PUP */ ++#define ETHERTYPE_SPRITE 0x0500 /* Sprite */ ++#define ETHERTYPE_IP 0x0800 /* IP */ ++#define ETHERTYPE_ARP 0x0806 /* Address resolution */ ++#define ETHERTYPE_REVARP 0x8035 /* Reverse ARP */ ++#define ETHERTYPE_AT 0x809B /* AppleTalk protocol */ ++#define ETHERTYPE_AARP 0x80F3 /* AppleTalk ARP */ ++#define ETHERTYPE_VLAN 0x8100 /* IEEE 802.1Q VLAN tagging */ ++#define ETHERTYPE_IPX 0x8137 /* IPX */ ++#define ETHERTYPE_IPV6 0x86dd /* IP protocol version 6 */ ++#define ETHERTYPE_LOOPBACK 0x9000 /* used to test interfaces */ ++ ++ ++#define ETHER_ADDR_LEN ETH_ALEN /* size of ethernet addr */ ++#define ETHER_TYPE_LEN 2 /* bytes in type field */ ++#define ETHER_CRC_LEN 4 /* bytes in CRC field */ ++#define ETHER_HDR_LEN ETH_HLEN /* total octets in header */ ++#define ETHER_MIN_LEN (ETH_ZLEN + ETHER_CRC_LEN) /* min packet length */ ++#define ETHER_MAX_LEN (ETH_FRAME_LEN + ETHER_CRC_LEN) /* max packet length */ ++ ++/* make sure ethenet length is valid */ ++#define ETHER_IS_VALID_LEN(foo) \ ++ ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN) ++ ++/* ++ * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have ++ * (type-ETHERTYPE_TRAIL)*512 bytes of data followed ++ * by an ETHER type (as given above) and then the (variable-length) header. ++ */ ++#define ETHERTYPE_TRAIL 0x1000 /* Trailer packet */ ++#define ETHERTYPE_NTRAILER 16 ++ ++#define ETHERMTU ETH_DATA_LEN ++#define ETHERMIN (ETHER_MIN_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) ++ ++__END_DECLS ++ ++#endif /* net/ethernet.h */ +diff --git a/sysdeps/gnu/net/if_arp.h b/sysdeps/gnu/net/if_arp.h +new file mode 100644 +index 0000000..97cb61f +--- /dev/null ++++ b/sysdeps/gnu/net/if_arp.h +@@ -0,0 +1,184 @@ ++/* Definitions for Address Resolution Protocol. ++ Copyright (C) 1997,1999,2001,2006,2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , 1997. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Based on the 4.4BSD and Linux version of this file. */ ++ ++#ifndef _NET_IF_ARP_H ++ ++#define _NET_IF_ARP_H 1 ++#include ++ ++#include ++#include ++ ++__BEGIN_DECLS ++ ++/* Some internals from deep down in the kernel. */ ++#define MAX_ADDR_LEN 7 ++ ++ ++/* This structure defines an ethernet arp header. */ ++ ++/* ARP protocol opcodes. */ ++#define ARPOP_REQUEST 1 /* ARP request. */ ++#define ARPOP_REPLY 2 /* ARP reply. */ ++#define ARPOP_RREQUEST 3 /* RARP request. */ ++#define ARPOP_RREPLY 4 /* RARP reply. */ ++#define ARPOP_InREQUEST 8 /* InARP request. */ ++#define ARPOP_InREPLY 9 /* InARP reply. */ ++#define ARPOP_NAK 10 /* (ATM)ARP NAK. */ ++ ++/* See RFC 826 for protocol description. ARP packets are variable ++ in size; the arphdr structure defines the fixed-length portion. ++ Protocol type values are the same as those for 10 Mb/s Ethernet. ++ It is followed by the variable-sized fields ar_sha, arp_spa, ++ arp_tha and arp_tpa in that order, according to the lengths ++ specified. Field names used correspond to RFC 826. */ ++ ++struct arphdr ++ { ++ unsigned short int ar_hrd; /* Format of hardware address. */ ++ unsigned short int ar_pro; /* Format of protocol address. */ ++ unsigned char ar_hln; /* Length of hardware address. */ ++ unsigned char ar_pln; /* Length of protocol address. */ ++ unsigned short int ar_op; /* ARP opcode (command). */ ++#if 0 ++ /* Ethernet looks like this : This bit is variable sized ++ however... */ ++ unsigned char __ar_sha[ETH_ALEN]; /* Sender hardware address. */ ++ unsigned char __ar_sip[4]; /* Sender IP address. */ ++ unsigned char __ar_tha[ETH_ALEN]; /* Target hardware address. */ ++ unsigned char __ar_tip[4]; /* Target IP address. */ ++#endif ++ }; ++ ++ ++/* ARP protocol HARDWARE identifiers. */ ++#define ARPHRD_NETROM 0 /* From KA9Q: NET/ROM pseudo. */ ++#define ARPHRD_ETHER 1 /* Ethernet 10/100Mbps. */ ++#define ARPHRD_EETHER 2 /* Experimental Ethernet. */ ++#define ARPHRD_AX25 3 /* AX.25 Level 2. */ ++#define ARPHRD_PRONET 4 /* PROnet token ring. */ ++#define ARPHRD_CHAOS 5 /* Chaosnet. */ ++#define ARPHRD_IEEE802 6 /* IEEE 802.2 Ethernet/TR/TB. */ ++#define ARPHRD_ARCNET 7 /* ARCnet. */ ++#define ARPHRD_APPLETLK 8 /* APPLEtalk. */ ++#define ARPHRD_DLCI 15 /* Frame Relay DLCI. */ ++#define ARPHRD_ATM 19 /* ATM. */ ++#define ARPHRD_METRICOM 23 /* Metricom STRIP (new IANA id). */ ++#define ARPHRD_IEEE1394 24 /* IEEE 1394 IPv4 - RFC 2734. */ ++#define ARPHRD_EUI64 27 /* EUI-64. */ ++#define ARPHRD_INFINIBAND 32 /* InfiniBand. */ ++ ++/* Dummy types for non ARP hardware */ ++#define ARPHRD_SLIP 256 ++#define ARPHRD_CSLIP 257 ++#define ARPHRD_SLIP6 258 ++#define ARPHRD_CSLIP6 259 ++#define ARPHRD_RSRVD 260 /* Notional KISS type. */ ++#define ARPHRD_ADAPT 264 ++#define ARPHRD_ROSE 270 ++#define ARPHRD_X25 271 /* CCITT X.25. */ ++#define ARPHRD_HWX25 272 /* Boards with X.25 in firmware. */ ++#define ARPHRD_PPP 512 ++#define ARPHRD_CISCO 513 /* Cisco HDLC. */ ++#define ARPHRD_HDLC ARPHRD_CISCO ++#define ARPHRD_LAPB 516 /* LAPB. */ ++#define ARPHRD_DDCMP 517 /* Digital's DDCMP. */ ++#define ARPHRD_RAWHDLC 518 /* Raw HDLC. */ ++ ++#define ARPHRD_TUNNEL 768 /* IPIP tunnel. */ ++#define ARPHRD_TUNNEL6 769 /* IPIP6 tunnel. */ ++#define ARPHRD_FRAD 770 /* Frame Relay Access Device. */ ++#define ARPHRD_SKIP 771 /* SKIP vif. */ ++#define ARPHRD_LOOPBACK 772 /* Loopback device. */ ++#define ARPHRD_LOCALTLK 773 /* Localtalk device. */ ++#define ARPHRD_FDDI 774 /* Fiber Distributed Data Interface. */ ++#define ARPHRD_BIF 775 /* AP1000 BIF. */ ++#define ARPHRD_SIT 776 /* sit0 device - IPv6-in-IPv4. */ ++#define ARPHRD_IPDDP 777 /* IP-in-DDP tunnel. */ ++#define ARPHRD_IPGRE 778 /* GRE over IP. */ ++#define ARPHRD_PIMREG 779 /* PIMSM register interface. */ ++#define ARPHRD_HIPPI 780 /* High Performance Parallel I'face. */ ++#define ARPHRD_ASH 781 /* (Nexus Electronics) Ash. */ ++#define ARPHRD_ECONET 782 /* Acorn Econet. */ ++#define ARPHRD_IRDA 783 /* Linux-IrDA. */ ++#define ARPHRD_FCPP 784 /* Point to point fibrechanel. */ ++#define ARPHRD_FCAL 785 /* Fibrechanel arbitrated loop. */ ++#define ARPHRD_FCPL 786 /* Fibrechanel public loop. */ ++#define ARPHRD_FCFABRIC 787 /* Fibrechanel fabric. */ ++#define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR. */ ++#define ARPHRD_IEEE80211 801 /* IEEE 802.11. */ ++#define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header. */ ++#define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header. */ ++#define ARPHRD_IEEE802154 804 /* IEEE 802.15.4 header. */ ++#define ARPHRD_IEEE802154_PHY 805 /* IEEE 802.15.4 PHY header. */ ++ ++#define ARPHRD_VOID 0xFFFF /* Void type, nothing is known. */ ++#define ARPHRD_NONE 0xFFFE /* Zero header length. */ ++ ++ ++/* ARP ioctl request. */ ++struct arpreq ++ { ++ struct sockaddr arp_pa; /* Protocol address. */ ++ struct sockaddr arp_ha; /* Hardware address. */ ++ int arp_flags; /* Flags. */ ++ struct sockaddr arp_netmask; /* Netmask (only for proxy arps). */ ++ char arp_dev[16]; ++ }; ++ ++struct arpreq_old ++ { ++ struct sockaddr arp_pa; /* Protocol address. */ ++ struct sockaddr arp_ha; /* Hardware address. */ ++ int arp_flags; /* Flags. */ ++ struct sockaddr arp_netmask; /* Netmask (only for proxy arps). */ ++ }; ++ ++/* ARP Flag values. */ ++#define ATF_COM 0x02 /* Completed entry (ha valid). */ ++#define ATF_PERM 0x04 /* Permanent entry. */ ++#define ATF_PUBL 0x08 /* Publish entry. */ ++#define ATF_USETRAILERS 0x10 /* Has requested trailers. */ ++#define ATF_NETMASK 0x20 /* Want to use a netmask (only ++ for proxy entries). */ ++#define ATF_DONTPUB 0x40 /* Don't answer this addresses. */ ++#define ATF_MAGIC 0x80 /* Automatically added entry. */ ++ ++ ++/* Support for the user space arp daemon, arpd. */ ++#define ARPD_UPDATE 0x01 ++#define ARPD_LOOKUP 0x02 ++#define ARPD_FLUSH 0x03 ++ ++struct arpd_request ++ { ++ unsigned short int req; /* Request type. */ ++ u_int32_t ip; /* IP address of entry. */ ++ unsigned long int dev; /* Device entry is tied to. */ ++ unsigned long int stamp; ++ unsigned long int updated; ++ unsigned char ha[MAX_ADDR_LEN]; /* Hardware address. */ ++ }; ++ ++__END_DECLS ++ ++#endif /* net/if_arp.h */ +diff --git a/sysdeps/gnu/net/if_ether.h b/sysdeps/gnu/net/if_ether.h +new file mode 100644 +index 0000000..4f33f3f +--- /dev/null ++++ b/sysdeps/gnu/net/if_ether.h +@@ -0,0 +1,116 @@ ++/* Copyright (C) 1997,2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _NET_IF_ETHER_H ++#define _NET_IF_ETHER_H 1 ++ ++/* ++ * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble ++ * and FCS/CRC (frame check sequence). ++ */ ++ ++#define ETH_ALEN 6 /* Octets in one ethernet addr */ ++#define ETH_HLEN 14 /* Total octets in header. */ ++#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */ ++#define ETH_DATA_LEN 1500 /* Max. octets in payload */ ++#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */ ++#define ETH_FCS_LEN 4 /* Octets in the FCS */ ++ ++/* ++ * These are the defined Ethernet Protocol ID's. ++ */ ++ ++#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */ ++#define ETH_P_PUP 0x0200 /* Xerox PUP packet */ ++#define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */ ++#define ETH_P_IP 0x0800 /* Internet Protocol packet */ ++#define ETH_P_X25 0x0805 /* CCITT X.25 */ ++#define ETH_P_ARP 0x0806 /* Address Resolution packet */ ++#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */ ++#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */ ++#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */ ++#define ETH_P_DEC 0x6000 /* DEC Assigned proto */ ++#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ ++#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */ ++#define ETH_P_DNA_RT 0x6003 /* DEC DNA Routing */ ++#define ETH_P_LAT 0x6004 /* DEC LAT */ ++#define ETH_P_DIAG 0x6005 /* DEC Diagnostics */ ++#define ETH_P_CUST 0x6006 /* DEC Customer use */ ++#define ETH_P_SCA 0x6007 /* DEC Systems Comms Arch */ ++#define ETH_P_RARP 0x8035 /* Reverse Addr Res packet */ ++#define ETH_P_ATALK 0x809B /* Appletalk DDP */ ++#define ETH_P_AARP 0x80F3 /* Appletalk AARP */ ++#define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */ ++#define ETH_P_IPX 0x8137 /* IPX over DIX */ ++#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */ ++#define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */ ++#define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */ ++#define ETH_P_WCCP 0x883E /* Web-cache coordination protocol ++ * defined in draft-wilson-wrec-wccp-v2-00.txt */ ++#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */ ++#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */ ++#define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */ ++#define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */ ++#define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */ ++#define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport ++ * over Ethernet ++ */ ++#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */ ++#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */ ++#define ETH_P_TIPC 0x88CA /* TIPC */ ++#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ ++#define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */ ++ ++/* ++ * Non DIX types. Won't clash for 1500 types. ++ */ ++ ++#define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */ ++#define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */ ++#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */ ++#define ETH_P_802_2 0x0004 /* 802.2 frames */ ++#define ETH_P_SNAP 0x0005 /* Internal only */ ++#define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */ ++#define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/ ++#define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */ ++#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ ++#define ETH_P_CAN 0x000C /* Controller Area Network */ ++#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ ++#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ ++#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */ ++#define ETH_P_CONTROL 0x0016 /* Card specific control frames */ ++#define ETH_P_IRDA 0x0017 /* Linux-IrDA */ ++#define ETH_P_ECONET 0x0018 /* Acorn Econet */ ++#define ETH_P_HDLC 0x0019 /* HDLC frames */ ++#define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-) */ ++#define ETH_P_DSA 0x001B /* Distributed Switch Arch. */ ++#define ETH_P_TRAILER 0x001C /* Trailer switch tagging */ ++#define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */ ++ ++/* ++ * This is an Ethernet frame header. ++ */ ++ ++struct ethhdr ++{ ++ unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ ++ unsigned char h_source[ETH_ALEN]; /* source ether addr */ ++ unsigned short int h_proto; /* packet type ID field */ ++} __attribute__((packed)); ++ ++#endif /* net/if_ether.h */ +diff --git a/sysdeps/gnu/net/if_ppp.h b/sysdeps/gnu/net/if_ppp.h +new file mode 100644 +index 0000000..bf5ec83 +--- /dev/null ++++ b/sysdeps/gnu/net/if_ppp.h +@@ -0,0 +1,169 @@ ++/* From: if_ppp.h,v 1.3 1995/06/12 11:36:50 paulus Exp */ ++ ++/* ++ * if_ppp.h - Point-to-Point Protocol definitions. ++ * ++ * Copyright (c) 1989 Carnegie Mellon University. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY AND ++ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, ++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE FOR ANY ++ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ++ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER ++ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ++ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ++ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ * ++ */ ++ ++/* ++ * ==FILEVERSION 960926== ++ * ++ * NOTE TO MAINTAINERS: ++ * If you modify this file at all, please set the above date. ++ * if_ppp.h is shipped with a PPP distribution as well as with the kernel; ++ * if everyone increases the FILEVERSION number above, then scripts ++ * can do the right thing when deciding whether to install a new if_ppp.h ++ * file. Don't change the format of that line otherwise, so the ++ * installation script can recognize it. ++ */ ++ ++ ++#ifndef __NET_IF_PPP_H ++#define __NET_IF_PPP_H 1 ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++__BEGIN_DECLS ++ ++/* ++ * Packet sizes ++ */ ++ ++#define PPP_MTU 1500 /* Default MTU (size of Info field) */ ++#define PPP_MAXMRU 65000 /* Largest MRU we allow */ ++#define PPP_VERSION "2.2.0" ++#define PPP_MAGIC 0x5002 /* Magic value for the ppp structure */ ++#define PROTO_IPX 0x002b /* protocol numbers */ ++#define PROTO_DNA_RT 0x0027 /* DNA Routing */ ++ ++ ++/* ++ * Bit definitions for flags. ++ */ ++ ++#define SC_COMP_PROT 0x00000001 /* protocol compression (output) */ ++#define SC_COMP_AC 0x00000002 /* header compression (output) */ ++#define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */ ++#define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */ ++#define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */ ++#define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */ ++#define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */ ++#define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */ ++#define SC_ENABLE_IP 0x00000100 /* IP packets may be exchanged */ ++#define SC_COMP_RUN 0x00001000 /* compressor has been inited */ ++#define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */ ++#define SC_DEBUG 0x00010000 /* enable debug messages */ ++#define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */ ++#define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */ ++#define SC_LOG_RAWIN 0x00080000 /* log all chars received */ ++#define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */ ++#define SC_MASK 0x0fE0ffff /* bits that user can change */ ++ ++/* state bits */ ++#define SC_ESCAPED 0x80000000 /* saw a PPP_ESCAPE */ ++#define SC_FLUSH 0x40000000 /* flush input until next PPP_FLAG */ ++#define SC_VJ_RESET 0x20000000 /* Need to reset the VJ decompressor */ ++#define SC_XMIT_BUSY 0x10000000 /* ppp_write_wakeup is active */ ++#define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */ ++#define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */ ++#define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */ ++#define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */ ++#define SC_DC_FERROR 0x00800000 /* fatal decomp error detected */ ++#define SC_DC_ERROR 0x00400000 /* non-fatal decomp error detected */ ++ ++/* ++ * Ioctl definitions. ++ */ ++ ++struct npioctl { ++ int protocol; /* PPP protocol, e.g. PPP_IP */ ++ enum NPmode mode; ++}; ++ ++/* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */ ++struct ppp_option_data { ++ u_int8_t *ptr; ++ u_int32_t length; ++ int transmit; ++}; ++ ++struct ifpppstatsreq { ++ struct ifreq b; ++ struct ppp_stats stats; /* statistic information */ ++}; ++ ++struct ifpppcstatsreq { ++ struct ifreq b; ++ struct ppp_comp_stats stats; ++}; ++ ++#define ifr__name b.ifr_ifrn.ifrn_name ++#define stats_ptr b.ifr_ifru.ifru_data ++ ++/* ++ * Ioctl definitions. ++ */ ++ ++#define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */ ++#define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */ ++#define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */ ++#define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */ ++#define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */ ++#define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */ ++#define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */ ++#define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */ ++#define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */ ++#define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */ ++#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */ ++#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */ ++#define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */ ++#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data) ++#define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */ ++#define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */ ++#define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */ ++#define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */ ++#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */ ++ ++#define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0) ++#define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */ ++#define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2) ++ ++#if !defined(ifr_mtu) ++#define ifr_mtu ifr_ifru.ifru_metric ++#endif ++ ++__END_DECLS ++ ++#endif /* net/if_ppp.h */ +diff --git a/sysdeps/gnu/net/route.h b/sysdeps/gnu/net/route.h +new file mode 100644 +index 0000000..da5c810 +--- /dev/null ++++ b/sysdeps/gnu/net/route.h +@@ -0,0 +1,145 @@ ++/* Copyright (C) 1997, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* Based on the 4.4BSD and Linux version of this file. */ ++ ++#ifndef _NET_ROUTE_H ++#define _NET_ROUTE_H 1 ++ ++#include ++#include ++#include ++#include ++#include ++ ++ ++/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */ ++struct rtentry ++ { ++ unsigned long int rt_pad1; ++ struct sockaddr rt_dst; /* Target address. */ ++ struct sockaddr rt_gateway; /* Gateway addr (RTF_GATEWAY). */ ++ struct sockaddr rt_genmask; /* Target network mask (IP). */ ++ unsigned short int rt_flags; ++ short int rt_pad2; ++ unsigned long int rt_pad3; ++ unsigned char rt_tos; ++ unsigned char rt_class; ++#if __WORDSIZE == 64 ++ short int rt_pad4[3]; ++#else ++ short int rt_pad4; ++#endif ++ short int rt_metric; /* +1 for binary compatibility! */ ++ char *rt_dev; /* Forcing the device at add. */ ++ unsigned long int rt_mtu; /* Per route MTU/Window. */ ++ unsigned long int rt_window; /* Window clamping. */ ++ unsigned short int rt_irtt; /* Initial RTT. */ ++ }; ++/* Compatibility hack. */ ++#define rt_mss rt_mtu ++ ++ ++struct in6_rtmsg ++ { ++ struct in6_addr rtmsg_dst; ++ struct in6_addr rtmsg_src; ++ struct in6_addr rtmsg_gateway; ++ u_int32_t rtmsg_type; ++ u_int16_t rtmsg_dst_len; ++ u_int16_t rtmsg_src_len; ++ u_int32_t rtmsg_metric; ++ unsigned long int rtmsg_info; ++ u_int32_t rtmsg_flags; ++ int rtmsg_ifindex; ++ }; ++ ++ ++#define RTF_UP 0x0001 /* Route usable. */ ++#define RTF_GATEWAY 0x0002 /* Destination is a gateway. */ ++ ++#define RTF_HOST 0x0004 /* Host entry (net otherwise). */ ++#define RTF_REINSTATE 0x0008 /* Reinstate route after timeout. */ ++#define RTF_DYNAMIC 0x0010 /* Created dyn. (by redirect). */ ++#define RTF_MODIFIED 0x0020 /* Modified dyn. (by redirect). */ ++#define RTF_MTU 0x0040 /* Specific MTU for this route. */ ++#define RTF_MSS RTF_MTU /* Compatibility. */ ++#define RTF_WINDOW 0x0080 /* Per route window clamping. */ ++#define RTF_IRTT 0x0100 /* Initial round trip time. */ ++#define RTF_REJECT 0x0200 /* Reject route. */ ++#define RTF_STATIC 0x0400 /* Manually injected route. */ ++#define RTF_XRESOLVE 0x0800 /* External resolver. */ ++#define RTF_NOFORWARD 0x1000 /* Forwarding inhibited. */ ++#define RTF_THROW 0x2000 /* Go to next class. */ ++#define RTF_NOPMTUDISC 0x4000 /* Do not send packets with DF. */ ++ ++/* for IPv6 */ ++#define RTF_DEFAULT 0x00010000 /* default - learned via ND */ ++#define RTF_ALLONLINK 0x00020000 /* fallback, no routers on link */ ++#define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */ ++ ++#define RTF_LINKRT 0x00100000 /* link specific - device match */ ++#define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */ ++ ++#define RTF_CACHE 0x01000000 /* cache entry */ ++#define RTF_FLOW 0x02000000 /* flow significant route */ ++#define RTF_POLICY 0x04000000 /* policy route */ ++ ++#define RTCF_VALVE 0x00200000 ++#define RTCF_MASQ 0x00400000 ++#define RTCF_NAT 0x00800000 ++#define RTCF_DOREDIRECT 0x01000000 ++#define RTCF_LOG 0x02000000 ++#define RTCF_DIRECTSRC 0x04000000 ++ ++#define RTF_LOCAL 0x80000000 ++#define RTF_INTERFACE 0x40000000 ++#define RTF_MULTICAST 0x20000000 ++#define RTF_BROADCAST 0x10000000 ++#define RTF_NAT 0x08000000 ++ ++#define RTF_ADDRCLASSMASK 0xF8000000 ++#define RT_ADDRCLASS(flags) ((__u_int32_t) flags >> 23) ++ ++#define RT_TOS(tos) ((tos) & IPTOS_TOS_MASK) ++ ++#define RT_LOCALADDR(flags) ((flags & RTF_ADDRCLASSMASK) \ ++ == (RTF_LOCAL|RTF_INTERFACE)) ++ ++#define RT_CLASS_UNSPEC 0 ++#define RT_CLASS_DEFAULT 253 ++ ++#define RT_CLASS_MAIN 254 ++#define RT_CLASS_LOCAL 255 ++#define RT_CLASS_MAX 255 ++ ++ ++#define RTMSG_ACK NLMSG_ACK ++#define RTMSG_OVERRUN NLMSG_OVERRUN ++ ++#define RTMSG_NEWDEVICE 0x11 ++#define RTMSG_DELDEVICE 0x12 ++#define RTMSG_NEWROUTE 0x21 ++#define RTMSG_DELROUTE 0x22 ++#define RTMSG_NEWRULE 0x31 ++#define RTMSG_DELRULE 0x32 ++#define RTMSG_CONTROL 0x40 ++ ++#define RTMSG_AR_FAILED 0x51 /* Address Resolution failed. */ ++ ++#endif /* net/route.h */ +diff --git a/sysdeps/gnu/netinet/if_ether.h b/sysdeps/gnu/netinet/if_ether.h +new file mode 100644 +index 0000000..47278a3 +--- /dev/null ++++ b/sysdeps/gnu/netinet/if_ether.h +@@ -0,0 +1,104 @@ ++/* Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef __NETINET_IF_ETHER_H ++ ++#define __NETINET_IF_ETHER_H 1 ++#include ++#include ++ ++#include ++ ++#ifdef __USE_BSD ++/* ++ * Copyright (c) 1982, 1986, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)if_ether.h 8.3 (Berkeley) 5/2/95 ++ * $FreeBSD$ ++ */ ++ ++#include ++#include ++ ++__BEGIN_DECLS ++/* ++ * Ethernet Address Resolution Protocol. ++ * ++ * See RFC 826 for protocol description. Structure below is adapted ++ * to resolving internet addresses. Field names used correspond to ++ * RFC 826. ++ */ ++struct ether_arp { ++ struct arphdr ea_hdr; /* fixed-size header */ ++ u_int8_t arp_sha[ETH_ALEN]; /* sender hardware address */ ++ u_int8_t arp_spa[4]; /* sender protocol address */ ++ u_int8_t arp_tha[ETH_ALEN]; /* target hardware address */ ++ u_int8_t arp_tpa[4]; /* target protocol address */ ++}; ++#define arp_hrd ea_hdr.ar_hrd ++#define arp_pro ea_hdr.ar_pro ++#define arp_hln ea_hdr.ar_hln ++#define arp_pln ea_hdr.ar_pln ++#define arp_op ea_hdr.ar_op ++ ++/* ++ * Macro to map an IP multicast address to an Ethernet multicast address. ++ * The high-order 25 bits of the Ethernet address are statically assigned, ++ * and the low-order 23 bits are taken from the low end of the IP address. ++ */ ++#define ETHER_MAP_IP_MULTICAST(ipaddr, enaddr) \ ++ /* struct in_addr *ipaddr; */ \ ++ /* u_char enaddr[ETH_ALEN]; */ \ ++{ \ ++ (enaddr)[0] = 0x01; \ ++ (enaddr)[1] = 0x00; \ ++ (enaddr)[2] = 0x5e; \ ++ (enaddr)[3] = ((u_int8_t *)ipaddr)[1] & 0x7f; \ ++ (enaddr)[4] = ((u_int8_t *)ipaddr)[2]; \ ++ (enaddr)[5] = ((u_int8_t *)ipaddr)[3]; \ ++} ++ ++__END_DECLS ++#endif /* __USE_BSD */ ++ ++#endif /* netinet/if_ether.h */ +diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile +index 95d7ba3..7e6e86a 100644 +--- a/sysdeps/mach/hurd/Makefile ++++ b/sysdeps/mach/hurd/Makefile +@@ -206,11 +206,6 @@ ifeq ($(subdir),sunrpc) + sysdep_headers += nfs/nfs.h + endif + +-ifeq ($(subdir),socket) +-sysdep_headers += net/ethernet.h net/if_arp.h net/if_ether.h net/if_ppp.h \ +- net/route.h +-endif +- + ifeq ($(subdir),csu) + routines += unwind-resume + shared-only-routines += unwind-resume +diff --git a/sysdeps/mach/hurd/net/ethernet.h b/sysdeps/mach/hurd/net/ethernet.h +deleted file mode 100644 +index 2c524dc..0000000 +--- a/sysdeps/mach/hurd/net/ethernet.h ++++ /dev/null +@@ -1,76 +0,0 @@ +-/* Copyright (C) 1997 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-/* Based on the FreeBSD version of this file. Curiously, that file +- lacks a copyright in the header. */ +- +-#ifndef __NET_ETHERNET_H +-#define __NET_ETHERNET_H 1 +- +-#include +-#include +-#include /* IEEE 802.3 Ethernet constants */ +- +-__BEGIN_DECLS +- +-/* This is a name for the 48 bit ethernet address available on many +- systems. */ +-struct ether_addr +-{ +- u_int8_t ether_addr_octet[ETH_ALEN]; +-}; +- +-/* 10Mb/s ethernet header */ +-struct ether_header +-{ +- u_int8_t ether_dhost[ETH_ALEN]; /* destination eth addr */ +- u_int8_t ether_shost[ETH_ALEN]; /* source ether addr */ +- u_int16_t ether_type; /* packet type ID field */ +-}; +- +-/* Ethernet protocol ID's */ +-#define ETHERTYPE_PUP 0x0200 /* Xerox PUP */ +-#define ETHERTYPE_IP 0x0800 /* IP */ +-#define ETHERTYPE_ARP 0x0806 /* Address resolution */ +-#define ETHERTYPE_REVARP 0x8035 /* Reverse ARP */ +- +-#define ETHER_ADDR_LEN ETH_ALEN /* size of ethernet addr */ +-#define ETHER_TYPE_LEN 2 /* bytes in type field */ +-#define ETHER_CRC_LEN 4 /* bytes in CRC field */ +-#define ETHER_HDR_LEN ETH_HLEN /* total octets in header */ +-#define ETHER_MIN_LEN (ETH_ZLEN + ETH_CRC_LEN) /* min packet length */ +-#define ETHER_MAX_LEN (ETH_FRAME_LEN + ETH_CRC_LEN) /* max packet length */ +- +-/* make sure ethenet length is valid */ +-#define ETHER_IS_VALID_LEN(foo) \ +- ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN) +- +-/* +- * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have +- * (type-ETHERTYPE_TRAIL)*512 bytes of data followed +- * by an ETHER type (as given above) and then the (variable-length) header. +- */ +-#define ETHERTYPE_TRAIL 0x1000 /* Trailer packet */ +-#define ETHERTYPE_NTRAILER 16 +- +-#define ETHERMTU ETH_DATA_LEN +-#define ETHERMIN (ETHER_MIN_LEN-ETHER_HDR_LEN-ETHER_CRC_LEN) +- +-__END_DECLS +- +-#endif /* net/ethernet.h */ +diff --git a/sysdeps/mach/hurd/net/if_arp.h b/sysdeps/mach/hurd/net/if_arp.h +deleted file mode 100644 +index c0153c9..0000000 +--- a/sysdeps/mach/hurd/net/if_arp.h ++++ /dev/null +@@ -1,145 +0,0 @@ +-/* Definitions for Address Resolution Protocol. +- Copyright (C) 1997 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Ulrich Drepper , 1997. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-/* Based on the 4.4BSD and Linux version of this file. */ +- +-#ifndef _NET_IF_ARP_H +- +-#define _NET_IF_ARP_H 1 +-#include +- +-#include +-#include +- +-__BEGIN_DECLS +- +-/* Some internals from deep down in the kernel. */ +-#define MAX_ADDR_LEN 7 +- +- +-/* This structure defines an ethernet arp header. */ +- +-/* ARP protocol opcodes. */ +-#define ARPOP_REQUEST 1 /* ARP request. */ +-#define ARPOP_REPLY 2 /* ARP reply. */ +-#define ARPOP_RREQUEST 3 /* RARP request. */ +-#define ARPOP_RREPLY 4 /* RARP reply. */ +- +-/* See RFC 826 for protocol description. ARP packets are variable +- in size; the arphdr structure defines the fixed-length portion. +- Protocol type values are the same as those for 10 Mb/s Ethernet. +- It is followed by the variable-sized fields ar_sha, arp_spa, +- arp_tha and arp_tpa in that order, according to the lengths +- specified. Field names used correspond to RFC 826. */ +- +-struct arphdr +- { +- unsigned short int ar_hrd; /* Format of hardware address. */ +- unsigned short int ar_pro; /* Format of protocol address. */ +- unsigned char ar_hln; /* Length of hardware address. */ +- unsigned char ar_pln; /* Length of protocol address. */ +- unsigned short int ar_op; /* ARP opcode (command). */ +-#if 0 +- /* Ethernet looks like this : This bit is variable sized +- however... */ +- unsigned char __ar_sha[ETH_ALEN]; /* Sender hardware address. */ +- unsigned char __ar_sip[4]; /* Sender IP address. */ +- unsigned char __ar_tha[ETH_ALEN]; /* Target hardware address. */ +- unsigned char __ar_tip[4]; /* Target IP address. */ +-#endif +- }; +- +- +-/* ARP protocol HARDWARE identifiers. */ +-#define ARPHRD_NETROM 0 /* From KA9Q: NET/ROM pseudo. */ +-#define ARPHRD_ETHER 1 /* Ethernet 10Mbps. */ +-#define ARPHRD_EETHER 2 /* Experimental Ethernet. */ +-#define ARPHRD_AX25 3 /* AX.25 Level 2. */ +-#define ARPHRD_PRONET 4 /* PROnet token ring. */ +-#define ARPHRD_CHAOS 5 /* Chaosnet. */ +-#define ARPHRD_IEEE802 6 /* IEEE 802.2 Ethernet/TR/TB. */ +-#define ARPHRD_ARCNET 7 /* ARCnet. */ +-#define ARPHRD_APPLETLK 8 /* APPLEtalk. */ +-#define ARPHRD_DLCI 15 /* Frame Relay DLCI. */ +-#define ARPHRD_METRICOM 23 /* Metricom STRIP (new IANA id). */ +- +-/* Dummy types for non ARP hardware */ +-#define ARPHRD_SLIP 256 +-#define ARPHRD_CSLIP 257 +-#define ARPHRD_SLIP6 258 +-#define ARPHRD_CSLIP6 259 +-#define ARPHRD_RSRVD 260 /* Notional KISS type. */ +-#define ARPHRD_ADAPT 264 +-#define ARPHRD_ROSE 270 +-#define ARPHRD_X25 271 /* CCITT X.25. */ +-#define ARPHRD_PPP 512 +-#define ARPHRD_HDLC 513 /* (Cisco) HDLC. */ +-#define ARPHRD_LAPB 516 /* LAPB. */ +- +-#define ARPHRD_TUNNEL 768 /* IPIP tunnel. */ +-#define ARPHRD_TUNNEL6 769 /* IPIP6 tunnel. */ +-#define ARPHRD_FRAD 770 /* Frame Relay Access Device. */ +-#define ARPHRD_SKIP 771 /* SKIP vif. */ +-#define ARPHRD_LOOPBACK 772 /* Loopback device. */ +-#define ARPHRD_LOCALTLK 773 /* Localtalk device. */ +-#define ARPHRD_FDDI 774 /* Fiber Distributed Data Interface. */ +-#define ARPHRD_BIF 775 /* AP1000 BIF. */ +-#define ARPHRD_SIT 776 /* sit0 device - IPv6-in-IPv4. */ +- +- +-/* ARP ioctl request. */ +-struct arpreq +- { +- struct sockaddr arp_pa; /* Protocol address. */ +- struct sockaddr arp_ha; /* Hardware address. */ +- int arp_flags; /* Flags. */ +- struct sockaddr arp_netmask; /* Netmask (only for proxy arps). */ +- char arp_dev[16]; +- }; +- +-/* ARP Flag values. */ +-#define ATF_COM 0x02 /* Completed entry (ha valid). */ +-#define ATF_PERM 0x04 /* Permanent entry. */ +-#define ATF_PUBL 0x08 /* Publish entry. */ +-#define ATF_USETRAILERS 0x10 /* Has requested trailers. */ +-#define ATF_NETMASK 0x20 /* Want to use a netmask (only +- for proxy entries). */ +-#define ATF_DONTPUB 0x40 /* Don't answer this addresses. */ +-#define ATF_MAGIC 0x80 /* Automatically added entry. */ +- +- +-/* Support for the user space arp daemon, arpd. */ +-#define ARPD_UPDATE 0x01 +-#define ARPD_LOOKUP 0x02 +-#define ARPD_FLUSH 0x03 +- +-struct arpd_request +- { +- unsigned short int req; /* Request type. */ +- u_int32_t ip; /* IP address of entry. */ +- unsigned long int dev; /* Device entry is tied to. */ +- unsigned long int stamp; +- unsigned long int updated; +- unsigned char ha[MAX_ADDR_LEN]; /* Hardware address. */ +- }; +- +-__END_DECLS +- +-#endif /* net/if_arp.h */ +diff --git a/sysdeps/mach/hurd/net/if_ether.h b/sysdeps/mach/hurd/net/if_ether.h +deleted file mode 100644 +index 36300cb..0000000 +--- a/sysdeps/mach/hurd/net/if_ether.h ++++ /dev/null +@@ -1,85 +0,0 @@ +-/* Copyright (C) 1997 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#ifndef _NET_IF_ETHER_H +-#define _NET_IF_ETHER_H 1 +- +-/* +- * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble +- * and FCS/CRC (frame check sequence). +- */ +- +-#define ETH_ALEN 6 /* Octets in one ethernet addr */ +-#define ETH_HLEN 14 /* Total octets in header. */ +-#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */ +-#define ETH_DATA_LEN 1500 /* Max. octets in payload */ +-#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */ +- +-/* +- * These are the defined Ethernet Protocol ID's. +- */ +- +-#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */ +-#define ETH_P_ECHO 0x0200 /* Ethernet Echo packet */ +-#define ETH_P_PUP 0x0400 /* Xerox PUP packet */ +-#define ETH_P_IP 0x0800 /* Internet Protocol packet */ +-#define ETH_P_X25 0x0805 /* CCITT X.25 */ +-#define ETH_P_ARP 0x0806 /* Address Resolution packet */ +-#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */ +-#define ETH_P_DEC 0x6000 /* DEC Assigned proto */ +-#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ +-#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */ +-#define ETH_P_DNA_RT 0x6003 /* DEC DNA Routing */ +-#define ETH_P_LAT 0x6004 /* DEC LAT */ +-#define ETH_P_DIAG 0x6005 /* DEC Diagnostics */ +-#define ETH_P_CUST 0x6006 /* DEC Customer use */ +-#define ETH_P_SCA 0x6007 /* DEC Systems Comms Arch */ +-#define ETH_P_RARP 0x8035 /* Reverse Addr Res packet */ +-#define ETH_P_ATALK 0x809B /* Appletalk DDP */ +-#define ETH_P_AARP 0x80F3 /* Appletalk AARP */ +-#define ETH_P_IPX 0x8137 /* IPX over DIX */ +-#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */ +- +-/* +- * Non DIX types. Won't clash for 1500 types. +- */ +- +-#define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */ +-#define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */ +-#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */ +-#define ETH_P_802_2 0x0004 /* 802.2 frames */ +-#define ETH_P_SNAP 0x0005 /* Internal only */ +-#define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */ +-#define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/ +-#define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */ +-#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ +-#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ +-#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ +- +-/* +- * This is an Ethernet frame header. +- */ +- +-struct ethhdr +-{ +- unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ +- unsigned char h_source[ETH_ALEN]; /* source ether addr */ +- unsigned short int h_proto; /* packet type ID field */ +-}; +- +-#endif /* net/if_ether.h */ +diff --git a/sysdeps/mach/hurd/net/if_ppp.h b/sysdeps/mach/hurd/net/if_ppp.h +deleted file mode 100644 +index bf5ec83..0000000 +--- a/sysdeps/mach/hurd/net/if_ppp.h ++++ /dev/null +@@ -1,169 +0,0 @@ +-/* From: if_ppp.h,v 1.3 1995/06/12 11:36:50 paulus Exp */ +- +-/* +- * if_ppp.h - Point-to-Point Protocol definitions. +- * +- * Copyright (c) 1989 Carnegie Mellon University. +- * +- * Redistribution and use in source and binary forms, with or without +- * modification, are permitted provided that the following conditions +- * are met: +- * 1. Redistributions of source code must retain the above copyright +- * notice, this list of conditions and the following disclaimer. +- * 2. Redistributions in binary form must reproduce the above copyright +- * notice, this list of conditions and the following disclaimer in the +- * documentation and/or other materials provided with the distribution. +- * 3. Neither the name of the University nor the names of its contributors +- * may be used to endorse or promote products derived from this software +- * without specific prior written permission. +- * +- * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY AND +- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +- * IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE FOR ANY +- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +- * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- * +- */ +- +-/* +- * ==FILEVERSION 960926== +- * +- * NOTE TO MAINTAINERS: +- * If you modify this file at all, please set the above date. +- * if_ppp.h is shipped with a PPP distribution as well as with the kernel; +- * if everyone increases the FILEVERSION number above, then scripts +- * can do the right thing when deciding whether to install a new if_ppp.h +- * file. Don't change the format of that line otherwise, so the +- * installation script can recognize it. +- */ +- +- +-#ifndef __NET_IF_PPP_H +-#define __NET_IF_PPP_H 1 +- +-#include +-#include +- +-#include +-#include +-#include +- +-__BEGIN_DECLS +- +-/* +- * Packet sizes +- */ +- +-#define PPP_MTU 1500 /* Default MTU (size of Info field) */ +-#define PPP_MAXMRU 65000 /* Largest MRU we allow */ +-#define PPP_VERSION "2.2.0" +-#define PPP_MAGIC 0x5002 /* Magic value for the ppp structure */ +-#define PROTO_IPX 0x002b /* protocol numbers */ +-#define PROTO_DNA_RT 0x0027 /* DNA Routing */ +- +- +-/* +- * Bit definitions for flags. +- */ +- +-#define SC_COMP_PROT 0x00000001 /* protocol compression (output) */ +-#define SC_COMP_AC 0x00000002 /* header compression (output) */ +-#define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */ +-#define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */ +-#define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */ +-#define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */ +-#define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */ +-#define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */ +-#define SC_ENABLE_IP 0x00000100 /* IP packets may be exchanged */ +-#define SC_COMP_RUN 0x00001000 /* compressor has been inited */ +-#define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */ +-#define SC_DEBUG 0x00010000 /* enable debug messages */ +-#define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */ +-#define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */ +-#define SC_LOG_RAWIN 0x00080000 /* log all chars received */ +-#define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */ +-#define SC_MASK 0x0fE0ffff /* bits that user can change */ +- +-/* state bits */ +-#define SC_ESCAPED 0x80000000 /* saw a PPP_ESCAPE */ +-#define SC_FLUSH 0x40000000 /* flush input until next PPP_FLAG */ +-#define SC_VJ_RESET 0x20000000 /* Need to reset the VJ decompressor */ +-#define SC_XMIT_BUSY 0x10000000 /* ppp_write_wakeup is active */ +-#define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */ +-#define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */ +-#define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */ +-#define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */ +-#define SC_DC_FERROR 0x00800000 /* fatal decomp error detected */ +-#define SC_DC_ERROR 0x00400000 /* non-fatal decomp error detected */ +- +-/* +- * Ioctl definitions. +- */ +- +-struct npioctl { +- int protocol; /* PPP protocol, e.g. PPP_IP */ +- enum NPmode mode; +-}; +- +-/* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */ +-struct ppp_option_data { +- u_int8_t *ptr; +- u_int32_t length; +- int transmit; +-}; +- +-struct ifpppstatsreq { +- struct ifreq b; +- struct ppp_stats stats; /* statistic information */ +-}; +- +-struct ifpppcstatsreq { +- struct ifreq b; +- struct ppp_comp_stats stats; +-}; +- +-#define ifr__name b.ifr_ifrn.ifrn_name +-#define stats_ptr b.ifr_ifru.ifru_data +- +-/* +- * Ioctl definitions. +- */ +- +-#define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */ +-#define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */ +-#define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */ +-#define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */ +-#define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */ +-#define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */ +-#define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */ +-#define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */ +-#define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */ +-#define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */ +-#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */ +-#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */ +-#define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */ +-#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data) +-#define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */ +-#define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */ +-#define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */ +-#define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */ +-#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */ +- +-#define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0) +-#define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */ +-#define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2) +- +-#if !defined(ifr_mtu) +-#define ifr_mtu ifr_ifru.ifru_metric +-#endif +- +-__END_DECLS +- +-#endif /* net/if_ppp.h */ +diff --git a/sysdeps/mach/hurd/net/route.h b/sysdeps/mach/hurd/net/route.h +deleted file mode 100644 +index 7b67461..0000000 +--- a/sysdeps/mach/hurd/net/route.h ++++ /dev/null +@@ -1,141 +0,0 @@ +-/* Copyright (C) 1997 Free Software Foundation, Inc.. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-/* Based on the 4.4BSD and Linux version of this file. */ +- +-#ifndef _NET_ROUTE_H +- +-#define _NET_ROUTE_H 1 +-#include +- +-#include +-#include +-#include +- +- +-/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */ +-struct rtentry +- { +- unsigned long int rt_pad1; +- struct sockaddr rt_dst; /* Target address. */ +- struct sockaddr rt_gateway; /* Gateway addr (RTF_GATEWAY). */ +- struct sockaddr rt_genmask; /* Target network mask (IP). */ +- unsigned short int rt_flags; +- short int rt_pad2; +- unsigned long int rt_pad3; +- unsigned char rt_tos; +- unsigned char rt_class; +- short int rt_pad4; +- short int rt_metric; /* +1 for binary compatibility! */ +- char *rt_dev; /* Forcing the device at add. */ +- unsigned long int rt_mtu; /* Per route MTU/Window. */ +- unsigned long int rt_window; /* Window clamping. */ +- unsigned short int rt_irtt; /* Initial RTT. */ +- }; +-/* Compatibility hack. */ +-#define rt_mss rt_mtu +- +- +-struct in6_rtmsg +- { +- struct in6_addr rtmsg_dst; +- struct in6_addr rtmsg_src; +- struct in6_addr rtmsg_gateway; +- u_int32_t rtmsg_type; +- u_int16_t rtmsg_dst_len; +- u_int16_t rtmsg_src_len; +- u_int32_t rtmsg_metric; +- unsigned long int rtmsg_info; +- u_int32_t rtmsg_flags; +- int rtmsg_ifindex; +- }; +- +- +-#define RTF_UP 0x0001 /* Route usable. */ +-#define RTF_GATEWAY 0x0002 /* Destination is a gateway. */ +- +-#define RTF_HOST 0x0004 /* Host entry (net otherwise). */ +-#define RTF_REINSTATE 0x0008 /* Reinstate route after timeout. */ +-#define RTF_DYNAMIC 0x0010 /* Created dyn. (by redirect). */ +-#define RTF_MODIFIED 0x0020 /* Modified dyn. (by redirect). */ +-#define RTF_MTU 0x0040 /* Specific MTU for this route. */ +-#define RTF_MSS RTF_MTU /* Compatibility. */ +-#define RTF_WINDOW 0x0080 /* Per route window clamping. */ +-#define RTF_IRTT 0x0100 /* Initial round trip time. */ +-#define RTF_REJECT 0x0200 /* Reject route. */ +-#define RTF_STATIC 0x0400 /* Manually injected route. */ +-#define RTF_XRESOLVE 0x0800 /* External resolver. */ +-#define RTF_NOFORWARD 0x1000 /* Forwarding inhibited. */ +-#define RTF_THROW 0x2000 /* Go to next class. */ +-#define RTF_NOPMTUDISC 0x4000 /* Do not send packets with DF. */ +- +-/* for IPv6 */ +-#define RTF_DEFAULT 0x00010000 /* default - learned via ND */ +-#define RTF_ALLONLINK 0x00020000 /* fallback, no routers on link */ +-#define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */ +- +-#define RTF_LINKRT 0x00100000 /* link specific - device match */ +-#define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */ +- +-#define RTF_CACHE 0x01000000 /* cache entry */ +-#define RTF_FLOW 0x02000000 /* flow significant route */ +-#define RTF_POLICY 0x04000000 /* policy route */ +- +-#define RTCF_VALVE 0x00200000 +-#define RTCF_MASQ 0x00400000 +-#define RTCF_NAT 0x00800000 +-#define RTCF_DOREDIRECT 0x01000000 +-#define RTCF_LOG 0x02000000 +-#define RTCF_DIRECTSRC 0x04000000 +- +-#define RTF_LOCAL 0x80000000 +-#define RTF_INTERFACE 0x40000000 +-#define RTF_MULTICAST 0x20000000 +-#define RTF_BROADCAST 0x10000000 +-#define RTF_NAT 0x08000000 +- +-#define RTF_ADDRCLASSMASK 0xF8000000 +-#define RT_ADDRCLASS(flags) ((__u_int32_t) flags >> 23) +- +-#define RT_TOS(tos) ((tos) & IPTOS_TOS_MASK) +- +-#define RT_LOCALADDR(flags) ((flags & RTF_ADDRCLASSMASK) \ +- == (RTF_LOCAL|RTF_INTERFACE)) +- +-#define RT_CLASS_UNSPEC 0 +-#define RT_CLASS_DEFAULT 253 +- +-#define RT_CLASS_MAIN 254 +-#define RT_CLASS_LOCAL 255 +-#define RT_CLASS_MAX 255 +- +- +-#define RTMSG_ACK NLMSG_ACK +-#define RTMSG_OVERRUN NLMSG_OVERRUN +- +-#define RTMSG_NEWDEVICE 0x11 +-#define RTMSG_DELDEVICE 0x12 +-#define RTMSG_NEWROUTE 0x21 +-#define RTMSG_DELROUTE 0x22 +-#define RTMSG_NEWRULE 0x31 +-#define RTMSG_DELRULE 0x32 +-#define RTMSG_CONTROL 0x40 +- +-#define RTMSG_AR_FAILED 0x51 /* Address Resolution failed. */ +- +-#endif /* net/route.h */ +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index 91c123b..01ee1f8 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -101,8 +101,7 @@ sysdep_routines += ntp_gettime ntp_gettimex + endif + + ifeq ($(subdir),socket) +-sysdep_headers += net/if_ppp.h net/ppp-comp.h \ +- net/ppp_defs.h net/if_arp.h net/route.h net/ethernet.h \ ++sysdep_headers += net/ppp-comp.h net/ppp_defs.h \ + net/if_slip.h net/if_packet.h net/if_shaper.h + sysdep_routines += cmsg_nxthdr sa_len + endif +diff --git a/sysdeps/unix/sysv/linux/net/ethernet.h b/sysdeps/unix/sysv/linux/net/ethernet.h +deleted file mode 100644 +index 0242d58..0000000 +--- a/sysdeps/unix/sysv/linux/net/ethernet.h ++++ /dev/null +@@ -1,84 +0,0 @@ +-/* Copyright (C) 1997, 1999, 2001, 2008 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-/* Based on the FreeBSD version of this file. Curiously, that file +- lacks a copyright in the header. */ +- +-#ifndef __NET_ETHERNET_H +-#define __NET_ETHERNET_H 1 +- +-#include +-#include +-#include /* IEEE 802.3 Ethernet constants */ +- +-__BEGIN_DECLS +- +-/* This is a name for the 48 bit ethernet address available on many +- systems. */ +-struct ether_addr +-{ +- u_int8_t ether_addr_octet[ETH_ALEN]; +-} __attribute__ ((__packed__)); +- +-/* 10Mb/s ethernet header */ +-struct ether_header +-{ +- u_int8_t ether_dhost[ETH_ALEN]; /* destination eth addr */ +- u_int8_t ether_shost[ETH_ALEN]; /* source ether addr */ +- u_int16_t ether_type; /* packet type ID field */ +-} __attribute__ ((__packed__)); +- +-/* Ethernet protocol ID's */ +-#define ETHERTYPE_PUP 0x0200 /* Xerox PUP */ +-#define ETHERTYPE_SPRITE 0x0500 /* Sprite */ +-#define ETHERTYPE_IP 0x0800 /* IP */ +-#define ETHERTYPE_ARP 0x0806 /* Address resolution */ +-#define ETHERTYPE_REVARP 0x8035 /* Reverse ARP */ +-#define ETHERTYPE_AT 0x809B /* AppleTalk protocol */ +-#define ETHERTYPE_AARP 0x80F3 /* AppleTalk ARP */ +-#define ETHERTYPE_VLAN 0x8100 /* IEEE 802.1Q VLAN tagging */ +-#define ETHERTYPE_IPX 0x8137 /* IPX */ +-#define ETHERTYPE_IPV6 0x86dd /* IP protocol version 6 */ +-#define ETHERTYPE_LOOPBACK 0x9000 /* used to test interfaces */ +- +- +-#define ETHER_ADDR_LEN ETH_ALEN /* size of ethernet addr */ +-#define ETHER_TYPE_LEN 2 /* bytes in type field */ +-#define ETHER_CRC_LEN 4 /* bytes in CRC field */ +-#define ETHER_HDR_LEN ETH_HLEN /* total octets in header */ +-#define ETHER_MIN_LEN (ETH_ZLEN + ETHER_CRC_LEN) /* min packet length */ +-#define ETHER_MAX_LEN (ETH_FRAME_LEN + ETHER_CRC_LEN) /* max packet length */ +- +-/* make sure ethenet length is valid */ +-#define ETHER_IS_VALID_LEN(foo) \ +- ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN) +- +-/* +- * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have +- * (type-ETHERTYPE_TRAIL)*512 bytes of data followed +- * by an ETHER type (as given above) and then the (variable-length) header. +- */ +-#define ETHERTYPE_TRAIL 0x1000 /* Trailer packet */ +-#define ETHERTYPE_NTRAILER 16 +- +-#define ETHERMTU ETH_DATA_LEN +-#define ETHERMIN (ETHER_MIN_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) +- +-__END_DECLS +- +-#endif /* net/ethernet.h */ +diff --git a/sysdeps/unix/sysv/linux/net/if_arp.h b/sysdeps/unix/sysv/linux/net/if_arp.h +deleted file mode 100644 +index 97cb61f..0000000 +--- a/sysdeps/unix/sysv/linux/net/if_arp.h ++++ /dev/null +@@ -1,184 +0,0 @@ +-/* Definitions for Address Resolution Protocol. +- Copyright (C) 1997,1999,2001,2006,2009 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Ulrich Drepper , 1997. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-/* Based on the 4.4BSD and Linux version of this file. */ +- +-#ifndef _NET_IF_ARP_H +- +-#define _NET_IF_ARP_H 1 +-#include +- +-#include +-#include +- +-__BEGIN_DECLS +- +-/* Some internals from deep down in the kernel. */ +-#define MAX_ADDR_LEN 7 +- +- +-/* This structure defines an ethernet arp header. */ +- +-/* ARP protocol opcodes. */ +-#define ARPOP_REQUEST 1 /* ARP request. */ +-#define ARPOP_REPLY 2 /* ARP reply. */ +-#define ARPOP_RREQUEST 3 /* RARP request. */ +-#define ARPOP_RREPLY 4 /* RARP reply. */ +-#define ARPOP_InREQUEST 8 /* InARP request. */ +-#define ARPOP_InREPLY 9 /* InARP reply. */ +-#define ARPOP_NAK 10 /* (ATM)ARP NAK. */ +- +-/* See RFC 826 for protocol description. ARP packets are variable +- in size; the arphdr structure defines the fixed-length portion. +- Protocol type values are the same as those for 10 Mb/s Ethernet. +- It is followed by the variable-sized fields ar_sha, arp_spa, +- arp_tha and arp_tpa in that order, according to the lengths +- specified. Field names used correspond to RFC 826. */ +- +-struct arphdr +- { +- unsigned short int ar_hrd; /* Format of hardware address. */ +- unsigned short int ar_pro; /* Format of protocol address. */ +- unsigned char ar_hln; /* Length of hardware address. */ +- unsigned char ar_pln; /* Length of protocol address. */ +- unsigned short int ar_op; /* ARP opcode (command). */ +-#if 0 +- /* Ethernet looks like this : This bit is variable sized +- however... */ +- unsigned char __ar_sha[ETH_ALEN]; /* Sender hardware address. */ +- unsigned char __ar_sip[4]; /* Sender IP address. */ +- unsigned char __ar_tha[ETH_ALEN]; /* Target hardware address. */ +- unsigned char __ar_tip[4]; /* Target IP address. */ +-#endif +- }; +- +- +-/* ARP protocol HARDWARE identifiers. */ +-#define ARPHRD_NETROM 0 /* From KA9Q: NET/ROM pseudo. */ +-#define ARPHRD_ETHER 1 /* Ethernet 10/100Mbps. */ +-#define ARPHRD_EETHER 2 /* Experimental Ethernet. */ +-#define ARPHRD_AX25 3 /* AX.25 Level 2. */ +-#define ARPHRD_PRONET 4 /* PROnet token ring. */ +-#define ARPHRD_CHAOS 5 /* Chaosnet. */ +-#define ARPHRD_IEEE802 6 /* IEEE 802.2 Ethernet/TR/TB. */ +-#define ARPHRD_ARCNET 7 /* ARCnet. */ +-#define ARPHRD_APPLETLK 8 /* APPLEtalk. */ +-#define ARPHRD_DLCI 15 /* Frame Relay DLCI. */ +-#define ARPHRD_ATM 19 /* ATM. */ +-#define ARPHRD_METRICOM 23 /* Metricom STRIP (new IANA id). */ +-#define ARPHRD_IEEE1394 24 /* IEEE 1394 IPv4 - RFC 2734. */ +-#define ARPHRD_EUI64 27 /* EUI-64. */ +-#define ARPHRD_INFINIBAND 32 /* InfiniBand. */ +- +-/* Dummy types for non ARP hardware */ +-#define ARPHRD_SLIP 256 +-#define ARPHRD_CSLIP 257 +-#define ARPHRD_SLIP6 258 +-#define ARPHRD_CSLIP6 259 +-#define ARPHRD_RSRVD 260 /* Notional KISS type. */ +-#define ARPHRD_ADAPT 264 +-#define ARPHRD_ROSE 270 +-#define ARPHRD_X25 271 /* CCITT X.25. */ +-#define ARPHRD_HWX25 272 /* Boards with X.25 in firmware. */ +-#define ARPHRD_PPP 512 +-#define ARPHRD_CISCO 513 /* Cisco HDLC. */ +-#define ARPHRD_HDLC ARPHRD_CISCO +-#define ARPHRD_LAPB 516 /* LAPB. */ +-#define ARPHRD_DDCMP 517 /* Digital's DDCMP. */ +-#define ARPHRD_RAWHDLC 518 /* Raw HDLC. */ +- +-#define ARPHRD_TUNNEL 768 /* IPIP tunnel. */ +-#define ARPHRD_TUNNEL6 769 /* IPIP6 tunnel. */ +-#define ARPHRD_FRAD 770 /* Frame Relay Access Device. */ +-#define ARPHRD_SKIP 771 /* SKIP vif. */ +-#define ARPHRD_LOOPBACK 772 /* Loopback device. */ +-#define ARPHRD_LOCALTLK 773 /* Localtalk device. */ +-#define ARPHRD_FDDI 774 /* Fiber Distributed Data Interface. */ +-#define ARPHRD_BIF 775 /* AP1000 BIF. */ +-#define ARPHRD_SIT 776 /* sit0 device - IPv6-in-IPv4. */ +-#define ARPHRD_IPDDP 777 /* IP-in-DDP tunnel. */ +-#define ARPHRD_IPGRE 778 /* GRE over IP. */ +-#define ARPHRD_PIMREG 779 /* PIMSM register interface. */ +-#define ARPHRD_HIPPI 780 /* High Performance Parallel I'face. */ +-#define ARPHRD_ASH 781 /* (Nexus Electronics) Ash. */ +-#define ARPHRD_ECONET 782 /* Acorn Econet. */ +-#define ARPHRD_IRDA 783 /* Linux-IrDA. */ +-#define ARPHRD_FCPP 784 /* Point to point fibrechanel. */ +-#define ARPHRD_FCAL 785 /* Fibrechanel arbitrated loop. */ +-#define ARPHRD_FCPL 786 /* Fibrechanel public loop. */ +-#define ARPHRD_FCFABRIC 787 /* Fibrechanel fabric. */ +-#define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR. */ +-#define ARPHRD_IEEE80211 801 /* IEEE 802.11. */ +-#define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header. */ +-#define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header. */ +-#define ARPHRD_IEEE802154 804 /* IEEE 802.15.4 header. */ +-#define ARPHRD_IEEE802154_PHY 805 /* IEEE 802.15.4 PHY header. */ +- +-#define ARPHRD_VOID 0xFFFF /* Void type, nothing is known. */ +-#define ARPHRD_NONE 0xFFFE /* Zero header length. */ +- +- +-/* ARP ioctl request. */ +-struct arpreq +- { +- struct sockaddr arp_pa; /* Protocol address. */ +- struct sockaddr arp_ha; /* Hardware address. */ +- int arp_flags; /* Flags. */ +- struct sockaddr arp_netmask; /* Netmask (only for proxy arps). */ +- char arp_dev[16]; +- }; +- +-struct arpreq_old +- { +- struct sockaddr arp_pa; /* Protocol address. */ +- struct sockaddr arp_ha; /* Hardware address. */ +- int arp_flags; /* Flags. */ +- struct sockaddr arp_netmask; /* Netmask (only for proxy arps). */ +- }; +- +-/* ARP Flag values. */ +-#define ATF_COM 0x02 /* Completed entry (ha valid). */ +-#define ATF_PERM 0x04 /* Permanent entry. */ +-#define ATF_PUBL 0x08 /* Publish entry. */ +-#define ATF_USETRAILERS 0x10 /* Has requested trailers. */ +-#define ATF_NETMASK 0x20 /* Want to use a netmask (only +- for proxy entries). */ +-#define ATF_DONTPUB 0x40 /* Don't answer this addresses. */ +-#define ATF_MAGIC 0x80 /* Automatically added entry. */ +- +- +-/* Support for the user space arp daemon, arpd. */ +-#define ARPD_UPDATE 0x01 +-#define ARPD_LOOKUP 0x02 +-#define ARPD_FLUSH 0x03 +- +-struct arpd_request +- { +- unsigned short int req; /* Request type. */ +- u_int32_t ip; /* IP address of entry. */ +- unsigned long int dev; /* Device entry is tied to. */ +- unsigned long int stamp; +- unsigned long int updated; +- unsigned char ha[MAX_ADDR_LEN]; /* Hardware address. */ +- }; +- +-__END_DECLS +- +-#endif /* net/if_arp.h */ +diff --git a/sysdeps/unix/sysv/linux/net/if_ether.h b/sysdeps/unix/sysv/linux/net/if_ether.h +new file mode 100644 +index 0000000..e0fe7b5 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/net/if_ether.h +@@ -0,0 +1,7 @@ ++#ifndef _NET_IF_ETHER_H ++#define _NET_IF_ETHER_H 1 ++ ++/* Get definitions from kernel header file. */ ++#include ++ ++#endif /* net/if_ether.h */ +diff --git a/sysdeps/unix/sysv/linux/net/if_ppp.h b/sysdeps/unix/sysv/linux/net/if_ppp.h +deleted file mode 100644 +index bf5ec83..0000000 +--- a/sysdeps/unix/sysv/linux/net/if_ppp.h ++++ /dev/null +@@ -1,169 +0,0 @@ +-/* From: if_ppp.h,v 1.3 1995/06/12 11:36:50 paulus Exp */ +- +-/* +- * if_ppp.h - Point-to-Point Protocol definitions. +- * +- * Copyright (c) 1989 Carnegie Mellon University. +- * +- * Redistribution and use in source and binary forms, with or without +- * modification, are permitted provided that the following conditions +- * are met: +- * 1. Redistributions of source code must retain the above copyright +- * notice, this list of conditions and the following disclaimer. +- * 2. Redistributions in binary form must reproduce the above copyright +- * notice, this list of conditions and the following disclaimer in the +- * documentation and/or other materials provided with the distribution. +- * 3. Neither the name of the University nor the names of its contributors +- * may be used to endorse or promote products derived from this software +- * without specific prior written permission. +- * +- * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY AND +- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +- * IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE FOR ANY +- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +- * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- * +- */ +- +-/* +- * ==FILEVERSION 960926== +- * +- * NOTE TO MAINTAINERS: +- * If you modify this file at all, please set the above date. +- * if_ppp.h is shipped with a PPP distribution as well as with the kernel; +- * if everyone increases the FILEVERSION number above, then scripts +- * can do the right thing when deciding whether to install a new if_ppp.h +- * file. Don't change the format of that line otherwise, so the +- * installation script can recognize it. +- */ +- +- +-#ifndef __NET_IF_PPP_H +-#define __NET_IF_PPP_H 1 +- +-#include +-#include +- +-#include +-#include +-#include +- +-__BEGIN_DECLS +- +-/* +- * Packet sizes +- */ +- +-#define PPP_MTU 1500 /* Default MTU (size of Info field) */ +-#define PPP_MAXMRU 65000 /* Largest MRU we allow */ +-#define PPP_VERSION "2.2.0" +-#define PPP_MAGIC 0x5002 /* Magic value for the ppp structure */ +-#define PROTO_IPX 0x002b /* protocol numbers */ +-#define PROTO_DNA_RT 0x0027 /* DNA Routing */ +- +- +-/* +- * Bit definitions for flags. +- */ +- +-#define SC_COMP_PROT 0x00000001 /* protocol compression (output) */ +-#define SC_COMP_AC 0x00000002 /* header compression (output) */ +-#define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */ +-#define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */ +-#define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */ +-#define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */ +-#define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */ +-#define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */ +-#define SC_ENABLE_IP 0x00000100 /* IP packets may be exchanged */ +-#define SC_COMP_RUN 0x00001000 /* compressor has been inited */ +-#define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */ +-#define SC_DEBUG 0x00010000 /* enable debug messages */ +-#define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */ +-#define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */ +-#define SC_LOG_RAWIN 0x00080000 /* log all chars received */ +-#define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */ +-#define SC_MASK 0x0fE0ffff /* bits that user can change */ +- +-/* state bits */ +-#define SC_ESCAPED 0x80000000 /* saw a PPP_ESCAPE */ +-#define SC_FLUSH 0x40000000 /* flush input until next PPP_FLAG */ +-#define SC_VJ_RESET 0x20000000 /* Need to reset the VJ decompressor */ +-#define SC_XMIT_BUSY 0x10000000 /* ppp_write_wakeup is active */ +-#define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */ +-#define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */ +-#define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */ +-#define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */ +-#define SC_DC_FERROR 0x00800000 /* fatal decomp error detected */ +-#define SC_DC_ERROR 0x00400000 /* non-fatal decomp error detected */ +- +-/* +- * Ioctl definitions. +- */ +- +-struct npioctl { +- int protocol; /* PPP protocol, e.g. PPP_IP */ +- enum NPmode mode; +-}; +- +-/* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */ +-struct ppp_option_data { +- u_int8_t *ptr; +- u_int32_t length; +- int transmit; +-}; +- +-struct ifpppstatsreq { +- struct ifreq b; +- struct ppp_stats stats; /* statistic information */ +-}; +- +-struct ifpppcstatsreq { +- struct ifreq b; +- struct ppp_comp_stats stats; +-}; +- +-#define ifr__name b.ifr_ifrn.ifrn_name +-#define stats_ptr b.ifr_ifru.ifru_data +- +-/* +- * Ioctl definitions. +- */ +- +-#define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */ +-#define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */ +-#define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */ +-#define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */ +-#define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */ +-#define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */ +-#define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */ +-#define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */ +-#define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */ +-#define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */ +-#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */ +-#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */ +-#define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */ +-#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data) +-#define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */ +-#define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */ +-#define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */ +-#define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */ +-#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */ +- +-#define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0) +-#define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */ +-#define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2) +- +-#if !defined(ifr_mtu) +-#define ifr_mtu ifr_ifru.ifru_metric +-#endif +- +-__END_DECLS +- +-#endif /* net/if_ppp.h */ +diff --git a/sysdeps/unix/sysv/linux/net/route.h b/sysdeps/unix/sysv/linux/net/route.h +deleted file mode 100644 +index da5c810..0000000 +--- a/sysdeps/unix/sysv/linux/net/route.h ++++ /dev/null +@@ -1,145 +0,0 @@ +-/* Copyright (C) 1997, 2002 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-/* Based on the 4.4BSD and Linux version of this file. */ +- +-#ifndef _NET_ROUTE_H +-#define _NET_ROUTE_H 1 +- +-#include +-#include +-#include +-#include +-#include +- +- +-/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */ +-struct rtentry +- { +- unsigned long int rt_pad1; +- struct sockaddr rt_dst; /* Target address. */ +- struct sockaddr rt_gateway; /* Gateway addr (RTF_GATEWAY). */ +- struct sockaddr rt_genmask; /* Target network mask (IP). */ +- unsigned short int rt_flags; +- short int rt_pad2; +- unsigned long int rt_pad3; +- unsigned char rt_tos; +- unsigned char rt_class; +-#if __WORDSIZE == 64 +- short int rt_pad4[3]; +-#else +- short int rt_pad4; +-#endif +- short int rt_metric; /* +1 for binary compatibility! */ +- char *rt_dev; /* Forcing the device at add. */ +- unsigned long int rt_mtu; /* Per route MTU/Window. */ +- unsigned long int rt_window; /* Window clamping. */ +- unsigned short int rt_irtt; /* Initial RTT. */ +- }; +-/* Compatibility hack. */ +-#define rt_mss rt_mtu +- +- +-struct in6_rtmsg +- { +- struct in6_addr rtmsg_dst; +- struct in6_addr rtmsg_src; +- struct in6_addr rtmsg_gateway; +- u_int32_t rtmsg_type; +- u_int16_t rtmsg_dst_len; +- u_int16_t rtmsg_src_len; +- u_int32_t rtmsg_metric; +- unsigned long int rtmsg_info; +- u_int32_t rtmsg_flags; +- int rtmsg_ifindex; +- }; +- +- +-#define RTF_UP 0x0001 /* Route usable. */ +-#define RTF_GATEWAY 0x0002 /* Destination is a gateway. */ +- +-#define RTF_HOST 0x0004 /* Host entry (net otherwise). */ +-#define RTF_REINSTATE 0x0008 /* Reinstate route after timeout. */ +-#define RTF_DYNAMIC 0x0010 /* Created dyn. (by redirect). */ +-#define RTF_MODIFIED 0x0020 /* Modified dyn. (by redirect). */ +-#define RTF_MTU 0x0040 /* Specific MTU for this route. */ +-#define RTF_MSS RTF_MTU /* Compatibility. */ +-#define RTF_WINDOW 0x0080 /* Per route window clamping. */ +-#define RTF_IRTT 0x0100 /* Initial round trip time. */ +-#define RTF_REJECT 0x0200 /* Reject route. */ +-#define RTF_STATIC 0x0400 /* Manually injected route. */ +-#define RTF_XRESOLVE 0x0800 /* External resolver. */ +-#define RTF_NOFORWARD 0x1000 /* Forwarding inhibited. */ +-#define RTF_THROW 0x2000 /* Go to next class. */ +-#define RTF_NOPMTUDISC 0x4000 /* Do not send packets with DF. */ +- +-/* for IPv6 */ +-#define RTF_DEFAULT 0x00010000 /* default - learned via ND */ +-#define RTF_ALLONLINK 0x00020000 /* fallback, no routers on link */ +-#define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */ +- +-#define RTF_LINKRT 0x00100000 /* link specific - device match */ +-#define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */ +- +-#define RTF_CACHE 0x01000000 /* cache entry */ +-#define RTF_FLOW 0x02000000 /* flow significant route */ +-#define RTF_POLICY 0x04000000 /* policy route */ +- +-#define RTCF_VALVE 0x00200000 +-#define RTCF_MASQ 0x00400000 +-#define RTCF_NAT 0x00800000 +-#define RTCF_DOREDIRECT 0x01000000 +-#define RTCF_LOG 0x02000000 +-#define RTCF_DIRECTSRC 0x04000000 +- +-#define RTF_LOCAL 0x80000000 +-#define RTF_INTERFACE 0x40000000 +-#define RTF_MULTICAST 0x20000000 +-#define RTF_BROADCAST 0x10000000 +-#define RTF_NAT 0x08000000 +- +-#define RTF_ADDRCLASSMASK 0xF8000000 +-#define RT_ADDRCLASS(flags) ((__u_int32_t) flags >> 23) +- +-#define RT_TOS(tos) ((tos) & IPTOS_TOS_MASK) +- +-#define RT_LOCALADDR(flags) ((flags & RTF_ADDRCLASSMASK) \ +- == (RTF_LOCAL|RTF_INTERFACE)) +- +-#define RT_CLASS_UNSPEC 0 +-#define RT_CLASS_DEFAULT 253 +- +-#define RT_CLASS_MAIN 254 +-#define RT_CLASS_LOCAL 255 +-#define RT_CLASS_MAX 255 +- +- +-#define RTMSG_ACK NLMSG_ACK +-#define RTMSG_OVERRUN NLMSG_OVERRUN +- +-#define RTMSG_NEWDEVICE 0x11 +-#define RTMSG_DELDEVICE 0x12 +-#define RTMSG_NEWROUTE 0x21 +-#define RTMSG_DELROUTE 0x22 +-#define RTMSG_NEWRULE 0x31 +-#define RTMSG_DELRULE 0x32 +-#define RTMSG_CONTROL 0x40 +- +-#define RTMSG_AR_FAILED 0x51 /* Address Resolution failed. */ +- +-#endif /* net/route.h */ +diff --git a/sysdeps/unix/sysv/linux/netinet/if_ether.h b/sysdeps/unix/sysv/linux/netinet/if_ether.h +deleted file mode 100644 +index aadb59b..0000000 +--- a/sysdeps/unix/sysv/linux/netinet/if_ether.h ++++ /dev/null +@@ -1,105 +0,0 @@ +-/* Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#ifndef __NETINET_IF_ETHER_H +- +-#define __NETINET_IF_ETHER_H 1 +-#include +-#include +- +-/* Get definitions from kernel header file. */ +-#include +- +-#ifdef __USE_BSD +-/* +- * Copyright (c) 1982, 1986, 1993 +- * The Regents of the University of California. All rights reserved. +- * +- * Redistribution and use in source and binary forms, with or without +- * modification, are permitted provided that the following conditions +- * are met: +- * 1. Redistributions of source code must retain the above copyright +- * notice, this list of conditions and the following disclaimer. +- * 2. Redistributions in binary form must reproduce the above copyright +- * notice, this list of conditions and the following disclaimer in the +- * documentation and/or other materials provided with the distribution. +- * 4. Neither the name of the University nor the names of its contributors +- * may be used to endorse or promote products derived from this software +- * without specific prior written permission. +- * +- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +- * SUCH DAMAGE. +- * +- * @(#)if_ether.h 8.3 (Berkeley) 5/2/95 +- * $FreeBSD$ +- */ +- +-#include +-#include +- +-__BEGIN_DECLS +-/* +- * Ethernet Address Resolution Protocol. +- * +- * See RFC 826 for protocol description. Structure below is adapted +- * to resolving internet addresses. Field names used correspond to +- * RFC 826. +- */ +-struct ether_arp { +- struct arphdr ea_hdr; /* fixed-size header */ +- u_int8_t arp_sha[ETH_ALEN]; /* sender hardware address */ +- u_int8_t arp_spa[4]; /* sender protocol address */ +- u_int8_t arp_tha[ETH_ALEN]; /* target hardware address */ +- u_int8_t arp_tpa[4]; /* target protocol address */ +-}; +-#define arp_hrd ea_hdr.ar_hrd +-#define arp_pro ea_hdr.ar_pro +-#define arp_hln ea_hdr.ar_hln +-#define arp_pln ea_hdr.ar_pln +-#define arp_op ea_hdr.ar_op +- +-/* +- * Macro to map an IP multicast address to an Ethernet multicast address. +- * The high-order 25 bits of the Ethernet address are statically assigned, +- * and the low-order 23 bits are taken from the low end of the IP address. +- */ +-#define ETHER_MAP_IP_MULTICAST(ipaddr, enaddr) \ +- /* struct in_addr *ipaddr; */ \ +- /* u_char enaddr[ETH_ALEN]; */ \ +-{ \ +- (enaddr)[0] = 0x01; \ +- (enaddr)[1] = 0x00; \ +- (enaddr)[2] = 0x5e; \ +- (enaddr)[3] = ((u_int8_t *)ipaddr)[1] & 0x7f; \ +- (enaddr)[4] = ((u_int8_t *)ipaddr)[2]; \ +- (enaddr)[5] = ((u_int8_t *)ipaddr)[3]; \ +-} +- +-__END_DECLS +-#endif /* __USE_BSD */ +- +-#endif /* netinet/if_ether.h */ --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-atomic-no-multiple_threads.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-atomic-no-multiple_threads.diff @@ -0,0 +1,273 @@ +On the Hurd we always at least start the sigthread anyway. Let's avoid forking +the file (which would mean having to maintain it) + +--- + atomic.h | 107 +++++++++++++++++++++------------------------------------------ + 1 file changed, 37 insertions(+), 70 deletions(-) + +--- a/sysdeps/i386/i486/bits/atomic.h ++++ b/sysdeps/i386/i486/bits/atomic.h +@@ -87,35 +87,26 @@ + + #define __arch_c_compare_and_exchange_val_8_acq(mem, newval, oldval) \ + ({ __typeof (*mem) ret; \ +- __asm __volatile ("cmpl $0, %%gs:%P5\n\t" \ +- "je 0f\n\t" \ +- "lock\n" \ +- "0:\tcmpxchgb %b2, %1" \ ++ __asm __volatile ("lock\n" \ ++ "\tcmpxchgb %b2, %1" \ + : "=a" (ret), "=m" (*mem) \ +- : "q" (newval), "m" (*mem), "0" (oldval), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "q" (newval), "m" (*mem), "0" (oldval)); \ + ret; }) + + #define __arch_c_compare_and_exchange_val_16_acq(mem, newval, oldval) \ + ({ __typeof (*mem) ret; \ +- __asm __volatile ("cmpl $0, %%gs:%P5\n\t" \ +- "je 0f\n\t" \ +- "lock\n" \ +- "0:\tcmpxchgw %w2, %1" \ ++ __asm __volatile ("lock\n" \ ++ "\tcmpxchgw %w2, %1" \ + : "=a" (ret), "=m" (*mem) \ +- : "r" (newval), "m" (*mem), "0" (oldval), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "r" (newval), "m" (*mem), "0" (oldval)); \ + ret; }) + + #define __arch_c_compare_and_exchange_val_32_acq(mem, newval, oldval) \ + ({ __typeof (*mem) ret; \ +- __asm __volatile ("cmpl $0, %%gs:%P5\n\t" \ +- "je 0f\n\t" \ +- "lock\n" \ +- "0:\tcmpxchgl %2, %1" \ ++ __asm __volatile ("lock\n" \ ++ "\tcmpxchgl %2, %1" \ + : "=a" (ret), "=m" (*mem) \ +- : "r" (newval), "m" (*mem), "0" (oldval), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "r" (newval), "m" (*mem), "0" (oldval)); \ + ret; }) + + /* XXX We do not really need 64-bit compare-and-exchange. At least +@@ -148,10 +139,8 @@ + # define __arch_c_compare_and_exchange_val_64_acq(mem, newval, oldval) \ + ({ __typeof (*mem) ret; \ + __asm __volatile ("xchgl %2, %%ebx\n\t" \ +- "cmpl $0, %%gs:%P7\n\t" \ +- "je 0f\n\t" \ + "lock\n" \ +- "0:\tcmpxchg8b %1\n\t" \ ++ "\tcmpxchg8b %1\n\t" \ + "xchgl %2, %%ebx" \ + : "=A" (ret), "=m" (*mem) \ + : "DS" (((unsigned long long int) (newval)) \ +@@ -159,8 +148,7 @@ + "c" (((unsigned long long int) (newval)) >> 32), \ + "m" (*mem), "a" (((unsigned long long int) (oldval)) \ + & 0xffffffff), \ +- "d" (((unsigned long long int) (oldval)) >> 32), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ "d" (((unsigned long long int) (oldval)) >> 32)); \ + ret; }) + # else + # define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \ +@@ -177,18 +165,15 @@ + + # define __arch_c_compare_and_exchange_val_64_acq(mem, newval, oldval) \ + ({ __typeof (*mem) ret; \ +- __asm __volatile ("cmpl $0, %%gs:%P7\n\t" \ +- "je 0f\n\t" \ +- "lock\n" \ +- "0:\tcmpxchg8b %1" \ ++ __asm __volatile ("lock\n" \ ++ "\tcmpxchg8b %1" \ + : "=A" (ret), "=m" (*mem) \ + : "b" (((unsigned long long int) (newval)) \ + & 0xffffffff), \ + "c" (((unsigned long long int) (newval)) >> 32), \ + "m" (*mem), "a" (((unsigned long long int) (oldval)) \ + & 0xffffffff), \ +- "d" (((unsigned long long int) (oldval)) >> 32), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ "d" (((unsigned long long int) (oldval)) >> 32)); \ + ret; }) + # endif + #endif +@@ -223,18 +208,15 @@ + if (sizeof (*mem) == 1) \ + __asm __volatile (lock "xaddb %b0, %1" \ + : "=q" (__result), "=m" (*mem) \ +- : "0" (__addval), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "0" (__addval), "m" (*mem)); \ + else if (sizeof (*mem) == 2) \ + __asm __volatile (lock "xaddw %w0, %1" \ + : "=r" (__result), "=m" (*mem) \ +- : "0" (__addval), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "0" (__addval), "m" (*mem)); \ + else if (sizeof (*mem) == 4) \ + __asm __volatile (lock "xaddl %0, %1" \ + : "=r" (__result), "=m" (*mem) \ +- : "0" (__addval), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "0" (__addval), "m" (*mem)); \ + else \ + { \ + __typeof (mem) __memp = (mem); \ +@@ -256,7 +238,7 @@ + #endif + + #define __arch_exchange_and_add_cprefix \ +- "cmpl $0, %%gs:%P4\n\tje 0f\n\tlock\n0:\t" ++ "lock\n\t" + + #define catomic_exchange_and_add(mem, value) \ + __arch_exchange_and_add_body (__arch_exchange_and_add_cprefix, __arch_c, \ +@@ -272,18 +254,15 @@ + else if (sizeof (*mem) == 1) \ + __asm __volatile (lock "addb %b1, %0" \ + : "=m" (*mem) \ +- : "iq" (value), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "iq" (value), "m" (*mem)); \ + else if (sizeof (*mem) == 2) \ + __asm __volatile (lock "addw %w1, %0" \ + : "=m" (*mem) \ +- : "ir" (value), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "ir" (value), "m" (*mem)); \ + else if (sizeof (*mem) == 4) \ + __asm __volatile (lock "addl %1, %0" \ + : "=m" (*mem) \ +- : "ir" (value), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "ir" (value), "m" (*mem)); \ + else \ + { \ + __typeof (value) __addval = (value); \ +@@ -301,7 +280,7 @@ + __arch_add_body (LOCK_PREFIX, __arch, mem, value) + + #define __arch_add_cprefix \ +- "cmpl $0, %%gs:%P3\n\tje 0f\n\tlock\n0:\t" ++ "lock\n\t" + + #define catomic_add(mem, value) \ + __arch_add_body (__arch_add_cprefix, __arch_c, mem, value) +@@ -350,18 +329,15 @@ + if (sizeof (*mem) == 1) \ + __asm __volatile (lock "incb %b0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else if (sizeof (*mem) == 2) \ + __asm __volatile (lock "incw %w0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else if (sizeof (*mem) == 4) \ + __asm __volatile (lock "incl %0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else \ + { \ + __typeof (mem) __memp = (mem); \ +@@ -377,7 +353,7 @@ + #define atomic_increment(mem) __arch_increment_body (LOCK_PREFIX, __arch, mem) + + #define __arch_increment_cprefix \ +- "cmpl $0, %%gs:%P2\n\tje 0f\n\tlock\n0:\t" ++ "lock\n\t" + + #define catomic_increment(mem) \ + __arch_increment_body (__arch_increment_cprefix, __arch_c, mem) +@@ -407,18 +383,15 @@ + if (sizeof (*mem) == 1) \ + __asm __volatile (lock "decb %b0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else if (sizeof (*mem) == 2) \ + __asm __volatile (lock "decw %w0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else if (sizeof (*mem) == 4) \ + __asm __volatile (lock "decl %0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else \ + { \ + __typeof (mem) __memp = (mem); \ +@@ -434,7 +407,7 @@ + #define atomic_decrement(mem) __arch_decrement_body (LOCK_PREFIX, __arch, mem) + + #define __arch_decrement_cprefix \ +- "cmpl $0, %%gs:%P2\n\tje 0f\n\tlock\n0:\t" ++ "lock\n\t" + + #define catomic_decrement(mem) \ + __arch_decrement_body (__arch_decrement_cprefix, __arch_c, mem) +@@ -505,24 +478,21 @@ + if (sizeof (*mem) == 1) \ + __asm __volatile (lock "andb %b1, %0" \ + : "=m" (*mem) \ +- : "iq" (mask), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "iq" (mask), "m" (*mem)); \ + else if (sizeof (*mem) == 2) \ + __asm __volatile (lock "andw %w1, %0" \ + : "=m" (*mem) \ +- : "ir" (mask), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "ir" (mask), "m" (*mem)); \ + else if (sizeof (*mem) == 4) \ + __asm __volatile (lock "andl %1, %0" \ + : "=m" (*mem) \ +- : "ir" (mask), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "ir" (mask), "m" (*mem)); \ + else \ + abort (); \ + } while (0) + + #define __arch_cprefix \ +- "cmpl $0, %%gs:%P3\n\tje 0f\n\tlock\n0:\t" ++ "lock\n\t" + + #define atomic_and(mem, mask) __arch_and_body (LOCK_PREFIX, mem, mask) + +@@ -534,18 +504,15 @@ + if (sizeof (*mem) == 1) \ + __asm __volatile (lock "orb %b1, %0" \ + : "=m" (*mem) \ +- : "iq" (mask), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "iq" (mask), "m" (*mem)); \ + else if (sizeof (*mem) == 2) \ + __asm __volatile (lock "orw %w1, %0" \ + : "=m" (*mem) \ +- : "ir" (mask), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "ir" (mask), "m" (*mem)); \ + else if (sizeof (*mem) == 4) \ + __asm __volatile (lock "orl %1, %0" \ + : "=m" (*mem) \ +- : "ir" (mask), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "ir" (mask), "m" (*mem)); \ + else \ + abort (); \ + } while (0) --- eglibc-2.12.1.orig/debian/patches/hurd-i386/local-locarchive.diff +++ eglibc-2.12.1/debian/patches/hurd-i386/local-locarchive.diff @@ -0,0 +1,26 @@ +Dirty hack to fix installation of locales-all: instead of just locking the +archive extension (which is not supported on hurd-i386), lock it all. + +--- + locale/programs/locarchive.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/locale/programs/locarchive.c ++++ b/locale/programs/locarchive.c +@@ -416,7 +416,16 @@ + } + + /* Lock the new file. */ ++#ifdef __GNU__ ++ struct flock fl; ++ fl.l_whence = SEEK_SET; ++ fl.l_start = 0; ++ fl.l_len = 0; ++ fl.l_type = F_WRLCK; ++ if (fcntl(fd, F_SETLKW, &fl) != 0) ++#else + if (lockf64 (fd, F_LOCK, total) != 0) ++#endif + { + int errval = errno; + unlink (fname); --- eglibc-2.12.1.orig/debian/patches/hurd-i386/submitted-SOL_IP.patch +++ eglibc-2.12.1/debian/patches/hurd-i386/submitted-SOL_IP.patch @@ -0,0 +1,31 @@ +2009-09-28 Samuel Thibault + + * bits/in.h (SOL_IP, SOL_IPV6, SOL_ICMPV6): New macros. + +--- + bits/in.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/bits/in.h ++++ b/bits/in.h +@@ -22,6 +22,9 @@ + # error "Never use directly; include instead." + #endif + ++/* To select the IP level. */ ++#define SOL_IP 0 ++ + /* Options for use with `getsockopt' and `setsockopt' at the IP level. + The first word in the comment at the right is the data type used; + "bool" means a boolean value stored in an `int'. */ +@@ -48,6 +51,10 @@ + char ip_opts[40]; /* Actually variable in size. */ + }; + ++/* Socket level values for IPv6. */ ++#define SOL_IPV6 41 ++#define SOL_ICMPV6 58 ++ + /* IPV6 socket options. */ + #define IPV6_ADDRFORM 1 + #define IPV6_PKTINFO 2 --- eglibc-2.12.1.orig/debian/patches/s390/submitted-nexttowardf.diff +++ eglibc-2.12.1/debian/patches/s390/submitted-nexttowardf.diff @@ -0,0 +1,62 @@ +2008-05-05 Aurelien Jarno + + * sysdeps/ieee754/ldbl-128/s_nexttowardf.c: Include float.h. + (__nexttowardf): Use math_opt_barrier and + math_force_eval macros. If FLT_EVAL_METHOD is not 0, force + x to float using asm. + +--- + sysdeps/ieee754/ldbl-128/s_nexttowardf.c | 26 ++++++++++++++++---------- + 1 file changed, 16 insertions(+), 10 deletions(-) + +--- a/sysdeps/ieee754/ldbl-128/s_nexttowardf.c ++++ b/sysdeps/ieee754/ldbl-128/s_nexttowardf.c +@@ -19,7 +19,8 @@ + #endif + + #include "math.h" +-#include "math_private.h" ++#include ++#include + + #ifdef __STDC__ + float __nexttowardf(float x, long double y) +@@ -44,10 +45,12 @@ + return x+y; + if((long double) x==y) return y; /* x=y, return y */ + if(ix==0) { /* x == 0 */ +- float x2; ++ float u; + SET_FLOAT_WORD(x,(u_int32_t)((hy>>32)&0x80000000)|1);/* return +-minsub*/ +- x2 = x*x; +- if(x2==x) return x2; else return x; /* raise underflow flag */ ++ u = math_opt_barrier (x); ++ u = u * u; ++ math_force_eval (u); /* raise underflow flag */ ++ return x; + } + if(hx>=0) { /* x > 0 */ + if(hy<0||(ix>>23)>(iy>>48)-0x3f80 +@@ -67,13 +70,16 @@ + } + } + hy = hx&0x7f800000; +- if(hy>=0x7f800000) return x+x; /* overflow */ ++ if(hy>=0x7f800000) { ++ x = x+x; /* overflow */ ++ if (FLT_EVAL_METHOD != 0) ++ /* Force conversion to float. */ ++ asm ("" : "+m"(x)); ++ return x; ++ } + if(hy<0x00800000) { /* underflow */ +- float x2 = x*x; +- if(x2!=x) { /* raise underflow flag */ +- SET_FLOAT_WORD(x2,hx); +- return x2; +- } ++ float u = x*x; ++ math_force_eval (u); /* raise underflow flag */ + } + SET_FLOAT_WORD(x,hx); + return x; --- eglibc-2.12.1.orig/debian/patches/s390/cvs-makecontext.diff +++ eglibc-2.12.1/debian/patches/s390/cvs-makecontext.diff @@ -0,0 +1,225 @@ +2010-04-13 Andreas Schwab + + * sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c: Fix setup of + overflow area. + * sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c: Likewise. + +--- + sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c | 64 ++++++++++----------- + sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c | 62 ++++++++++---------- + 2 files changed, 63 insertions(+), 63 deletions(-) + +--- a/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c ++++ b/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2001 Free Software Foundation, Inc. ++/* Copyright (C) 2001, 2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). + +@@ -28,15 +28,15 @@ + double, complex and structure with sizes 0, 2, 4 or 8 + won't work. + makecontext sets up a stack and the registers for the +- context. The stack looks like this: +- size offset ++ user context. The stack looks like this: ++ size offset + %r15 -> +-----------------------+ +- 4 | back chain (zero) | 0 +- 4 | reserved | 4 +- 88 | save area for (*func) | 8 +- +-----------------------+ +- n | overflow parameters | 96 +- +-----------------------+ ++ 4 | back chain (zero) | 0 ++ 4 | reserved | 4 ++ 88 | save area for (*func) | 8 ++ +-----------------------+ ++ n | overflow parameters | 96 ++ +-----------------------+ + The registers are set up like this: + %r2-%r6: parameters 1 to 5 + %r7 : (*func) pointer +@@ -54,27 +54,27 @@ + __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) + { + extern void __makecontext_ret (void); +- unsigned long *sp; ++ unsigned long int *sp; + va_list ap; +- int i; + +- sp = (unsigned long *) (((unsigned long) ucp->uc_stack.ss_sp +- + ucp->uc_stack.ss_size) & -8L); ++ sp = (unsigned long int *) (((unsigned long int) ucp->uc_stack.ss_sp ++ + ucp->uc_stack.ss_size) & -8L); + + /* Set the return address to trampoline. */ +- ucp->uc_mcontext.gregs[14] = (long) __makecontext_ret; ++ ucp->uc_mcontext.gregs[14] = (long int) __makecontext_ret; + + /* Set register parameters. */ + va_start (ap, argc); +- for (i = 0; (i < argc) && (i < 5); i++) +- ucp->uc_mcontext.gregs[2+i] = va_arg (ap, long); ++ for (int i = 0; i < argc && i < 5; ++i) ++ ucp->uc_mcontext.gregs[2 + i] = va_arg (ap, long int); + + /* The remaining arguments go to the overflow area. */ +- if (argc > 5) { +- sp -= argc - 5; +- for (i = 5; i < argc; i++) +- sp[i] = va_arg(ap, long); +- } ++ if (argc > 5) ++ { ++ sp -= argc - 5; ++ for (int i = 5; i < argc; ++i) ++ sp[i - 5] = va_arg (ap, long int); ++ } + va_end (ap); + + /* Make room for the save area and set the backchain. */ +@@ -82,24 +82,24 @@ + *sp = 0; + + /* Pass (*func) to __start_context in %r7. */ +- ucp->uc_mcontext.gregs[7] = (long) func; ++ ucp->uc_mcontext.gregs[7] = (long int) func; + + /* Pass ucp->uc_link to __start_context in %r8. */ +- ucp->uc_mcontext.gregs[8] = (long) ucp->uc_link; ++ ucp->uc_mcontext.gregs[8] = (long int) ucp->uc_link; + + /* Pass address of setcontext in %r9. */ +- ucp->uc_mcontext.gregs[9] = (long) &setcontext; ++ ucp->uc_mcontext.gregs[9] = (long int) &setcontext; + + /* Set stack pointer. */ +- ucp->uc_mcontext.gregs[15] = (long) sp; ++ ucp->uc_mcontext.gregs[15] = (long int) sp; + } + +-asm(".text\n" +- ".type __makecontext_ret,@function\n" +- "__makecontext_ret:\n" +- " basr %r14,%r7\n" +- " lr %r2,%r8\n" +- " br %r9\n" +- ".size __makecontext_ret, .-__makecontext_ret"); ++asm (".text\n" ++ ".type __makecontext_ret,@function\n" ++ "__makecontext_ret:\n" ++ " basr %r14,%r7\n" ++ " lr %r2,%r8\n" ++ " br %r9\n" ++ ".size __makecontext_ret, .-__makecontext_ret"); + + weak_alias (__makecontext, makecontext) +--- a/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c ++++ b/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2001 Free Software Foundation, Inc. ++/* Copyright (C) 2001, 2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). + +@@ -29,14 +29,14 @@ + won't work. + makecontext sets up a stack and the registers for the + user context. The stack looks like this: +- size offset ++ size offset + %r15 -> +-----------------------+ +- 8 | back chain (zero) | 0 +- 8 | reserved | 8 +- 144 | save area for (*func) | 16 +- +-----------------------+ +- n | overflow parameters | 160 +- +-----------------------+ ++ 8 | back chain (zero) | 0 ++ 8 | reserved | 8 ++ 144 | save area for (*func) | 16 ++ +-----------------------+ ++ n | overflow parameters | 160 ++ +-----------------------+ + The registers are set up like this: + %r2-%r6: parameters 1 to 5 + %r7 : (*func) pointer +@@ -54,27 +54,27 @@ + __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) + { + extern void __makecontext_ret (void); +- unsigned long *sp; ++ unsigned long int *sp; + va_list ap; +- int i; + +- sp = (unsigned long *) (((unsigned long) ucp->uc_stack.ss_sp +- + ucp->uc_stack.ss_size) & -8L); ++ sp = (unsigned long int *) (((unsigned long int) ucp->uc_stack.ss_sp ++ + ucp->uc_stack.ss_size) & -8L); + + /* Set the return address to trampoline. */ +- ucp->uc_mcontext.gregs[14] = (long) __makecontext_ret; ++ ucp->uc_mcontext.gregs[14] = (long int) __makecontext_ret; + + /* Set register parameters. */ + va_start (ap, argc); +- for (i = 0; (i < argc) && (i < 5); i++) +- ucp->uc_mcontext.gregs[2+i] = va_arg (ap, long); ++ for (int i = 0; i < argc && i < 5; ++i) ++ ucp->uc_mcontext.gregs[2 + i] = va_arg (ap, long int); + + /* The remaining arguments go to the overflow area. */ +- if (argc > 5) { +- sp -= argc - 5; +- for (i = 5; i < argc; i++) +- sp[i] = va_arg(ap, long); +- } ++ if (argc > 5) ++ { ++ sp -= argc - 5; ++ for (int i = 5; i < argc; ++i) ++ sp[i - 5] = va_arg (ap, long int); ++ } + va_end (ap); + + /* Make room for the save area and set the backchain. */ +@@ -82,24 +82,24 @@ + *sp = 0; + + /* Pass (*func) to __start_context in %r7. */ +- ucp->uc_mcontext.gregs[7] = (long) func; ++ ucp->uc_mcontext.gregs[7] = (long int) func; + + /* Pass ucp->uc_link to __start_context in %r8. */ +- ucp->uc_mcontext.gregs[8] = (long) ucp->uc_link; ++ ucp->uc_mcontext.gregs[8] = (long int) ucp->uc_link; + + /* Pass address of setcontext in %r9. */ +- ucp->uc_mcontext.gregs[9] = (long) &setcontext; ++ ucp->uc_mcontext.gregs[9] = (long int) &setcontext; + + /* Set stack pointer. */ +- ucp->uc_mcontext.gregs[15] = (long) sp; ++ ucp->uc_mcontext.gregs[15] = (long int) sp; + } + +-asm(".text\n" +- ".type __makecontext_ret,@function\n" +- "__makecontext_ret:\n" +- " basr %r14,%r7\n" +- " lgr %r2,%r8\n" +- " br %r9\n" +- ".size __makecontext_ret, .-__makecontext_ret"); ++asm (".text\n" ++ ".type __makecontext_ret,@function\n" ++ "__makecontext_ret:\n" ++ " basr %r14,%r7\n" ++ " lgr %r2,%r8\n" ++ " br %r9\n" ++ ".size __makecontext_ret, .-__makecontext_ret"); + + weak_alias (__makecontext, makecontext) --- eglibc-2.12.1.orig/debian/patches/lpia/local-i686-redefine.diff +++ eglibc-2.12.1/debian/patches/lpia/local-i686-redefine.diff @@ -0,0 +1,39 @@ +2007-02-15 Khem Raj + + * sysdeps/unix/sysv/linux/i386/sysdep.h: Re-define __i686. + * nptl/sysdeps/pthread/pt-initfini.c: Ditto. + + + +Index: sysdeps/unix/sysv/linux/i386/sysdep.h +=================================================================== +--- sysdeps/unix/sysv/linux/i386/sysdep.h (revision 1469) ++++ sysdeps/unix/sysv/linux/i386/sysdep.h (working copy) +@@ -29,6 +29,10 @@ + #include + #include + ++#if defined __i686 && defined __ASSEMBLER__ ++#undef __i686 ++#define __i686 __i686 ++#endif + + /* For Linux we can use the system call table in the header file + /usr/include/asm/unistd.h +Index: nptl/sysdeps/pthread/pt-initfini.c +=================================================================== +--- nptl/sysdeps/pthread/pt-initfini.c (revision 1469) ++++ nptl/sysdeps/pthread/pt-initfini.c (working copy) +@@ -45,6 +45,11 @@ + /* Embed an #include to pull in the alignment and .end directives. */ + asm ("\n#include \"defs.h\""); + ++asm ("\n#if defined __i686 && defined __ASSEMBLER__"); ++asm ("\n#undef __i686"); ++asm ("\n#define __i686 __i686"); ++asm ("\n#endif"); ++ + /* The initial common code ends here. */ + asm ("\n/*@HEADER_ENDS*/"); + + --- eglibc-2.12.1.orig/debian/patches/mips/local-r10k.diff +++ eglibc-2.12.1/debian/patches/mips/local-r10k.diff @@ -0,0 +1,64 @@ +the R10000 needs an LL/SC Workaround. If not applied all R10k before +rev 3.0 misbehave on atomic ops and rev 2.6 and lower (e.g. SGI IP28) +die after very few seconds with a deadlock due to even more erratas. + +--- + ports/sysdeps/mips/bits/atomic.h | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +--- a/ports/sysdeps/mips/bits/atomic.h ++++ b/ports/sysdeps/mips/bits/atomic.h +@@ -74,7 +74,7 @@ + "bne %0,%3,2f\n\t" \ + "move %1,%4\n\t" \ + "sc %1,%2\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -98,7 +98,7 @@ + "bne %0,%3,2f\n\t" \ + "move %1,%4\n\t" \ + "scd %1,%2\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -192,7 +192,7 @@ + "ll %0,%4\n\t" \ + "move %1,%3\n\t" \ + "sc %1,%2\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -216,7 +216,7 @@ + "lld %0,%4\n\t" \ + "move %1,%3\n\t" \ + "scd %1,%2\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -251,7 +251,7 @@ + "ll %0,%4\n\t" \ + "addu %1,%0,%3\n\t" \ + "sc %1,%2\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -275,7 +275,7 @@ + "lld %0,%4\n\t" \ + "daddu %1,%0,%3\n\t" \ + "scd %1,%2\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ --- eglibc-2.12.1.orig/debian/patches/mips/cvs-mips-atomic_h.diff +++ eglibc-2.12.1/debian/patches/mips/cvs-mips-atomic_h.diff @@ -0,0 +1,134 @@ +2010-03-23 Mischa Jonker + + [BZ #11291] + * sysdeps/mips/bits/atomic.h + (__arch_compare_and_exchange_xxx_32_int, + __arch_compare_and_exchange_xxx_64_int, + __arch_exchange_xxx_32_int, __arch_exchange_xxx_64_int, + __arch_exchange_and_add_32_int, __arch_exchange_and_add_64_int): + Specify *mem as asm output as well as input. + +diff --git a/sysdeps/mips/bits/atomic.h b/sysdeps/mips/bits/atomic.h +index 167d9a5..11b3467 100644 +--- a/ports/sysdeps/mips/bits/atomic.h ++++ b/ports/sysdeps/mips/bits/atomic.h +@@ -69,16 +69,16 @@ typedef uintmax_t uatomic_max_t; + MIPS_PUSH_MIPS2 \ + rel "\n" \ + "1:\t" \ +- "ll %0,%4\n\t" \ ++ "ll %0,%5\n\t" \ + "move %1,$0\n\t" \ +- "bne %0,%2,2f\n\t" \ +- "move %1,%3\n\t" \ +- "sc %1,%4\n\t" \ ++ "bne %0,%3,2f\n\t" \ ++ "move %1,%4\n\t" \ ++ "sc %1,%2\n\t" \ + "beqz %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +- : "=&r" (__prev), "=&r" (__cmp) \ ++ : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem) \ + : "r" (oldval), "r" (newval), "m" (*mem) \ + : "memory") + +@@ -93,16 +93,16 @@ typedef uintmax_t uatomic_max_t; + MIPS_PUSH_MIPS2 \ + rel "\n" \ + "1:\t" \ +- "lld %0,%4\n\t" \ ++ "lld %0,%5\n\t" \ + "move %1,$0\n\t" \ +- "bne %0,%2,2f\n\t" \ +- "move %1,%3\n\t" \ +- "scd %1,%4\n\t" \ ++ "bne %0,%3,2f\n\t" \ ++ "move %1,%4\n\t" \ ++ "scd %1,%2\n\t" \ + "beqz %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +- : "=&r" (__prev), "=&r" (__cmp) \ ++ : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem) \ + : "r" (oldval), "r" (newval), "m" (*mem) \ + : "memory") + #endif +@@ -189,14 +189,14 @@ typedef uintmax_t uatomic_max_t; + MIPS_PUSH_MIPS2 \ + rel "\n" \ + "1:\t" \ +- "ll %0,%3\n\t" \ +- "move %1,%2\n\t" \ +- "sc %1,%3\n\t" \ ++ "ll %0,%4\n\t" \ ++ "move %1,%3\n\t" \ ++ "sc %1,%2\n\t" \ + "beqz %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +- : "=&r" (__prev), "=&r" (__cmp) \ ++ : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem) \ + : "r" (newval), "m" (*mem) \ + : "memory"); \ + __prev; }) +@@ -213,14 +213,14 @@ typedef uintmax_t uatomic_max_t; + MIPS_PUSH_MIPS2 \ + rel "\n" \ + "1:\n" \ +- "lld %0,%3\n\t" \ +- "move %1,%2\n\t" \ +- "scd %1,%3\n\t" \ ++ "lld %0,%4\n\t" \ ++ "move %1,%3\n\t" \ ++ "scd %1,%2\n\t" \ + "beqz %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +- : "=&r" (__prev), "=&r" (__cmp) \ ++ : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem) \ + : "r" (newval), "m" (*mem) \ + : "memory"); \ + __prev; }) +@@ -248,14 +248,14 @@ typedef uintmax_t uatomic_max_t; + MIPS_PUSH_MIPS2 \ + rel "\n" \ + "1:\t" \ +- "ll %0,%3\n\t" \ +- "addu %1,%0,%2\n\t" \ +- "sc %1,%3\n\t" \ ++ "ll %0,%4\n\t" \ ++ "addu %1,%0,%3\n\t" \ ++ "sc %1,%2\n\t" \ + "beqz %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +- : "=&r" (__prev), "=&r" (__cmp) \ ++ : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem) \ + : "r" (value), "m" (*mem) \ + : "memory"); \ + __prev; }) +@@ -272,14 +272,14 @@ typedef uintmax_t uatomic_max_t; + MIPS_PUSH_MIPS2 \ + rel "\n" \ + "1:\t" \ +- "lld %0,%3\n\t" \ +- "daddu %1,%0,%2\n\t" \ +- "scd %1,%3\n\t" \ ++ "lld %0,%4\n\t" \ ++ "daddu %1,%0,%3\n\t" \ ++ "scd %1,%2\n\t" \ + "beqz %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +- : "=&r" (__prev), "=&r" (__cmp) \ ++ : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem) \ + : "r" (value), "m" (*mem) \ + : "memory"); \ + __prev; }) --- eglibc-2.12.1.orig/debian/patches/mips/submitted-rld_map.diff +++ eglibc-2.12.1/debian/patches/mips/submitted-rld_map.diff @@ -0,0 +1,21 @@ +2010-05-20 Aurelien Jarno + + * sysdeps/mips/dl-machine.h (ELF_MACHINE_DEBUG_SETUP): test for + RLD_MAP pointer before using it. + +--- + ports/sysdeps/mips/dl-machine.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/ports/sysdeps/mips/dl-machine.h ++++ b/ports/sysdeps/mips/dl-machine.h +@@ -70,7 +70,8 @@ + /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in + with the run-time address of the r_debug structure */ + #define ELF_MACHINE_DEBUG_SETUP(l,r) \ +-do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \ ++do { if ((l)->l_info[DT_MIPS (RLD_MAP)] && \ ++ (l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) \ + *(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \ + (ElfW(Addr)) (r); \ + } while (0) --- eglibc-2.12.1.orig/debian/patches/mips/local-lowlevellock.diff +++ eglibc-2.12.1/debian/patches/mips/local-lowlevellock.diff @@ -0,0 +1,19 @@ +2010-02-09 Aurelien Jarno + + * sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h: remove + useless include. + +--- + ports/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h | 1 - + 1 file changed, 1 deletion(-) + +--- a/ports/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h ++++ b/ports/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h +@@ -24,7 +24,6 @@ + #include + #include + #include +-#include + #include + + #define FUTEX_WAIT 0 --- eglibc-2.12.1.orig/debian/control.in/mips64 +++ eglibc-2.12.1/debian/control.in/mips64 @@ -0,0 +1,22 @@ +Package: libc6-mips64 +Architecture: mips mipsel +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: 64bit Shared libraries for MIPS64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for MIPS64 systems. + +Package: libc6-dev-mips64 +Architecture: mips mipsel +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-mips64 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for MIPS64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for MIPS64 systems. + --- eglibc-2.12.1.orig/debian/control.in/ppc64 +++ eglibc-2.12.1/debian/control.in/ppc64 @@ -0,0 +1,22 @@ +Package: libc6-ppc64 +Architecture: powerpc +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: 64bit Shared libraries for PowerPC64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for PowerPC64 systems. + +Package: libc6-dev-ppc64 +Architecture: powerpc +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-ppc64 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for PowerPC64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for PowerPC64 systems. + --- eglibc-2.12.1.orig/debian/control.in/opt +++ eglibc-2.12.1/debian/control.in/opt @@ -0,0 +1,139 @@ +Package: libc6-sparcv9b +Architecture: sparc sparc64 +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${binary:Version}) +Depends: ${misc:Depends} +Description: GNU C Library: Shared libraries [v9b optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the UltraSPARC v9b ABI. It only + needs to be installed on UltraSPARC machines. If you install this on a + non-UltraSPARC, it won't even be used. + +Package: libc6-sparcv9v +Architecture: sparc +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${Source-Version}) +Description: GNU C Library: Shared libraries [v9v optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for SUN4V Niagara and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparcv9v2 +Architecture: sparc +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${Source-Version}) +Description: GNU C Library: Shared libraries [v9v2 optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for SUN4V Niagara 2 and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara 2 and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64b +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9b optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for UltraSPARC-III and derivative + processors. It only needs to be installed on machines using + UltraSPARC-III and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64v +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9v optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for SUN4V Niagara and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64v2 +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9v2 optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for SUN4V Niagara 2 and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara 2 and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-xen +Architecture: i386 +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${binary:Version}) +Depends: ${misc:Depends} +Description: GNU C Library: Shared libraries [Xen version] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the Xen hypervisor, and will be + selected instead when running under Xen. + +Package: libc0.1-i686 +Architecture: kfreebsd-i386 +Section: libs +Priority: extra +Pre-Depends: libc0.1 (= ${binary:Version}) +Depends: ${misc:Depends} +Description: GNU C Library: Shared libraries [i686 optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for i686 machines, and will only be + used on an i686 class CPU (check the output of `uname -m'). This includes + Pentium Pro, Pentium II/III/IV, Celeron CPU's and similar class CPU's + (including clones such as AMD Athlon/Opteron, VIA C3 Nehemiah, but not VIA + C3 Ezla). + +Package: libc6.1-alphaev67 +Architecture: alpha +Section: libs +Priority: extra +Pre-Depends: libc6.1 (= ${binary:Version}) +Depends: ${misc:Depends} +Description: GNU C Library: Shared libraries (EV67 optimized) + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the Alpha EV67. It only + needs to be installed on Alpha EV67/68 and EV7 machines. If you install + this on an older machine, it won't even be used. + --- eglibc-2.12.1.orig/debian/control.in/amd64 +++ eglibc-2.12.1/debian/control.in/amd64 @@ -0,0 +1,24 @@ +Package: libc6-amd64 +Architecture: i386 +Section: libs +Priority: standard +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Conflicts: amd64-libs (<= 1.2) +Description: GNU C Library: 64bit Shared libraries for AMD64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for AMD64 systems. + +Package: libc6-dev-amd64 +Architecture: i386 +Section: libdevel +Priority: optional +Depends: libc6-amd64 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Replaces: amd64-libs-dev (<= 1.2) +Provides: lib64c-dev +Description: GNU C Library: 64bit Development Libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for AMD64 systems. + --- eglibc-2.12.1.orig/debian/control.in/libc6.1 +++ eglibc-2.12.1/debian/control.in/libc6.1 @@ -0,0 +1,76 @@ +Package: libc6.1 +Architecture: alpha ia64 +Section: libs +Priority: required +Depends: libc-bin (= ${binary:Version}), hurd (>= 20070606-1+SVN) [hurd-i386], libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 [hppa], tzdata, findutils (>= 4.4.0-2ubuntu2) +Recommends: libc0.1-i686 [kfreebsd-i386] +Suggests: glibc-doc, debconf | debconf-2.0, locales [!hurd-i386] +Provides: ${locale-compat:Depends}, libc6-i686 [i386] +Conflicts: belocs-locales-bin, tzdata-etch, tzdata (<< 2007k-1), libc6-i686 [i386] +Replaces: belocs-locales-bin +Breaks: nscd (<< 2.12) +Description: Embedded GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc6.1-dev +Architecture: alpha ia64 +Section: libdevel +Priority: optional +Depends: libc6.1 (= ${binary:Version}), libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], kfreebsd-kernel-headers (>= 0.11) [kfreebsd-any], gnumach-dev [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386], libpthread-stubs0-dev [hurd-i386] +Recommends: gcc | c-compiler +Suggests: glibc-doc, manpages-dev +Provides: libc-dev, libc6-dev [alpha ia64 hurd-i386 kfreebsd-i386 kfreebsd-amd64] +Conflicts: binutils (<< 2.20.1-1), binutils-gold (<< 2.20.1-11) +Description: Embedded GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc6.1-dbg +Architecture: alpha ia64 +Section: debug +Priority: extra +Provides: libc-dbg +Depends: libc6.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: detached debugging symbols + This package contains the detached debugging symbols for the GNU C + library. + +Package: libc6.1-prof +Architecture: alpha ia64 +Section: libdevel +Priority: extra +Depends: libc6.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc6.1-pic +Architecture: alpha ia64 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc6.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc6.1-udeb +XC-Package-Type: udeb +Architecture: alpha ia64 +Section: debian-installer +Priority: extra +Provides: libc6.1, libc-udeb, ${locale-compat:Depends} +Description: Embedded GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + --- eglibc-2.12.1.orig/debian/control.in/libc +++ eglibc-2.12.1/debian/control.in/libc @@ -0,0 +1,76 @@ +Package: @libc@ +Architecture: @archs@ +Section: libs +Priority: required +Depends: libc-bin (= ${binary:Version}), hurd (>= 20070606-1+SVN) [hurd-i386], libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 [hppa], tzdata, findutils (>= 4.4.0-2ubuntu2) +Recommends: libc0.1-i686 [kfreebsd-i386] +Suggests: glibc-doc, debconf | debconf-2.0, locales [!hurd-i386] +Provides: ${locale-compat:Depends}, libc6-i686 [i386] +Conflicts: belocs-locales-bin, tzdata-etch, tzdata (<< 2007k-1), libc6-i686 [i386] +Replaces: belocs-locales-bin +Breaks: nscd (<< 2.12) +Description: Embedded GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: @libc@-dev +Architecture: @archs@ +Section: libdevel +Priority: optional +Depends: @libc@ (= ${binary:Version}), libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], kfreebsd-kernel-headers (>= 0.11) [kfreebsd-any], gnumach-dev [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386], libpthread-stubs0-dev [hurd-i386] +Recommends: gcc | c-compiler +Suggests: glibc-doc, manpages-dev +Provides: libc-dev, libc6-dev [alpha ia64 hurd-i386 kfreebsd-i386 kfreebsd-amd64] +Conflicts: binutils (<< 2.20.1-1), binutils-gold (<< 2.20.1-11) +Description: Embedded GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: @libc@-dbg +Architecture: @archs@ +Section: debug +Priority: extra +Provides: libc-dbg +Depends: @libc@ (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: detached debugging symbols + This package contains the detached debugging symbols for the GNU C + library. + +Package: @libc@-prof +Architecture: @archs@ +Section: libdevel +Priority: extra +Depends: @libc@ (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: @libc@-pic +Architecture: @archs@ +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: @libc@ (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: @libc@-udeb +XC-Package-Type: udeb +Architecture: @archs@ +Section: debian-installer +Priority: extra +Provides: @libc@, libc-udeb, ${locale-compat:Depends} +Description: Embedded GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + --- eglibc-2.12.1.orig/debian/control.in/i386 +++ eglibc-2.12.1/debian/control.in/i386 @@ -0,0 +1,25 @@ +Package: libc6-i386 +Architecture: amd64 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Replaces: libc6-dev-i386 +Conflicts: ia32-libs (<= 1.5) +Description: GNU C Library: 32-bit shared libraries for AMD64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for AMD64 systems. + +Package: libc6-dev-i386 +Architecture: amd64 +Section: libdevel +Priority: optional +Conflicts: ia32-libs-dev (<< 1.18) +Provides: lib32c-dev +Depends: libc6-i386 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 32-bit development libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for AMD64 systems. + --- eglibc-2.12.1.orig/debian/control.in/sparc64 +++ eglibc-2.12.1/debian/control.in/sparc64 @@ -0,0 +1,23 @@ +Package: libc6-sparc64 +Architecture: sparc +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + +Package: libc6-dev-sparc64 +Architecture: sparc +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-sparc64 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for UltraSPARC + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for UltraSPARC systems. + --- eglibc-2.12.1.orig/debian/control.in/libc0.3 +++ eglibc-2.12.1/debian/control.in/libc0.3 @@ -0,0 +1,76 @@ +Package: libc0.3 +Architecture: hurd-i386 +Section: libs +Priority: required +Depends: libc-bin (= ${binary:Version}), hurd (>= 20070606-1+SVN) [hurd-i386], libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 [hppa], tzdata, findutils (>= 4.4.0-2ubuntu2) +Recommends: libc0.1-i686 [kfreebsd-i386] +Suggests: glibc-doc, debconf | debconf-2.0, locales [!hurd-i386] +Provides: ${locale-compat:Depends}, libc6-i686 [i386] +Conflicts: belocs-locales-bin, tzdata-etch, tzdata (<< 2007k-1), libc6-i686 [i386] +Replaces: belocs-locales-bin +Breaks: nscd (<< 2.12) +Description: Embedded GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc0.3-dev +Architecture: hurd-i386 +Section: libdevel +Priority: optional +Depends: libc0.3 (= ${binary:Version}), libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], kfreebsd-kernel-headers (>= 0.11) [kfreebsd-any], gnumach-dev [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386], libpthread-stubs0-dev [hurd-i386] +Recommends: gcc | c-compiler +Suggests: glibc-doc, manpages-dev +Provides: libc-dev, libc6-dev [alpha ia64 hurd-i386 kfreebsd-i386 kfreebsd-amd64] +Conflicts: binutils (<< 2.20.1-1), binutils-gold (<< 2.20.1-11) +Description: Embedded GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc0.3-dbg +Architecture: hurd-i386 +Section: debug +Priority: extra +Provides: libc-dbg +Depends: libc0.3 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: detached debugging symbols + This package contains the detached debugging symbols for the GNU C + library. + +Package: libc0.3-prof +Architecture: hurd-i386 +Section: libdevel +Priority: extra +Depends: libc0.3 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc0.3-pic +Architecture: hurd-i386 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc0.3 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc0.3-udeb +XC-Package-Type: udeb +Architecture: hurd-i386 +Section: debian-installer +Priority: extra +Provides: libc0.3, libc-udeb, ${locale-compat:Depends} +Description: Embedded GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + --- eglibc-2.12.1.orig/debian/control.in/libc6 +++ eglibc-2.12.1/debian/control.in/libc6 @@ -0,0 +1,76 @@ +Package: libc6 +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: libs +Priority: required +Depends: libc-bin (= ${binary:Version}), hurd (>= 20070606-1+SVN) [hurd-i386], libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 [hppa], tzdata, findutils (>= 4.4.0-2ubuntu2) +Recommends: libc0.1-i686 [kfreebsd-i386] +Suggests: glibc-doc, debconf | debconf-2.0, locales [!hurd-i386] +Provides: ${locale-compat:Depends}, libc6-i686 [i386] +Conflicts: belocs-locales-bin, tzdata-etch, tzdata (<< 2007k-1), libc6-i686 [i386] +Replaces: belocs-locales-bin +Breaks: nscd (<< 2.12) +Description: Embedded GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc6-dev +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: optional +Depends: libc6 (= ${binary:Version}), libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], kfreebsd-kernel-headers (>= 0.11) [kfreebsd-any], gnumach-dev [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386], libpthread-stubs0-dev [hurd-i386] +Recommends: gcc | c-compiler +Suggests: glibc-doc, manpages-dev +Provides: libc-dev, libc6-dev [alpha ia64 hurd-i386 kfreebsd-i386 kfreebsd-amd64] +Conflicts: binutils (<< 2.20.1-1), binutils-gold (<< 2.20.1-11) +Description: Embedded GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc6-dbg +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: debug +Priority: extra +Provides: libc-dbg +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: detached debugging symbols + This package contains the detached debugging symbols for the GNU C + library. + +Package: libc6-prof +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: extra +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc6-pic +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc6-udeb +XC-Package-Type: udeb +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb +Section: debian-installer +Priority: extra +Provides: libc6, libc-udeb, ${locale-compat:Depends} +Description: Embedded GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + --- eglibc-2.12.1.orig/debian/control.in/powerpc +++ eglibc-2.12.1/debian/control.in/powerpc @@ -0,0 +1,22 @@ +Package: libc6-powerpc +Architecture: ppc64 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: 32bit powerpc shared libraries for ppc64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for ppc64 systems. + +Package: libc6-dev-powerpc +Architecture: ppc64 +Section: libdevel +Priority: optional +Provides: lib32c-dev +Depends: libc6-powerpc (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 32bit powerpc development libraries for ppc64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for ppc64 systems. + --- eglibc-2.12.1.orig/debian/control.in/s390x +++ eglibc-2.12.1/debian/control.in/s390x @@ -0,0 +1,22 @@ +Package: libc6-s390x +Architecture: s390 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: 64bit Shared libraries for IBM zSeries + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for zSeries systems. + +Package: libc6-dev-s390x +Architecture: s390 +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-s390x (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for IBM zSeries + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for zSeries systems. + --- eglibc-2.12.1.orig/debian/control.in/kfreebsd-i386 +++ eglibc-2.12.1/debian/control.in/kfreebsd-i386 @@ -0,0 +1,22 @@ +Package: libc0.1-i386 +Architecture: kfreebsd-amd64 +Section: libs +Priority: optional +Depends: libc0.1 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: 32bit shared libraries for AMD64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for AMD64 systems. + +Package: libc0.1-dev-i386 +Architecture: kfreebsd-amd64 +Section: libdevel +Priority: optional +Provides: lib32c-dev +Depends: libc0.1-i386 (= ${binary:Version}), libc0.1-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: 32bit development libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for AMD64 systems. + --- eglibc-2.12.1.orig/debian/control.in/mipsn32 +++ eglibc-2.12.1/debian/control.in/mipsn32 @@ -0,0 +1,22 @@ +Package: libc6-mipsn32 +Architecture: mips mipsel +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}), ${misc:Depends} +Description: GNU C Library: n32 Shared libraries for MIPS64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the n32 version + of the library, meant for MIPS64 systems. + +Package: libc6-dev-mipsn32 +Architecture: mips mipsel +Section: libdevel +Priority: optional +Provides: libn32c-dev +Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev (= ${binary:Version}), ${misc:Depends} +Recommends: gcc-multilib +Description: GNU C Library: n32 Development Libraries for MIPS64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the n32 version of the + library, meant for MIPS64 systems. + --- eglibc-2.12.1.orig/debian/control.in/libnss-dns-udeb +++ eglibc-2.12.1/debian/control.in/libnss-dns-udeb @@ -0,0 +1,13 @@ +Package: libnss-dns-udeb +XC-Package-Type: udeb +Architecture: any +Section: debian-installer +Priority: extra +Description: GNU C Library: NSS helper for DNS - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains the DNS NSS helper needed for the Debian installer. + Do not install it on a normal system. + --- eglibc-2.12.1.orig/debian/control.in/libnss-files-udeb +++ eglibc-2.12.1/debian/control.in/libnss-files-udeb @@ -0,0 +1,13 @@ +Package: libnss-files-udeb +XC-Package-Type: udeb +Architecture: any +Section: debian-installer +Priority: extra +Description: GNU C Library: NSS helper for files - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains the files NSS helper needed for the Debian installer. + Do not install it on a normal system. + --- eglibc-2.12.1.orig/debian/control.in/libc0.1 +++ eglibc-2.12.1/debian/control.in/libc0.1 @@ -0,0 +1,76 @@ +Package: libc0.1 +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libs +Priority: required +Depends: libc-bin (= ${binary:Version}), hurd (>= 20070606-1+SVN) [hurd-i386], libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 [hppa], tzdata, findutils (>= 4.4.0-2ubuntu2) +Recommends: libc0.1-i686 [kfreebsd-i386] +Suggests: glibc-doc, debconf | debconf-2.0, locales [!hurd-i386] +Provides: ${locale-compat:Depends}, libc6-i686 [i386] +Conflicts: belocs-locales-bin, tzdata-etch, tzdata (<< 2007k-1), libc6-i686 [i386] +Replaces: belocs-locales-bin +Breaks: nscd (<< 2.12) +Description: Embedded GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc0.1-dev +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: optional +Depends: libc0.1 (= ${binary:Version}), libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], kfreebsd-kernel-headers (>= 0.11) [kfreebsd-any], gnumach-dev [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386], libpthread-stubs0-dev [hurd-i386] +Recommends: gcc | c-compiler +Suggests: glibc-doc, manpages-dev +Provides: libc-dev, libc6-dev [alpha ia64 hurd-i386 kfreebsd-i386 kfreebsd-amd64] +Conflicts: binutils (<< 2.20.1-1), binutils-gold (<< 2.20.1-11) +Description: Embedded GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc0.1-dbg +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: debug +Priority: extra +Provides: libc-dbg +Depends: libc0.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: detached debugging symbols + This package contains the detached debugging symbols for the GNU C + library. + +Package: libc0.1-prof +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: extra +Depends: libc0.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc0.1-pic +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc0.1 (= ${binary:Version}), ${misc:Depends} +Description: Embedded GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc0.1-udeb +XC-Package-Type: udeb +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: debian-installer +Priority: extra +Provides: libc0.1, libc-udeb, ${locale-compat:Depends} +Description: Embedded GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + --- eglibc-2.12.1.orig/debian/control.in/main +++ eglibc-2.12.1/debian/control.in/main @@ -0,0 +1,115 @@ +Source: eglibc +Section: libs +Priority: required +Build-Depends: gettext, make (>= 3.80), dpkg-dev (>= 1.15.3.1), bzip2, lzma, xz-utils, file, quilt, + texinfo (>= 4.0), texi2html, + autoconf, sed (>= 4.0.5-4), gawk, debhelper (>= 5.0), tar (>= 1.22), + linux-libc-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], + mig (>= 1.3-2) [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386], gnumach-dev [hurd-i386], libpthread-stubs0-dev [hurd-i386], + kfreebsd-kernel-headers [kfreebsd-i386 kfreebsd-amd64], + binutils (>= 2.20-1), + g++-4.4 (>= 4.4.4-1), g++-4.4-multilib [amd64 i386 kfreebsd-amd64 mips mipsel powerpc ppc64 s390 sparc] +Build-Depends-Indep: perl, po-debconf (>= 1.0) +Maintainer: Ubuntu Core developers +XSBC-Original-Maintainer: GNU Libc Maintainers +Uploaders: GOTO Masanori , Jeff Bailey , Daniel Jacobowitz , Clint Adams , Aurelien Jarno , Pierre Habouzit +Standards-Version: 3.8.4 +XS-Debian-Vcs-Browser: http://svn.debian.org/wsvn/pkg-glibc/glibc-package/ +XS-Debian-Vcs-Svn: svn://svn.debian.org/pkg-glibc/glibc-package/ +Vcs-Bzr: https://code.launchpad.net/~ubuntu-core-dev/eglibc/eglibc-2.12-pkg +Homepage: http://www.eglibc.org + +Package: libc-bin +Architecture: any +Section: libs +Priority: required +Depends: ${misc:Depends} +Breaks: libc0.1 (<< 2.10), libc0.3 (<< 2.10), libc6 (<< 2.10), libc6.1 (<< 2.10) +Replaces: libc0.1, libc0.3, libc6, libc6.1 +Description: Embedded GNU C Library: Binaries + This package contains utility programs related to the GNU C Library. + . + * catchsegv: catch segmentation faults in programs + * getconf: query system configuration variables + * getent: get entries from administrative databases + * iconv, iconvconfig: convert between character encodings + * ldd, ldconfig: print/configure shared library dependencies + * locale, localedef: show/generate locale definitions + * rpcinfo: report RPC information + * tzselect, zdump, zic: select/dump/compile time zones + +Package: libc-dev-bin +Architecture: any +Section: libdevel +Priority: optional +Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: manpages-dev +Replaces: libc0.1-dev, libc0.3-dev, libc6-dev, libc6.1-dev +Description: Embedded GNU C Library: Development binaries + This package contains utility programs related to the GNU C Library + development package. + +Package: glibc-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Provides: glibc-doc-reference +Conflicts: glibc-doc-reference +Replaces: glibc-doc-reference +Description: Embedded GNU C Library: Documentation + Contains The GNU C Library Reference manual in info and html format + as well as the man pages for libpthread functions and the complete + GNU C Library ChangeLog. + +Package: eglibc-source +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends} +Recommends: xz-utils +Description: Embedded GNU C Library: sources + This package contains the sources and patches which are needed to + build eglibc. + +Package: locales +Architecture: all +Section: localization +Priority: standard +Depends: ${locale:Depends}, ${misc:Depends}, debconf | debconf-2.0 +Conflicts: base-config, belocs-locales-bin, belocs-locales-data +Replaces: base-config, lliurex-belocs-locales-data +Description: Embedded GNU C Library: National Language (locale) data [support] + Machine-readable data files, shared objects and programs used by the + C library for localization (l10n) and internationalization (i18n) support. + . + This package contains the libc.mo i18n files, plus tools to generate + locale definitions from source files (included in this package). It + allows you to customize which definitions actually get + generated. This is a space-saver over how this package used to be, + with all locales generated by default. This created a package that + unpacked to an excess of 30 megs. + +Package: locales-all +Architecture: any +Section: localization +Priority: extra +Depends: ${locale:Depends}, ${misc:Depends}, lzma +Provides: locales +Description: Embedded GNU C Library: Precompiled locale data + This package contains the precompiled locale data for all supported locales. + A better alternative is to install the locales package and only select + desired locales, but it can be useful on a low-memory machine because some + locale files take a lot of memory to be compiled. + +Package: nscd +Architecture: any +Section: admin +Priority: optional +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Embedded GNU C Library: Name Service Cache Daemon + A daemon which handles passwd, group and host lookups + for running programs and caches the results for the next + query. You should install this package only if you use + slow Services like LDAP, NIS or NIS+ + --- eglibc-2.12.1.orig/debian/local/ldconfig_wrap +++ eglibc-2.12.1/debian/local/ldconfig_wrap @@ -0,0 +1,17 @@ +#!/bin/sh + +if test $# = 0 \ + && test x"$LDCONFIG_NOTRIGGER" = x \ + && test x"$DPKG_MAINTSCRIPT_PACKAGE" != x \ + && dpkg-trigger --check-supported 2>/dev/null \ + && dpkg --compare-versions "$DPKG_RUNNING_VERSION" ge '1.14.5ubuntu10~~' +then + if dpkg-trigger --no-await ldconfig; then + if test x"$LDCONFIG_TRIGGER_DEBUG" != x; then + echo "ldconfig: wrapper deferring update (trigger activated)" + fi + exit 0 + fi +fi + +exec /sbin/ldconfig.real "$@" --- eglibc-2.12.1.orig/debian/local/manpages/nscd_nischeck.8 +++ eglibc-2.12.1/debian/local/manpages/nscd_nischeck.8 @@ -0,0 +1,31 @@ +.\" Placed in the Public Domain by Sebastian Rittau . +.Dd January 08, 2001 +.Dt NSCD_NISCHECK 8 +.Os "GNU C Library 2.2" +.Sh NAME +.Nm nscd_nischeck +.Nd check NIS+ tables for read permissions +.Sh SYNOPSIS +.Nm nscd_nischeck +.Ar OPTION | TABLE +.Sh DESCRIPTION +.Nm Nscd_nischeck +checks if a given NIS+ table is world-readable. 0 is returned in +this case. Otherwise, only authenticated users can read the table +and 1 is returned. +.Sh OPTIONS +.Bl -tag -width Ds +.It Fl ? , Fl -help +Print a short help list. +.El +.Bl -tag -width Ds +.It Fl -usage +Print a short usage message. +.El +.Bl -tag -width Ds +.It Fl V , Fl -version +Print program version. +.El +.Sh SEE ALSO +GNU C Library info file, +.Xr nscd 8 --- eglibc-2.12.1.orig/debian/local/manpages/update-locale.8 +++ eglibc-2.12.1/debian/local/manpages/update-locale.8 @@ -0,0 +1,49 @@ +.TH UPDATE-LOCALE 8 "April 2006" "Debian GNU/Linux" +.SH "NAME" +.LP +update-locale \- Modify global locale settings +.SH "SYNTAX" +.LP +update-locale +.RI [ OPTIONS ] +[\fIvar\fP=\fIlocale\fP | \fIvar\fP] +[...] +.SH "DESCRIPTION" +.LP +This program can be called by maintainer scripts when Debian packages are +installed or removed, it updates the \fB/etc/default/locale\fP file to +reflect changes in system configuration related to global locale settings. +When variables have no value assigned, they are removed from the locale +file. +Some basic checks are performed to ensure that requested settings are valid. +.SH "OPTIONS" +.TP +.B \-\-help +Display an help message and exit. +.TP +.B \-\-reset +Variables which are not set on command-line are cleared out. +.TP +.BI \-\-locale\-file " FILE" +Define file containing locale variables. (Default: +.BR /etc/default/locale ) +.TP +.B \-\-no\-checks +Do not perform sanity checks on locale variables. +.SH "EXAMPLE" +.nf +The command +.ft B + update-locale LANG=en_CA.UTF-8 LANGUAGE +.ft R +sets \fBLANG\fP to \fBen_CA.UTF-8\fP and removes definitions for \fBLANGUAGE\fP. +.SH "FILES" +.TP +.B /etc/default/locale +File where global locale settings are stored. +.SH "AUTHOR" +.LP +Denis Barbier +.SH "SEE ALSO" +.LP +locale\-gen(8), locale(1) --- eglibc-2.12.1.orig/debian/local/manpages/catchsegv.1 +++ eglibc-2.12.1/debian/local/manpages/catchsegv.1 @@ -0,0 +1,218 @@ +.rn '' }` +.\" $RCSfile: catchsegv.1,v $$Revision: 1.1.2.1 $$Date: 2003/09/22 21:33:35 $ +.\" +.\" $Log: catchsegv.1,v $ +.\" Revision 1.1.2.1 2003/09/22 21:33:35 jbailey +.\" New directory for things we add to the package +.\" +.\" +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +.\" +.\" +.\" Set up \*(-- to give an unbreakable dash; +.\" string Tr holds user defined translation string. +.\" Bell System Logo is used as a dummy character. +.\" +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +.\" \*(M", \*(S", \*(N" and \*(T" are the equivalent of +.\" \*(L" and \*(R", except that they are used on ".xx" lines, +.\" such as .IP and .SH, which do another additional levels of +.\" double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH CATCHSEGV 1 "etch" "7/Jan/2001" "Debian GNU/Linux" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +catchsegv \- Catch segmentation faults in programs +.SH "SYNOPSIS" +\fBcatchsegv\fR \fBprogram\fR [\fBargs\fR] +.SH "DESCRIPTION" +Used to debug segmentation faults in programs. The output is the +content of registers, plus a backtrace. Basically you call your +program and its arguments as the arguments to catchsegv. +.SH "AUTHOR" +\fIcatchsegv\fR was written by Ulrich Drepper for the GNU C Library +.PP +This man page was written by Ben Collins for +the Debian GNU/Linux system. + +.rn }` '' +.IX Title "CATCHSEGV 1" +.IX Name "catchsegv - Catch segmentation faults in programs" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + --- eglibc-2.12.1.orig/debian/local/manpages/zic.8 +++ eglibc-2.12.1/debian/local/manpages/zic.8 @@ -0,0 +1,413 @@ +.TH ZIC 8 +.SH NAME +zic \- time zone compiler +.SH SYNOPSIS +.B zic +[ +.B \-v +] [ +.B \-d +.I directory +] [ +.B \-l +.I localtime +] [ +.B \-p +.I posixrules +] [ +.B \-L +.I leapsecondfilename +] [ +.B \-s +] [ +.B \-y +.I command +] [ +.I filename +\&... ] +.SH DESCRIPTION +.if t .ds lq `` +.if t .ds rq '' +.if n .ds lq \&"\" +.if n .ds rq \&"\" +.de q +\\$3\*(lq\\$1\*(rq\\$2 +.. +.I Zic +reads text from the file(s) named on the command line +and creates the time conversion information files specified in this input. +If a +.I filename +is +.BR \- , +the standard input is read. +.PP +These options are available: +.TP +.BI "\-d " directory +Create time conversion information files in the named directory rather than +in the standard directory named below. +.TP +.BI "\-l " timezone +Use the given time zone as local time. +.I Zic +will act as if the input contained a link line of the form +.sp +.ti +.5i +Link \fItimezone\fP localtime +.TP +.BI "\-p " timezone +Use the given time zone's rules when handling POSIX-format +time zone environment variables. +.I Zic +will act as if the input contained a link line of the form +.sp +.ti +.5i +Link \fItimezone\fP posixrules +.TP +.BI "\-L " leapsecondfilename +Read leap second information from the file with the given name. +If this option is not used, +no leap second information appears in output files. +.TP +.B \-v +Complain if a year that appears in a data file is outside the range +of years representable by +.IR time (2) +values. +.TP +.B \-s +Limit time values stored in output files to values that are the same +whether they're taken to be signed or unsigned. +You can use this option to generate SVVS-compatible files. +.TP +.BI "\-y " command +Use the given +.I command +rather than +.B yearistype +when checking year types (see below). +.PP +Input lines are made up of fields. +Fields are separated from one another by any number of white space characters. +Leading and trailing white space on input lines is ignored. +An unquoted sharp character (#) in the input introduces a comment which extends +to the end of the line the sharp character appears on. +White space characters and sharp characters may be enclosed in double quotes +(") if they're to be used as part of a field. +Any line that is blank (after comment stripping) is ignored. +Non-blank lines are expected to be of one of three types: +rule lines, zone lines, and link lines. +.PP +A rule line has the form +.nf +.ti +.5i +.ta \w'Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00\0\0'u +\w'SAVE\0\0'u +.sp +Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +.sp +For example: +.ti +.5i +.sp +Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D +.sp +.fi +The fields that make up a rule line are: +.TP "\w'LETTER/S'u" +.B NAME +Gives the (arbitrary) name of the set of rules this rule is part of. +.TP +.B FROM +Gives the first year in which the rule applies. +Any integer year can be supplied; the Gregorian calendar is assumed. +The word +.B minimum +(or an abbreviation) means the minimum year representable as an integer. +The word +.B maximum +(or an abbreviation) means the maximum year representable as an integer. +Rules can describe times that are not representable as time values, +with the unrepresentable times ignored; this allows rules to be portable +among hosts with differing time value types. +.TP +.B TO +Gives the final year in which the rule applies. +In addition to +.B minimum +and +.B maximum +(as above), +the word +.B only +(or an abbreviation) +may be used to repeat the value of the +.B FROM +field. +.TP +.B TYPE +Gives the type of year in which the rule applies. +If +.B TYPE +is +.B \- +then the rule applies in all years between +.B FROM +and +.B TO +inclusive. +If +.B TYPE +is something else, then +.I zic +executes the command +.ti +.5i +\fByearistype\fP \fIyear\fP \fItype\fP +.br +to check the type of a year: +an exit status of zero is taken to mean that the year is of the given type; +an exit status of one is taken to mean that the year is not of the given type. +.TP +.B IN +Names the month in which the rule takes effect. +Month names may be abbreviated. +.TP +.B ON +Gives the day on which the rule takes effect. +Recognized forms include: +.nf +.in +.5i +.sp +.ta \w'Sun<=25\0\0'u +5 the fifth of the month +lastSun the last Sunday in the month +lastMon the last Monday in the month +Sun>=8 first Sunday on or after the eighth +Sun<=25 last Sunday on or before the 25th +.fi +.in -.5i +.sp +Names of days of the week may be abbreviated or spelled out in full. +Note that there must be no spaces within the +.B ON +field. +.TP +.B AT +Gives the time of day at which the rule takes effect. +Recognized forms include: +.nf +.in +.5i +.sp +.ta \w'1:28:13\0\0'u +2 time in hours +2:00 time in hours and minutes +15:00 24-hour format time (for times after noon) +1:28:14 time in hours, minutes, and seconds +.fi +.in -.5i +.sp +where hour 0 is midnight at the start of the day, +and hour 24 is midnight at the end of the day. +Any of these forms may be followed by the letter +.B w +if the given time is local +.q "wall clock" +time, +.B s +if the given time is local +.q standard +time, or +.B u +(or +.B g +or +.BR z ) +if the given time is universal time; +in the absence of an indicator, +wall clock time is assumed. +.TP +.B SAVE +Gives the amount of time to be added to local standard time when the rule is in +effect. +This field has the same format as the +.B AT +field +(although, of course, the +.B w +and +.B s +suffixes are not used). +.TP +.B LETTER/S +Gives the +.q "variable part" +(for example, the +.q S +or +.q D +in +.q EST +or +.q EDT ) +of time zone abbreviations to be used when this rule is in effect. +If this field is +.BR \- , +the variable part is null. +.PP +A zone line has the form +.sp +.nf +.ti +.5i +.ta \w'Zone\0\0'u +\w'Australia/Adelaide\0\0'u +\w'GMTOFF\0\0'u +\w'RULES/SAVE\0\0'u +\w'FORMAT\0\0'u +Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] +.sp +For example: +.sp +.ti +.5i +Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 +.sp +.fi +The fields that make up a zone line are: +.TP "\w'GMTOFF'u" +.B NAME +The name of the time zone. +This is the name used in creating the time conversion information file for the +zone. +.TP +.B GMTOFF +The amount of time to add to UTC to get standard time in this zone. +This field has the same format as the +.B AT +and +.B SAVE +fields of rule lines; +begin the field with a minus sign if time must be subtracted from UTC. +.TP +.B RULES/SAVE +The name of the rule(s) that apply in the time zone or, +alternately, an amount of time to add to local standard time. +If this field is +.B \- +then standard time always applies in the time zone. +.TP +.B FORMAT +The format for time zone abbreviations in this time zone. +The pair of characters +.B %s +is used to show where the +.q "variable part" +of the time zone abbreviation goes. +Alternately, +a slash (/) +separates standard and daylight abbreviations. +.TP +.B UNTIL +The time at which the UTC offset or the rule(s) change for a location. +It is specified as a year, a month, a day, and a time of day. +If this is specified, +the time zone information is generated from the given UTC offset +and rule change until the time specified. +The month, day, and time of day have the same format as the IN, ON, and AT +columns of a rule; trailing columns can be omitted, and default to the +earliest possible value for the missing columns. +.IP +The next line must be a +.q continuation +line; this has the same form as a zone line except that the +string +.q Zone +and the name are omitted, as the continuation line will +place information starting at the time specified as the +.B UNTIL +field in the previous line in the file used by the previous line. +Continuation lines may contain an +.B UNTIL +field, just as zone lines do, indicating that the next line is a further +continuation. +.PP +A link line has the form +.sp +.nf +.ti +.5i +.ta \w'Link\0\0'u +\w'Europe/Istanbul\0\0'u +Link LINK-FROM LINK-TO +.sp +For example: +.sp +.ti +.5i +Link Europe/Istanbul Asia/Istanbul +.sp +.fi +The +.B LINK-FROM +field should appear as the +.B NAME +field in some zone line; +the +.B LINK-TO +field is used as an alternate name for that zone. +.PP +Except for continuation lines, +lines may appear in any order in the input. +.PP +Lines in the file that describes leap seconds have the following form: +.nf +.ti +.5i +.ta \w'Leap\0\0'u +\w'YEAR\0\0'u +\w'MONTH\0\0'u +\w'DAY\0\0'u +\w'HH:MM:SS\0\0'u +\w'CORR\0\0'u +.sp +Leap YEAR MONTH DAY HH:MM:SS CORR R/S +.sp +For example: +.ti +.5i +.sp +Leap 1974 Dec 31 23:59:60 + S +.sp +.fi +The +.BR YEAR , +.BR MONTH , +.BR DAY , +and +.B HH:MM:SS +fields tell when the leap second happened. +The +.B CORR +field +should be +.q + +if a second was added +or +.q - +if a second was skipped. +.\" There's no need to document the following, since it's impossible for more +.\" than one leap second to be inserted or deleted at a time. +.\" The C Standard is in error in suggesting the possibility. +.\" See Terry J Quinn, The BIPM and the accurate measure of time, +.\" Proc IEEE 79, 7 (July 1991), 894-905. +.\" or +.\" .q ++ +.\" if two seconds were added +.\" or +.\" .q -- +.\" if two seconds were skipped. +The +.B R/S +field +should be (an abbreviation of) +.q Stationary +if the leap second time given by the other fields should be interpreted as UTC +or +(an abbreviation of) +.q Rolling +if the leap second time given by the other fields should be interpreted as +local wall clock time. +.SH NOTE +For areas with more than two types of local time, +you may need to use local standard time in the +.B AT +field of the earliest transition time's rule to ensure that +the earliest transition time recorded in the compiled file is correct. +.SH FILE +/usr/share/zoneinfo standard directory used for created files +.SH "SEE ALSO" +ctime(3), zdump(1) +.\" @(#)zic.8 7.18 --- eglibc-2.12.1.orig/debian/local/manpages/locale.alias.5 +++ eglibc-2.12.1/debian/local/manpages/locale.alias.5 @@ -0,0 +1,45 @@ +.\" -*- nroff -*- +.\" Copyright (C) 2002 Free Software Foundation, Inc. +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2, or (at your option) +.\" any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program; if not, write to the Free Software Foundation, +.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +.TH locale.alias 5 "January 2002" "Debian GNU/Linux" +.SH "NAME" +locale.alias \- Locale name alias data base +.SH "DESCRIPTION" +The locale.alias database file (/etc/locale.alias) is used by the +.B locale +command and the +.B X Window System +. +It describes aliases for the locales, with each line being of the +form + + + +Where is in the POSIX format: xx_YY.CHARSET. +The first two letters \fIxx\fR are the ISO-639 Language code, + the next two \fIYY\fR are the ISO-3166 Country code, +and the Charset is one of the character sets (listed in +\fI/usr/share/i18n/charsets\fR +). +The aliases can be free text; they are normally the English language +name, or simpler versions of the POSIX locale name. + +Lines beginning with Hash ("#") are treated as comments and ignored. + +.SH "SEE ALSO" +locale(1), localedef(1), locale-gen(8), locale.gen(5) +.SH "AUTHOR" +Alastair McKinstry --- eglibc-2.12.1.orig/debian/local/manpages/gencat.1 +++ eglibc-2.12.1/debian/local/manpages/gencat.1 @@ -0,0 +1,240 @@ +.rn '' }` +.\" $RCSfile: gencat.1,v $$Revision: 1.1 $$Date: 2008-08-08 21:49:44 +0200 (Fr, 08 Aug 2008) $ +.\" +.\" $Log: gencat.1,v $ +.\" Revision 1.1 2003/11/03 17:37:27 jbailey +.\" - debian/local/manpages/gencat.1: New file. +.\" - debian/local/manpages/trace.1: New file. +.\" - debian/debhelper.in/libc-dev.manpages: Install them. +.\" - debian/local/manpages/iconvconfig.8: New file. +.\" - debian/debhelper.in/libc.manpages: Install it. +.\" +.\" Revision 1.1.2.2 2003/10/28 05:48:08 dan +.\" - Re-add debian/patches/80_glibc232-locales-nb_NO-fix.dpatch, which had +.\" gotten lost. +.\" - Re-add typo fixes to iconv.1 and rpcgen.1. +.\" - Merge iconv.1 fix to iconv.pod. +.\" - Fix ld.so name in ld.so.8. +.\" - Re-add fix for locale-gen and POSIXLY_CORRECT. +.\" +.\" +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +.\" +.\" +.\" Set up \*(-- to give an unbreakable dash; +.\" string Tr holds user defined translation string. +.\" Bell System Logo is used as a dummy character. +.\" +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +.\" \*(M", \*(S", \*(N" and \*(T" are the equivalent of +.\" \*(L" and \*(R", except that they are used on ".xx" lines, +.\" such as .IP and .SH, which do another additional levels of +.\" double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH GENCAT 1 "November 2003" "gencat (glibc)" "Debian" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +gencat \- Generate message catalog +.SH "SYNOPSIS" +gencat [OPTION...] -o OUTPUT-FILE [INPUT-FILE]... +.SH "DESCRIPTION" +The \fBgencat\fR program is specified in the X/Open standard and the +GNU implementation follows this specification and so processes all +correctly formed input files. Additionally some extension are implemented +which help to work in a more reasonable way with the \fBcatgets\fR(3) functions. +.PP +.TP +\fB-H\fR, \fB--header\fR \fINAME\fR +Create C header file NAME containing symbol definitions +.TP +\fB--new\fR +Do not use existing catalog, force new output file +.TP +\fB-o\fR, \fB--output\fR \fINAME\fR +Write output to file NAME +.SH "AUTHOR" +\fIgencat\fR was written by Ulrich Drepper as part of the GNU C Library. +.PP +This man page was written by Jeff Bailey . + +.rn }` '' +.IX Title "GENCAT 1" +.IX Name "gencat - Generate message catalog" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + --- eglibc-2.12.1.orig/debian/local/manpages/glibcbug.1 +++ eglibc-2.12.1/debian/local/manpages/glibcbug.1 @@ -0,0 +1,50 @@ +'\" t +.\" ** The above line should force tbl to be a preprocessor ** +.\" Man page for man +.\" +.\" Copyright (C), 2002 Free Software Foundation, Inc. +.\" +.\" You may distribute under the terms of the GNU General Public +.\" License as specified in the file COPYING that comes with the +.\" glibc distribution. +.\" +.\" +.TH glibcbug 1 "10 January 2002" "" "Debian GNU/Linux" +.SH "NAME" +glibcbug \- Report a bug to the Glibc developers +.SH "SYNOPSIS" +.B glibcbug +.SH "DESCRIPTION" +.B glibcbug +is a tool for reporting bugs to the glibc maintainers. +It automatically starts an editor where the user can enter details +of the bug. On completion, the bug is sent to the appropriate +address. +The User should replace the comments (text surrounded by +, and fill in the Subject: and From: lines with +a summary and e-mail address. + +If the user believes the bug is related to Debian rather than to the +glibc (libc6) package, then the +.B reportbug +command should be used instead. +.SH "ENVIRONMENT" +.B glibcbug +will utilize the following enviromntal variables if they exist: +.TP +.B EDITOR +and +.B VISUAL +Specifies the preferred editor. If +neither are set, +.B glibcbug +will default to +.B /usr/bin/sensible-editor +to determine a working editor. +.TP +.B HOME +Directory in which the failed bug report is saved if the mail fails. +.SH "SEE ALSO" +reportbug(1) +.SH "AUTHOR" +Alastair McKinstry . --- eglibc-2.12.1.orig/debian/local/manpages/mtrace.1 +++ eglibc-2.12.1/debian/local/manpages/mtrace.1 @@ -0,0 +1,228 @@ +.rn '' }` +.\" $RCSfile: mtrace.1,v $$Revision: 1.1 $$Date: 2008-08-08 21:49:44 +0200 (Fr, 08 Aug 2008) $ +.\" +.\" $Log: mtrace.1,v $ +.\" Revision 1.1 2003/11/03 17:37:27 jbailey +.\" - debian/local/manpages/gencat.1: New file. +.\" - debian/local/manpages/trace.1: New file. +.\" - debian/debhelper.in/libc-dev.manpages: Install them. +.\" - debian/local/manpages/iconvconfig.8: New file. +.\" - debian/debhelper.in/libc.manpages: Install it. +.\" +.\" Revision 1.1.2.2 2003/10/28 05:48:08 dan +.\" - Re-add debian/patches/80_glibc232-locales-nb_NO-fix.dpatch, which had +.\" gotten lost. +.\" - Re-add typo fixes to iconv.1 and rpcgen.1. +.\" - Merge iconv.1 fix to iconv.pod. +.\" - Fix ld.so name in ld.so.8. +.\" - Re-add fix for locale-gen and POSIXLY_CORRECT. +.\" +.\" +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +.\" +.\" +.\" Set up \*(-- to give an unbreakable dash; +.\" string Tr holds user defined translation string. +.\" Bell System Logo is used as a dummy character. +.\" +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +.\" \*(M", \*(S", \*(N" and \*(T" are the equivalent of +.\" \*(L" and \*(R", except that they are used on ".xx" lines, +.\" such as .IP and .SH, which do another additional levels of +.\" double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH MTRACE 1 "November 2003" "mtrace (glibc)" "Debian" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +mtrace \- Interpret output from MALLOC_TRACE +.SH "SYNOPSIS" +mtrace [OPTION]... [Binary] MtraceData +.SH "DESCRIPTION" +The \fBmtrace\fR interprets the output from when the MALLOC_TRACE +environment variable is set. +.SH "AUTHOR" +\fImtrace\fR was written by Ulrich Drepper as part of the GNU C Library. +.PP +This man page was written by Jeff Bailey . + +.rn }` '' +.IX Title "MTRACE 1" +.IX Name "mtrace \- Interpret output from MALLOC_TRACE" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + --- eglibc-2.12.1.orig/debian/local/manpages/nscd.conf.5 +++ eglibc-2.12.1/debian/local/manpages/nscd.conf.5 @@ -0,0 +1,243 @@ +.\" Placed in the Public Domain by Sebastian Rittau +.TH NSCD.CONF 5 "07 January 2001" +.UC 5 +.SH NAME +nscd.conf \- configuration file for Name Service Caching Daemon +.hy 0 +.SH DESCRIPTION +.I /etc/nscd.conf +configures the caches used by +.BR nscd (8) +as well as some generic options. +.BR nscd (8) +is able to use a configuration file at a different location, +when supplied with the +.IR -f +or +.IR --config-file +command line option. + +.PP +The configuration file consists of a set of lines. +Empty lines, and text after a '#' is ignored. +All remaining lines denote the setting of an option. +White space before and after options, and between +options and option arguments is ignored. + +There are two kinds of options: General options influence +.BR nscd (8)'s +general behaviour, while cache related options only affect the +specified cache. Options are set like this: +.nf + + general_option option + cache_option cache_name option +.fi +.SH GENERAL OPTIONS +.TP +.BI logfile \ file +Specifies the name of the debug log-file that +.BR nscd (8) +should use if +.B debug-level +is higher than +.BR 0 . +If this option is not set, +.BR nscd (8) +will write its debug output to stderr. +.TP +.BI debug-level \ level +If +.I level +is higher than +.BR 0 , +.BR nscd (8) +will create some debug output. The higher the level, the more verbose +the output. +.TP +.BI threads \ #threads +This option sets the number of threads that +.BR nscd (8) +should use by default. It can be overridden by calling +.BR nscd (8) +with the +.I -t +or +.I --nthreads +argument. If neither this configuration option nor the command line +argument is given, +.BR nscd (8) +uses 5 threads by default. The minimum is 3. More threads means more +simultaneous connections that +.BR nscd (8) +can handle. +.TP +.BI max-threads \ #threads +Specifies the maximum number of threads to be started. +.TP +.BI server-user \ user +By default, +.BR nscd (8) +is run as user root. This option can be set to force +.BR nscd (8) +to drop root privileges after startup. It cannot be used when +.BR nscd (8) +is called with the +.I -S +or +.I --secure +argument. Also note that some services require that nscd run as root, so +using this may break those lookup services. +.TP +.BI stat-user \ user +Specifies the user who is allowed to request statistics. +.TP +.BI paranoia \ bool +.I bool +must be one of +.B yes +or +.BR no . +Enabling paranoia mode causes +.BR nscd (8) +to restart itself periodically. +.TP +.BI restart-interval \ time +Sets the restart interval to time seconds if periodic restart is enabled by enabling +paranoia mode. The default value is 3600. +.SH CACHE OPTIONS +All cache options take two arguments. The first one denotes +the service or cache the option should affect. Currently +.I service +can be one of +.BR passwd , +.BR group , +or +.BR hosts . +.TP +.BI enable-cache \ service\ bool +.I bool +must be one of +.B yes +or +.BR no . +Each cache is disabled by default and must be enabled explicitly +by setting this options to +.BR yes . +.TP +.BI positive-time-to-live \ service\ secs +This is the number of seconds after which a cached entry is +removed from the cache. This defaults to 3600 seconds (i. e. +one hour). +.TP +.BI negative-time-to-live \ service\ secs +If an entry is not found by the Name Service, it is added to +the cache and marked as "not existent". This option sets the number +of seconds after which such a not existent entry is removed from +the cache. This defaults to 20 seconds for the +.B password +and +.B host +caches and to 60 seconds for the +.B group +cache. +.TP +.BI suggested-size \ service\ prime-number +This option sets the size of the hash that is used to store the +cache entries. As this is a hash, it should be reasonably larger +than the maximum number of entries that is expected to be cached +simultaneously and should be a prime number. It defaults to a +size of 211 entries. +.TP +.BI check-files \ service\ bool +.I bool +must be one of +.B yes +(default) or +.BR no . +If file checking is enabled, +.BR nscd (8) +periodically checks the modification time of +.IR /etc/passwd , +.IR /etc/group , +or +.I /etc/hosts +(for the +.BR passwd , +.BR group , +and +.B host +cache respectively) +and invalidates the cache if the file has changed since the +last check. +.TP +.BI persistent \ service\ bool +.I bool +must be one of +.B yes +(default) or +.BR no . +Keep the content of the cache for service over +.BR nscd (8) +restarts. Useful when paranoia mode is set. +.TP +.BI shared \ service\ bool +.I bool +must be one of +.B yes +(default) or +.BR no . +The memory mapping of the +.BR nscd (8) +databases for service is shared with the clients so that they can directly search +in them instead of having to ask the daemon over the socket each time a lookup is +performed. +.TP +.BI reload-count \ #number +Sets the number of times a cached record is reloaded before it is pruned from +the cache. Each cache record has a timeout, when that timeout expires, +.BR nscd (8) +will either reload it (query the NSS service again if the data hasn't changed), or +drop it. +.TP +.BI max-db-size \ service\ number-of-bytes +Sets the maximum allowable size for the service. +.TP +.BI auto-propagate \ service\ bool +When set to no for passwd or group service, then the +.I .byname +requests are not added to +.I passwd.byuid +or +.I group.bygid +cache. This may help for tables containing multiple records for the same id. +.SH EXAMPLE +.nf + +# This is a comment. + + logfile /var/log/nscd.log + threads 6 + server-user nobody + debug-level 0 + + enable-cache passwd yes + positive-time-to-live passwd 600 + negative-time-to-live passwd 20 + suggested-size passwd 211 + check-files passwd yes + + enable-cache group yes + positive-time-to-live group 3600 + negative-time-to-live group 60 + suggested-size group 211 + check-files group yes + + enable-cache hosts yes + positive-time-to-live hosts 3600 + negative-time-to-live hosts 20 + suggested-size hosts 211 + check-files hosts yes +.fi +.SH SEE ALSO +nscd(8), nsswitch.conf(5) --- eglibc-2.12.1.orig/debian/local/manpages/getconf.1 +++ eglibc-2.12.1/debian/local/manpages/getconf.1 @@ -0,0 +1,247 @@ +.rn '' }` +.\" $RCSfile: getconf.1,v $$Revision: 1.1.2.1 $$Date: 2003/09/22 21:33:35 $ +.\" +.\" $Log: getconf.1,v $ +.\" Revision 1.1.2.1 2003/09/22 21:33:35 jbailey +.\" New directory for things we add to the package +.\" +.\" +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +.\" +.\" +.\" Set up \*(-- to give an unbreakable dash; +.\" string Tr holds user defined translation string. +.\" Bell System Logo is used as a dummy character. +.\" +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +.\" \*(M", \*(S", \*(N" and \*(T" are the equivalent of +.\" \*(L" and \*(R", except that they are used on ".xx" lines, +.\" such as .IP and .SH, which do another additional levels of +.\" double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH GETCONF 1 "squeeze" "13/Jun/2010" "Debian GNU/Linux" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +getconf \- Query system configuration variables +.SH "SYNOPSIS" +\fBgetconf\fR \-a +.P +\fBgetconf\fR [\fB\-v specification\fR] system_var +.PP +\fBgetconf\fR [\fB\-v specification\fR] path_var pathname +.SH "DESCRIPTION" +\fB\-a\fR +.PP +.Vb 2 +\& Displays all configuration variables for the current system +\& and their values. +.Ve +\fB\-v\fR +.PP +.Vb 2 +\& Indicate the specification and version for which to obtain +\& configuration variables. +.Ve +\fBsystem_var\fR +.PP +.Vb 2 +\& A system configuration variable, as defined by sysconf(3) or +\& confstr(3). +.Ve +\fBpath_var\fR +.PP +.Vb 2 +\& A system configuration variable as defined by pathconf(3). This +\& must be used with a pathname. +.Ve +.SH "AUTHOR" +\fIgetconf\fR was written by Roland McGrath for the GNU C Library +.PP +This man page was written by Ben Collins for +the Debian GNU/Linux system. +.SH "SEE ALSO" +\fBsysconf\fR(3), \fBpathconf\fR(3), \fBconfstr\fR(3) + +.rn }` '' +.IX Title "GETCONF 1" +.IX Name "getconf - Query system configuration variables" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + +.IX Header "SEE ALSO" + --- eglibc-2.12.1.orig/debian/local/manpages/iconv.1 +++ eglibc-2.12.1/debian/local/manpages/iconv.1 @@ -0,0 +1,274 @@ +.rn '' }` +.\" $RCSfile: iconv.1,v $$Revision: 1.1.2.2 $$Date: 2003/10/28 05:48:08 $ +.\" +.\" $Log: iconv.1,v $ +.\" Revision 1.1.2.2 2003/10/28 05:48:08 dan +.\" - Re-add debian/patches/80_glibc232-locales-nb_NO-fix.dpatch, which had +.\" gotten lost. +.\" - Re-add typo fixes to iconv.1 and rpcgen.1. +.\" - Merge iconv.1 fix to iconv.pod. +.\" - Fix ld.so name in ld.so.8. +.\" - Re-add fix for locale-gen and POSIXLY_CORRECT. +.\" +.\" +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +.\" +.\" +.\" Set up \*(-- to give an unbreakable dash; +.\" string Tr holds user defined translation string. +.\" Bell System Logo is used as a dummy character. +.\" +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +.\" \*(M", \*(S", \*(N" and \*(T" are the equivalent of +.\" \*(L" and \*(R", except that they are used on ".xx" lines, +.\" such as .IP and .SH, which do another additional levels of +.\" double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH ICONV 1 "lenny" "18/Nov/2007" "Debian GNU/Linux" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +iconv - Convert encoding of given files from one encoding to another +.SH "SYNOPSIS" +iconv \fB\-f\fR \fIencoding\fR [\fB\-t\fR \fIencoding\fR] \fI[inputfile]\fR... +.SH "DESCRIPTION" +The \fBiconv\fR program converts the encoding of characters in +\fIinputfile\fR, or from the standard input if no filename is specified, +from one coded character set to another. The result is +written to standard output unless otherwise specified by the +\fB\-\-output\fR option. +.TP +\fB\-\-from\-code\fR, \fB\-f\fR \fIencoding\fR +Convert characters from \fIencoding\fR. +.TP +\fB\-\-to\-code\fR, \fB\-t\fR \fIencoding\fR +Convert characters to \fIencoding\fR. If not specified the +encoding corresponding to the current locale is used. +.TP +\fB\-\-list\fR, \fB\-l\fR +List known coded character sets. +.TP +\fB\-c\fR +Omit invalid characters from output. +.TP +\fB\-\-output\fR, \fB\-o\fR \fIfile\fR +Specify output file (instead of stdout). +.TP +\fB\-\-silent\fR, \fB\-s\fR +Suppress warnings, but not errors. +.TP +\fB\-\-verbose\fR +Print progress information. +.TP +\fB\-\-help\fR, \fB\-?\fR +Give help list. +.TP +\fB\-\-usage\fR +Give a short usage message. +.TP +\fB\-\-version\fR, \fB\-V\fR +Print program version. +.SH ENCODINGS +The values permitted for \fI\-\-from\-code\fP and \fI\-\-to\-code\fP can be listed +by the \fBiconv \-\-list\fP command, and all combinations of the listed values are +supported. Furthermore the following two suffixes are supported: +.TP +//TRANSLIT +When the string "//TRANSLIT" is appended to \fI\-\-to\-code\fP, transliteration +is activated. +This means that when a character cannot be represented in the +target character set, it can be approximated through one or several +similarly looking characters. +.TP +//IGNORE +When the string "//IGNORE" is appended to \fI\-\-to\-code\fP, characters that +cannot be represented in the target character set will be silently discarded. + +.SH "AUTHOR" +\fIiconv\fR was written by Ulrich Drepper as part of the GNU C Library. +.PP +This man page was written by Joel Klecker , +for the Debian GNU/Linux system. + +.rn }` '' +.IX Title "ICONV 1" +.IX Name "iconv - Convert encoding of given files from one encoding to another" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "ENCODINGS" + +.IX Header "AUTHOR" + --- eglibc-2.12.1.orig/debian/local/manpages/locale.gen.5 +++ eglibc-2.12.1/debian/local/manpages/locale.gen.5 @@ -0,0 +1,41 @@ +.\" -*- nroff -*- +.\" Copyright (C) 2002, 2005 Free Software Foundation, Inc. +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2, or (at your option) +.\" any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program; if not, write to the Free Software Foundation, +.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +.TH locale.gen 5 "July 2005" "Debian GNU/Linux" +.SH "NAME" +locale.gen \- Configuration file for locale-gen +.SH "DESCRIPTION" +The file \fB/etc/locale.gen\fP lists the locales that are to be generated +by the \fBlocale-gen\fP command. + +Each line is of the form: + + + +where is one of the locales given in +.B /usr/share/i18n/locales +and is one of the character sets listed in +.B /usr/share/i18n/charmaps + +The +.B locale-gen +command will generate all the locales, placing them in +\fB/usr/lib/locale\fP. + +.SH "SEE ALSO" +locale-gen(8), localedef(1), locale(1) +.SH "AUTHOR" +Alastair McKinstry --- eglibc-2.12.1.orig/debian/local/manpages/locale-gen.8 +++ eglibc-2.12.1/debian/local/manpages/locale-gen.8 @@ -0,0 +1,101 @@ +.\" This -*- nroff -*- file has been generated from +.\" DocBook SGML with docbook-to-man on Debian GNU/Linux. +.\" +.\" transcript compatibility for postscript use. +.\" +.\" synopsis: .P! +.\" +.de P! +\\&. +.fl \" force out current output buffer +\\!%PB +\\!/showpage{}def +.\" the following is from Ken Flowers -- it prevents dictionary overflows +\\!/tempdict 200 dict def tempdict begin +.fl \" prolog +.sy cat \\$1\" bring in postscript file +.\" the following line matches the tempdict above +\\!end % tempdict % +\\!PE +\\!. +.sp \\$2u \" move below the image +.. +.de pF +.ie \\*(f1 .ds f1 \\n(.f +.el .ie \\*(f2 .ds f2 \\n(.f +.el .ie \\*(f3 .ds f3 \\n(.f +.el .ie \\*(f4 .ds f4 \\n(.f +.el .tm ? font overflow +.ft \\$1 +.. +.de fP +.ie !\\*(f4 \{\ +. ft \\*(f4 +. ds f4\" +' br \} +.el .ie !\\*(f3 \{\ +. ft \\*(f3 +. ds f3\" +' br \} +.el .ie !\\*(f2 \{\ +. ft \\*(f2 +. ds f2\" +' br \} +.el .ie !\\*(f1 \{\ +. ft \\*(f1 +. ds f1\" +' br \} +.el .tm ? font underflow +.. +.ds f1\" +.ds f2\" +.ds f3\" +.ds f4\" +'\" t +.ta 8n 16n 24n 32n 40n 48n 56n 64n 72n +.TH "LOCALE-GEN" "8" +.SH "NAME" +locale-gen \(em generates localisation files from templates +.SH "SYNOPSIS" +.PP +\fBlocale-gen\fP +.SH "DESCRIPTION" +.PP +This manual page documents briefly the +\fBlocale-gen\fP command. +.PP +By default, the locale package which provides the base support for +localisation of libc-based programs does not contain usable localisation +files for every supported language. This limitation has became necessary +because of the substantial size of such files and the large number of +languages supported by libc. As a result, Debian uses a special +mechanism where we prepare the actual localisation files on the target +host and distribute only the templates for them. +.PP +\fBlocale-gen\fP is a program that reads the file +\fB/etc/locale.gen\fP and invokes +\fBlocaledef\fP for the chosen localisation profiles. +Run \fBlocale-gen\fP after you have modified the \fB/etc/locale.gen\fP file. + + +.SH "FILES" +.PP +\fB/etc/locale.gen\fP +.PP +The main configuration file, which has a simple format: every +line that is not empty and does not begin with a # is treated as a +locale definition that is to be built. + +.SH "SEE ALSO" +.PP +localedef(1), locale(1), locale.gen(5). +.SH "AUTHOR" +.PP +This manual page was written by Eduard Bloch for +the \fBDebian GNU/Linux\fP system (but may be used by others). Permission is +granted to copy, distribute and/or modify this document under +the terms of the GNU Free Documentation +License, Version 1.1 or any later version published by the Free +Software Foundation; with no Invariant Sections, no Front-Cover +Texts and no Back-Cover Texts. +.\" created by instant / docbook-to-man, Sat 02 Mar 2002, 16:43 --- eglibc-2.12.1.orig/debian/local/manpages/ld.so.8 +++ eglibc-2.12.1/debian/local/manpages/ld.so.8 @@ -0,0 +1,200 @@ +.TH "LD.SO" 8 "26 May 2007" +.SH NAME +ld.so/ld-linux.so \- dynamic linker/loader +.SH DESCRIPTION +.B ld.so +loads the shared libraries needed by a program, prepares the program +to run, and then runs it. +Unless explicitly specified via the +.B \-static +option to +.B ld +during compilation, all Linux programs are incomplete and require +further linking at run time. +.PP +The necessary shared libraries needed by the program are searched for +in the following order +.IP o +Using the environment variable +.B LD_LIBRARY_PATH +.RB ( LD_AOUT_LIBRARY_PATH +for a.out programs). +Except if the executable is a setuid/setgid binary, in which case it +is ignored. +.IP o +From the cache file +.BR /etc/ld.so.cache +which contains a compiled list of candidate libraries previously found +in the augmented library path. +.IP o +In the default path +.BR /lib , +and then +.BR /usr/lib . +.SH COMMAND LINE OPTIONS +.TP +.B \-\-list +List all dependencies and how they are resolved. +.TP +.B \-\-verify +Verify that program is dynamically linked and this dynamic linker can handle +it. +.TP +.B \-\-library\-path PATH +Override +.B LD_LIBRARY_PATH +environment variable setting (see below). +.TP +.B \-\-ignore\-rpath LIST +Ignore RPATH and RUNPATH information in object names in LIST. +This option has been supported by glibc2 for about one hour. +Then it was renamed into: +.TP +.B \-\-inhibit\-rpath LIST +.SH ENVIRONMENT +.TP +.B LD_LIBRARY_PATH +A colon-separated list of directories in which to search for +ELF libraries at execution-time. +Similar to the +.B PATH +environment variable. +.TP +.B LD_PRELOAD +A whitespace-separated list of additional, user-specified, ELF shared +libraries to be loaded before all others. +This can be used to selectively override functions in other shared libraries. +For setuid/setgid ELF binaries, only libraries in the standard search +directories that are also setgid will be loaded. +.TP +.B LD_TRACE_LOADED_OBJECTS +If present, causes the program to list its dynamic library dependencies, +as if run by ldd, instead of running normally. +.TP +.B LD_BIND_NOW +If present, causes the dynamic linker to resolve all symbols at program +startup instead of when they are first referenced. +.TP +.B LD_BIND_NOT +Do not update the GOT (global offset table) and PLT (procedure linkage table) after resolving a symbol. +.TP +.B LD_AOUT_LIBRARY_PATH +A colon-separated list of directories in which to search for +a.out libraries at execution-time. +Similar to the +.B PATH +environment variable. +.TP +.B LD_AOUT_PRELOAD +The name of an additional, user-specified, a.out shared library to be loaded +after all others. +This can be used to selectively override functions in other shared libraries. +.TP +.B LD_NOWARN +Suppress warnings about a.out libraries with incompatible minor +version numbers. +.TP +.B LD_WARN +If set to non-empty string, warn about unresolved symbols. +.TP +.B LD_KEEPDIR +Don't ignore the directory in the names of a.out libraries to be loaded. +Use of this option is strongly discouraged. +.TP +.B LD_DEBUG +Output verbose debugging information about the dynamic linker. +If set to `all' prints all debugging information it has, if set to +`help' prints a help message about which categories can be specified +in this environment variable. +.TP +.B LD_DEBUG_OUTPUT +File where LD_DEBUG output should be fed into, default is standard +output. LD_DEBUG_OUTPUT is ignored for setuid/setgid binaries. +.TP +.B LD_VERBOSE +If set to non-empty string, output symbol versioning information +about the program if querying information about the program (ie. either +.B LD_TRACE_LOADED_OBJECTS +has been set, or --list or --verify options have been given to the dynamic linker). +.TP +.B LD_PROFILE +Shared object to be profiled. +.TP +.B +LD_PROFILE_OUTPUT +File where +.B LD_PROFILE +output should be stored, default is standard output. LD_PROFILE_OUTPUT is ignored for setuid/setgid binaries. +.TP +.B LD_ASSUME_KERNEL +Every DSO (Dynamic Shared Object, aka shared library) can tell the dynamic linker in glibc which +minimum OS ABI version is needed. The information about the minimum OS ABI version is encoded in +a ELF note section usually named .note.ABI-tag. This is used to determine which library to load +when multiple version of the same library is installed on the system. +The +.B LD_ASSUME_KERNEL +environment variable overrides the kernel version used by the dynamic linker to determine which +library to load. +.SH RPATH TOKEN EXPANSION +The runtime linker provides a number of tokens that can be used in an rpath +specification (\fBDT_RPATH\fR or \fBDT_RUNPATH\fR). +.TP +.B $ORIGIN +ld.so understands the string \fB$ORIGIN\fR (or equivalently \fB${ORIGIN}\fR) +in an rpath specification to mean the directory containing the application +executable. Thus, an application located in somedir/app could be compiled +with gcc -Wl,-rpath,'$ORIGIN/../lib' so that it finds an associated shared +library in somedir/lib no matter where somedir is located in the directory +hierarchy. +.TP +.B $PLATFORM +The string \fB$PLATFORM\fR (or equivalently \fB${PLATFORM}\fR) in an rpath +specifcation expands to the processor type of the current machine. Please note +that on some architectures the Linux kernel doesn't provide a platform +string to the dynamic linker. +.TP +.B $LIB +The string \fB$LIB\fR (or equivalently \fB${LIB}\fR) in an rpath corresponds +to the system libraries directory, which is /lib for the native architecture +on FHS compliant GNU/Linux systems. +.SH FILES +.PD 0 +.TP 20 +.B /lib/ld.so +a.out dynamic linker/loader +.TP 20 +.B /lib/ld-linux.so.* +ELF dynamic linker/loader +.TP +.B /etc/ld.so.cache +File containing a compiled list of directories in which to search for +libraries and an ordered list of candidate libraries. +.TP +.B /etc/ld.so.preload +File containing a whitespace separated list of ELF shared libraries to +be loaded before the program. +libraries and an ordered list of candidate libraries. +.TP +.B /etc/ld.so.nohwcap +When this file is present the dynamic linker will load the non-optimized version +of a library, even if the CPU supports the optimized version. +.TP +.B lib*.so* +shared libraries +.PD +.SH SEE ALSO +.BR ldd (1), +.BR ldconfig (8). +.SH BUGS +.LP +Currently +.B ld.so +has no means of unloading and searching for compatible or newer version of +libraries. +.PP +.B ld.so +functionality is only available for executables compiled using libc version +4.4.3 or greater. +.SH AUTHORS +David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus +Torvalds, Lars Wirzenius and Mitch D'Souza (not necessarily in that order). --- eglibc-2.12.1.orig/debian/local/manpages/sprof.1 +++ eglibc-2.12.1/debian/local/manpages/sprof.1 @@ -0,0 +1,230 @@ +.rn '' }` +.\" $RCSfile: sprof.1,v $$Revision: 1.1.2.1 $$Date: 2003/09/22 21:33:35 $ +.\" +.\" $Log: sprof.1,v $ +.\" Revision 1.1.2.1 2003/09/22 21:33:35 jbailey +.\" New directory for things we add to the package +.\" +.\" +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +.\" +.\" +.\" Set up \*(-- to give an unbreakable dash; +.\" string Tr holds user defined translation string. +.\" Bell System Logo is used as a dummy character. +.\" +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +.\" \*(M", \*(S", \*(N" and \*(T" are the equivalent of +.\" \*(L" and \*(R", except that they are used on ".xx" lines, +.\" such as .IP and .SH, which do another additional levels of +.\" double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH SPROF 1 "etch" "7/Jan/2001" "Debian GNU/Linux" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +sprof \- Read and display shared object profiling data +.SH "SYNOPSIS" +\fBsprof\fR \fB\-p\fR|\fB\-c\fR [\fB\-q\fR] +.SH "DESCRIPTION" +\fB--call-pairs\fR, \fB\-c\fR +.PP +.Vb 1 +\& print list of count paths and their number of use +.Ve +\fB--flat-profile\fR, \fB\-p\fR +.PP +.Vb 1 +\& generate flat profile with counts and ticks +.Ve +\fB--graph\fR, \fB\-q\fR +.PP +.Vb 1 +\& generate call graph +.Ve +.SH "AUTHOR" +\fIsprof\fR was written by Ulrich Drepper for the GNU C Library +.PP +This man page was written by Joel Klecker for +the Debian GNU/Linux system. + +.rn }` '' +.IX Title "SPROF 1" +.IX Name "sprof - Read and display shared object profiling data" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + --- eglibc-2.12.1.orig/debian/local/manpages/po4a.cfg +++ eglibc-2.12.1/debian/local/manpages/po4a.cfg @@ -0,0 +1,7 @@ +[po4a_paths] po/man.pot de:po/de.po es:po/es.po id:po/id.po \ + fr:po/fr.po pl:po/pl.po pt_BR:po/pt_BR.po + +[type: man] validlocale.8 es:es/validlocale.es.8 \ + id:id/validlocale.id.8 add_id:id/addendum.id fr:fr/validlocale.fr.8 \ + add_fr:fr/addendum.fr pl:pl/validlocale.pl.8 \ + pt_BR:pt_BR/validlocale.pt_BR.8 --- eglibc-2.12.1.orig/debian/local/manpages/locale.1 +++ eglibc-2.12.1/debian/local/manpages/locale.1 @@ -0,0 +1,268 @@ +.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R + +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "LOCALE 1" +.TH LOCALE 1 "2004-12-16" "sarge" "Debian GNU/Linux" +.UC +.SH "NAME" +locale \- Get locale-specific information. +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBlocale\fR \fB[\fR \f(CW\-a\fR | \f(CW\-m\fR\fB]\fR +.PP +\&\fBlocale\fR \fB[\fR \-ck \fB]\fR \fIname\fR... +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +The \fIlocale\fR program writes information about the current locale +environment, or all locales, to standard output. +.PP +When invoked without arguments, \fIlocale\fR summarizes the current +locale environment for each locale category defined by the LC_* +environment variables. +.PP +\&\fB\-a\fR, \fB\-\-all\-locales\fR +.PP +.Vb 1 +\& Write names of available locales. +.Ve +\&\fB\-m\fR, \fB\-\-charmaps\fR +.PP +.Vb 1 +\& Write names of available charmaps. +.Ve +.Sh "Output Format:" +.IX Subsection "Output Format:" +\&\fB\-c\fR, \fB\-\-category\-name\fR +.PP +.Vb 1 +\& Write names of selected categories. +.Ve +\&\fB\-k\fR, \fB\-\-keyword\-name\fR +.PP +.Vb 1 +\& Write names and values of selected keywords. +.Ve +.SH "ENVIRONMENT VARIABLES" +.IX Header "ENVIRONMENT VARIABLES" +These environment variables affect each locale categories for all locale-aware programs: + +\&\s-1LC_CTYPE\s0 +.PP +.Vb 1 +\& Character classification and case conversion. +.Ve +\&\s-1LC_COLLATE\s0 +.PP +.Vb 1 +\& Collation order. +.Ve +\&\s-1LC_TIME\s0 +.PP +.Vb 1 +\& Date and time formats. +.Ve +\&\s-1LC_NUMERIC\s0 +.PP +.Vb 1 +\& Non-monetary numeric formats. +.Ve +\&\s-1LC_MONETARY\s0 +.PP +.Vb 1 +\& Monetary formats. +.Ve +\&\s-1LC_MESSAGES\s0 +.PP +.Vb 2 +\& Formats of informative and diagnostic messages and +\& interactive responses. +.Ve +\&\s-1LC_PAPER\s0 +.PP +.Vb 1 +\& Paper size. +.Ve +\&\s-1LC_NAME\s0 +.PP +.Vb 1 +\& Name formats. +.Ve +\&\s-1LC_ADDRESS\s0 +.PP +.Vb 1 +\& Address formats and location information. +.Ve +\&\s-1LC_TELEPHONE\s0 +.PP +.Vb 1 +\& Telephone number formats. +.Ve +\&\s-1LC_MEASUREMENT\s0 +.PP +.Vb 1 +\& Measurement units (Metric or Other). +.Ve +\&\s-1LC_IDENTIFICATION\s0 +.PP +.Vb 1 +\& Metadata about the locale information. +.Ve +This environment variable can switch against multiple locale database: + +\&\s-1LOCPATH\s0 +.PP +.Vb 1 +\& The directory where locale data is stored. By default, /usr/lib/locale is used. +.Ve + +.SH "FILES" +.IX Header "FILES" +.PP +.PD 0 +.TP 8 +\fI/usr/share/i18n/SUPPORTED\fP +List of supported values (and their associated encoding) for the locale name. +This representation is recommended over +\fB\-\-all\-locales\fR one, due being the system wide supported values. +.PP + +.SH "AUTHOR" +.IX Header "AUTHOR" +\&\fIlocale\fR was written by Ulrich Drepper for the \s-1GNU\s0 C Library. +.PP +This manpage was written by Joel Klecker for +the Debian GNU/Linux system, and expanded by Alastair McKinstry + +.PP + +.SH "SEE ALSO" +.BR locale "(5), " locale "(7), " setlocale (3) + --- eglibc-2.12.1.orig/debian/local/manpages/tzselect.1 +++ eglibc-2.12.1/debian/local/manpages/tzselect.1 @@ -0,0 +1,67 @@ +.\" Copyright 1998 Marcus Brinkmann (brinkmd@debian.org) +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" +.\" Modified Mon Jul 12 18:40:00 1998 by Marcus Brinkmann (brinkmd@debian.org) +.TH TZSELECT 1 "12 June 1998" "Debian" "Debian Timezone Configuration" +.SH NAME +tzselect \- view timezones +.SH SYNOPSIS +.B tzselect +.SH DESCRIPTION +This manual page explains how you can use the +.B "tzselect" +utility to view the installed timezone. It comes handy when you want to know what time it is in +other countries, or if you just wonder what timezones exist. + +.B tzselect +is called without any parameters from the shell. It shows a list of about one dozen geographic +areas one can roughly recognize as continents. After choosing a geographic area by number, a +list of countries and cities in this area will be shown. + +You can press the +.B Enter +key to reprint the list. To choose a timezone, just press the number left to it. +If your input is invalid, the list will be reprinted. + +You may press +.B Ctrl-C +to interrupt the script at any time. + +Note that +.B tzselect +will not actually change the timezone for you. Use 'dpkg-reconfigure tzdata' to achieve this. +.SH FILES +.I /usr/share/zoneinfo/ +.SH "SEE ALSO" +.BR hwclock (8) +.SH AUTHOR +Copyright 1998 Marcus Brinkmann + +Please see nroff source for legal notice. + + + + + + + + --- eglibc-2.12.1.orig/debian/local/manpages/rpcgen.1 +++ eglibc-2.12.1/debian/local/manpages/rpcgen.1 @@ -0,0 +1,442 @@ +.\" @(#)rpcgen.new.1 1.1 90/11/09 TIRPC 1.0; from 40.10 of 10/10/89 +.\" Copyright (c) 1988,1990 Sun Microsystems, Inc. - All Rights Reserved. +.nr X +.if \nX=0 .ds x} rpcgen 1 "" "\&" +.if \nX=1 .ds x} rpcgen 1 "" +.if \nX=2 .ds x} rpcgen 1 "" "\&" +.if \nX=3 .ds x} rpcgen "" "" "\&" +.TH \*(x} +.SH NAME +\f4rpcgen\f1 \- an RPC protocol compiler +.SH SYNOPSIS +.ft 4 +.nf +rpcgen \f2infile\f4 +.fi +.ft 1 +.br +.ft 4 +.nf +rpcgen [\-D\f2name\f4[=\f2value\f4]] [\-T] [\-K \f2secs\fP] \f2infile\f4 +.fi +.ft 1 +.br +.ft 4 +.nf +rpcgen \-c|\-h|\-l|\-m|\-M|\-t [\-o \f2outfile\f4 ] \f2infile\f4 +.fi +.ft 1 +.br +.ft 4 +.nf +rpcgen [\-I] \-s \f2nettype\f4 [\-o \f2outfile\f4] \f2infile\f4 +.fi +.ft 1 +.br +.ft 4 +.nf +rpcgen \-n \f2netid\f4 [\-o \f2outfile\f4] \f2infile\f4 +.ft 1 +.SH DESCRIPTION +.P +\f4rpcgen\f1 +is a tool that generates C code to implement an RPC protocol. +The input to +\f4rpcgen\f1 +is a language similar to C known as +RPC Language (Remote Procedure Call Language). +.P +\f4rpcgen\f1 +is normally used as in the first synopsis where +it takes an input file and generates up to four output files. +If the +\f2infile\f1 +is named +\f4proto.x\f1, +then +\f4rpcgen\f1 +will generate a header file in +\f4proto.h\f1, +XDR routines in +\f4proto_xdr.c\f1, +server-side stubs in +\f4proto_svc.c\f1, +and client-side stubs in +\f4proto_clnt.c\f1. +With the +\f4\-T\f1 +option, +it will also generate the RPC dispatch table in +\f4proto_tbl.i\f1. +With the +\f4\-Sc\f1 +option, +it will also generate sample code which would illustrate how to use the +remote procedures on the client side. This code would be created in +\f4proto_client.c\f1. +With the +\f4\-Ss\f1 +option, +it will also generate a sample server code which would illustrate how to write +the remote procedures. This code would be created in +\f4proto_server.c\f1. +.P +The server created can be started both by the port monitors +(for example, \f4inetd\f1 or \f4listen\f1) +or by itself. +When it is started by a port monitor, +it creates servers only for the transport for which +the file descriptor \f40\fP was passed. +The name of the transport must be specified +by setting up the environmental variable +\f4PM_TRANSPORT\f1. +When the server generated by +\f4rpcgen\f1 +is executed, +it creates server handles for all the transports +specified in +\f4NETPATH\f1 +environment variable, +or if it is unset, +it creates server handles for all the visible transports from +\f4/etc/netconfig\f1 +file. +Note: +the transports are chosen at run time and not at compile time. +.P +When built for a port monitor (\f4rpcgen\f1 \f4\-I\f1), and that the server +is self-started, it backgrounds itself by default. A special define symbol +\f4RPC_SVC_FG\f1 can be used to run the server process in foreground. +.P +The second synopsis provides special features which allow +for the creation of more sophisticated RPC servers. +These features include support for user provided +\f4#defines\f1 +and RPC dispatch tables. +The entries in the RPC dispatch table contain: +.RS +.PD 0 +.TP 3 +\(bu +pointers to the service routine corresponding to that procedure, +.TP +\(bu +a pointer to the input and output arguments +.TP +\(bu +the size of these routines +.PD +.RE +A server can use the dispatch table to check authorization +and then to execute the service routine; +a client library may use it to deal with the details of storage +management and XDR data conversion. +.P +The other three synopses shown above are used when +one does not want to generate all the output files, +but only a particular one. +Some examples of their usage is described in the +EXAMPLE +section below. +When +\f4rpcgen\f1 +is executed with the +\f4\-s\f1 +option, +it creates servers for that particular class of transports. +When +executed with the +\f4\-n\f1 +option, +it creates a server for the transport specified by +\f2netid\f1. +If +\f2infile\f1 +is not specified, +\f4rpcgen\f1 +accepts the standard input. +.P +The C preprocessor, +\f4cc \-E\f1 +[see \f4cc\fP(1)], +is run on the input file before it is actually interpreted by +\f4rpcgen\f1. +For each type of output file, +\f4rpcgen\f1 +defines a special preprocessor symbol for use by the +\f4rpcgen\f1 +programmer: +.P +.PD 0 +.TP 12 +\f4RPC_HDR\f1 +defined when compiling into header files +.TP +\f4RPC_XDR\f1 +defined when compiling into XDR routines +.TP +\f4RPC_SVC\f1 +defined when compiling into server-side stubs +.TP +\f4RPC_CLNT\f1 +defined when compiling into client-side stubs +.TP +\f4RPC_TBL\f1 +defined when compiling into RPC dispatch tables +.PD +.P +Any line beginning with +`\f4%\f1' +is passed directly into the output file, +uninterpreted by +\f4rpcgen\f1. +.P +For every data type referred to in +\f2infile\f1, +\f4rpcgen\f1 +assumes that there exists a +routine with the string +\f4xdr_\f1 +prepended to the name of the data type. +If this routine does not exist in the RPC/XDR +library, it must be provided. +Providing an undefined data type +allows customization of XDR routines. +.br +.ne 10 +.P +The following options are available: +.TP +\f4\-a\f1 +Generate all the files including sample code for client and server side. +.TP +\f4\-b\f1 +This generates code for the SunOS4.1 style of rpc. It is +for backward compatibility. This is the default. +.TP +\f4\-5\f1 +This generates code for the SysVr4 style of rpc. It is used by the +Transport Independent RPC that is in Svr4 systems. +By default rpcgen generates code for SunOS4.1 stype of rpc. +.TP +\f4\-c\f1 +Compile into XDR routines. +.TP +\f4\-C\f1 +Generate code in ANSI C. This option also generates code that could be +compiled with the C++ compiler. This is the default. +.TP +\f4\-k\f1 +Generate code in K&R C. The default is ANSI C. +.TP +\f4\-D\f2name\f4[=\f2value\f4]\f1 +Define a symbol +\f2name\f1. +Equivalent to the +\f4#define\f1 +directive in the source. +If no +\f2value\f1 +is given, +\f2value\f1 +is defined as \f41\f1. +This option may be specified more than once. +.TP +\f4\-h\f1 +Compile into +\f4C\f1 +data-definitions (a header file). +\f4\-T\f1 +option can be used in conjunction to produce a +header file which supports RPC dispatch tables. +.TP +\f4\-I\f1 +Generate a service that can be started from inetd. The default is +to generate a static service that handles transports selected with \f4\-s\f1. +Using \f4\-I\f1 allows starting a service by either method. +.TP +\f4-K\f2 secs\f1 +By default, services created using \f4rpcgen\fP wait \f4120\fP seconds +after servicing a request before exiting. +That interval can be changed using the \f4-K\fP flag. +To create a server that exits immediately upon servicing a request, +\f4-K\ 0\fP can be used. +To create a server that never exits, the appropriate argument is +\f4-K\ -1\fP. +.IP +When monitoring for a server, +some portmonitors, like +\f4listen\fP(1M), +.I always +spawn a new process in response to a service request. +If it is known that a server will be used with such a monitor, the +server should exit immediately on completion. +For such servers, \f4rpcgen\fP should be used with \f4-K\ -1\fP. +.TP +\f4\-l\f1 +Compile into client-side stubs. +.TP +\f4\-m\f1 +Compile into server-side stubs, +but do not generate a \(lqmain\(rq routine. +This option is useful for doing callback-routines +and for users who need to write their own +\(lqmain\(rq routine to do initialization. +.TP +\f4\-M\f1 +Generate multithread-safe stubs for passing arguments +and results between rpcgen-generated code and user written code. +This option is useful for users who want to use threads in their code. +.TP +\f4\-n \f2netid\f1 +Compile into server-side stubs for the transport +specified by +\f2netid\f1. +There should be an entry for +\f2netid\f1 +in the +netconfig database. +This option may be specified more than once, +so as to compile a server that serves multiple transports. +.TP +\f4\-N\f1 +Use the newstyle of rpcgen. This allows procedures to have multiple arguments. +It also uses the style of parameter passing that closely resembles C. So, when +passing an argument to a remote procedure you do not have to pass a pointer to +the argument but the argument itself. This behaviour is different from the oldstyle +of rpcgen generated code. The newstyle is not the default case because of +backward compatibility. +.TP +\f4\-o \f2outfile\f1 +Specify the name of the output file. +If none is specified, +standard output is used +(\f4\-c\f1, +\f4\-h\f1, +\f4\-l\f1, +\f4\-m\f1, +\f4\-n\f1, +\f4\-s\f1, +\f4\-Sc\f1, +\f4\-Sm\f1, +\f4\-Ss\f1, +and +\f4\-t\f1 +modes only). +.TP +\f4\-s \f2nettype\f1 +Compile into server-side stubs for all the +transports belonging to the class +\f2nettype\f1. +The supported classes are +\f4netpath\f1, +\f4visible\f1, +\f4circuit_n\f1, +\f4circuit_v\f1, +\f4datagram_n\f1, +\f4datagram_v\f1, +\f4tcp\f1, +and +\f4udp\f1 +[see \f4rpc\fP(3N) +for the meanings associated with these classes]. +This option may be specified more than once. +Note: +the transports are chosen at run time and not at compile time. +.TP +\f4\-Sc\f1 +Generate sample code to show the use of remote procedure and how to bind +to the server before calling the client side stubs generated by rpcgen. +.TP +\f4\-Sm\f1 +Generate a sample Makefile which can be used for compiling the application. +.TP +\f4\-Ss\f1 +Generate skeleton code for the remote procedures on the server side. You would need +to fill in the actual code for the remote procedures. +.TP +\f4\-t\f1 +Compile into RPC dispatch table. +.TP +\f4\-T\f1 +Generate the code to support RPC dispatch tables. +.P +The options +\f4\-c\f1, +\f4\-h\f1, +\f4\-l\f1, +\f4\-m\f1, +\f4\-s\f1 +and +\f4\-t\f1 +are used exclusively to generate a particular type of file, +while the options +\f4\-D\f1 +and +\f4\-T\f1 +are global and can be used with the other options. +.br +.ne 5 +.SH NOTES +The RPC Language does not support nesting of structures. +As a work-around, +structures can be declared at the top-level, +and their name used inside other structures in +order to achieve the same effect. +.P +Name clashes can occur when using program definitions, +since the apparent scoping does not really apply. +Most of these can be avoided by giving +unique names for programs, +versions, +procedures and types. +.P +The server code generated with +\f4\-n\f1 +option refers to the transport indicated by +\f2netid\f1 +and hence is very site specific. +.SH EXAMPLE +The following example: +.IP +.ft 4 +$ rpcgen \-T prot.x +.ft 1 +.P +generates the five files: +\f4prot.h\f1, +\f4prot_clnt.c\f1, +\f4prot_svc.c\f1, +\f4prot_xdr.c\f1 +and +\f4prot_tbl.i\f1. +.P +The following example sends the C data-definitions (header file) +to the standard output. +.IP +.ft 4 +$ rpcgen \-h prot.x +.ft 1 +.P +To send the test version of the +\f4-DTEST\f1, +server side stubs for +all the transport belonging to the class +\f4datagram_n\f1 +to standard output, use: +.IP +.ft 4 +$ rpcgen \-s datagram_n \-DTEST prot.x +.ft 1 +.P +To create the server side stubs for the transport indicated +by +\f2netid\f1 +\f4tcp\f1, +use: +.IP +.ft 4 +$ rpcgen \-n tcp \-o prot_svc.c prot.x +.ft 1 +.SH "SEE ALSO" +\f4cc\fP(1). --- eglibc-2.12.1.orig/debian/local/manpages/localedef.1 +++ eglibc-2.12.1/debian/local/manpages/localedef.1 @@ -0,0 +1,293 @@ +.TH LOCALEDEF 1 "May 20, 2005" +.SH NAME +localedef \- compile locale definition files +.SH SYNOPSIS +.ad l +.nh +.B localedef +.RI [ options ] +.I outputpath +.br +.B "localedef \-\-list\-archive" +.RI [ options ] +.br +.B "localedef \-\-delete\-from\-archive" +.RI [ options ] +.IR localename " ..." +.br +.B "localedef \-\-add\-to\-archive" +.RI [ options ] +.IR compiledpath +.br +.B "localedef \-\-version" +.br +.B "localedef \-\-help" +.br +.B "localedef \-\-usage" +.ad b +.hy +.SH DESCRIPTION +The +.B localedef +program reads the indicated +.I charmap +and +.I input +files, compiles them to a binary form quickly usable by the +.BR locale (7) +functions in the C library, and places the output in +.IR outputpath . +.PP +If +.I outputpath +contains a slash character ('/'), it is directly the name of the output +directory. +In this case, there is a separate output file for each locale category +(LC_CTIME, LC_NUMERIC, and so on). +.PP +Otherwise, if the +.B \-\-no\-archive +option is used, +.I outputpath +is the name of a subdirectory in +.B /usr/lib/locale +where per-category compiled files are placed. +.PP +Otherwise, +.I outputpath +is the name of a locale and the compiled locale data is added to the +archive file +.BR /usr/lib/locale/locale-archive . +.PP +In any case, +.B localedef +aborts if the directory in which it tries to write locale files has +not already been created. +.PP +If no +.I charmapfile +is given, the value +.I POSIX +is used by default. +If no +.I inputfile +is given, or if it is given as a dash +.RB ( \- ), +.B localedef +reads from standard input. +.SH OPTIONS +Most options can have either short or long forms. If multiple short +options are used, they can be combined in one word (for example, +.B \-cv +is identical to +.BR "\-c \-v" ). +.PP +If a short option takes an argument, the argument can be given separately +as the next word +.RB ( "\-f foo" ), +or it can be written together with the option letter +.RB ( \-ffoo ). +If a long option takes an argument, the argument can be given separately +as the next word, or it can be written as option=argument +.RB ( \-\-charmap=foo ). +.SS "Operation selection options" +A few options direct +.B localedef +to do something else than compile locale definitions. +Only one of these should be used at a time. +.TP +.B \-\-delete\-from\-archive +Delete the named locales from the locale archive file. +.TP +.B \-\-list\-archive +List the locales contained in the locale archive file. +.TP +.B \-\-add\-to\-archive +Add the +.I compiledpath +directories to the locale archive file. +The directories should have been created by previous runs of +.BR localedef , +using +.BR \-\-no\-archive . +.SS "Other options" +Some of the following options are only sensible for some operations; hopefully it is self-evident which ones. +.TP +.BI \-f " charmapfile" ", \-\-charmap=" charmapfile +Specify the file that defines the symbolic character names that are +used by the input file. If the file is in the default directory for +character maps, it is not necessary to specify the full pathname. +This default directory is printed by +.BR "localedef \-\-help" . +.TP +.BI \-i " inputfile" ", \-\-inputfile=" inputfile +Specify the locale definition file to compile. If +.I inputfile +is not absolute, +.B localedef +will also look in the directories specified by the environment variable +.B I18NPATH +and in the default directory for locale definition files. This default +directory is printed by +.BR "localedef \-\-help" . +.TP +.BI \-u " repertoirefile" ", \-\-repertoire-map=" repertoirefile +Read mappings from symbolic names to Unicode UCS4 values from +.IR repertoirefile . +.TP +.BI \-A " aliasfile" ", \-\-alias\-file=" aliasfile +Use +.I aliasfile +to look up aliases for locale names. +There is no default aliases file. +.TP +.BI \-\-prefix= pathname +Set prefix to be prepended to the full archive pathname. +By default, the prefix is empty. +Setting the prefix to +.IR foo , +the archive would be placed in +.BR foo/usr/lib/locale/locale-archive . +.TP +.B "\-c, \-\-force" +Write the output files even if warnings were generated about the input +file. +.TP +.B \-\-old\-style +Create old-style tables. +.TP +.B "\-v, \-\-verbose" +Generate extra warnings about errors that are normally ignored. +.TP +.B \-\-quiet +Suppress all notifications and warnings, and report only fatal errors. +.TP +.B \-\-posix +Conform strictly to POSIX. Implies +.BR \-\-verbose . +This option currently has no other effect. Posix conformance is +assumed if the environment variable +.B POSIXLY_CORRECT +is set. +.TP +.B \-\-replace +Replace a locale in the locale archive file. +Without this option, if the locale is in the archive file already, +an error occurs. +.TP +.B \-\-no\-archive +Do not use the locale archive file, instead create +.I outputpath +as a subdirectory in the same directory as the locale archive file, +and create separate output files for locale categories in it. +.TP +.B "\-\-help" +Print a usage summary and exit. Also prints the default paths used by +.BR localedef . +.TP +.B "\-\-usage" +Print a short usage summary and exit. +.TP +.B "\-V, \-\-version" +Print the version number, license, and disclaimer of warranty for +.BR localedef . +.SH ENVIRONMENT +.TP +.B POSIXLY_CORRECT +The +.B \-\-posix +flag is assumed if this environment variable is set. +.TP +.B I18NPATH +A colon separated list of default directories for locale definition files. +.SH FILES +.TP +.B /usr/share/i18n/charmaps +Usual default charmap path. +.TP +.B /usr/share/i18n/locales +Usual default path for locale source files. +.TP +.B /usr/share/i18n/repertoiremaps +Usual default repertoire map path. +.TP +.B /usr/lib/locale/locale-archive +Usual default locale archive location. +.TP +.IB outputpath/ LC_COLLATE +One of the output files. It describes the rules for comparing strings +in the locale's alphabet. +.TP +.IB outputpath/ LC_CTYPE +One of the output files. It contains information about character +cases and case conversions for the locale. +.TP +.IB outputpath/ LC_MONETARY +One of the output files. It describes the way monetary values should +be formatted in the locale. +.TP +.IB outputpath/ LC_MESSAGES/SYS_LC_MESSAGES +One of the output files. It contains information about the language +messages should be printed in, and what an affirmative or negative +answer looks like. +.TP +.IB outputpath/ LC_NUMERIC +One of the output files. It describes the rules for formatting +numbers in the locale. +.TP +.IB outputpath/ LC_TIME +One of the output files. It describes the rules for formatting +times and dates in the locale. +.TP +.IB outputpath/ LC_PAPER +One of the output files. It describes the default paper size +in the locale. +.TP +.IB outputpath/ LC_NAME +One of the output files. It describes the rules for formatting +names in the locale. +.TP +.IB outputpath/ LC_ADDRESS +One of the output files. It describes the rules for formatting +addresses, and other location information in the locale. +.TP +.IB outputpath/ LC_TELEPHONE +One of the output files. It describes the rules for formatting +telephone numbers in the locale. +.TP +.IB outputpath/ LC_MEASUREMENT +One of the output files. It describes the rules for measurement in the +locale, e.g. Metric or other units. +.TP +.IB outputpath/ LC_IDENTIFICATION +One of the output files. It identifies the elements within the locale. +.SH EXAMPLES +Compile the locale files for Finnish in the UTF-8 character set +and add it to the default locale archive with the name +.BR fi_FI.UTF-8 : +.PP +.RS +localedef \-f UTF\-8 \-i fi_FI fi_FI.UTF\-8 +.RE +.PP +The same, but generate files into the current directory (note that the +last argument must then contain a slash): +.PP +.RS +localedef \-f UTF\-8 \-i fi_FI ./ +.RE +.SH "SEE ALSO" +.BR locale "(5), " locale "(7), " locale (1) +.SH AUTHOR +The program was written by Ulrich Drepper. +.PP +This manual page was written by Richard Braakman on +behalf of the Debian GNU/Linux Project and anyone else who wants it. +It was amended by Alastair McKinstry to +explain new ISO 14652 elements, +and amended further by Lars Wirzenius to document new +functionality (as of GNU C library 2.3.5). +The manpage is not supported by the GNU libc maintainers and may be +out of date. +.SH STANDARDS +This program conforms to the POSIX standard P1003.2 --- eglibc-2.12.1.orig/debian/local/manpages/Makefile +++ eglibc-2.12.1/debian/local/manpages/Makefile @@ -0,0 +1,20 @@ +#! /usr/bin/make -f + +DIRS := de es fr id pl pt_BR + +SGML_MAN = locale-gen.8 + +all: $(patsubst %.pod,%.1,$(wildcard *.pod)) $(SGML_MAN) po4a-man +%.1: %.pod + pod2man --center="Debian GNU/Linux" --release="etch" $< > $@ + +locale-gen.8: locale-gen.8.sgml + docbook-to-man $< > $@ + +po4a-man: + po4a -q po4a.cfg + +clean: + po4a -q po4a.cfg + $(foreach dir, $(DIRS), rm -rf $(dir)/*.8) + rm -f po/*~ --- eglibc-2.12.1.orig/debian/local/manpages/gai.conf.5 +++ eglibc-2.12.1/debian/local/manpages/gai.conf.5 @@ -0,0 +1,92 @@ +.\" A man page for gai.conf. -*- nroff -*- +.\" +.\" Copyright (C) 2006 Red Hat, Inc. All rights reserved. +.\" +.\" This copyrighted material is made available to anyone wishing to use, +.\" modify, copy, or redistribute it subject to the terms and conditions of the +.\" GNU General Public License v.2. +.\" +.\" This program is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +.\" more details. +.\" +.\" You should have received a copy of the GNU General Public License along +.\" with this program; if not, write to the Free Software Foundation, Inc., +.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +.\" +.\" Author: Ulrich Drepper +.TH gai.conf 5 "May 2006" gai.conf + +.SH NAME +gai.conf \- getaddrinfo(3) configuration file + +.SH DESCRIPTION +A call to +.BR getaddrinfo (3) +might return multiple answers. According to RFC 3484 these answers must +be sorted so that the answer with the highest success rate is first in +the list. The RFC provides an algorithm for the sorting. The static +rules are not always adequate, though. For this reason the RFC also +requires that system administrators get the chance to dynamically change +the sorting. For the glibc implementation this can be achieved with +the +.BR /etc/gai.conf +file. +.PP +Each line in the configuration file consists of a keyword and its +parameters. White spaces in any place are ignored. Lines starting +with `#' are comments and are ignored. +.PP +The keywords currently recognized are: +.TP +\fBlabel\fR \fInetmask\fR \fIprecedence\fR +The value is added to the label table used in the RFC 3484 sorting. +If any \fBlabel\fR definition is present in the configuration file +is present the default table is not used. All the label definitions +of the default table which are to be maintained have to be duplicated. +Following the keyword the line has to contain a network mask and a label +value. + +.TP +\fBprecedence\fR \fInetmask\fR \fIprecedence\fR +This keyword is similar to \fBlabel\fR but instead the value is added +to the precendence table as specified in RFC 3484. Once again, the +presence of a single \fBprecedence\fR line in the configuration file +causes the default table to not be used. + +.TP +\fBreload\fR <\fByes\fR|\fBno\fR> +This keyword control whether a process checks whether the configuration +file has been changes since the last time it was read. If the value is +`\fByes\fR' the file is re-read. This might cause problems in multi-threaded +applications and is generally a bad idea. The default is `\fBno\fR'. + + +.SH EXAMPLE + +The default table according to RFC 3484 would be specified with the +following configuration file: + +.nf +label ::1/128 0 +label ::/0 1 +label 2002::/16 2 +label ::/96 3 +label ::ffff:0:0/96 4 +precendence ::1/128 50 +precendence ::/0 40 +precendence 2002::/16 30 +precendence ::/96 20 +precendence ::ffff:0:0/96 10 + + +.SH FILES +\fI/etc/gai.conf\fR + +.SH AUTHOR +Ulrich Drepper + +.SH SEE ALSO +.BR getaddrinfo(3), +RFC 3484 --- eglibc-2.12.1.orig/debian/local/manpages/rpcinfo.8 +++ eglibc-2.12.1/debian/local/manpages/rpcinfo.8 @@ -0,0 +1,166 @@ +.\" from: @(#)rpcinfo.8c 2.2 88/08/03 4.0 RPCSRC; from 1.24 88/02/25 SMI +.\" $Id: rpcinfo.8,v 1.1.2.1 2003/09/22 21:33:35 jbailey Exp $ +.\" +.Dd December 17, 1987 +.Dt RPCINFO 8 +.Os +.Sh NAME +.Nm rpcinfo +.Nd report RPC information +.Sh SYNOPSIS +.Nm rpcinfo +.Fl p +.Op Ar host +.Nm rpcinfo +.Op Fl n Ar portnum +.Fl u Ar host +.Ar program +.Op Ar version +.Nm rpcinfo +.Op Fl n Ar portnum +.Fl t Ar host +.Ar program +.Op Ar version +.Nm rpcinfo +.Fl b +.Ar program version +.Nm rpcinfo +.Fl d +.Ar program version +.Sh DESCRIPTION +.Nm rpcinfo +makes an +.Tn RPC +call to an +.Tn RPC +server and reports what it finds. +.Sh OPTIONS +.Bl -tag -width indent +.It Fl p +Probe the portmapper on +.Ar host , +and print a list of all registered +.Tn RPC +programs. If +.Ar host +is not specified, it defaults to the value returned by +.Xr hostname 1 . +.It Fl u +Make an +.Tn RPC +call to procedure 0 of +.Ar program +on the specified +.Ar host +using +.Tn UDP , +and report whether a response was received. +.It Fl t +Make an +.Tn RPC +call to procedure 0 of +.Ar program +on the specified +.Ar host +using +.Tn TCP , +and report whether a response was received. +.It Fl n +Use +.Ar portnum +as the port number for the +.Fl t +and +.Fl u +options instead of the port number given by the portmapper. +.It Fl b +Make an +.Tn RPC +broadcast to procedure 0 of the specified +.Ar program +and +.Ar version +using +.Tn UDP +and report all hosts that respond. +.It Fl d +Delete registration for the +.Tn RPC +service of the specified +.Ar program +and +.Ar version . +This option can be exercised only by the super-user. +.El +.Pp +The +.Ar program +argument can be either a name or a number. +.Pp +If a +.Ar version +is specified, +.Nm rpcinfo +attempts to call that version of the specified +.Ar program . +Otherwise, +.Nm rpcinfo +attempts to find all the registered version +numbers for the specified +.Ar program +by calling version 0 (which is presumed not +to exist; if it does exist, +.Ar rpcinfo +attempts to obtain this information by calling +an extremely high version +number instead) and attempts to call each registered version. +Note: the version number is required for +.Fl b +and +.Fl d +options. +.Sh EXAMPLES +To show all of the +.Tn RPC +services registered on the local machine use: +.Pp +.Dl example% rpcinfo -p +.Pp +To show all of the +.Tn RPC +services registered on the machine named +.Ar klaxon +use: +.Pp +.Dl example% rpcinfo -p klaxon +.Pp +To show all machines on the local net that are running the Yellow Pages +service use: +.Pp +.Dl example% rpcinfo -b ypserv 'version' | uniq +.Pp +where 'version' is the current Yellow Pages version obtained from the +results of the +.Fl p +switch above. +.Pp +To delete the registration for version 1 of the +.Nm walld +service use: +.Pp +.Dl example% rpcinfo -d walld 1 +.Sh SEE ALSO +.Xr rpc 5 , +.Xr portmap 8 +.Rs +.%T "RPC Programming Guide" +.Re +.Sh BUGS +In releases prior to SunOS 3.0, the Network File System (NFS) did not +register itself with the portmapper; +.Nm rpcinfo +cannot be used to make +.Tn RPC +calls to the +.Tn NFS +server on hosts running such releases. --- eglibc-2.12.1.orig/debian/local/manpages/ldconfig.8 +++ eglibc-2.12.1/debian/local/manpages/ldconfig.8 @@ -0,0 +1,168 @@ +.TH ldconfig 8 "25 February 2008" +.SH NAME +ldconfig \- configure dynamic linker run-time bindings +.SH SYNOPSIS +ldconfig +.RB [OPTION...] +.SH DESCRIPTION +.B ldconfig +creates, updates, and removes the necessary links and cache (for use by the run-time linker, +.IR ld.so ) +to the most recent shared libraries found in the directories specified +on the command line, in the file +.IR /etc/ld.so.conf , +and in the trusted directories +.RI ( /usr/lib +and +.IR /lib ). +.B ldconfig +checks the header and file names of the libraries it encounters when +determining which versions should have their links updated. +.B ldconfig +ignores symbolic links when scanning for libraries. +.PP +.B ldconfig +will attempt to deduce the type of ELF libs (ie. libc 5.x or libc 6.x (glibc)) +based on what C libraries if any the library was linked against, therefore when +making dynamic libraries, it is wise to explicitly link against libc (use -lc). +.B ldconfig +is capable of storing multiple ABI types of libraries into a single cache on +architectures which allow native running of multiple ABIs, like +ia32/ia64/x86_64 or sparc32/sparc64. +.PP +Some existing libs do not contain enough information to allow the deduction of +their type, therefore the +.IR /etc/ld.so.conf +file format allows the specification of an expected type. This is +.B only +used for those ELF libs which we can not work out. The format +is like this "dirname=TYPE", where type can be libc4, libc5 or libc6. +(This syntax also works on the command line). Spaces are +.B not +allowed. Also see the +.B -p +option. +.PP +Directory names containing an +.B = +are no longer legal unless they also have an expected type specifier. +.PP +.B ldconfig +should normally be run by the super-user as it may require write +permission on some root owned directories and files. If you use +.B -r +option to change the root directory, you don't have to be super-user though +as long as you have sufficient right to that directory tree. +.SH OPTIONS +.TP +.B \-v\ \-\-verbose +Verbose mode. +Print current version number, the name of each directory as it +is scanned and any links that are created. +.TP +.B \-n +Only process directories specified on the command line. +Don't process the trusted directories +.RI ( /usr/lib +and +.IR /lib ) +nor those specified in +.IR /etc/ld.so.conf . +Implies +.BR \-N . +.TP +.B \-N +Don't rebuild the cache. +Unless +.B \-X +is also specified, links are still updated. +.TP +.B \-X +Don't update links. +Unless +.B \-N +is also specified, the cache is still rebuilt. +.TP +.B \-f conf +Use +.B conf +instead of +.IR /etc/ld.so.conf . +.TP +.B \-C cache +Use +.B cache +instead of +.IR /etc/ld.so.cache . +.TP +.B \-r root +Change to and use +.B root +as the root directory. +.TP +.B \-l +Library mode. +Manually link individual libraries. +Intended for use by experts only. +.TP +.B \-p\ \-\-print-cache +Print the lists of directories and candidate libraries stored in +the current cache. +.TP +.B \-c\ \-\-format=FORMAT +Use +.B FORMAT +for the cache file. Choices are old, new and compat (the default). +.TP +.B \-i \-\-ignore-aux-cache +Ignore auxiliary cache file. +.TP +.B \-?\ \-\-help \-\-usage +Print usage information. +.TP +.B \-V\ \-\-version +Print version and exit. +.SH EXAMPLES +.RS +# /sbin/ldconfig -v +.RE +will set up the correct links for the shared binaries and rebuild +the cache. +.RS +# /sbin/ldconfig -n /lib +.RE +as root after the installation of a new shared library will properly update the +shared library symbolic links in /lib. +.SH FILES +.PD 0 +.TP 20 +.B /lib/ld-linux.so.* +execution time linker/loader +.TP 20 +.B /etc/ld.so.conf +File containing a list of colon, space, tab, newline, or comma separated +directories in which to search for libraries. +.TP 20 +.B /etc/ld.so.cache +File containing an ordered list of libraries found in the directories +specified in +.BR /etc/ld.so.conf . +This file is not in human readable format, and is not intended to be +edited. +.TP +.B lib*.so.version +shared libraries +.PD +.SH SEE ALSO +.BR ldd (1), +.BR ld.so (8). +.SH BUGS +.LP +.BR ldconfig , +being a user process, must be run manually and has no means of dynamically +determining and relinking shared libraries for use by +.BR ld.so +when a new shared library is installed. +.SH AUTHORS +Andreas Jaeger. +Manual page written by David Engel and Mitch D'Souza. --- eglibc-2.12.1.orig/debian/local/manpages/iconvconfig.8 +++ eglibc-2.12.1/debian/local/manpages/iconvconfig.8 @@ -0,0 +1,232 @@ +.rn '' }` +.\" $RCSfile: iconvconfig.8,v $$Revision: 1.1 $$Date: 2008-08-08 21:49:44 +0200 (Fr, 08 Aug 2008) $ +.\" +.\" $Log: iconvconfig.8,v $ +.\" Revision 1.1 2003/11/03 17:37:27 jbailey +.\" - debian/local/manpages/gencat.1: New file. +.\" - debian/local/manpages/trace.1: New file. +.\" - debian/debhelper.in/libc-dev.manpages: Install them. +.\" - debian/local/manpages/iconvconfig.8: New file. +.\" - debian/debhelper.in/libc.manpages: Install it. +.\" +.\" Revision 1.1.2.2 2003/10/28 05:48:08 dan +.\" - Re-add debian/patches/80_glibc232-locales-nb_NO-fix.dpatch, which had +.\" gotten lost. +.\" - Re-add typo fixes to iconv.1 and rpcgen.1. +.\" - Merge iconv.1 fix to iconv.pod. +.\" - Fix ld.so name in ld.so.8. +.\" - Re-add fix for locale-gen and POSIXLY_CORRECT. +.\" +.\" +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +.\" +.\" +.\" Set up \*(-- to give an unbreakable dash; +.\" string Tr holds user defined translation string. +.\" Bell System Logo is used as a dummy character. +.\" +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +.\" \*(M", \*(S", \*(N" and \*(T" are the equivalent of +.\" \*(L" and \*(R", except that they are used on ".xx" lines, +.\" such as .IP and .SH, which do another additional levels of +.\" double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH ICONVCONFIG 8 "November 2003" "iconvconfig (glibc)" "Debian" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +iconvconfig \- Create fastloading iconv module configuration file +.SH "SYNOPSIS" +iconvconfig [OPTION...] [DIR...] +.SH "DESCRIPTION" +The \fBiconvconfig\fR program generates a cache that internationalised +applications can use to reduce loading time. +.PP +.TP +\fB--prefix\fR \fIPATH\fR +Prefix used for all file accesses +.SH "AUTHOR" +\fIiconvconfig\fR was written by Ulrich Drepper as part of the GNU C Library. +.PP +This man page was written by Jeff Bailey . + +.rn }` '' +.IX Title "ICONVCONFIG 8" +.IX Name "iconvconfig - Create fastloading iconv module configuration file" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + --- eglibc-2.12.1.orig/debian/local/manpages/zdump.1 +++ eglibc-2.12.1/debian/local/manpages/zdump.1 @@ -0,0 +1,43 @@ +.TH ZDUMP 1 +.SH NAME +zdump \- time zone dumper +.SH SYNOPSIS +.B zdump +[ +.B \-v +] [ +.B \-c +cutoffyear ] [ zonename ... ] +.SH DESCRIPTION +.I Zdump +prints the current time in each +.I zonename +named on the command line. +.PP +These options are available: +.TP +.B \-v +For each +.I zonename +on the command line, +print the time at the lowest possible time value, +the time one day after the lowest possible time value, +the times both one second before and exactly at +each detected time discontinuity, +the time at one day less than the highest possible time value, +and the time at the highest possible time value, +Each line ends with +.B isdst=1 +if the given time is Daylight Saving Time or +.B isdst=0 +otherwise. +.I zonename +should be the relative path file name from +.B /usr/share/zoneinfo/ +which directory contains all zone data. +.TP +.BI "\-c " cutoffyear +Cut off the verbose output near the start of the given year. +.SH "SEE ALSO" +ctime(3), zic(8) +.\" @(#)zdump.8 7.3 --- eglibc-2.12.1.orig/debian/local/manpages/ldd.1 +++ eglibc-2.12.1/debian/local/manpages/ldd.1 @@ -0,0 +1,58 @@ +.\" Copyright 1995-2000 David Engel (david@ods.com) +.\" Copyright 1995 Rickard E. Faith (faith@cs.unc.edu) +.\" Copyright 2000 Ben Collins (bcollins@debian.org) +.\" Redone for GLibc 2.2 +.\" Copyright 2000 Jakub Jelinek (jakub@redhat.com) +.\" Corrected. +.\" Most of this was copied from the README file. Do not restrict distribution. +.\" May be distributed under the GNU General Public License +.TH LDD 1 "30 October 2000" +.SH NAME +ldd \- print shared library dependencies +.SH SYNOPSIS +.B ldd +.RB [OPTION]... +FILE... +.SH DESCRIPTION +.B ldd +prints the shared libraries required by each program or shared library +specified on the command line. +.SH OPTIONS +.TP +.B \-\-version +Print the version number of +.BR ldd . +.TP +.B \-v\ \-\-verbose +Print all information, including e.g. symbol versioning information. +.TP +.B \-d\ \-\-data\-relocs +Perform relocations and report any missing objects (ELF only). +.TP +.B \-r\ \-\-function\-relocs +Perform relocations for both data objects and functions, and +report any missing objects or functions (ELF only). +.TP +.B \-u\ \-\-unused +Print unused direct dependencies. +.TP +.B \-\-help +Usage information. +.SH BUGS +.B ldd +does not work on a.out shared libraries. +.PP +.B ldd +does not work with some extremely old a.out programs which were +built before +.B ldd +support was added to the compiler releases. +If you use +.B ldd +on one of these programs, the program will attempt to run with argc = 0 and +the results will be unpredictable. +.SH AUTHOR +Roland McGrath and Ulrich Drepper. +.SH SEE ALSO +.BR ldconfig (8), +.BR ld.so (8). --- eglibc-2.12.1.orig/debian/local/manpages/getent.1 +++ eglibc-2.12.1/debian/local/manpages/getent.1 @@ -0,0 +1,235 @@ +.rn '' }` +.\" $RCSfile: getent.1,v $$Revision: 1.1.2.1 $$Date: 2003/09/22 21:33:35 $ +.\" +.\" $Log: getent.1,v $ +.\" Revision 1.1.2.1 2003/09/22 21:33:35 jbailey +.\" New directory for things we add to the package +.\" +.\" +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +.\" +.\" +.\" Set up \*(-- to give an unbreakable dash; +.\" string Tr holds user defined translation string. +.\" Bell System Logo is used as a dummy character. +.\" +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +.\" \*(M", \*(S", \*(N" and \*(T" are the equivalent of +.\" \*(L" and \*(R", except that they are used on ".xx" lines, +.\" such as .IP and .SH, which do another additional levels of +.\" double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH GETENT 1 "lenny" "18/Nov/2007" "Debian GNU/Linux" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +getent \- get entries from administrative database +.SH "SYNOPSIS" +\fBgetent\fR \fIdatabase\fR [\fIkey\fR ...] +.SH "DESCRIPTION" +The \fIgetent\fR program gathers entries from the specified +administrative database using the specified search keys. +Where \fIdatabase\fR is one of passwd, group, hosts, services, protocols, +or networks. +.SH "EXIT VALUES" +The \fIgetent\fR command exits with the following values: +.TP +.B 0 +Success +.TP +.B 1 +Unknown database +.TP +.B 2 +Key not found in database +.TP +.B 3 +Database does not support enumeration +.SH "AUTHOR" +\fIgetent\fR was written by Thorsten Kukuk for the GNU C Library. +.PP +This man page was written by Joel Klecker for +the Debian GNU/Linux system. + +.rn }` '' +.IX Title "GETENT 1" +.IX Name "getent - get entries from administrative database" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "EXIT VALUES" + +.IX Header "AUTHOR" + --- eglibc-2.12.1.orig/debian/local/manpages/locale-gen.8.sgml +++ eglibc-2.12.1/debian/local/manpages/locale-gen.8.sgml @@ -0,0 +1,148 @@ + manpage.1'. You may view + the manual page with: `docbook-to-man manpage.sgml | nroff -man | + less'. A typical entry in a Makefile or Makefile.am is: + +manpage.1: manpage.sgml + docbook-to-man $< > $@ + --> + + + Eduard"> + Bloch"> + + March 10, 2005"> + + 8"> + blade@debian.org"> + + LOCALE-GEN"> + + + Debian GNU/Linux"> + GNU"> +]> + + + +
+ &dhemail; +
+ + &dhfirstname; + &dhsurname; + + + 2001 + &dhusername; + + &dhdate; +
+ + &dhucpackage; + + &dhsection; + + + &dhpackage; + + generates localisation files from templates + + + + &dhpackage; + + + + + + DESCRIPTION + + This manual page documents briefly the + &dhpackage; command. + + By default, the locale package which provides the base support for + localisation of libc-based programs does not contain usable localisation + files for every supported language. This limitation has became necessary + because of the substantial size of such files and the large number of + languages supported by libc. As a result, Debian uses a special + mechanism where we prepare the actual localisation files on the target + host and distribute only the templates for them. + + &dhpackage; is a program that reads the file + /etc/locale.gen and invokes + localedef for the chosen localisation profiles. + Run &dhpackage; after you have modified the /etc/locale.gen file. + + + + + + OPTIONS + + + + + + By default, &dhpackage; removes all + existing locales and generates new ones afresh. The + option prevents this, so that + only locales which do not already exist are generated. This is + useful if calling locale-gen a number of times in + succession. + + + + + + + FILES + + /etc/locale.gen + The main configuration file, which has a simple format: every + line that is not empty and does not begin with a # is treated as a + locale definition that is to be built. + + + + + + SEE ALSO + + localedef(1), locale(1), locale.alias(5), locale.gen(5). + + + + + AUTHOR + + This manual page was written by &dhusername; <&dhemail;> for + the &debian; system (but may be used by others). Permission is + granted to copy, distribute and/or modify this document under + the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the Free + Software Foundation; with no Invariant Sections, no Front-Cover + Texts and no Back-Cover Texts. + + +
+ + --- eglibc-2.12.1.orig/debian/local/manpages/nscd.8 +++ eglibc-2.12.1/debian/local/manpages/nscd.8 @@ -0,0 +1,87 @@ +.\" Placed in the Public Domain by Sebastian Rittau . +.Dd January 07, 2001 +.Dt NSCD 8 +.Os "GNU C Library 2.2" +.Sh NAME +.Nm nscd +.Nd name service caching daemon +.Sh SYNOPSIS +.Nm nscd +.Op OPTION... +.Sh DESCRIPTION +.Nm Nscd +caches libc-issued requests to the Name Service. If retrieving +NSS data is fairly expensive, +.Nm nscd +is able to speed up consecutive access to the same data +dramatically and increase overall system performance. +.Nm Nscd +should be run at boot time by +.Pa /etc/init.d/nscd . +.Sh OPTIONS +.Bl -tag -width Ds +.It Fl d , Fl -debug +Do not fork and display messages on the current tty. +.El +.Bl -tag -width Ds +.It Fl f , Fl -config-file Ar NAME +Read configuration data from +.Pa NAME . +For a description of the config file format, see nscd.conf(5). +.El +.Bl -tag -width Ds +.It Fl g , Fl -statistic +Print current configuration statistics. +.El +.Bl -tag -width Ds +.It Fl i , Fl -invalidate Ar TABLE +Invalidate the specified +.Pa TABLE , +i. e. forget all data cached therein. This should be used if the +database storing this information has been changed. +.El +.Bl -tag -width Ds +.It Fl K , Fl -shutdown +Quit a running +.Nm nscd +process. +.El +.Bl -tag -width Ds +.It Fl S , Fl -secure Ar TABLE +Use a separate cache for each user. +.El +.Bl -tag -width Ds +.It Fl t , Fl -nthreads Ar NUMBER +Start +.Pa NUMBER +threads. This denotes the maximum number +of requests that can be handled simultaneously. The default is set +in the configuration file. (See nscd.conf(5).) +.El +.Bl -tag -width Ds +.It Fl ? , Fl -help +Print the list of available options. +.El +.Bl -tag -width Ds +.It Fl -usage +Print a short usage message. +.El +.Bl -tag -width Ds +.It Fl V , Fl -version +Print program version. +.El +.Sh FILES +.Bl -tag -width Ds +.It Ar /etc/nscd.conf +.Nm Nscd +configuration file. See nscd.conf(5) for more information. +.El +.Bl -tag -width Ds +.It Ar /etc/nsswitch.conf +Name Service Switch configuration. See nsswitch.conf(5) +for more information. +.El +.Sh SEE ALSO +GNU C Library info file, +.Xr nscd.conf 5 , +.Xr nsswitch.conf 5 --- eglibc-2.12.1.orig/debian/local/manpages/validlocale.8 +++ eglibc-2.12.1/debian/local/manpages/validlocale.8 @@ -0,0 +1,49 @@ +.TH "validlocale" "8" "0.1" "Petter Reinholdtsen" "" +.SH "NAME" +.LP +validlocale \- Test if a given locale is available +.SH "SYNTAX" +.LP +validlocale <\fIlocale\fP> +.SH "DESCRIPTION" +.LP +Test if the locale given as argument is a valid locale. If it +isn't, print on stdout the string to add to /etc/locale.gen to make +locale\-gen generate the locale (if it exists at all). +.SH "FILES" +.LP +\fI/usr/sbin/validlocale\fP +.br +\fI/usr/share/i18n/SUPPORTED\fP +.SH "ENVIRONMENT VARIABLES" +.LP +.TP +\fBDEFAULTCHARSET\fP +Which charset to assume if the given locale is missing from the +list of supported locales. +.SH "EXAMPLES" +.LP +If you give a valid locale as parameter, it outputs a string +specifying this on stderr: +.LP +.IP +% validlocale C +.br +locale 'C' valid and available +.LP +When given a invalid (not generated or just nonexistent), it +outputs a string on stderr telling that this is an invalid locale, and a string to stdout with the string to add to /etc/locale.gen +to have this locale generated: +.LP +.IP +% validlocale de_AU@euro +.br +locale 'de_AU@euro' not available +.br +de_AU@euro ISO\-8859\-15 +.SH "AUTHORS" +.LP +Petter Reinholdtsen +.SH "SEE ALSO" +.LP +locale\-gen(8), localedef(1), locale(1) --- eglibc-2.12.1.orig/debian/local/manpages/fr/addendum.fr +++ eglibc-2.12.1/debian/local/manpages/fr/addendum.fr @@ -0,0 +1,4 @@ +PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=\.SH + +.SH "TRADUCTION" +Clment Stenac, 2005. Veuillez signaler toute erreur --- eglibc-2.12.1.orig/debian/local/manpages/fr/validlocale.fr.8 +++ eglibc-2.12.1/debian/local/manpages/fr/validlocale.fr.8 @@ -0,0 +1,57 @@ +.\" This file was generated with po4a. Translate the source file. +.\" +.TH validlocale 8 0.1 "Petter Reinholdtsen" "" +.SH NOM +.LP +validlocale \- vrifie si un ensemble donn de paramtres rgionaux est +disponible +.SH SYNTAXE +.LP +validlocale <\fIlocale\fP> +.SH DESCRIPTION +.LP +Teste si l'ensemble de paramtres rgionaux donn en argument est +valable. S'il ne l'est pas, affiche sur la sortie standard la chane de +caractres ajouter /etc/locale.gen afin de permettre locale\-gen de +gnrer l'ensemble de paramtres (s'il existe). +.SH FICHIERS +.LP +\fI/us/sbin/validlocale\fP +.br +\fI/usr/share/i18n/SUPPORTED\fP +.SH "VARIABLES D'ENVIRONNEMENT" +.LP +.TP +\fBDEFAULTCHARSET\fP +Indique quel encodage de caractres doit tre suppos si la locale donne +n'est pas dans la liste des locales gres. +.SH EXEMPLES +.LP +Si vous indiquez comme paramtre une locale valabe, vous recevrez ceci sur +la sortie d'erreur +.LP +.IP +% validlocale C +.br +locale \ C\ valide et disponible +.LP +Lorsqu'une locale non valable (non cre ou inexistante) est indique, vous +recevrez un message sur la sortie d'erreur disant qu'il s'agit d'une locale +non valable et une chane de caractres sur la sortie standard ajouter +/etc/locale.gen pour que la locale soit cre\ : +.LP +.IP +% validlocale de_AU@euro +.br +locale \ de_AT@euro\ non disponible +.br +de_AT@euro ISO\-8859\-15 +.SH AUTEURS +.LP +PetterReinholdtsen + +.SH "TRADUCTION" +Clment Stenac, 2005. Veuillez signaler toute erreur +.SH "VOIR AUSSI" +.LP +locale\-gen(8), localedef(1), locale(1) --- eglibc-2.12.1.orig/debian/local/manpages/po/fr.po +++ eglibc-2.12.1/debian/local/manpages/po/fr.po @@ -0,0 +1,505 @@ +# fr.po for base-config manpage +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# +# Previous translator : +# Antoine Gémis . +# +msgid "" +msgstr "" +"Project-Id-Version: base-config\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-07-27 19:36+0200\n" +"Last-Translator: Clment Stenac \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8-bit\n" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "validlocale" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "0.1" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "Petter Reinholdtsen" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "NOM" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "" +"validlocale - vrifie si un ensemble donn de paramtres rgionaux est " +"disponible" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "SYNTAXE" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "validlocale EIE" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIPTION" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" +"Teste si l'ensemble de paramtres rgionaux donn en argument est valable. " +"S'il ne l'est pas, affiche sur la sortie standard la chane de caractres " +"ajouter /etc/locale.gen afin de permettre locale-gen de gnrer " +"l'ensemble de paramtres (s'il existe)." + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "FICHIERS" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "I" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "I" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "VARIABLES D'ENVIRONNEMENT" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "B" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" +"Indique quel encodage de caractres doit tre suppos si la locale donne " +"n'est pas dans la liste des locales gres." + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "EXEMPLES" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" +"Si vous indiquez comme paramtre une locale valabe, vous recevrez ceci sur " +"la sortie d'erreur " + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "% validlocale C" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "locale C valide et disponible" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" +"Lorsqu'une locale non valable (non cre ou inexistante) est indique, vous " +"recevrez un message sur la sortie d'erreur disant qu'il s'agit d'une locale " +"non valable et une chane de caractres sur la sortie standard ajouter /" +"etc/locale.gen pour que la locale soit cre:" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "% validlocale de_AU@euro" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "locale de_AT@euro non disponible" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "de_AT@euro ISO-8859-15" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "AUTEURS" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "PetterReinholdtsenEpere@hungry.comE" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "VOIR AUSSI" + +# type: Plain text +#: validlocale.8:49 +#, fuzzy +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "locale-gen(8),localedef(1),locale(1),base-config(8)" + +# type: TH +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - Configuration du systme Debian de base" + +# type: SH +#~ msgid "SYNOPSIS" +#~ msgstr "SYNOPSIS" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B est le programme lanc lors du premier redmarrage d'un " +#~ "nouveau systme Debian. Il vous guide pas pas dans la configuration du " +#~ "systme, l'installation de nouveaux programmes, etc. Vous pourrez lancer " +#~ " nouveau ce programme plus tard si vous dsirez modifier la " +#~ "configuration de votre systme." + +# type: SH +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLMENTATION" + +# type: Plain text +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B gnre un menu de choix partir du contenu de B et depuis les modles debconf." + +# type: Plain text +#~ msgid "" +#~ "The .mnu files in /usr/lib/base-config/ control whether the menu item " +#~ "appears only on new installs (Only-New: true), whether debconf can " +#~ "already be running when the item is run (Debconf: true), a numeric Order " +#~ "controls placement in the menu. If a .mnu file contains \"Exit-Menu: true" +#~ "\", then base-config will terminate after running that menu item. " +#~ "Finally, a \"Changes-Menu: true\" line will make base-config rebuild the " +#~ "menu after running the menu item." +#~ msgstr "" +#~ "Les fichiers .mnu dans /usr/lib/base-config/ permettent de spcifier si " +#~ "un lment de menu ne doit apparatre que pour les nouvelles " +#~ "installations (Only-New:true), si Debconf doit dj fonctionner lors du " +#~ "lancement de l'lment (Debconf: true), et un champ numrique contrle la " +#~ "position dans le menu. Si un fichier .mnu contient Exit-Menu: true, " +#~ "base-config se terminera aprs l'excution de cet lment. Enfin, une " +#~ "ligne Changes-Menu: true fera que base-config reconstruira le menu " +#~ "aprs l'excution de l'lment." + +# type: Plain text +#~ msgid "" +#~ "The .tst files in /usr/lib/base-config/ are run when base-config builds " +#~ "the menu and must return true for that menu item to appear on the menu." +#~ msgstr "" +#~ "Les fichiers .tst dans /usr/lib/base-config/ sont lancs lorsque base-" +#~ "config construit le menu et doivent renvoyer un rsultat nul pour que cet " +#~ "lment apparaisse dans le menu." + +# type: Plain text +#~ msgid "" +#~ "The menu items are taken from debconf, by looking for items in the " +#~ "debconf database named base-config/menu/whatever." +#~ msgstr "" +#~ "Les lments du menu sont tirs de Debconf, en cherchant les lments " +#~ "dans la base de donnes de Debconf appels base-config/menu/quelque_chose" + +# type: Plain text +#~ msgid "" +#~ "When a menu item is selected, the corresponding program, in /usr/lib/base-" +#~ "config is run. If this is a fresh install onto a new debian system, the " +#~ "program receives \"new\" as its first argument." +#~ msgstr "" +#~ "Lorsqu'un lment du menu est slectionn, le programme correspondant " +#~ "dans /usr/lib/base-config est excut. S'il s'agit d'une installation sur " +#~ "un nouveau systme, le programme reoit new en tant que premier " +#~ "argument." + +# type: Plain text +#~ msgid "" +#~ "B checks the return codes of each of the programs. If a " +#~ "program returns nonzero, the main menu is displayed (this may involve " +#~ "lowering the debconf priority)." +#~ msgstr "" +#~ "B vrifie les codes de retour des programmes. Si un " +#~ "programme retourne une valeur non nulle, le menu principal sera affich " +#~ "(ceci peut conduire une diminution de la priorit Debconf)" + +# type: Plain text +#~ msgid "" +#~ "Generally the user is advanced down the menu from item to item as each " +#~ "succeeds. If a menu item needs to jump back to a previous item in the " +#~ "menu, or skip over a subsequent item, it can write the name of the next " +#~ "menu item to show to the file \"jump-to\" in the current directory." +#~ msgstr "" +#~ "Gnralement, au fur et mesure que les lments se terminent avec " +#~ "succs, les lments suivants du menu sont prslectionns. Si un lment " +#~ "a besoin d'un retour un lment prcdent du menu, ou d'un saut un " +#~ "autre lment, il peut crire le nom de l'lment prslectionner " +#~ "ensuite dans le fichier jump-to du rpertoire courant." + +# type: Plain text +#~ msgid "" +#~ "Every base-config run is logged to B
. B
contains timing information to go with the log. " +#~ "This allows replays of base-config runs using the B(1) utility." +#~ msgstr "" +#~ "Chaque excution de base-config est consigne dans B
. Les informations temporelles du journal sont consignes dans B
, ceci permet de relancer base-config en utilisant " +#~ "B(1)B<.>" + +# type: Plain text +#~ msgid "" +#~ "B
, if it exists, is used by B " +#~ "on new installs to get values from the debian-installer first stage " +#~ "install." +#~ msgstr "" +#~ "Le fichier B
, s'il existe, est " +#~ "utilis par B pendant les nouvelles installations pour " +#~ "obtenir les valeurs produites par la premire tape de debian-installer" + +# type: Plain text +#~ msgid "" +#~ "Other packages can drop files into B, and add menu " +#~ "titles in debconf, and they will be added to the menu. It is very " +#~ "strongly encouraged that any such programs communicate with the user " +#~ "entirely via debconf, so that the base configuration maintains a " +#~ "consistent and professional look." +#~ msgstr "" +#~ "D'autres paquets peuvent insrer des programmes dans B et ajouter des lments de menu debconf; ils seront alors " +#~ "ajouts au menu. Afin de conserver l'homognit et l'aspect " +#~ "professionnel du processus d'installation, il est fortement conseill que " +#~ "la communication entre ces paquets et l'utilisateur se fasse " +#~ "exclusivement par debconf." + +# type: Plain text +#~ msgid "" +#~ "Another useful thing for custom distributions is /usr/share/base-config/" +#~ "debconf-seed. If that directory exists, every file in it will be loaded " +#~ "into the debconf database using B(1)" +#~ msgstr "" +#~ "Un autre rpertoire intressant pour les distributions personnalises " +#~ "est /usr/share/base-config/debconf-seed. Si ce rpertoire existe, tout " +#~ "son contenu sera charg dans la base de donnes debconf l'aide de " +#~ "B(1)" + +# type: Plain text +#~ msgid "" +#~ "If the file /var/log/installer/debconf-seed is created by the debian-" +#~ "installer, it will also be loaded into the debconf database." +#~ msgstr "" +#~ "Si le fichier /var/log/debian-installer/debconf-seedest cr par " +#~ "l'installateur Debian, il sera galement charg dans la base de donnes " +#~ "debconf" + +# type: SH +#~ msgid "ENVIRONMENT" +#~ msgstr "ENVIRONNEMENT" + +# type: Plain text +#~ msgid "" +#~ "The following environment variables influence B. These " +#~ "variables may be set at run time, or for new installs, may be passed to " +#~ "the kernel at the B(8) (or other bootloader) command line. Consult " +#~ "your boot loader's documentation for details. For example, lilo can be " +#~ "booted with something like \"linux DEBIAN_FRONTEND=readline\"." +#~ msgstr "" +#~ "base-config tient compte des variables d'environnement suivantes. Ces " +#~ "variables peuvent tre dfinies dynamiquement, pendant l'installation, ou " +#~ "bien encore passes en paramtre au noyau sur la ligne de commande de " +#~ "B(8) (ou d'un autre chargeur de dmarrage). Consultez la " +#~ "documentation de votre chargeur de dmarrage pour plus d'informations. " +#~ "Par exemple, lilo peut tre lanc avec un paramtre tel que linux " +#~ "DEBIAN_FRONTEND=readline." + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "Control various things about B(7)" +#~ msgstr "Contrle de nombreux aspects de (7)" + +# type: SH +#~ msgid "AUTHOR" +#~ msgstr "AUTEUR" + +# type: Plain text +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoey@debian.orgE" + +# type: TH +#~ msgid "TERMWRAP" +#~ msgstr "TERMWRAP" + +# type: Plain text +#~ msgid "termwrap - terminal wrapper" +#~ msgstr "termwrap - encapsulateur de terminal" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is used to execute B(8) on newly installed " +#~ "Debian systems. It examines the environment, taking note of locale " +#~ "settings, and what type of console is available, and runs an appropriate " +#~ "terminal program. For example, at the Linux console and in a Japanese " +#~ "locale, it runs jfterm. The specified command is run inside the terminal " +#~ "program (if any)." +#~ msgstr "" +#~ "B est utilis pour excuter B (8) sur un systme " +#~ "Debian nouvellement install. Il examine l'environnement, prenant en " +#~ "compte les rglages de paramtres locaux et le type de console " +#~ "disponible, et lance un programme de terminal adquat. Par exemple, pour " +#~ "une console Linux et des paramtres locaux japonais, il lancera jfterm. " +#~ "La commande indique est alors lance dans le programme de terminal, s'il " +#~ "y en a un." + +# type: SH +#~ msgid "OPTIONS" +#~ msgstr "OPTIONS" + +# type: TP +#~ msgid "I<-nnt>" +#~ msgstr "I<-nnt>" + +# type: Plain text +#~ msgid "Don't run another terminal." +#~ msgstr "Ne pas lancer d'autre terminal" + +# type: TH +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - permet d'ajouter des sources de tlchargement apt" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B est un programme interactif simplifiant l'ajout de sources " +#~ "au fichier sources.list. Il connat tous les principaux miroirs Debian et " +#~ "peut vous aider en choisir un. Il peut mme utiliser B(8) " +#~ "pour parcourir des cdroms." + +# type: TP +#~ msgid "I" +#~ msgstr "I" + +# type: Plain text +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Par dfaut, aucune dtection des CD n'est faite. Si vous passez probe " +#~ "comme premier argument ce programme, il effectuera une dtection du CD " +#~ "dans le lecteur au dmarrage et l'ajoutera au sources.list. Ceci est " +#~ "utile lors des installations initiales de Debian, afin de minimiser " +#~ "l'interaction avec l'utilisateur." + +# type: TP +#~ msgid "I<-N>" +#~ msgstr "I<-N>" + +# type: Plain text +#~ msgid "" +#~ "Indicates that this is a new install. This parameter allows apt-setup to " +#~ "run in noninteractive mode if its debconf questions have been preseeded." +#~ msgstr "" +#~ "Indique qu'il s'agit d'une nouvelle installation. Ce paramtre permet " +#~ "apt-setup de fonctionner en mode non-interactif si les rponses ses " +#~ "questions debconf ont t prcharges." + +# type: Plain text +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" --- eglibc-2.12.1.orig/debian/local/manpages/po/pt_BR.po +++ eglibc-2.12.1/debian/local/manpages/po/pt_BR.po @@ -0,0 +1,503 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) 2005 Free Software Foundation, Inc. +# Brazilian , 2005. +# , fuzzy +# +# +msgid "" +msgstr "" +"Project-Id-Version: base-config man\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-10-24 21:25-0200\n" +"Last-Translator: Brazilian \n" +"Language-Team: Brazilian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "validlocale" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "0.1" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "Petter Reinholdtsen" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "NOME" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "validlocale - Testa se uma dada locale est disponvel" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "SINTAXE" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "validlocale EIE" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIO" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" +"Testa se a locale passada como argumento vlida. Se no for, imprime em " +"stdout o texto a ser adicionado em /etc/locale.gen para fazer locale-gen " +"gerar a locale (se ela existir)." + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "ARQUIVOS" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "I" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "I" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "VARIVEIS DE AMBIENTE" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "B" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" +"Qual conjunto de caracteres assumir se a locale dada estiver faltando na " +"lista de locales suportadas." + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "EXEMPLOS" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" +"Se voc der uma locale vlida como parmetro, a sada ser um texto " +"especificando isto em stderr:" + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "% validlocale C" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "locale'C' vlida e est disponvel" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" +"Quando dado uma invlida (no gerada ou no existente), a sada ser um " +"texto em stderr dizendo que a locale invlida, e um texto para stdout que " +"deve ser adicionado a /etc/locale.gen para ter esta locale gerada:" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "% validlocale de_AU@euro" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "locale 'de_AT@euro' no est disponvel" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "de_AT@euro ISO-8859-15" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "AUTORES" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "Petter Reinholdtsen Epere@hungry.comE" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "VEJA TAMBM" + +# type: Plain text +#: validlocale.8:49 +#, fuzzy +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "locale-gen(8), localedef(1), locale(1), base-config(8)" + +# type: TH +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - Configurao do sistema base Debian" + +# type: SH +#~ msgid "SYNOPSIS" +#~ msgstr "SINOPSE" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B o programa que foi executado quando voc reiniciou a " +#~ "primeira vez em seu novo sistema debian instalado. Ele o guia atravs das " +#~ "configuraes de seu sistema e baixando softwares adicionais, indo alm. " +#~ "O programa pode ser executado posteriormente a qualquer momento para gui-" +#~ "lo essencialmente atravs do mesmo processo novamente." + +# type: SH +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLEMENTAO" + +# type: Plain text +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B gera um menu de opes a partir do contedo de B, e dos modelos debconf." + +# type: Plain text +#~ msgid "" +#~ "The .mnu files in /usr/lib/base-config/ control whether the menu item " +#~ "appears only on new installs (Only-New: true), whether debconf can " +#~ "already be running when the item is run (Debconf: true), a numeric Order " +#~ "controls placement in the menu. If a .mnu file contains \"Exit-Menu: true" +#~ "\", then base-config will terminate after running that menu item. " +#~ "Finally, a \"Changes-Menu: true\" line will make base-config rebuild the " +#~ "menu after running the menu item." +#~ msgstr "" +#~ "Os arquivos .mnu em /usr/lib/base-config/ controlam quando um item de " +#~ "menu aparece apenas em novas instalaes (Only-New: true), ou o debconf " +#~ "pode j estar sendo executado quando o item executado (Debconf: true), " +#~ "um nmero Order controla a posio no menu. Se um arquivo .mnu contm " +#~ "\"Exit-Menu: true\", ento base-config ser terminado aps executar esse " +#~ "item do menu. Finalmente a linha \"Changes-Menu: true\" far com que " +#~ "base-config reconstrua o menu aps executar este item." + +# type: Plain text +#~ msgid "" +#~ "The .tst files in /usr/lib/base-config/ are run when base-config builds " +#~ "the menu and must return true for that menu item to appear on the menu." +#~ msgstr "" +#~ "Os arquivos .tst em /usr/lib/base-config/ so executados quando base-" +#~ "config constri o menu e devem retornar verdadeiro para que apaream no " +#~ "menu." + +# type: Plain text +#~ msgid "" +#~ "The menu items are taken from debconf, by looking for items in the " +#~ "debconf database named base-config/menu/whatever." +#~ msgstr "" +#~ "Os itens do menu so pegos do debconf olhando para itens na base de dados " +#~ "do debconf chamada de base-config/menu/qualquercoisa" + +# type: Plain text +#~ msgid "" +#~ "When a menu item is selected, the corresponding program, in /usr/lib/base-" +#~ "config is run. If this is a fresh install onto a new debian system, the " +#~ "program receives \"new\" as its first argument." +#~ msgstr "" +#~ "Quando um item do menu selecionado, o programa correspondente, em /usr/" +#~ "lib/base-config executado. Se esta uma instalao novo em um novo " +#~ "sistema debian, o programa recebe \"new\" como seu primeiro argumento." + +# type: Plain text +#~ msgid "" +#~ "B checks the return codes of each of the programs. If a " +#~ "program returns nonzero, the main menu is displayed (this may involve " +#~ "lowering the debconf priority)." +#~ msgstr "" +#~ "B checa os cdigos de retorno de cada um dos programas. Se " +#~ "um programa retorna no-zero, o menu principal exibido (isso pode " +#~ "envolver diminuir a prioridade do debconf)." + +# type: Plain text +#~ msgid "" +#~ "Generally the user is advanced down the menu from item to item as each " +#~ "succeeds. If a menu item needs to jump back to a previous item in the " +#~ "menu, or skip over a subsequent item, it can write the name of the next " +#~ "menu item to show to the file \"jump-to\" in the current directory." +#~ msgstr "" +#~ "Geralmente o usurio avana descendo o menu item a item medida que cada " +#~ "um completado com sucesso. Se um item do menu precisa voltar para um " +#~ "item anterior ou pular algum item subseqente, ele pode escrever o nome " +#~ "do prximo item do menu para mostrar ao arquivo \"jump-to\" no diretrio " +#~ "atual." + +# type: Plain text +#~ msgid "" +#~ "Every base-config run is logged to B
. B
contains timing information to go with the log. " +#~ "This allows replays of base-config runs using the B(1) utility." +#~ msgstr "" +#~ "Cada execuo do base-config registrada em B
. B
contm as informaes de tempo que " +#~ "vo juntamente com o registro. Isso permite repeties da execuo do " +#~ "base-config usando o utilitrio B(1)." + +# type: Plain text +#~ msgid "" +#~ "B
, if it exists, is used by B " +#~ "on new installs to get values from the debian-installer first stage " +#~ "install." +#~ msgstr "" +#~ "B
, se o arquivo existe, usado pelo B em novas instalaes para obter valores do primeiroestgio de " +#~ "instalao do debian-installer." + +# type: Plain text +#~ msgid "" +#~ "Other packages can drop files into B, and add menu " +#~ "titles in debconf, and they will be added to the menu. It is very " +#~ "strongly encouraged that any such programs communicate with the user " +#~ "entirely via debconf, so that the base configuration maintains a " +#~ "consistent and professional look." +#~ msgstr "" +#~ "Outros pacotes podem colocar arquivos em B, e " +#~ "adicionar ttulos de menu no debconf, que sero adicionados ao menu. " +#~ "fortemente encorajado que qualquer programa desses comunique-se com o " +#~ "usurio inteiramente via debconf, de forma que a configurao da base " +#~ "mantenha a consistncia e o visual profissional." + +# type: Plain text +#~ msgid "" +#~ "Another useful thing for custom distributions is /usr/share/base-config/" +#~ "debconf-seed. If that directory exists, every file in it will be loaded " +#~ "into the debconf database using B(1)" +#~ msgstr "" +#~ "Outra coisa til para distribuies customizadas /usr/share/base-config/" +#~ "debconf-seed. Se esse diretrio existir, cada arquivo nele ser carregado " +#~ "no banco de dados do debconf usando B(1)" + +# type: Plain text +#~ msgid "" +#~ "If the file /var/log/installer/debconf-seed is created by the debian-" +#~ "installer, it will also be loaded into the debconf database." +#~ msgstr "" +#~ "Se o arquivo /var/log/installer/debconf-seed criado pelo debian-" +#~ "installer, ele tambm ser carregado no banco de dados do debconf." + +# type: SH +#~ msgid "ENVIRONMENT" +#~ msgstr "AMBIENTE" + +# type: Plain text +#~ msgid "" +#~ "The following environment variables influence B. These " +#~ "variables may be set at run time, or for new installs, may be passed to " +#~ "the kernel at the B(8) (or other bootloader) command line. Consult " +#~ "your boot loader's documentation for details. For example, lilo can be " +#~ "booted with something like \"linux DEBIAN_FRONTEND=readline\"." +#~ msgstr "" +#~ "As seguintes variveis de ambiente influenciam B. Essas " +#~ "variveis podem ser definidas em tempo de execuo, ou para novas " +#~ "instalaes, podem ser passadas ao kernel na linha de comando do B" +#~ "(8) (ou outro gerenciador de boot). Consulte a documentao do seu " +#~ "gerenciador de boot para detalhes. Por exemplo, lilo pode ser bootado com " +#~ "algo como: \"linux DEBIAN_FRONTEND=readline\"." + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "Control various things about B(7)" +#~ msgstr "Controla vrias coisas sobre o B(7)" + +# type: SH +#~ msgid "AUTHOR" +#~ msgstr "AUTOR" + +# type: Plain text +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: TH +#~ msgid "TERMWRAP" +#~ msgstr "TERMWRAP" + +# type: Plain text +#~ msgid "termwrap - terminal wrapper" +#~ msgstr "termwrap - wrapper de terminal" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is used to execute B(8) on newly installed " +#~ "Debian systems. It examines the environment, taking note of locale " +#~ "settings, and what type of console is available, and runs an appropriate " +#~ "terminal program. For example, at the Linux console and in a Japanese " +#~ "locale, it runs jfterm. The specified command is run inside the terminal " +#~ "program (if any)." +#~ msgstr "" +#~ "B usado para executar B(8) em novos sistemas " +#~ "Debian instalados. Ele examina o ambiente, tomando nota das configuraes " +#~ "de localizao, qual tipo de console est disponvel e executa um " +#~ "programa de terminal apropriado. Por exemplo, no console Linux e em uma " +#~ "localizao Japonesa, ele executa jfterm. O comando especificado " +#~ "executado dentro do programa de terminal (caso exista algum)." + +# type: SH +#~ msgid "OPTIONS" +#~ msgstr "OPES" + +# type: TP +#~ msgid "I<-nnt>" +#~ msgstr "I<-nnt>" + +# type: Plain text +#~ msgid "Don't run another terminal." +#~ msgstr "No execute outro terminal." + +# type: TH +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - adiciona fontes de download para o apt" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B um programa interativo que simplifica a adio de fontes " +#~ "no arquivo sources.list do apt. Ele conhece todos os principais espelhos " +#~ "(mirrors) debian e pode ajud-lo a selecionar um. Pode at mesmo usar o " +#~ "B(8) para vasculhar CDs." + +# type: TP +#~ msgid "I" +#~ msgstr "I" + +# type: Plain text +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Por padro nenhuma consulta de CDs feita. Passar \"probe\" como o " +#~ "primeiro argumento para este programa far com que o mesmo procure por um " +#~ "CD no drive em sua inicializao e adicione-o ao sources.list. Isto " +#~ "til em instalaes iniciais do debian para minimizar a interao com o " +#~ "usurio." + +# type: TP +#~ msgid "I<-N>" +#~ msgstr "I<-N>" + +# type: Plain text +#~ msgid "" +#~ "Indicates that this is a new install. This parameter allows apt-setup to " +#~ "run in noninteractive mode if its debconf questions have been preseeded." +#~ msgstr "" +#~ "Indica que esta uma nova instalao. Este parmetro permite ao apt-" +#~ "setup executar no modo no-interativo se suas perguntas do debconf foram " +#~ "previamente respondidas." + +# type: Plain text +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: TH +#, fuzzy +#~ msgid "TZSETUP" +#~ msgstr "APT-SETUP" + +# type: SH +#, fuzzy +#~ msgid "DERIVATION" +#~ msgstr "DESCRIÇÃO" --- eglibc-2.12.1.orig/debian/local/manpages/po/es.po +++ eglibc-2.12.1/debian/local/manpages/po/es.po @@ -0,0 +1,672 @@ +msgid "" +msgstr "" +"Project-Id-Version: 2.74\n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-11-30 18:58+0100\n" +"Last-Translator: Rubn Porras \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "validlocale" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "0.1" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "Petter Reinholdtsen" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "NOMBRE" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "" +"validlocale - Comprueba si la opcin de localizacin dada est disponible" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "SINTAXIS" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "validlocale EIE" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIPCIN" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" +"Comprueba si la opcin de localizacin dada como argumento es vlida. Si no " +"lo es muestra en la stdout (salida estndar) la cadena de caracteres que se " +"necesita aadir a /etc/locale.gen para que locale-gen genere esa opcin de " +"localizacin (si es que existe)." + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "FICHEROS" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "I" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "I" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "VARIABLES DE ENTORNO" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "B" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" +"El juego de caracteres que asume en caso de que la opcin de localizacin " +"dada no est entre la lista de opciones de localizacin soportadas." + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "EJEMPLOS" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" +"Si usted proporciona una opcin de localizacin vlida como parmetro, " +"muestra una cadena de caracteres especificndolo en stderr (salida de " +"errores estndar):" + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "% validlocale C" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "locale 'C' valid and available" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" +"Cuando se proporcione una invlida (no ha sido generada o no existe), " +"muestra una cadena de caracteres en stderr diciendo que es invlida, y otra " +"a stdout con la cadena de caracteres que se necesita aadir a /etc/locale." +"gen para que se genere:" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "% validlocale de_AU@euro" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "locale 'de_AT@euro' not available" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "de_AT@euro ISO-8859-15" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "AUTORES" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "Petter Reinholdtsen Epere@hungry.comE" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "VASE ADEMS" + +# type: Plain text +#: validlocale.8:49 +#, fuzzy +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "locale-gen(8), localedef(1), locale(1), base-config(8)" + +# type: TH +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - configuracin del sistema base de Debian" + +# type: SH +#~ msgid "SYNOPSIS" +#~ msgstr "SINOPSIS" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B es el programa que se ejecut la primera vez que arranc " +#~ "en su sistema Debian recin instalado. base-config termina de configurar " +#~ "el sistema, descarga programas adicionales... El programa puede " +#~ "ejecutarse en cualquier momento posterior para realizar el mismo proceso " +#~ "de nuevo." + +# type: SH +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLEMENTACIN" + +# type: Plain text +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B genera un men de elecciones con los contenidos de B, y de las plantillas de debconf." + +# type: Plain text +#~ msgid "" +#~ "The .mnu files in /usr/lib/base-config/ control whether the menu item " +#~ "appears only on new installs (Only-New: true), whether debconf can " +#~ "already be running when the item is run (Debconf: true), a numeric Order " +#~ "controls placement in the menu. If a .mnu file contains \"Exit-Menu: true" +#~ "\", then base-config will terminate after running that menu item. " +#~ "Finally, a \"Changes-Menu: true\" line will make base-config rebuild the " +#~ "menu after running the menu item." +#~ msgstr "" +#~ "Los ficheros .mnu de /usr/lib/base-config/ controlan si el elemento del " +#~ "men aparece slo en nuevas instalaciones (\"Only-New: true\"), si " +#~ "debconf puede estar siendo ejecutado en el momento en el que se ejecute " +#~ "el elemento (Debconf: true). Una opcin numrica \"Order\" controla el " +#~ "lugar en el men. Si el fichero .mnu contiene \"Exit-Menu:true\", base-" +#~ "config terminar despus de ejectuar ese elemento del men. Finalmente, " +#~ "una lnea \"Changes-Menu: true\" har que base-config reconstruya el men " +#~ "despus de ejecutar el elemento del men." + +# type: Plain text +#~ msgid "" +#~ "The .tst files in /usr/lib/base-config/ are run when base-config builds " +#~ "the menu and must return true for that menu item to appear on the menu." +#~ msgstr "" +#~ "Los ficheros .tst de /usr/lib/base-config/ se ejecutan cuando base-config " +#~ "construye el men y debe devolver \"true\" para que ese elemento aparezca " +#~ "en el men." + +# type: Plain text +#~ msgid "" +#~ "The menu items are taken from debconf, by looking for items in the " +#~ "debconf database named base-config/menu/whatever." +#~ msgstr "" +#~ "Los elementos del men se toman de debconf, buscando los elementos en la " +#~ "base de datos de debconf llamada base-config/menu/loquesea." + +# type: Plain text +#~ msgid "" +#~ "When a menu item is selected, the corresponding program, in /usr/lib/base-" +#~ "config is run. If this is a fresh install onto a new debian system, the " +#~ "program receives \"new\" as its first argument." +#~ msgstr "" +#~ "Cuando se selecciona elemento del men, se ejecuta el programa " +#~ "correspondiente en /usr/lib/base-config. Si sta es la primera " +#~ "instalacin en un sistema muevo, entonces el programa recibe \"new\" como " +#~ "su primer argumento." + +# type: Plain text +#~ msgid "" +#~ "B checks the return codes of each of the programs. If a " +#~ "program returns nonzero, the main menu is displayed (this may involve " +#~ "lowering the debconf priority)." +#~ msgstr "" +#~ "B comprueba los valores devueltos por cada programa. Si un " +#~ "programa devuelve un valor distinto de cero, se muestra el men principal " +#~ "(puede que esto implique bajar la prioridad de debconf)." + +# type: Plain text +#~ msgid "" +#~ "Generally the user is advanced down the menu from item to item as each " +#~ "succeeds. If a menu item needs to jump back to a previous item in the " +#~ "menu, or skip over a subsequent item, it can write the name of the next " +#~ "menu item to show to the file \"jump-to\" in the current directory." +#~ msgstr "" +#~ "Normalmente el usuario es guiado de arriba abajo de un elemento del men " +#~ "en otro a medida que cada uno de ellos se completa con xito. Si un " +#~ "elemento del men necesita volver a otro anterior o saltar alguno de los " +#~ "posteriores, puede hacerlo escribiendo el nombre del siguiente elemento " +#~ "del men al que saltar en el fichero \"jump-to\" en el directorio actual." + +# type: Plain text +#~ msgid "" +#~ "Every base-config run is logged to B
. B
contains timing information to go with the log. " +#~ "This allows replays of base-config runs using the B(1) utility." +#~ msgstr "" +#~ "Cualquier ejecucin de base-config se registra en B
. B
contiene informacin de los " +#~ "tiempos que van con el registro. Esto permite volver a ver la ejecucin " +#~ "de base-config usando la utilidad B(1)B<.>" + +# type: Plain text +#~ msgid "" +#~ "B
, if it exists, is used by B " +#~ "on new installs to get values from the debian-installer first stage " +#~ "install." +#~ msgstr "" +#~ "Si existe B, B lo usa en nuevas " +#~ "instalaciones para obtener valores de la primera etapa de instalacin del " +#~ "\"debian-installer\"." + +# type: Plain text +#~ msgid "" +#~ "Other packages can drop files into B, and add menu " +#~ "titles in debconf, and they will be added to the menu. It is very " +#~ "strongly encouraged that any such programs communicate with the user " +#~ "entirely via debconf, so that the base configuration maintains a " +#~ "consistent and professional look." +#~ msgstr "" +#~ "Otros paquetes pueden dejar ficheros en B, y " +#~ "aadir ttulos de men en debconf, y sern aadidos al men. Es altamente " +#~ "recomendable que cualquiera de estos programas se comunique con el " +#~ "usuario totalmente a travs de debconf, de esta forma, la configuracin " +#~ "mantiene un aspecto consistente y profesional." + +# type: Plain text +#~ msgid "" +#~ "Another useful thing for custom distributions is /usr/share/base-config/" +#~ "debconf-seed. If that directory exists, every file in it will be loaded " +#~ "into the debconf database using B(1)" +#~ msgstr "" +#~ "Otra cosa til para las distribuciones personalizadas es /usr/share/base-" +#~ "config/debconf-seed. Si ese directorio existe, todos los ficheros dentro " +#~ "de l se cargarn en la base de datos de debconf usando B(1)" + +# type: Plain text +#~ msgid "" +#~ "If the file /var/log/installer/debconf-seed is created by the debian-" +#~ "installer, it will also be loaded into the debconf database." +#~ msgstr "" +#~ "Si debian-installer crea el fichero /var/log/installer/debconf-seed, " +#~ "tambin se incorporar a la base de datos de debconf." + +# type: SH +#~ msgid "ENVIRONMENT" +#~ msgstr "ENTORNO" + +# type: Plain text +#~ msgid "" +#~ "The following environment variables influence B. These " +#~ "variables may be set at run time, or for new installs, may be passed to " +#~ "the kernel at the B(8) (or other bootloader) command line. Consult " +#~ "your boot loader's documentation for details. For example, lilo can be " +#~ "booted with something like \"linux DEBIAN_FRONTEND=readline\"." +#~ msgstr "" +#~ "Las siguientes variables de entorno influencian a B. Estas " +#~ "variables pueden establecerse en tiempo de ejecucin, o para nuevas " +#~ "instalaciones, puede pasarse al ncleo en la lnea de rdenes de B" +#~ "(8) (u otro gestor de arranque). Consulte la documentacin de su gestor " +#~ "de arranque para ms detalles. Por ejemplo, lilo puede arrancarse con " +#~ "algo como \"linux DEBIAN_FRONTEND=readline\"." + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "Control various things about B(7)" +#~ msgstr "Controlan varias cosas de B(7)" + +# type: SH +#~ msgid "AUTHOR" +#~ msgstr "AUTOR" + +# type: Plain text +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoey@debian.orgE" + +# type: TH +#~ msgid "TERMWRAP" +#~ msgstr "TERMWRAP" + +# type: Plain text +#~ msgid "termwrap - terminal wrapper" +#~ msgstr "termwrap - envuelve un terminal" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is used to execute B(8) on newly installed " +#~ "Debian systems. It examines the environment, taking note of locale " +#~ "settings, and what type of console is available, and runs an appropriate " +#~ "terminal program. For example, at the Linux console and in a Japanese " +#~ "locale, it runs jfterm. The specified command is run inside the terminal " +#~ "program (if any)." +#~ msgstr "" +#~ "B se usa para ejecutar B(8) en sistemas Debian " +#~ "recin instalados. Examina el entorno, toma nota de la configuracin de " +#~ "las opciones de localizacin y de que tipo de terminal est disponible, " +#~ "para luego ejecutar un programa de terminal apropiado. Por ejemplo, en " +#~ "una consola de Linux con configuracin de localizacin japonesa ejecutar " +#~ "jfterm. La orden especificada se ejecuta dentro del programa de terminal " +#~ "(si hay alguno)." + +# type: SH +#~ msgid "OPTIONS" +#~ msgstr "OPCIONES" + +# type: TP +#~ msgid "I<-nnt>" +#~ msgstr "I<-nnt>" + +# type: Plain text +#~ msgid "Don't run another terminal." +#~ msgstr "No ejecutar otro terminal." + +# type: TH +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - aade fuentes para las descargas de apt" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B es un programa interactivo que simplifica el proceso de " +#~ "aadir fuentes al sources.list de apt. Conoce las principales rplicas " +#~ "Debian y puede ayudarle a seleccionar una. Incluso puede usar B" +#~ "(8) para analizar CD's." + +# type: TP +#~ msgid "I" +#~ msgstr "I" + +# type: Plain text +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Por omisin no se busca ningn CD. Si se pasa \"probe\" como primer " +#~ "argumento el programa mirar al arrancar si hay un CD en la unidad y lo " +#~ "aadir al sources.list. Esto es til en instalaciones iniciales de " +#~ "Debian, para minimizar la interaccin con el usuario." + +# type: TP +#~ msgid "I<-N>" +#~ msgstr "I<-N>" + +# type: Plain text +#~ msgid "" +#~ "Indicates that this is a new install. This parameter allows apt-setup to " +#~ "run in noninteractive mode if its debconf questions have been preseeded." +#~ msgstr "" +#~ "Indica que es una nueva instalacin. Este parmetro permite ejecutar apt-" +#~ "setup de forma no interactiva si los valores de debconf han sido " +#~ "preconfigurados." + +# type: Plain text +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: TH +#~ msgid "TZSETUP" +#~ msgstr "TZSETUP" + +# type: TH +#~ msgid "16 January 2004" +#~ msgstr "16 de enero de 2004" + +# type: TH +#~ msgid "Debian" +#~ msgstr "Debian" + +# type: TH +#~ msgid "Debian Timezone Configuration" +#~ msgstr "Configuracin de zona horaria en Debian" + +# type: Plain text +#~ msgid "tzsetup - set the local timezone" +#~ msgstr "tzsetup - establece la zona horaria local" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "This manual page explains how you can use the B utility to set " +#~ "the local timezone. This is necessary to let your system know about the " +#~ "difference between system time and local time (the time in the real " +#~ "world). It is also necessary to make your system behave nicely when your " +#~ "location uses Daylight Savings Time." +#~ msgstr "" +#~ "Esta pgina del manual explica como puede usar la utilidad B " +#~ "para establecer la zona horaria local. Esto es importante para que su " +#~ "sistema sepa la diferencia entre el tiempo del sistema y el tiempo local " +#~ "(el tiempo del mundo real). Tambin es necesario para que su sistema se " +#~ "comporte de forma adecuada cuando en su zona se realicen cambios horarios " +#~ "para aprovechar mejor la luz del da." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "A valid system time together with the correct local time zone will give " +#~ "you best performance and highest reliability. It is especially important " +#~ "in a network environment, where even small time differences can make a " +#~ "mirror refetch a whole ftp site, or where time stamps on external file " +#~ "systems are used." +#~ msgstr "" +#~ "Un tiempo del sistema vlido junto con la zona horaria adecuada le dar " +#~ "mejores resultados y una mayor seguridad. Es especialmente importante en " +#~ "un entorno de red, donde incluso pequeas diferencias de tiempo pueden " +#~ "hacer que una rplica vuelva a descargar todo un sitio ftp, o donde se " +#~ "usan marcas de tiempo en un sistema de ficheros externo." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B is typically called without any parameters from the shell. " +#~ "Optionally, the -y parameter can be used, to make it always change your " +#~ "time zone without asking first. The -g parameter can also be used, to " +#~ "make it ask if the hardware clock is set to gmt or not. The -c parameter, " +#~ "followed by a country code, hints at the country the user's time zone may " +#~ "be in. The -N parameter allows it to run noninteractively if the debconf " +#~ "questions have been preseeded." +#~ msgstr "" +#~ "Normalmente se invoca B desde un shell sin parmetros. " +#~ "Opcionalmente, puede usarse la opcin -y, para que siempre cambie la zona " +#~ "horaria sin preguntar primero. El parmetro -g puede tambin usarse, para " +#~ "que pregunte si el reloj fsico del sistema est en hora GMT o no. El " +#~ "parmetro -c, seguido de un cdigo de pas, indica el pas en el que " +#~ "posiblemente est la zona horaria del usuario. El parmetro -N hace que " +#~ "se ejecute de forma no interactiva si ha sido preconfigurado." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "After you made your choice, B will try to change the timezone " +#~ "for you. See the B section below for technical details. You " +#~ "must have root privileges to actually change anything. Please use " +#~ "B(1) as a user space command to just look at the timezones. It " +#~ "will print the local time in any timezone recognized by the system." +#~ msgstr "" +#~ "Despus de que realice su eleccin, B tratar de cambiar la zona " +#~ "horaria por usted. Lea la seccin B de ms abajo " +#~ "para los detalles tcnicos. Debe de tener privilegios de superusuario " +#~ "para cambiar realmente cualquier configuracin. Puede usar B" +#~ "(1) como una orden de usuario para simplemente mirar las zonas horarias " +#~ "reconocidas por el sistema. Mostrar la hora local y todas las zonas " +#~ "horarias reconocidas por el sistema." + +# type: SH +#~ msgid "A WORD OF WARNING" +#~ msgstr "UN AVISO" + +# type: Plain text +#~ msgid "" +#~ "What timezone is correct for your system? It depends on the geographical " +#~ "location of the machine. Getting the correct location is important, but " +#~ "the system must also know how your hardware clock is set. Most DOS based " +#~ "PCs set their hardware clock on Local Time, while most UNIX systems set " +#~ "their hardware clock to UTC." +#~ msgstr "" +#~ "Qu zona horaria es correcta para su sistema? Depende de la localizacin " +#~ "geogrfica de la mquina. Obtener la localizacin correcta es importante, " +#~ "pero el sistema tambin necesita saber cmo funciona el reloj fsico. La " +#~ "mayora de los ordenadores personales basados en DOS establecen el reloj " +#~ "fsico segn el tiempo local, mientras que los sistemas UNIX lo " +#~ "establecen segn UTC." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The Debian GNU/Linux system gains its knowledge of this setting from the " +#~ "file I. This file contains either the line B, " +#~ "which indicates that the hardware clock is set to UTC, or it contains the " +#~ "line B, which declares the hardware clock is set to Local Time. " +#~ "If these setting are correct, and the hardware clock is truly set as " +#~ "indicated, then configuring the proper timezone for the machine will " +#~ "cause the proper date and time to be displayed. If these are not set " +#~ "correctly, the the reported time will be quite incorrect. See B" +#~ "(8) for more details on this topic." +#~ msgstr "" +#~ "El sistema Debian GNU/Linux obtiene la configuracin del fichero I. Este fichero contiene o bien la lnea B, que " +#~ "indica que el reloj fsico est en UTC, o bien la lnea B, que " +#~ "indica que est en tiempo local. Si el reloj est de verdad como se " +#~ "indica, entonces configurar la zona horaria adecuada har que se muestre " +#~ "la fecha y el tiempo correcto. En caso de no ser as, el tiempo mostrado " +#~ "podr ser bastante incorrecto. Consulte B(8) para ms detalles " +#~ "acerca de este tema." + +# type: SH +#~ msgid "INTERNALS" +#~ msgstr "FUNCIONAMIENTO INTERNO" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The work done by B is actually pretty simple. It just updates " +#~ "the link I to point to the correct timezone installed in " +#~ "I." +#~ msgstr "" +#~ "El trabajo hecho por B es realmente bastante sencillo. Slo " +#~ "actualiza el enlace I para que apunte al la zona horaria " +#~ "correcta instalada en I." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "There is nothing wrong with doing this manually. However, using " +#~ "B you don't have to remember the path to the timezones." +#~ msgstr "" +#~ "No pasa nada malo si esto se realiza manualmente. Sin embargo, usando " +#~ "B no es necesario recordar donde se guardan las zonas horarias." + +# type: Plain text +#~ msgid "I I I" +#~ msgstr "I I I" + +# type: SH +#~ msgid "DERIVATION" +#~ msgstr "DERIVACIN" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "This program is based on B(8) -- the only major difference is " +#~ "that this program uses debconf for its user interface, and that it allows " +#~ "configuration of GMT." +#~ msgstr "" +#~ "Este programa se base en B(8) -- la mayor diferencia est en " +#~ "que ste usa debconf para la interfaz de usuario, y que adems permite la " +#~ "configuracin de GMT." + +# type: Plain text +#~ msgid "B(8) B(1) B(5) B(8)" +#~ msgstr "B(8) B(1) B(5) B(8)" --- eglibc-2.12.1.orig/debian/local/manpages/po/id.po +++ eglibc-2.12.1/debian/local/manpages/po/id.po @@ -0,0 +1,526 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: base-config man\n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-11-11 16:50-0500\n" +"Last-Translator: Debian Indonesia Team \n" +"Language-Team: Debian Indonesia Team \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ascii\n" +"Content-Transfer-Encoding: 8bit\n" + +# type: TH +#: validlocale.8:1 +#, fuzzy, no-wrap +msgid "validlocale" +msgstr "validlocale" + +# type: TH +#: validlocale.8:1 +#, fuzzy, no-wrap +msgid "0.1" +msgstr "0.1" + +# type: TH +#: validlocale.8:1 +#, fuzzy, no-wrap +msgid "Petter Reinholdtsen" +msgstr "Petter Reinholdtsen" + +# type: SH +#: validlocale.8:2 +#, fuzzy, no-wrap +msgid "NAME" +msgstr "NAMA" + +# type: Plain text +#: validlocale.8:5 +#, fuzzy +msgid "validlocale - Test if a given locale is available" +msgstr "validlocale - memeriksa apakah lokal yang diberikan tersedia" + +# type: SH +#: validlocale.8:5 +#, fuzzy, no-wrap +msgid "SYNTAX" +msgstr "RINGKASAN" + +# type: Plain text +#: validlocale.8:8 +#, fuzzy +msgid "validlocale EIE" +msgstr "validlocale EIE" + +# type: SH +#: validlocale.8:8 +#, fuzzy, no-wrap +msgid "DESCRIPTION" +msgstr "PENJELASAN" + +# type: Plain text +#: validlocale.8:13 +#, fuzzy +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" +"Memeriksa apakah lokal yang diberikan sebagai argumen adalah lokal yang sah. " +"Jika tidak, akan dicetak pada stdout string yang dapat ditambahkan ke /etc/" +"locale.gen untuk membuat locale-gen meng-generate lokal tersebut (jika " +"tersedia)." + +# type: SH +#: validlocale.8:13 +#, fuzzy, no-wrap +msgid "FILES" +msgstr "BERKAS-BERKAS" + +# type: Plain text +#: validlocale.8:16 +#, fuzzy +msgid "I" +msgstr "I" + +# type: Plain text +#: validlocale.8:18 +#, fuzzy +msgid "I" +msgstr "I" + +# type: SH +#: validlocale.8:18 +#, fuzzy, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "VARIABEL-VARIABEL LINGKUNGAN" + +# type: TP +#: validlocale.8:20 +#, fuzzy, no-wrap +msgid "B" +msgstr "B" + +# type: Plain text +#: validlocale.8:24 +#, fuzzy +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" +"set karakter mana yang akan dipakai bila lokal yang diberikan tidak ada pada " +"daftar lokal yang didukung." + +# type: SH +#: validlocale.8:24 +#, fuzzy, no-wrap +msgid "EXAMPLES" +msgstr "CONTOH" + +# type: Plain text +#: validlocale.8:28 +#, fuzzy +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" +"Bila anda memberikan lokal yang sah pada parameter, program akan menuliskan " +"string yang memberitahukan hal ini pada stderr:" + +# type: Plain text +#: validlocale.8:31 +#, fuzzy +msgid "% validlocale C" +msgstr "% validlocale C" + +# type: Plain text +#: validlocale.8:33 +#, fuzzy +msgid "locale 'C' valid and available" +msgstr "locale 'C' valid and available" + +# type: Plain text +#: validlocale.8:37 +#, fuzzy +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" +"Ketika parameter yang diberikan tidak sah (tidak digenerate atau tidak " +"tersedia), program akan mencetak pada stderr string yang memberitahu bahwa " +"lokal tidak sah, dan string lain pada stdout, yang dapat ditambahkan pada /" +"etc/locale.gen agar lokal ini digenerate:" + +# type: Plain text +#: validlocale.8:40 +#, fuzzy +msgid "% validlocale de_AU@euro" +msgstr "% validlocale de_AU@euro" + +# type: Plain text +#: validlocale.8:42 +#, fuzzy +msgid "locale 'de_AT@euro' not available" +msgstr "locale 'de_AT@euro' not available" + +# type: Plain text +#: validlocale.8:44 +#, fuzzy +msgid "de_AT@euro ISO-8859-15" +msgstr "de_AT@euro ISO-8859-15" + +# type: SH +#: validlocale.8:44 +#, fuzzy, no-wrap +msgid "AUTHORS" +msgstr "PENULIS" + +# type: Plain text +#: validlocale.8:47 +#, fuzzy +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "Petter Reinholdtsen Epere@hungry.comE" + +# type: SH +#: validlocale.8:47 +#, fuzzy, no-wrap +msgid "SEE ALSO" +msgstr "LIHAT JUGA" + +# type: Plain text +#: validlocale.8:49 +#, fuzzy +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "locale-gen(8), localedef(1), locale(1), base-config(8)" + +# type: TH +#, fuzzy +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#, fuzzy +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - Alat konfigurasi sistem basis Debian" + +# type: SH +#, fuzzy +#~ msgid "SYNOPSIS" +#~ msgstr "RINGKASAN" + +# type: Plain text +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B merupakan program yang dijalankan saat pertama kali anda " +#~ "boot ke sistem Debian anda yang baru diinstal. Program ini membimbing " +#~ "anda melalui tahap-tahap pengaturan sistem, mengunduh (mendownload) " +#~ "perangkat lunak tambahan, dan seterusnya. Program ini dapat dijalankan " +#~ "lagi di kemudian hari, apabila anda ingin mengulangi proses yang sama " +#~ "lagi." + +# type: SH +#, fuzzy +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLEMENTASI" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B menghasilkan pilihan menu dari isi berkas B, dan dari templet-templet debconf." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The .mnu files in /usr/lib/base-config/ control whether the menu item " +#~ "appears only on new installs (Only-New: true), whether debconf can " +#~ "already be running when the item is run (Debconf: true), a numeric Order " +#~ "controls placement in the menu. If a .mnu file contains \"Exit-Menu: true" +#~ "\", then base-config will terminate after running that menu item. " +#~ "Finally, a \"Changes-Menu: true\" line will make base-config rebuild the " +#~ "menu after running the menu item." +#~ msgstr "" +#~ "Berkas-berkas .mnu dalam /usr/lib/base-config mengatur apakah sebuah item " +#~ "menu muncul hanya saat instalasi baru (Only-New: True), apakah debconf " +#~ "dapat telah jalan ketika item tersebut dijalankan (Debconf: true), urutan " +#~ "numerik mengatur peletakan dalam menu. Jika sebuah berkas .mnu berisi " +#~ "\"Exit-Menu: true\", maka base-config akan berhenti setelah menjalankan " +#~ "item menu tersebut. Terakhir, baris \"Changes-menu: true\" akan membuat " +#~ "base-config membangun kembali menu setelah menjalankan item menu tersebut." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The .tst files in /usr/lib/base-config/ are run when base-config builds " +#~ "the menu and must return true for that menu item to appear on the menu." +#~ msgstr "" +#~ "Berkas-berkas .tst pada /usr/lib/base-config/ akan dijalankan ketika base-" +#~ "config membangun menu dan mesti mengembalikan nilai benar (true) agar " +#~ "item menu tersebut muncul pada menu." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The menu items are taken from debconf, by looking for items in the " +#~ "debconf database named base-config/menu/whatever." +#~ msgstr "" +#~ "Item-item menu diambil dari debconf, dengan melihat item-item pada basis " +#~ "data debconf yang dinamakan base-config/menu/sesuatu." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "When a menu item is selected, the corresponding program, in /usr/lib/base-" +#~ "config is run. If this is a fresh install onto a new debian system, the " +#~ "program receives \"new\" as its first argument." +#~ msgstr "" +#~ "Saat sebuah item menu dipilih, program yang sesuai pada /usr/lib/base-" +#~ "config akan dijalankan. Jika ini merupakan instalasi perdana pada sebuah " +#~ "sistem Debian yang baru, program akan menerima \"new\" pada argumen " +#~ "pertama." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B checks the return codes of each of the programs. If a " +#~ "program returns nonzero, the main menu is displayed (this may involve " +#~ "lowering the debconf priority)." +#~ msgstr "" +#~ "B memeriksa nilai kembalian dari tiap program. Jika sebuah " +#~ "program mengembalikan nilai bukan nol, maka menu utama akan ditampilkan " +#~ "(ini bisa melibatkan penurunan prioritas debconf)." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "Every base-config run is logged to B. B
contains timing information to go with the log. " +#~ "This allows replays of base-config runs using the B(1) utility." +#~ msgstr "" +#~ "Setiap kali base-config dijalankan, akan ditulis log pada B
. B
berisi informasi waktu " +#~ "untuk dijalankan dengan log. Ini memungkinkan pengulangan jalannya base-" +#~ "config dengan menggunakan utilitas B(1)" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B
, if it exists, is used by B " +#~ "on new installs to get values from the debian-installer first stage " +#~ "install." +#~ msgstr "" +#~ "B
, jika ada, digunakan oleh B " +#~ "pada instalasi baru untuk mengambil nilai-nilai dari tahap pertama " +#~ "instalasi debian-installer." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "Other packages can drop files into B, and add menu " +#~ "titles in debconf, and they will be added to the menu. It is very " +#~ "strongly encouraged that any such programs communicate with the user " +#~ "entirely via debconf, so that the base configuration maintains a " +#~ "consistent and professional look." +#~ msgstr "" +#~ "Paket-paket lain dapat menaruh berkas-berkas pada B, dan menambahkan judul menu pada debconf, dan mereka akan ditambahkan " +#~ "pada menu. Sangat disarankan agar program-program tersebut berinteraksi " +#~ "dengan pengguna sepenuhnya melalui debconf, sehingga konfigurasi basis " +#~ "dapat mempertahankan tampilan yang konsisten dan profesional." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "Another useful thing for custom distributions is /usr/share/base-config/" +#~ "debconf-seed. If that directory exists, every file in it will be loaded " +#~ "into the debconf database using B(1)" +#~ msgstr "" +#~ "Hal berguna lainnya untuk distribusi yang dikustomisasi adalah berkas /" +#~ "usr/share/base-config/debconf-seed. Bila direktori tersebut ditemukan,' " +#~ "semua berkas didalamnya akan dimuat dalam basis data debconf menggunakan " +#~ "B(1)" + +# type: SH +#, fuzzy +#~ msgid "ENVIRONMENT" +#~ msgstr "LINGKUNGAN" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The following environment variables influence B. These " +#~ "variables may be set at run time, or for new installs, may be passed to " +#~ "the kernel at the B(8) (or other bootloader) command line. Consult " +#~ "your boot loader's documentation for details. For example, lilo can be " +#~ "booted with something like \"linux DEBIAN_FRONTEND=readline\"." +#~ msgstr "" +#~ "Variabel-variabel lingkungan berikut mempengaruhi B. Nilai-" +#~ "nilai ini dapat diatur saat menjalankan, atau untuk instalasi baru, dapat " +#~ "diberikan pada kernel melalui baris perintah B(8) (atau boot " +#~ "loader lainnya). Lihat dokumentasi boot loader anda untuk informasi " +#~ "detil. Sebagai contoh, lilo dapat diboot sebagai berikut: \"linux " +#~ "DEBIAN_FRONTEND=readline\"." + +# type: TP +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "Control various things about B(7)" +#~ msgstr "Mengatur beragam hal mengenai B(7)" + +# type: SH +#, fuzzy +#~ msgid "AUTHOR" +#~ msgstr "PENULIS" + +# type: Plain text +#, fuzzy +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoeyh@debian.orgE" + +# type: TH +#, fuzzy +#~ msgid "TERMWRAP" +#~ msgstr "TERMWRAP" + +# type: Plain text +#, fuzzy +#~ msgid "termwrap - terminal wrapper" +#~ msgstr "termwrap - terminal wrapper" + +# type: Plain text +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B is used to execute B(8) on newly installed " +#~ "Debian systems. It examines the environment, taking note of locale " +#~ "settings, and what type of console is available, and runs an appropriate " +#~ "terminal program. For example, at the Linux console and in a Japanese " +#~ "locale, it runs jfterm. The specified command is run inside the terminal " +#~ "program (if any)." +#~ msgstr "" +#~ "B digunakan untuk menjalankan B(8) pada sistem " +#~ "Debian yang baru dipasang. Ia meneliti lingkungan, memperhatikan " +#~ "pengaturan lokal, dan jenis konsol yang tersedia, dan kemudian " +#~ "menjalankan program terminal yang sesuai. Sebagai contoh, pada konsol " +#~ "Linux dan lokal Jepang, ia akan menjalankan jfterm. Program yang " +#~ "diberikan akan dijalakan pada terminal tersebut (jika tersedia)." + +# type: SH +#, fuzzy +#~ msgid "OPTIONS" +#~ msgstr "OPSI-OPSI" + +# type: TP +#, fuzzy +#~ msgid "I<-nnt>" +#~ msgstr "I<-nnt>" + +# type: Plain text +#, fuzzy +#~ msgid "Don't run another terminal." +#~ msgstr "Jangan menjalankan terminal yang lain." + +# type: TH +#, fuzzy +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#, fuzzy +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - menambahkan sumber-sumber download untuk apt" + +# type: Plain text +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B merupakan program interaktif yang menyederhanakan penambahan " +#~ "sumber-sumber ke berkas sources.list dari apt. Ia mengetahui semua mirror-" +#~ "mirror utama Debian dan dapat membantu anda memilih salah satu. Ia bahkan " +#~ "dapat menggunakan B(8) untuk memindai CD." + +# type: TP +#, fuzzy +#~ msgid "I" +#~ msgstr "I" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Secara bawaan tidak dilakukan pemeriksaan CD. Memberikan \"probe\" " +#~ "sebagai argumen pertama untuk program ini, akan membuat program memeriksa " +#~ "CD yang ada dalam penggerak dan menambahkannya ke berkas sources.list. " +#~ "Ini berguna pada saat instalasi awal Debian, untuk mengurangi interaksi " +#~ "dengan pengguna." + +# type: TP +#, fuzzy +#~ msgid "I<-N>" +#~ msgstr "I<-N>" + +# type: Plain text +#, fuzzy +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: SH +#, fuzzy +#~ msgid "DERIVATION" +#~ msgstr "PENJELASAN" --- eglibc-2.12.1.orig/debian/local/manpages/po/de.po +++ eglibc-2.12.1/debian/local/manpages/po/de.po @@ -0,0 +1,294 @@ +# base-config manual page +# Copyright (C) 2005 Free Software Foundation, Inc. +# Jens Seidel , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: base-config 2005/11/17\n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-11-17 21:06+0100\n" +"Last-Translator: Jens Seidel \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "NAME" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "BESCHREIBUNG" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "BEISPIELE" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "AUTOR" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#: validlocale.8:49 +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "" + +# type: TH +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - Debian-Basissystemkonfiguration" + +# type: SH +#~ msgid "SYNOPSIS" +#~ msgstr "BERSICHT" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B ist das Programm, das lief, als Sie das erste Mal Ihr neu " +#~ "installiertes Debian-System starteten. Es fhrt Sie durch die Einrichtung " +#~ "des Systems, das Herunterladen zustzlicher Software und so weiter. Das " +#~ "Programm kann zu jedem spteren Zeitpunkt erneut gestartet werden, um " +#~ "erneut durch den selben Prozess zu fhren." + +# type: SH +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLEMENTIERUNG" + +# type: Plain text +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B erzeugt ein Auswahlmen aus dem Inhalt von B und von Debconf-Vorlagen." + +# type: SH +#~ msgid "AUTHOR" +#~ msgstr "AUTOR" + +# type: Plain text +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: SH +#~ msgid "OPTIONS" +#~ msgstr "OPTIONEN" + +# type: TP +#~ msgid "I<-nnt>" +#~ msgstr "I<-N>" + +# type: TH +#, fuzzy +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#, fuzzy +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - Hinzufgen von Quellen zum Herunterladen" + +# type: Plain text +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B ist ein interaktives Programm, da das Hinzufgen von " +#~ "Quellen zu apt's sources.list vereinfacht. Es kennt alle bedeutenden " +#~ "Debian-Spiegel und kann Ihnen bei der Auswahl helfen. Es kann sogar B(8) zum Durchsuchen von CDs verwenden." + +# type: TP +#, fuzzy +#~ msgid "I" +#~ msgstr "I" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Standardmig wird nicht auf CDs berprft. Wird probe als erstes " +#~ "Argument an dieses Programm bergeben, dann wird beim Starten auf eine CD " +#~ "im Laufwerk geprft und diese zu den sources.list hinzugefgt. Dies ist " +#~ "bei Debian Erstinstallationen ntzlich, um die Interaktion mit dem Nutzer " +#~ "zu minimieren." + +# type: TP +#, fuzzy +#~ msgid "I<-N>" +#~ msgstr "I<-N>" + +# type: Plain text +#, fuzzy +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: TH +#~ msgid "TZSETUP" +#~ msgstr "APT-SETUP" + +# type: SH +#~ msgid "DERIVATION" +#~ msgstr "BESCHREIBUNG" --- eglibc-2.12.1.orig/debian/local/manpages/po/pl.po +++ eglibc-2.12.1/debian/local/manpages/po/pl.po @@ -0,0 +1,490 @@ +msgid "" +msgstr "" +"Project-Id-Version: base-config\n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-10-23 21:50+0200\n" +"Last-Translator: Robert Luberda \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "validlocale" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "0.1" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "Petter Reinholdtsen" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "NAZWA" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "validlocale - Sprawdza, czy dostpne jest dane locale" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "SKADNIA" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "validlocale EIE" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "OPIS" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" +"Sprawdza, czy locale podane jako argument jest poprawne. Jeli nie jest, " +"wypisuje na stdout napis, jaki naley doda do /etc/locale.gen, aby " +"polecenie locale-gen wygenerowao dane locale (o ile w ogle ono istnieje)." + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "PLIKI" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "I" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "I" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "ZMIENNE RODOWISKOWE" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "B" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" +"Jakiego zestawu znakw uy, jeli podanego locale nie ma w licie " +"obsugiwanych." + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "PRZYKADY" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" +"Jeli jako parametr podano nazw poprawnego locale, wypisuje na stderr " +"odpowiedni napis:" + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "% validlocale C" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "locale 'C' valid and available" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" +"Jeli podano nazw nieprawidowego locale (niewygenerowanego lub po prostu " +"nieistniejcego), wypisuje na stderr napis mwicy o tym, e nie jest to " +"prawidowe locale, oraz - na stdout - napis, ktry naley doda do /etc/" +"locale.gen, aby mc wygenerowa dane locale:" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "% validlocale de_AU@euro" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "locale 'de_AT@euro' not available" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "de_AT@euro ISO-8859-15" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "AUTOR" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "Petter Reinholdtsen Epere@hungry.comE" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "PATRZ TAKE" + +# type: Plain text +#: validlocale.8:49 +#, fuzzy +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "locale-gen(8), localedef(1), locale(1), base-config(8)" + +# type: TH +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - konfiguracja podstawowego systemu Debian" + +# type: SH +#~ msgid "SYNOPSIS" +#~ msgstr "SKADNIA" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B to program uruchamiany po pierwszym starcie nowo " +#~ "zainstalowanego systemu Debian. Prowadzi on uytkownika przez " +#~ "konfiguracj systemu, pobieranie dodatkowego oprogramowania i tak dalej. " +#~ "Program ten mona uruchomi w dowolnym momencie, aby przej przez ten " +#~ "proces ponownie." + +# type: SH +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLEMENTACJA" + +# type: Plain text +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B generuje menu z list wyborw na podstawie zawartoci " +#~ "katalogu B oraz z szablonw programu debconf." + +# type: Plain text +#~ msgid "" +#~ "The .mnu files in /usr/lib/base-config/ control whether the menu item " +#~ "appears only on new installs (Only-New: true), whether debconf can " +#~ "already be running when the item is run (Debconf: true), a numeric Order " +#~ "controls placement in the menu. If a .mnu file contains \"Exit-Menu: true" +#~ "\", then base-config will terminate after running that menu item. " +#~ "Finally, a \"Changes-Menu: true\" line will make base-config rebuild the " +#~ "menu after running the menu item." +#~ msgstr "" +#~ "Pliki .mnu w /usr/lib/base-config/ okrelaj, czy dana pozycja z menu " +#~ "pojawia si tylko w nowo instalowanych systemach (Only-New: true), czy " +#~ "debconf moe ju dziaa, kiedy pozycja z menu jest uruchamiana (Debconf: " +#~ "true), a liczbowy \"Order\" okrela pozycj w menu. Jeeli plik .mnu " +#~ "zawiera \"Exit-Menu: true\", to base-config zakoczy dziaanie po " +#~ "uruchomieniu tej pozycji. W kocu, linia \"Changes-Menu: true\" powoduje, " +#~ "e base-config przebuduje menu po uruchomieniu tej pozycji." + +# type: Plain text +#~ msgid "" +#~ "The .tst files in /usr/lib/base-config/ are run when base-config builds " +#~ "the menu and must return true for that menu item to appear on the menu." +#~ msgstr "" +#~ "Podczas budowania menu base-config uruchamia pliki .tst z katalogu /usr/" +#~ "lib/base-config, ktre musz zwrci warto true, aby dana pozycja " +#~ "pojawia si w menu." + +# type: Plain text +#~ msgid "" +#~ "The menu items are taken from debconf, by looking for items in the " +#~ "debconf database named base-config/menu/whatever." +#~ msgstr "" +#~ "Pozycje menu s brane z programu debconf, przez wyszukiwanie w bazie " +#~ "danych debconfa rekordw o nazwie base-config/menu/cokolwiek." + +# type: Plain text +#~ msgid "" +#~ "When a menu item is selected, the corresponding program, in /usr/lib/base-" +#~ "config is run. If this is a fresh install onto a new debian system, the " +#~ "program receives \"new\" as its first argument." +#~ msgstr "" +#~ "Po wybraniu pozycji w menu uruchamiany jest odpowiadajcy jej program z " +#~ "katalogu /usr/lib/base-config. Jeli jest to pierwsze uruchomienie po " +#~ "zainstalowaniu systemu, kady program otrzymuje jako pierwszy argument " +#~ "wyraz \"new\"." + +# type: Plain text +#~ msgid "" +#~ "B checks the return codes of each of the programs. If a " +#~ "program returns nonzero, the main menu is displayed (this may involve " +#~ "lowering the debconf priority)." +#~ msgstr "" +#~ "B sprawdza kod zakoczenia kadego programu. Jeeli program " +#~ "zwrci warto niezerow, to zostanie wywietlone gwne menu (moe to " +#~ "wymaga zmniejszenia priorytetu debconfa)." + +# type: Plain text +#~ msgid "" +#~ "Generally the user is advanced down the menu from item to item as each " +#~ "succeeds. If a menu item needs to jump back to a previous item in the " +#~ "menu, or skip over a subsequent item, it can write the name of the next " +#~ "menu item to show to the file \"jump-to\" in the current directory." +#~ msgstr "" +#~ "Oglnie rzecz biorc, uytkownik jest przenoszony w d menu od jednej " +#~ "pozycji do nastpnej. Jeeli pozycja z menu potrzebuje wrci do " +#~ "poprzedniej pozycji menu lub przeskoczy pniejsz pozycj, to moe do " +#~ "pliku \"jump-to\" umieszczonego w biecym katalogu wpisa nazw " +#~ "nastpnej pozycji do pokazania w menu." + +# type: Plain text +#~ msgid "" +#~ "Every base-config run is logged to B
. B
contains timing information to go with the log. " +#~ "This allows replays of base-config runs using the B(1) utility." +#~ msgstr "" +#~ "Kade uruchomienie programu base-config jest zapisywane w B
. B
zawiera informacje o czasie " +#~ "wykonywania poszczeglnych polece. Pozwala to na powtrzenie uruchomie " +#~ "base-config za pomoc programiku B(1)." + +# type: Plain text +#~ msgid "" +#~ "B
, if it exists, is used by B " +#~ "on new installs to get values from the debian-installer first stage " +#~ "install." +#~ msgstr "" +#~ "Podczas nowych instalacji B uywa B
, jeeli istnieje, do pobrania wartoci pierwszego etapu " +#~ "instalacji przez program debian-installer." + +# type: Plain text +#~ msgid "" +#~ "Other packages can drop files into B, and add menu " +#~ "titles in debconf, and they will be added to the menu. It is very " +#~ "strongly encouraged that any such programs communicate with the user " +#~ "entirely via debconf, so that the base configuration maintains a " +#~ "consistent and professional look." +#~ msgstr "" +#~ "Pakiety mog instalowa programy w katalogu B, " +#~ "dziki czemu stan si one czci procesu konfiguracji. Zaleca si, aby " +#~ "programy te komunikoway si z uytkownikiem wycznie przy pomocy " +#~ "programu debconf, dziki czemu konfiguracja systemu podstawowego uzyska " +#~ "jednolity i profesjonalny wygld." + +# type: Plain text +#~ msgid "" +#~ "Another useful thing for custom distributions is /usr/share/base-config/" +#~ "debconf-seed. If that directory exists, every file in it will be loaded " +#~ "into the debconf database using B(1)" +#~ msgstr "" +#~ "Kolejn uyteczn rzecz dla wasnych dystrybucji jest /usr/share/base-" +#~ "config/debconf-seed. Jeeli ten katalog istnieje, to kady plik w tym " +#~ "katalogu zostanie zaadowany do bazy danych debconfa za pomoc B(1)." + +# type: Plain text +#~ msgid "" +#~ "If the file /var/log/installer/debconf-seed is created by the debian-" +#~ "installer, it will also be loaded into the debconf database." +#~ msgstr "" +#~ "Jeeli plik /var/log/installer/debconf-seed zostanie utworzony przez " +#~ "instalator Debiana, to take zostanie zaadowany do bazy danych debconfa." + +# type: SH +#~ msgid "ENVIRONMENT" +#~ msgstr "ZMIENNE RODOWISKOWE" + +# type: Plain text +#~ msgid "" +#~ "The following environment variables influence B. These " +#~ "variables may be set at run time, or for new installs, may be passed to " +#~ "the kernel at the B(8) (or other bootloader) command line. Consult " +#~ "your boot loader's documentation for details. For example, lilo can be " +#~ "booted with something like \"linux DEBIAN_FRONTEND=readline\"." +#~ msgstr "" +#~ "Nastpujce zmienne rodowiskowe wpywaj na dziaanie B. " +#~ "Mona je ustawi przy uruchomieniu programu lub (w przypadku instalacji " +#~ "nowego systemu) mona je poda jdru przy pomocy linii polece B(8) " +#~ "(lub innego programu adujcego). Wicej informacji na temat " +#~ "przekazywania parametrw jdru mona znale w dokumentacji danego " +#~ "programu adujcego. W przypadku lilo mona zaadowa system na przykad " +#~ "w nastpujcy sposb: \"linux DEBIAN_FRONTEND=readline\"." + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "Control various things about B(7)" +#~ msgstr "Wpywaj na dziaanie systemu B(7)" + +# type: SH +#~ msgid "AUTHOR" +#~ msgstr "AUTOR" + +# type: Plain text +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoeyh@debian.orgE" + +# type: TH +#~ msgid "TERMWRAP" +#~ msgstr "TERMWRAP" + +# type: Plain text +#~ msgid "termwrap - terminal wrapper" +#~ msgstr "termwrap - program poredniczcy terminala" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is used to execute B(8) on newly installed " +#~ "Debian systems. It examines the environment, taking note of locale " +#~ "settings, and what type of console is available, and runs an appropriate " +#~ "terminal program. For example, at the Linux console and in a Japanese " +#~ "locale, it runs jfterm. The specified command is run inside the terminal " +#~ "program (if any)." +#~ msgstr "" +#~ "B jest uywany do wywoania B(8) w nowo " +#~ "instalowanych systemach Debian. Sprawdza on rodowisko, zwracajc uwag " +#~ "na ustawienia locale i typ dostpnej konsoli, a nastpnie uruchamia " +#~ "odpowiedni program terminala. Na przykad na konsoli Linux przy locale " +#~ "japoskim uruchamia program jfterm. Podana komenda jest wykonywana w " +#~ "uruchomionym terminalu." + +# type: SH +#~ msgid "OPTIONS" +#~ msgstr "OPCJE" + +# type: TP +#~ msgid "I<-nnt>" +#~ msgstr "I<-nnt>" + +# type: Plain text +#~ msgid "Don't run another terminal." +#~ msgstr "Nie uruchamiaj innego terminala." + +# type: TH +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - dodaje nowe rda pakietw dla apt" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B to interaktywny program uatwiajcy dodawanie rde " +#~ "pakietw do pliku sources.list programu apt. Zna on wszystkie gwne " +#~ "serwery lustrzane Debiana i moe pomc wybra jeden z nich. Moe nawet " +#~ "uy programu B(8) do przeszukiwania pyt CD." + +# type: TP +#~ msgid "I" +#~ msgstr "I" + +# type: Plain text +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Domylnie nie jest sprawdzana obecno pyty CD. Jeli jako pierwszy " +#~ "argument zostanie podany wyraz \"probe\", program przeszuka pyt CD " +#~ "znajdujc si w napdzie i doda j do pliku sources.list. Jest to " +#~ "przydatne przy instalacji systemu, gdy pozwala na ograniczenie " +#~ "koniecznych dziaa uytkownika." + +# type: TP +#~ msgid "I<-N>" +#~ msgstr "I<-N>" + +# type: Plain text +#~ msgid "" +#~ "Indicates that this is a new install. This parameter allows apt-setup to " +#~ "run in noninteractive mode if its debconf questions have been preseeded." +#~ msgstr "" +#~ "Wskazuje, e jest to nowa instalacja. Ten parametr pozwala programowi apt-" +#~ "setup uruchomi si w trybie nieinteraktywnym, jeeli wczeniej zostay " +#~ "wpisane odpowiedzi na jego pytania debconfa." + +# type: Plain text +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" --- eglibc-2.12.1.orig/debian/local/manpages/po/man.pot +++ eglibc-2.12.1/debian/local/manpages/po/man.pot @@ -0,0 +1,173 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: ENCODING" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#: validlocale.8:49 +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "" --- eglibc-2.12.1.orig/debian/local/manpages/pl/validlocale.pl.8 +++ eglibc-2.12.1/debian/local/manpages/pl/validlocale.pl.8 @@ -0,0 +1,52 @@ +.\" This file was generated with po4a. Translate the source file. +.\" +.TH validlocale 8 0.1 "Petter Reinholdtsen" "" +.SH NAZWA +.LP +validlocale \- Sprawdza, czy dostpne jest dane locale +.SH SKADNIA +.LP +validlocale <\fIlocale\fP> +.SH OPIS +.LP +Sprawdza, czy locale podane jako argument jest poprawne. Jeli nie jest, +wypisuje na stdout napis, jaki naley doda do /etc/locale.gen, aby +polecenie locale\-gen wygenerowao dane locale (o ile w ogle ono istnieje). +.SH PLIKI +.LP +\fI/usr/sbin/validlocale\fP +.br +\fI/usr/share/i18n/SUPPORTED\fP +.SH "ZMIENNE RODOWISKOWE" +.LP +.TP +\fBDEFAULTCHARSET\fP +Jakiego zestawu znakw uy, jeli podanego locale nie ma w licie +obsugiwanych. +.SH PRZYKADY +.LP +Jeli jako parametr podano nazw poprawnego locale, wypisuje na stderr +odpowiedni napis: +.LP +.IP +% validlocale C +.br +locale 'C' valid and available +.LP +Jeli podano nazw nieprawidowego locale (niewygenerowanego lub po prostu +nieistniejcego), wypisuje na stderr napis mwicy o tym, e nie jest to +prawidowe locale, oraz \- na stdout \- napis, ktry naley doda do +/etc/locale.gen, aby mc wygenerowa dane locale: +.LP +.IP +% validlocale de_AU@euro +.br +locale 'de_AT@euro' not available +.br +de_AT@euro ISO\-8859\-15 +.SH AUTOR +.LP +Petter Reinholdtsen +.SH "PATRZ TAKE" +.LP +locale\-gen(8), localedef(1), locale(1) --- eglibc-2.12.1.orig/debian/local/manpages/id/addendum.id +++ eglibc-2.12.1/debian/local/manpages/id/addendum.id @@ -0,0 +1,3 @@ + +.SH PENERJEMAH +Parlin Imanuel Toh --- eglibc-2.12.1.orig/debian/local/manpages/es/validlocale.es.8 +++ eglibc-2.12.1/debian/local/manpages/es/validlocale.es.8 @@ -0,0 +1,54 @@ +.\" This file was generated with po4a. Translate the source file. +.\" +.TH validlocale 8 0.1 "Petter Reinholdtsen" "" +.SH NOMBRE +.LP +validlocale \- Comprueba si la opcin de localizacin dada est disponible +.SH SINTAXIS +.LP +validlocale <\fIopcin_de_localizacin\fP> +.SH DESCRIPCIN +.LP +Comprueba si la opcin de localizacin dada como argumento es vlida. Si no +lo es muestra en la stdout (salida estndar) la cadena de caracteres que se +necesita aadir a /etc/locale.gen para que locale\-gen genere esa opcin de +localizacin (si es que existe). +.SH FICHEROS +.LP +\fI/usr/sbin/validlocale\fP +.br +\fI/usr/share/i18n/SUPPORTED\fP +.SH "VARIABLES DE ENTORNO" +.LP +.TP +\fBDEFAULTCHARSET\fP +El juego de caracteres que asume en caso de que la opcin de localizacin +dada no est entre la lista de opciones de localizacin soportadas. +.SH EJEMPLOS +.LP +Si usted proporciona una opcin de localizacin vlida como parmetro, +muestra una cadena de caracteres especificndolo en stderr (salida de +errores estndar): +.LP +.IP +% validlocale C +.br +locale 'C' valid and available +.LP +Cuando se proporcione una invlida (no ha sido generada o no existe), +muestra una cadena de caracteres en stderr diciendo que es invlida, y otra +a stdout con la cadena de caracteres que se necesita aadir a +/etc/locale.gen para que se genere: +.LP +.IP +% validlocale de_AU@euro +.br +locale 'de_AT@euro' not available +.br +de_AT@euro ISO\-8859\-15 +.SH AUTORES +.LP +Petter Reinholdtsen +.SH "VASE ADEMS" +.LP +locale\-gen(8), localedef(1), locale(1) --- eglibc-2.12.1.orig/debian/local/manpages/es/addendum.es +++ eglibc-2.12.1/debian/local/manpages/es/addendum.es @@ -0,0 +1,3 @@ + +.SH TRADUCTOR +Traduccin de Rubn Porras Campo --- eglibc-2.12.1.orig/debian/local/etc/bindresvport.blacklist +++ eglibc-2.12.1/debian/local/etc/bindresvport.blacklist @@ -0,0 +1,13 @@ +# +# This file contains a list of port numbers between 600 and 1024, +# which should not be used by bindresvport. bindresvport is mostly +# called by RPC services. This mostly solves the problem, that a +# RPC service uses a well known port of another service. +# +631 # cups +636 # ldaps +774 # rpasswd +873 # rsync +921 # lwresd +993 # imaps +995 # pops --- eglibc-2.12.1.orig/debian/local/etc/ld.so.conf.d/libc.conf +++ eglibc-2.12.1/debian/local/etc/ld.so.conf.d/libc.conf @@ -0,0 +1,2 @@ +# libc default configuration +/usr/local/lib --- eglibc-2.12.1.orig/debian/local/usr_sbin/locale-gen +++ eglibc-2.12.1/debian/local/usr_sbin/locale-gen @@ -0,0 +1,63 @@ +#!/bin/sh + +set -e + +LOCALEGEN=/etc/locale.gen +LOCALES=/usr/share/i18n/locales +USER_LOCALES=/usr/local/share/i18n/locales +if [ -n "$POSIXLY_CORRECT" ]; then + unset POSIXLY_CORRECT +fi + + +[ -f $LOCALEGEN ] || exit 0; +[ -s $LOCALEGEN ] || exit 0; + +KEEP= +if [ "$1" = '--keep-existing' ]; then + KEEP=1 +fi + +if [ -z "$KEEP" ]; then + # Remove all old locale dir and locale-archive before generating new + # locale data. + rm -rf /usr/lib/locale/* || true +fi + +umask 022 + +is_entry_ok() { + if [ -n "$locale" -a -n "$charset" ] ; then + true + else + echo "error: Bad entry '$locale $charset'" + false + fi +} + +echo "Generating locales (this might take a while)..." +while read locale charset; do \ + case $locale in \#*) continue;; "") continue;; esac; \ + is_entry_ok || continue + if [ "$KEEP" ] && PERL_BADLANG=0 perl -MPOSIX -e \ + 'exit 1 unless setlocale(LC_ALL, $ARGV[0])' "$locale"; then + continue + fi + echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \ + echo -n ".$charset"; \ + echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \ + echo -n '...'; \ + if [ -f $USER_LOCALES/$locale ] ; then + input=$USER_LOCALES/$locale + elif [ -f $LOCALES/$locale ]; then + input=$locale + else + input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'` + if [ -f $USER_LOCALES/$input ]; then + input=$USER_LOCALES/$input + fi + fi + localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale || :; \ + echo ' done'; \ +done < $LOCALEGEN +echo "Generation complete." --- eglibc-2.12.1.orig/debian/local/usr_sbin/validlocale +++ eglibc-2.12.1/debian/local/usr_sbin/validlocale @@ -0,0 +1,75 @@ +#!/usr/bin/perl -w +# +# Author: Petter Reinholdtsen +# Date: 2002-02-23 +# +# Test if the locale given as argument is a valid locale. If it +# is not, print on stdout the string to add to /etc/locale.gen to make +# locale-gen generate the locale (if it exists at all). + +use POSIX qw(setlocale LC_ALL); + +my $debug = 0; + +my $defaultcharset = $ENV{"DEFAULTCHARSET"} || "ISO-8859-1"; + +my $supportedlist = "/usr/share/i18n/SUPPORTED"; + +unless (defined $ARGV[0]) { + usage(); + exit 1; +} + +my $LANG = $ARGV[0]; + +my $loc = setlocale(LC_ALL, $LANG); +if ( ! $loc) { + print STDERR "locale '$LANG' not available\n"; + + my ($locale) = $LANG =~ m/^([^.@]+)/; + my ($charset) = $LANG =~ m/^[^.]+\.([^@]+)/; + my ($modifier) = $LANG =~ m/(@.+)$/; + + $modifier = "" unless defined $modifier; + + # Hm, if charset is missing, how to we pick the correct one to + # use? Fetching the value from /usr/share/i18n/SUPPORTED should + # work on Debian. + my $codeset = ""; + if (defined $charset) { + $codeset = '.' . $charset; + } else { + $charset = get_default_charset("$locale$modifier"); + } + + # print "L: $locale C: $charset M: $modifier\n"; + print "$locale$codeset$modifier $charset\n"; + + exit 1; +} else { + print STDERR "locale '$LANG' valid and available\n"; + exit 0; +} + +sub usage { + print "Usage: $0 \n" +} + +sub get_default_charset { + my ($locale) = @_; + my ($l, $c); + open(SUPPORTED, "< $supportedlist") || die "Unable to open $supportedlist"; + while () { + chomp; + ($l, $c) = split(/\s+/); + print "Checking '$l' '$c' != '$locale'\n" if $debug; + last if ($l eq $locale); + } + close(SUPPORTED); + + if ($l eq $locale) { + return $c; + } else { + return $defaultcharset; + } +} --- eglibc-2.12.1.orig/debian/local/usr_sbin/update-locale +++ eglibc-2.12.1/debian/local/usr_sbin/update-locale @@ -0,0 +1,126 @@ +#! /usr/bin/perl -w + +use strict; +use Getopt::Long; + +my $progname = "update-locale"; +my $locale_file = "/etc/default/locale"; + +my $help = 0; +my $reset = 0; +# Kept for compatibility reasons +my $remove = 0; +my $no_checks = 0; + +GetOptions( + 'reset' => \$reset, + 'remove' => \$remove, + 'locale-file=s' => \$locale_file, + 'no-checks' => \$no_checks, + 'h|help' => \$help, +); + +sub usage +{ + my $rc = shift; + print STDERR "Usage: $progname [OPTIONS] [LANG=locale] [LC_NUMERIC=locale] ... +Options: + --help display this message and exit + --reset ignore variables defined in the locale file + --locale-file=FILE file containing locale variables + (Default: /etc/default/locale) + --no-checks do not perform sanity checks on locale variables +"; + exit $rc; +} + +$help && usage(0); + +# Process command-line arguments +my %arg = (); +my $content = ''; +my $mode = 0644; +if (-r $locale_file) +{ + # Keep file mode + $mode = (stat($locale_file))[2] & 07777; + # Read current values + open(IN, "<", $locale_file) + or die "$progname: Unable to read $locale_file: $!\n"; + while () + { + $content .= $_; + next unless m/^(\w+)=(.*)/; + $arg{$1} = $2 unless $reset; + } + close(IN) + or die "$progname: Unable to close $locale_file: $!\n"; + $content =~ s/^(\s*\w+=)/#$1/mg; + $content .= "\n" unless $content =~ m/\n$/s; +} +else +{ + $content = "# File generated by $progname\n"; +} +for (@ARGV) +{ + if (m/(.*?)=(.*)/) + { + $arg{$1} = $2; + } + else + { + delete $arg{$_}; + } +} + +my $env = ''; +my ($key, $value); +while (($key, $value) = each %arg) +{ + $env .= " $key=$value"; + $content =~ s/^#\s*$key=.*/$key=$value/m or + $content .= "$key=$value\n"; +} + +# Sanity checks +if ($no_checks == 0) +{ + # Check that this locale does exist + my $charset = `LANG= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION= LC_ALL= $env locale charmap 2>&1`; + die "*** $progname: Error: invalid locale settings: $env\n" + if ($charset =~ m/Cannot set/); + # If LANGUAGE is set, its first value must be compatible with LC_MESSAGES + if (defined $arg{LANGUAGE}) + { + my $language = $arg{LANGUAGE}; + $language =~ s/["']//g; + $language =~ s/[.:_].*//; + my $msg = ''; + my $var = ''; + for (qw(LANG LC_MESSAGES LC_ALL)) + { + if (defined $arg{$_}) + { + $var = $_; + $msg = $arg{$_}; + } + } + $msg =~ s/["']//g; + die "*** $progname: Error: LANGUAGE ($arg{LANGUAGE}) is not compatible with $var ($msg)\n" + if ($msg !~ m/^$language/ && $var ne '' + && $msg ne 'C' && $msg ne 'POSIX' + && $language ne 'C' && $language ne 'POSIX'); + } +} + +# Write locale file +open(OUT, ">", $locale_file) + or die "$progname: Unable to write $locale_file: $!\n"; +print OUT $content; +close(OUT) + or die "$progname: Unable to close $locale_file: $!\n"; +chmod($mode, $locale_file) + or die "$progname: Unable to chmod $locale_file: $!\n"; + +1; --- eglibc-2.12.1.orig/debian/rules.d/quilt.mk +++ eglibc-2.12.1/debian/rules.d/quilt.mk @@ -0,0 +1,53 @@ +# Implements the patch and unpatch targets, called when building packages. + +# -*- Makefile -*-, you silly Emacs! +# vim: set ft=make: + +DEBQUILTRC = debian/quiltrc +QUILTOPT = --quiltrc $(DEBQUILTRC) +QUILT = quilt $(QUILTOPT) + +patch: $(stamp)patch +$(stamp)patch: +ifneq ($(PATCHED_SOURCES),yes) + @if $(QUILT) next >/dev/null 2>&1; then \ + echo "Applying patches... "; \ + $(QUILT) push -a -v ; \ + fi + @if test -r debian/patches/series.$(DEB_HOST_ARCH); then \ + pc=".pc.$(DEB_HOST_ARCH)"; \ + mkdir -p "$$pc"; \ + ln -sf ../debian/patches/series.$(DEB_HOST_ARCH) $$pc/series; \ + QUILT_PC="$$pc" $(QUILT) upgrade || true; \ + if QUILT_PC="$$pc" $(QUILT) next >/dev/null 2>&1; then \ + echo "Applying architecture specific patches... "; \ + QUILT_PC="$$pc" $(QUILT) push -a -v ; \ + fi ; \ + fi +endif + touch $@ + +unpatch: + @if test -r debian/patches/series.$(DEB_HOST_ARCH); then \ + pc=".pc.$(DEB_HOST_ARCH)"; \ + QUILT_PC="$$pc" $(QUILT) upgrade || true; \ + if QUILT_PC="$$pc" $(QUILT) previous >/dev/null 2>&1; then \ + echo "Unapplying architecture specific patches..."; \ + QUILT_PC="$$pc" $(QUILT) pop -a -v ; \ + fi ; \ + rm -rf $$pc ; \ + fi + @if $(QUILT) previous >/dev/null 2>&1; then \ + echo "Unapplying patches..." ; \ + $(QUILT) pop -a -v ; \ + fi ; \ + rm -rf .pc + rm -f $(stamp)patch + +refresh: unpatch + @while $(QUILT) next ; do \ + $(QUILT) push ; \ + $(QUILT) refresh ; \ + done ; \ + $(QUILT) pop -a + --- eglibc-2.12.1.orig/debian/rules.d/control.mk +++ eglibc-2.12.1/debian/rules.d/control.mk @@ -0,0 +1,44 @@ +control_deps := $(addprefix debian/control.in/, libc6 libc6.1 libc0.1 libc0.3 sparc64 s390x powerpc ppc64 opt amd64 mipsn32 mips64) + +debian/control.in/libc6: debian/control.in/libc debian/rules.d/control.mk + sed -e 's%@libc@%libc6%g' \ + -e 's%@archs@%amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc powerpcspe ppc64 sparc sparc64 s390 hppa sh3 sh4 sh3eb sh4eb%g' < $< > $@ + +debian/control.in/libc6.1: debian/control.in/libc debian/rules.d/control.mk + sed -e 's%@libc@%libc6.1%g;s%@archs@%alpha ia64%g' < $< > $@ + +debian/control.in/libc0.3: debian/control.in/libc debian/rules.d/control.mk + sed -e 's%@libc@%libc0.3%g;s%@archs@%hurd-i386%g;s/nscd, //' < $< > $@ + +debian/control.in/libc0.1: debian/control.in/libc debian/rules.d/control.mk + sed -e 's%@libc@%libc0.1%g;s%@archs@%kfreebsd-i386 kfreebsd-amd64%g' < $< > $@ + +debian/control: $(stamp)control +$(stamp)control: debian/control.in/main $(control_deps) \ + debian/rules.d/control.mk + + # Check that all files end with a new line + set -e ; for i in debian/control.in/* ; do \ + tail -n1 $$i | grep -q "^$$" ; \ + done + + cat debian/control.in/main > $@T + cat debian/control.in/libc6 >> $@T + cat debian/control.in/libc6.1 >> $@T + cat debian/control.in/libc0.3 >> $@T + cat debian/control.in/libc0.1 >> $@T + cat debian/control.in/i386 >> $@T + cat debian/control.in/sparc64 >> $@T + cat debian/control.in/s390x >> $@T + cat debian/control.in/amd64 >> $@T + cat debian/control.in/powerpc >> $@T + cat debian/control.in/ppc64 >> $@T + cat debian/control.in/mipsn32 >> $@T + cat debian/control.in/mips64 >> $@T + cat debian/control.in/kfreebsd-i386 >> $@T + cat debian/control.in/opt >> $@T + cat debian/control.in/libnss-dns-udeb >> $@T + cat debian/control.in/libnss-files-udeb >> $@T + sed -e 's%@libc@%$(libc)%g' < $@T > debian/control + rm $@T + touch $@ --- eglibc-2.12.1.orig/debian/rules.d/info.mk +++ eglibc-2.12.1/debian/rules.d/info.mk @@ -0,0 +1,16 @@ +# +# Add here instructions to dump useful debug information +# + +$(stamp)info: + @echo '------------------------------------------------------' + + uname -a + @echo + + if [ -f /proc/cpuinfo ] ; then cat /proc/cpuinfo ; fi + @echo + + @echo '------------------------------------------------------' + + touch $@ --- eglibc-2.12.1.orig/debian/rules.d/build.mk +++ eglibc-2.12.1/debian/rules.d/build.mk @@ -0,0 +1,216 @@ +# Because variables can be masked at anypoint by declaring +# PASS_VAR, we need to call all variables as $(call xx,VAR) +# This little bit of magic makes it possible: +xx=$(if $($(curpass)_$(1)),$($(curpass)_$(1)),$($(1))) + +# We want to log output to a logfile but we also need to preserve the +# return code of the command being run. +# This little bit of magic makes it possible: +# $(call logme, [-a] , ) +define logme +(exec 3>&1; exit `( ( ( $(2) ) 2>&1 3>&-; echo $$? >&4) | tee $(1) >&3) 4>&1`) +endef + +ifeq ($(DEB_STAGE),stage1) + libc_extra_config_options = $(extra_config_options) --disable-sanity-checks \ + --enable-hacker-mode +endif +ifdef WITH_SYSROOT + libc_extra_config_options += --with-headers=$(WITH_SYSROOT)/$(includedir) +endif + +$(patsubst %,mkbuilddir_%,$(EGLIBC_PASSES)) :: mkbuilddir_% : $(stamp)mkbuilddir_% +$(stamp)mkbuilddir_%: $(stamp)patch $(KERNEL_HEADER_DIR) + @echo Making builddir for $(curpass) + test -d $(DEB_BUILDDIR) || mkdir -p $(DEB_BUILDDIR) + touch $@ + +$(patsubst %,configure_%,$(EGLIBC_PASSES)) :: configure_% : $(stamp)configure_% +$(stamp)configure_%: $(stamp)mkbuilddir_% + @echo Configuring $(curpass) + rm -f $(DEB_BUILDDIR)/configparms + echo "CC = $(call xx,CC)" >> $(DEB_BUILDDIR)/configparms + echo "CXX = $(call xx,CXX)" >> $(DEB_BUILDDIR)/configparms + echo "BUILD_CC = $(BUILD_CC)" >> $(DEB_BUILDDIR)/configparms + echo "BUILD_CXX = $(BUILD_CXX)" >> $(DEB_BUILDDIR)/configparms + echo "CFLAGS = $(HOST_CFLAGS)" >> $(DEB_BUILDDIR)/configparms + echo "ASFLAGS = $(HOST_CFLAGS)" >> $(DEB_BUILDDIR)/configparms + echo "BUILD_CFLAGS = $(BUILD_CFLAGS)" >> $(DEB_BUILDDIR)/configparms + echo "LDFLAGS = " >> $(DEB_BUILDDIR)/configparms + echo "BASH := /bin/bash" >> $(DEB_BUILDDIR)/configparms + echo "KSH := /bin/bash" >> $(DEB_BUILDDIR)/configparms + echo "SHELL := /bin/bash" >> $(DEB_BUILDDIR)/configparms + echo "LIBGD = no" >> $(DEB_BUILDDIR)/configparms + echo "have-fpie = $(fpie)" >> $(DEB_BUILDDIR)/configparms + echo "bindir = $(bindir)" >> $(DEB_BUILDDIR)/configparms + echo "datadir = $(datadir)" >> $(DEB_BUILDDIR)/configparms + echo "localedir = $(localedir)" >> $(DEB_BUILDDIR)/configparms + echo "sysconfdir = $(sysconfdir)" >> $(DEB_BUILDDIR)/configparms + echo "libexecdir = $(libexecdir)" >> $(DEB_BUILDDIR)/configparms + echo "rootsbindir = $(rootsbindir)" >> $(DEB_BUILDDIR)/configparms + echo "includedir = $(call xx,includedir)" >> $(DEB_BUILDDIR)/configparms + echo "docdir = $(docdir)" >> $(DEB_BUILDDIR)/configparms + echo "mandir = $(mandir)" >> $(DEB_BUILDDIR)/configparms + echo "sbindir = $(sbindir)" >> $(DEB_BUILDDIR)/configparms + echo "libdir = $(call xx,libdir)" >> $(DEB_BUILDDIR)/configparms + echo "slibdir = $(call xx,slibdir)" >> $(DEB_BUILDDIR)/configparms + rtlddir="$(call xx,rtlddir)" ; if test -n "$$rtlddir" ; then \ + echo "rtlddir = $$rtlddir" >> $(DEB_BUILDDIR)/configparms ; \ + fi + + # Prevent autoconf from running unexpectedly by setting it to false. + # Also explicitly pass CC down - this is needed to get -m64 on + # Sparc, et cetera. + + configure_build=$(call xx,configure_build); \ + if [ $(call xx,configure_target) = $$configure_build ]; then \ + echo "Checking that we're running at least kernel version: $(call xx,MIN_KERNEL_SUPPORTED)"; \ + if ! $(call kernel_check,$(call xx,MIN_KERNEL_SUPPORTED)); then \ + configure_build=`echo $$configure_build | sed 's/^\([^-]*\)-\([^-]*\)$$/\1-dummy-\2/'`; \ + echo "No. Forcing cross-compile by setting build to $$configure_build."; \ + fi; \ + fi; \ + $(call logme, -a $(log_build), echo -n "Build started: " ; date --rfc-2822 ; echo "---------------") ; \ + $(call logme, -a $(log_build), \ + cd $(DEB_BUILDDIR) && \ + CC="$(call xx,CC)" \ + CXX="$(call xx,CXX)" \ + AUTOCONF=false \ + $(CURDIR)/configure \ + --host=$(call xx,configure_target) \ + --build=$$configure_build --prefix=/usr --without-cvs \ + --enable-add-ons=$(standard-add-ons)"$(call xx,add-ons)" \ + --enable-profile \ + --without-selinux \ + --enable-stackguard-randomization \ + --with-pkgversion="Ubuntu EGLIBC $(DEB_VERSION)" \ + --with-bugurl="http://www.debian.org/Bugs/" \ + $(call xx,with_headers) $(call xx,extra_config_options)) + touch $@ + +$(patsubst %,build_%,$(EGLIBC_PASSES)) :: build_% : $(stamp)build_% +$(stamp)build_%: $(stamp)configure_% + @echo Building $(curpass) + +ifeq ($(DEB_STAGE),stage1) + $(MAKE) cross-compiling=yes -C $(DEB_BUILDDIR) $(NJOBS) csu/subdir_lib +else + $(call logme, -a $(log_build), $(MAKE) -C $(DEB_BUILDDIR) $(NJOBS)) + $(call logme, -a $(log_build), echo "---------------" ; echo -n "Build ended: " ; date --rfc-2822) + if [ $(curpass) = libc ]; then \ + $(MAKE) -C $(DEB_BUILDDIR) $(NJOBS) \ + objdir=$(DEB_BUILDDIR) install_root=$(CURDIR)/build-tree/locales-all \ + localedata/install-locales; \ + sync; \ + tar --use-compress-program /usr/bin/lzma --owner root --group root -cf $(CURDIR)/build-tree/locales-all/supported.tar.lzma -C $(CURDIR)/build-tree/locales-all/usr/lib/locale .; \ + fi +endif + touch $@ + +$(patsubst %,check_%,$(EGLIBC_PASSES)) :: check_% : $(stamp)check_% +$(stamp)check_%: $(stamp)build_% + @set -e ; \ + if [ -n "$(findstring nocheck,$(DEB_BUILD_OPTIONS))" ]; then \ + echo "Tests have been disabled via DEB_BUILD_OPTIONS." | tee $(log_results) ; \ + elif [ $(call xx,configure_build) != $(call xx,configure_target) ] && \ + ! $(DEB_BUILDDIR)/elf/ld.so $(DEB_BUILDDIR)/libc.so >/dev/null 2>&1 ; then \ + echo "Flavour cross-compiled, tests have been skipped." | tee $(log_results) ; \ + elif ! $(call kernel_check,$(call xx,MIN_KERNEL_SUPPORTED)); then \ + echo "Kernel too old, tests have been skipped." | tee $(log_results) ; \ + elif [ $(call xx,RUN_TESTSUITE) != "yes" ]; then \ + echo "Testsuite disabled for $(curpass), skipping tests."; \ + echo "Tests have been disabled." > $(log_results) ; \ + else \ + echo Testing $(curpass) / $(log_results); \ + find $(DEB_BUILDDIR) -name '*.out' -exec rm {} ';' ; \ + LANG="" TIMEOUTFACTOR="50" $(MAKE) -C $(DEB_BUILDDIR) -k check 2>&1 | tee $(log_test); \ + chmod +x debian/testsuite-checking/convertlog.sh ; \ + debian/testsuite-checking/convertlog.sh $(log_test) | tee $(log_results) ; \ + if test -f $(log_expected) ; then \ + echo "***************" ; \ + chmod +x debian/testsuite-checking/compare.sh ; \ + debian/testsuite-checking/compare.sh $(log_expected) $(log_results) ; \ + echo "***************" ; \ + else \ + echo "*** WARNING ***" ; \ + echo "Please generate expected testsuite results for this arch!" ; \ + echo "*** WARNING ***" ; \ + fi ; \ + fi + @n=$$(grep '^make.* Error' $(log_test) | wc -l || true); \ + echo "TEST SUMMARY $(log_test) ($$n matching lines)"; \ + grep '^make.* Error' $(log_test) || true; \ + echo "END TEST SUMMARY $(log_test)" + touch $@ + +$(patsubst %,install_%,$(EGLIBC_PASSES)) :: install_% : $(stamp)install_% +$(stamp)install_%: $(stamp)check_% + @echo Installing $(curpass) + rm -rf $(CURDIR)/debian/tmp-$(curpass) + +ifeq ($(DEB_STAGE),stage1) + $(call logme, -a $(log_build), $(MAKE) -C $(DEB_BUILDDIR) $(NJOBS) \ + cross-compiling=yes install_root=$(CURDIR)/debian/tmp-$(curpass) \ + install-bootstrap-headers=yes install-headers ) + + install -d $(CURDIR)/debian/tmp-$(curpass)/lib + install -m 644 $(DEB_BUILDDIR)/csu/crt[1in].o $(CURDIR)/debian/tmp-$(curpass)/lib + ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \ + -o $(CURDIR)/debian/tmp-$(curpass)/lib/libc.so +else + $(MAKE) -C $(DEB_BUILDDIR) \ + install_root=$(CURDIR)/debian/tmp-$(curpass) install + +ifneq (,$(findstring $(call xx,slibdir), /lib /lib32 /lib64)) + # Generate gconv-modules.cache + /usr/sbin/iconvconfig --nostdlib --prefix=$(CURDIR)/debian/tmp-$(curpass) \ + -o $(CURDIR)/debian/tmp-$(curpass)/$(call xx,libdir)/gconv/gconv-modules.cache \ + $(call xx,libdir)/gconv +endif + + # Generate the list of SUPPORTED locales + if [ $(curpass) = libc ]; then \ + $(MAKE) -f debian/generate-supported.mk IN=localedata/SUPPORTED \ + OUT=debian/tmp-$(curpass)/usr/share/i18n/SUPPORTED; \ + (cd $(DEB_SRCDIR)/manual && texi2html -split_chapter libc.texinfo); \ + fi + + # Create the multiarch directories, and the configuration file in /etc/ld.so.conf.d + if [ $(curpass) = libc ]; then \ + mkdir -p debian/tmp-$(curpass)/etc/ld.so.conf.d; \ + machine=`sed '/^ *config-machine *=/!d;s/.*= *//g' $(DEB_BUILDDIR)/config.make`; \ + os=`sed '/^ *config-os *=/!d;s/.*= *//g;s/gnu-gnu/gnu/' $(DEB_BUILDDIR)/config.make`; \ + triplet="$$machine-$$os"; \ + mkdir -p debian/tmp-$(curpass)/lib/$$triplet debian/tmp-$(curpass)/usr/lib/$$triplet; \ + conffile="debian/tmp-$(curpass)/etc/ld.so.conf.d/$$triplet.conf"; \ + echo "# Multiarch support" > $$conffile; \ + echo /lib/$$triplet >> $$conffile; \ + echo /usr/lib/$$triplet >> $$conffile; \ + fi + + $(call xx,extra_install) +endif + touch $@ + +$(stamp)doc: $(stamp)patch + make -C $(CURDIR)/linuxthreads/man + touch $@ + +$(stamp)source: $(stamp)patch + mkdir -p $(build-tree) + tar -c -J -C .. \ + -f $(build-tree)/eglibc-$(EGLIBC_VERSION).tar.xz \ + $(EGLIBC_SOURCES) + mkdir -p debian/eglibc-source/usr/src/glibc + tar cf - \ + debian/{README*,TODO,changelog*,compat,control,copyright} \ + debian/{debver2localesdep.pl,generate-supported.mk,locales-depver} \ + debian/{*.symbols.*,symbols.wildcards} \ + debian/{quiltrc,rules,shlibs-add-udebs,shlibver,watch} \ + debian/{bug,control.in,debhelper.in,local,patches,po,rules.d} \ + debian/{script.in,source,sysdeps,testsuite-checking,wrapper} \ + | tar -x -C debian/eglibc-source/usr/src/glibc -f - + + touch $@ + +.NOTPARALLEL: $(patsubst %,check_%,$(EGLIBC_PASSES)) --- eglibc-2.12.1.orig/debian/rules.d/tarball.mk +++ eglibc-2.12.1/debian/rules.d/tarball.mk @@ -0,0 +1,29 @@ +EGLIBC_SVN = svn://svn.eglibc.org +EGLIBC_BRANCH = branches/eglibc-$(shell echo $(EGLIBC_VERSION) | sed -e 's/\([0-9]\+\)\.\([0-9]\+\).*/\1_\2/') +EGLIBC_BRANCH = branches/eglibc-2_12 +EGLIBC_REVISION = 11211 +EGLIBC_CHECKOUT = eglibc-checkout +EGLIBC_DIR = eglibc-$(EGLIBC_VERSION) +DEB_ORIG = ../eglibc_$(EGLIBC_VERSION).orig.tar.gz +DEB_ORIG_REVISION = $(shell cat .svn-revision 2> /dev/null) +SVN_UPDATES_DIFF = debian/patches/svn-updates.diff + +get-orig-source: $(DEB_ORIG) +$(DEB_ORIG): + dh_testdir + svn co $(EGLIBC_SVN)/$(EGLIBC_BRANCH)@$(EGLIBC_REVISION) $(EGLIBC_CHECKOUT) + svn export $(EGLIBC_CHECKOUT)/libc $(EGLIBC_DIR) + svn export $(EGLIBC_CHECKOUT)/linuxthreads/linuxthreads $(EGLIBC_DIR)/linuxthreads + svn export $(EGLIBC_CHECKOUT)/linuxthreads/linuxthreads_db $(EGLIBC_DIR)/linuxthreads_db + svn export $(EGLIBC_CHECKOUT)/ports $(EGLIBC_DIR)/ports + svn status -v $(EGLIBC_CHECKOUT)/libc/ChangeLog | sed '1,1s/^ \+\([0-9]\+\).*/\1/g' > $(EGLIBC_DIR)/.svn-revision + tar -zcf $(DEB_ORIG) $(EGLIBC_DIR) + rm -rf $(EGLIBC_DIR) $(EGLIBC_CHECKOUT) + +update-from-upstream-svn: + dh_testdir + test -n "$(DEB_ORIG_REVISION)" + echo "SVN update of $(EGLIBC_SVN)/$(EGLIBC_BRANCH) from revision $(DEB_ORIG_REVISION)" > $(SVN_UPDATES_DIFF) + echo "" >> $(SVN_UPDATES_DIFF) + svn diff -r$(DEB_ORIG_REVISION) $(EGLIBC_SVN)/$(EGLIBC_BRANCH)/libc | filterdiff --addoldprefix=a/ --addnewprefix=b/ >> $(SVN_UPDATES_DIFF) + svn diff -r$(DEB_ORIG_REVISION) $(EGLIBC_SVN)/$(EGLIBC_BRANCH)/ports | filterdiff --addoldprefix=a/ports/ --addnewprefix=b/ports/ >> $(SVN_UPDATES_DIFF) --- eglibc-2.12.1.orig/debian/rules.d/debhelper.mk +++ eglibc-2.12.1/debian/rules.d/debhelper.mk @@ -0,0 +1,293 @@ +# This is so horribly wrong. libc-pic does a whole pile of gratuitous +# renames. There's very little we can do for now. Maybe after +# Sarge releases we can consider breaking packages, but certainly not now. + +$(stamp)binaryinst_$(libc)-pic:: debhelper + @echo Running special kludge for $(libc)-pic + dh_testroot + dh_installdirs -p$(curpass) + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/libc_pic.a debian/$(libc)-pic/$(libdir)/. + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/libc.map debian/$(libc)-pic/$(libdir)/libc_pic.map + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/elf/soinit.os debian/$(libc)-pic/$(libdir)/libc_pic/soinit.o + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/elf/sofini.os debian/$(libc)-pic/$(libdir)/libc_pic/sofini.o + + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/math/libm_pic.a debian/$(libc)-pic/$(libdir)/. + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/libm.map debian/$(libc)-pic/$(libdir)/libm_pic.map + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/resolv/libresolv_pic.a debian/$(libc)-pic/$(libdir)/. + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/libresolv.map debian/$(libc)-pic/$(libdir)/libresolv_pic.map + +# Some per-package extra files to install. +define libc-bin_extra_debhelper_pkg_install + # dh_installmanpages thinks that .so is a language. + install --mode=0644 debian/local/manpages/ld.so.8 debian/libc-bin/usr/share/man/man8/ld.so.8 +endef + +# Should each of these have per-package options? + +$(patsubst %,binaryinst_%,$(DEB_ARCH_REGULAR_PACKAGES) $(DEB_INDEP_REGULAR_PACKAGES)) :: binaryinst_% : $(stamp)binaryinst_% + +# Make sure the debug packages are built last, since other packages may add +# files to them. +debug-packages = $(filter %-dbg,$(DEB_ARCH_REGULAR_PACKAGES)) +non-debug-packages = $(filter-out %-dbg,$(DEB_ARCH_REGULAR_PACKAGES)) +$(patsubst %,$(stamp)binaryinst_%,$(debug-packages)):: $(patsubst %,$(stamp)binaryinst_%,$(non-debug-packages)) + +$(patsubst %,$(stamp)binaryinst_%,$(DEB_ARCH_REGULAR_PACKAGES) $(DEB_INDEP_REGULAR_PACKAGES)):: $(patsubst %,$(stamp)install_%,$(EGLIBC_PASSES)) debhelper + @echo Running debhelper for $(curpass) + dh_testroot + dh_installdirs -p$(curpass) + dh_install -p$(curpass) + dh_installman -p$(curpass) + dh_installinfo -p$(curpass) + dh_installdebconf -p$(curpass) + if [ $(curpass) = glibc-doc ] ; then \ + dh_installchangelogs -p$(curpass) ; \ + else \ + dh_installchangelogs -p$(curpass) debian/changelog.upstream ; \ + fi + dh_installinit -p$(curpass) + dh_installdocs -p$(curpass) + dh_lintian -p $(curpass) + dh_link -p$(curpass) + set -e; if test -d debian/bug/$(curpass); then \ + dh_installdirs -p$(curpass) usr/share/bug; \ + dh_install -p$(curpass) debian/bug/$(curpass) usr/share/bug; \ + fi + + set -ex; case $(curpass) in libc-bin) \ + mv debian/$(curpass)/sbin/ldconfig \ + debian/$(curpass)/sbin/ldconfig.real; \ + install -m755 -o0 -g0 debian/local/ldconfig_wrap \ + debian/$(curpass)/sbin/ldconfig; \ + ;; esac + + # extra_debhelper_pkg_install is used for debhelper.mk only. + # when you want to install extra packages, use extra_pkg_install. + $(call xx,extra_debhelper_pkg_install) + $(call xx,extra_pkg_install) + +ifeq ($(filter nostrip,$(DEB_BUILD_OPTIONS)),) + # libpthread must be stripped specially; GDB needs the + # non-dynamic symbol table in order to load the thread + # debugging library. We keep a full copy of the symbol + # table in libc6-dbg but basic thread debugging should + # work even without that package installed. + + # strip *.o files as dh_strip does not (yet?) do it. + + if test "$(NOSTRIP_$(curpass))" != 1; then \ + dh_strip -p$(curpass) -Xlibpthread --dbg-package=$(libc)-dbg; \ + \ + (cd debian/$(curpass); \ + find . -name libpthread-\*.so -exec objcopy \ + --only-keep-debug '{}' ../$(libc)-dbg/usr/lib/debug/'{}' \ + ';' || true; \ + find . -name libpthread-\*.so -exec objcopy \ + --add-gnu-debuglink=../$(libc)-dbg/usr/lib/debug/'{}' \ + '{}' ';' || true); \ + find debian/$(curpass) -name libpthread-\*.so -exec \ + strip --strip-debug --remove-section=.comment \ + --remove-section=.note '{}' ';' || true; \ + \ + (cd debian/$(curpass); \ + find . -name \*crt\*.o -exec objcopy \ + --only-keep-debug '{}' ../$(libc)-dbg/usr/lib/debug/'{}' \ + ';' || true; \ + find . -name \*crt\*.o -exec objcopy \ + --add-gnu-debuglink=../$(libc)-dbg/usr/lib/debug/'{}' \ + '{}' ';' || true); \ + find debian/$(curpass) -name \*crt\*.o -exec \ + strip --strip-debug --remove-section=.comment \ + --remove-section=.note '{}' ';' || true; \ + fi +endif + + dh_compress -p$(curpass) + dh_fixperms -p$(curpass) -Xpt_chown + # Use this instead of -X to dh_fixperms so that we can use + # an unescaped regular expression. ld.so must be executable; + # libc.so and NPTL's libpthread.so print useful version + # information when executed. + find debian/$(curpass) -type f \( -regex '.*/ld.*so' \ + -o -regex '.*/libpthread-.*so' \ + -o -regex '.*/libc-.*so' \) \ + -exec chmod a+x '{}' ';' + dh_makeshlibs -X/usr/lib/debug -p$(curpass) -V "$(call xx,shlib_dep)" + # Add relevant udeb: lines in shlibs files + chmod a+x debian/shlibs-add-udebs + ./debian/shlibs-add-udebs $(curpass) + + if [ -f debian/$(curpass).triggers ] ; then \ + install -m 644 -o root -g root debian/$(curpass).triggers \ + debian/$(curpass)/DEBIAN/triggers ; \ + fi + + dh_installdeb -p$(curpass) + dh_shlibdeps -p$(curpass) + dh_gencontrol -p$(curpass) + if [ $(curpass) = nscd ] ; then \ + sed -i -e "s/\(Depends:.*libc[0-9.]\+\)-[a-z0-9]\+/\1/" debian/nscd/DEBIAN/control ; \ + fi + dh_md5sums -p$(curpass) + dh_builddeb -p$(curpass) + + touch $@ + +$(patsubst %,binaryinst_%,$(DEB_UDEB_PACKAGES)) :: binaryinst_% : $(stamp)binaryinst_% +$(patsubst %,$(stamp)binaryinst_%,$(DEB_UDEB_PACKAGES)): debhelper $(patsubst %,$(stamp)install_%,$(EGLIBC_PASSES)) + @echo Running debhelper for $(curpass) + dh_testroot + dh_installdirs -p$(curpass) + dh_install -p$(curpass) + dh_strip -p$(curpass) + + # when you want to install extra packages, use extra_pkg_install. + $(call xx,extra_pkg_install) + + dh_compress -p$(curpass) + dh_fixperms -p$(curpass) + find debian/$(curpass) -type f \( -regex '.*lib[0-9]*/ld.*so.*' \ + -o -regex '.*lib[0-9]*/.*libpthread.*so.*' \ + -o -regex '.*lib[0-9]*/libc[.-].*so.*' \) \ + -exec chmod a+x '{}' ';' + dh_installdeb -p$(curpass) + # dh_shlibdeps -p$(curpass) + dh_gencontrol -p$(curpass) + dh_builddeb -p$(curpass) + + touch $@ + +debhelper: $(stamp)debhelper-common $(patsubst %,$(stamp)debhelper_%,$(EGLIBC_PASSES)) +$(stamp)debhelper-common: + for x in `find debian/debhelper.in -maxdepth 1 -type f`; do \ + y=debian/`basename $$x`; \ + cp $$x $$y; \ + sed -e "s#BUILD-TREE#$(build-tree)#" -i $$y; \ + sed -e "s#LIBC#$(libc)#" -i $$y; \ + sed -e "s#EXIT_CHECK##" -i $$y; \ + sed -e "s#DEB_HOST_ARCH#$(DEB_HOST_ARCH)#" -i $$y; \ + sed -e "/NSS_CHECK/r debian/script.in/nsscheck.sh" -i $$y; \ + sed -e "/NOHWCAP/r debian/script.in/nohwcap.sh" -i $$y; \ + sed -e "s#DEB_SRCDIR#.#" -i $$y; \ + sed -e "s#CURRENT_VER#$(DEB_VERSION)#" -i $$y; \ + case $$y in \ + *.install) \ + sed -e "s/^#.*//" -i $$y ; \ + ;; \ + esac; \ + done + + # Substitute __PROVIDED_LOCALES__. + perl -i -pe 'BEGIN {undef $$/; open(IN, "debian/tmp-libc/usr/share/i18n/SUPPORTED"); $$j=;} s/__PROVIDED_LOCALES__/$$j/g;' debian/locales.config debian/locales.postinst + + # Generate common substvars files. + echo "locale:Depends=$(shell perl debian/debver2localesdep.pl $(LOCALES_DEP_VER))" > tmp.substvars + echo "locale-compat:Depends=$(shell perl debian/debver2localesdep.pl $(LOCALES_COMPAT_VER))" >> tmp.substvars + + for pkg in $(DEB_ARCH_REGULAR_PACKAGES) $(DEB_INDEP_REGULAR_PACKAGES) $(DEB_UDEB_PACKAGES); do \ + cp tmp.substvars debian/$$pkg.substvars; \ + done + rm -f tmp.substvars + + touch $@ + +ifeq ($(DEB_STAGE),stage1) + +$(patsubst %,debhelper_%,$(EGLIBC_PASSES)) :: debhelper_% : $(stamp)debhelper_% +$(stamp)debhelper_%: $(stamp)debhelper-common $(stamp)install_% + libdir=$(call xx,libdir) ; \ + slibdir=$(call xx,slibdir) ; \ + curpass=$(curpass) ; \ + templates="libc-dev" ;\ + pass="" ; \ + suffix="" ;\ + for t in $$templates ; do \ + for s in debian/$$t$$pass.* ; do \ + t=`echo $$s | sed -e "s#libc\(.*\)$$pass#$(libc)\1$$suffix#"` ; \ + if [ "$$s" != "$$t" ] ; then \ + cp $$s $$t ; \ + fi ; \ + sed -e "s#TMPDIR#debian/tmp-$$curpass#g" -i $$t; \ + sed -e "s#SLIBDIR#$$slibdir#g" -i $$t; \ + done ; \ + done + + egrep -v "LIBDIR.*.a " debian/libc6-dev.install >debian/libc6-dev.install- + mv debian/libc6-dev.install- debian/libc6-dev.install + sed -e "s#LIBDIR#${slibdir}#g" -i debian/libc6-dev.install +else +$(patsubst %,debhelper_%,$(EGLIBC_PASSES)) :: debhelper_% : $(stamp)debhelper_% +$(stamp)debhelper_%: $(stamp)debhelper-common $(stamp)install_% + libdir=$(call xx,libdir) ; \ + slibdir=$(call xx,slibdir) ; \ + curpass=$(curpass) ; \ + c_so=`ls debian/tmp-$$curpass/$$slibdir | grep "libc\.so\."` ; \ + m_so=`ls debian/tmp-$$curpass/$$slibdir | grep "libm\.so\."` ; \ + rt_so=`ls debian/tmp-$$curpass/$$slibdir | grep "librt\.so\."` ; \ + dl_so=`ls debian/tmp-$$curpass/$$slibdir | grep "libdl\.so\."` ; \ + rtld_so=`LANG=C LC_ALL=C readelf -l debian/tmp-$$curpass/usr/bin/iconv | grep "interpreter" | sed -e 's/.*interpreter: \(.*\)]/\1/g'`; \ + pthread_so=`ls debian/tmp-$$curpass/$$slibdir | grep "libpthread\.so\."` || true; \ + case "$$curpass:$$slibdir" in \ + libc:*) \ + templates="libc libc-dev libc-pic libc-prof libc-udeb libnss-dns-udeb libnss-files-udeb" \ + pass="" \ + suffix="" \ + ;; \ + *:/lib32 | *:/lib64) \ + templates="libc libc-dev" \ + pass="-alt" \ + suffix="-$(curpass)" \ + ;; \ + *:*) \ + templates="libc" \ + pass="-otherbuild" \ + suffix="-$(curpass)" \ + ;; \ + esac ; \ + for t in $$templates ; do \ + for s in debian/$$t$$pass.* ; do \ + t=`echo $$s | sed -e "s#libc\(.*\)$$pass#$(libc)\1$$suffix#"` ; \ + if [ "$$s" != "$$t" ] ; then \ + cp $$s $$t ; \ + fi ; \ + sed -e "s#TMPDIR#debian/tmp-$$curpass#g" -i $$t; \ + sed -e "s#SLIBDIR#$$slibdir#g" -i $$t; \ + sed -e "s#LIBDIR#$$libdir#g" -i $$t; \ + sed -e "s#FLAVOR#$$curpass#g" -i $$t; \ + sed -e "s#C_SO#$$c_so#" -i $$t ; \ + sed -e "s#M_SO#$$m_so#" -i $$t ; \ + sed -e "s#RT_SO#$$rt_so#" -i $$t ; \ + sed -e "s#DL_SO#$$dl_so#" -i $$t ; \ + sed -e "s#RTLD_SO#$$rtld_so#" -i $$t ; \ + sed -e "s#PTHREAD_SO#$$pthread_so#" -i $$t ; \ + done ; \ + done +endif + touch $@ + +clean:: + dh_clean + + rm -f debian/*.install* + rm -f debian/*.install.* + rm -f debian/*.manpages + rm -f debian/*.links + rm -f debian/*.postinst + rm -f debian/*.preinst + rm -f debian/*.postinst + rm -f debian/*.prerm + rm -f debian/*.postrm + rm -f debian/*.info + rm -f debian/*.init + rm -f debian/*.config + rm -f debian/*.templates + rm -f debian/*.dirs + rm -f debian/*.docs + rm -f debian/*.doc-base + rm -f debian/*.generated + rm -f debian/*.lintian-overrides + rm -f debian/*.NEWS + rm -f debian/*.README.Debian + rm -f debian/*.triggers + + rm -f $(stamp)binaryinst* --- eglibc-2.12.1.orig/debian/sysdeps/hurd.mk +++ eglibc-2.12.1/debian/sysdeps/hurd.mk @@ -0,0 +1,23 @@ +# This is for the GNU OS. Commonly known as the Hurd. + +GLIBC_OVERLAYS ?= $(shell ls glibc-linuxthreads* glibc-ports* glibc-libidn*) + +threads = no +libc = libc0.3 +slibdir = /lib + +# Glibc should really do this for us. +define libc_extra_install +mkdir -p debian/tmp-$(curpass)/lib +ln -s ld.so.1 debian/tmp-$(curpass)/lib/ld.so +endef + +# Do not care about kernel versions for now. +define kernel_check +true +endef + +libc_extra_config_options := $(extra_config_options) + +# Only use libidn as add-on. +standard-add-ons = libidn --- eglibc-2.12.1.orig/debian/sysdeps/powerpc.mk +++ eglibc-2.12.1/debian/sysdeps/powerpc.mk @@ -0,0 +1,20 @@ +# build 64-bit (ppc64) alternative library +EGLIBC_PASSES += ppc64 +DEB_ARCH_REGULAR_PACKAGES += libc6-ppc64 libc6-dev-ppc64 +ppc64_add-ons = nptl $(add-ons) +ppc64_configure_target = powerpc64-linux-gnu +ppc64_CC = $(CC) -m64 -fno-stack-protector -U_FORTIFY_SOURCE +ppc64_CXX = $(CXX) -m64 -fno-stack-protector -U_FORTIFY_SOURCE +libc6-ppc64_shlib_dep = libc6-ppc64 (>= $(shlib_dep_ver)) +ppc64_extra_config_options := $(extra_config_options) --disable-profile +ppc64_slibdir = /lib64 +ppc64_libdir = /usr/lib64 +ppc64_includedir = /usr/include/powerpc64-linux-gnu + +define libc6-dev-ppc64_extra_pkg_install +mkdir -p debian/libc6-dev-ppc64/usr/include/gnu +cp -af debian/tmp-ppc64/usr/include/powerpc64-linux-gnu/gnu/stubs-64.h \ + debian/libc6-dev-ppc64/usr/include/gnu +mkdir -p debian/libc6-dev-ppc64/usr/include/powerpc64-linux-gnu +endef + --- eglibc-2.12.1.orig/debian/sysdeps/lpia.mk +++ eglibc-2.12.1/debian/sysdeps/lpia.mk @@ -0,0 +1,5 @@ +# We use -mno-tls-direct-seg-refs to not wrap-around segments, as it +# greatly reduce the speed when running under the Xen hypervisor. +# libc_extra_config_options = $(extra_config_options) --without-__thread --disable-sanity-checks +libc_extra_cflags = -mno-tls-direct-seg-refs -march=i686 -mtune=i586 -g -O3 +libc_extra_config_options = $(extra_config_options) --enable-multi-arch --- eglibc-2.12.1.orig/debian/sysdeps/kfreebsd.mk +++ eglibc-2.12.1/debian/sysdeps/kfreebsd.mk @@ -0,0 +1,60 @@ +EGLIBC_OVERLAYS ?= $(shell ls glibc-linuxthreads* glibc-ports* glibc-libidn*) +MIN_KERNEL_SUPPORTED := 6.0.0 +libc = libc0.1 + +# Linuxthreads Config +threads = yes +libc_add-ons = ports linuxthreads $(add-ons) +libc_extra_config_options = $(extra_config_options) --disable-compatible-utmp + +ifndef KFREEBSD_SOURCE + ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) + KFREEBSD_HEADERS := /usr/include + else + KFREEBSD_HEADERS := /usr/$(DEB_HOST_GNU_TYPE)/include + endif +else + KFREEBSD_HEADERS := $(KFREEBSD_SOURCE)/sys +endif + +# Minimum Kernel supported +with_headers = --with-headers=$(shell pwd)/debian/include --enable-kernel=$(call xx,MIN_KERNEL_SUPPORTED) + +KERNEL_HEADER_DIR = $(stamp)mkincludedir +$(stamp)mkincludedir: + rm -rf debian/include + mkdir debian/include + ln -s $(KFREEBSD_HEADERS)/bsm debian/include + ln -s $(KFREEBSD_HEADERS)/net debian/include + ln -s $(KFREEBSD_HEADERS)/netatalk debian/include + ln -s $(KFREEBSD_HEADERS)/netipx debian/include + ln -s $(KFREEBSD_HEADERS)/nfs debian/include + ln -s $(KFREEBSD_HEADERS)/osreldate.h debian/include + ln -s $(KFREEBSD_HEADERS)/sys debian/include + ln -s $(KFREEBSD_HEADERS)/vm debian/include + + # Link all machine directories. We can't just link machine + # because of explicit references to and + # . + find $(KFREEBSD_HEADERS) -maxdepth 1 -xtype d -name machine\* \ + -exec ln -s '{}' debian/include ';' + + # To make configure happy if libc0.1-dev is not installed. + touch debian/include/assert.h + + touch $@ + +# Also to make configure happy. +export CPPFLAGS = -isystem $(shell pwd)/debian/include + +# This round of ugliness decomposes the FreeBSD kernel version number +# into an integer so it can be easily compared and then does so. +CURRENT_KERNEL_VERSION=$(shell uname -r) +define kernel_check +(minimum=$$((`echo $(1) | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1 \* 10000 + \2 \* 100 + \3/'`)); \ +current=$$((`echo $(CURRENT_KERNEL_VERSION) | sed 's/\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100/'`)); \ +if [ $$current -lt $$minimum ]; then \ + false; \ +fi) +endef + --- eglibc-2.12.1.orig/debian/sysdeps/i386.mk +++ eglibc-2.12.1/debian/sysdeps/i386.mk @@ -0,0 +1,62 @@ +# We use -mno-tls-direct-seg-refs to not wrap-around segments, as it +# greatly reduce the speed when running under the Xen hypervisor. +# libc_extra_config_options = $(extra_config_options) --without-__thread --disable-sanity-checks +libc_extra_cflags = -mno-tls-direct-seg-refs +libc_extra_config_options = $(extra_config_options) --enable-multi-arch + +# We use -mno-tls-direct-seg-refs to not wrap-around segments, as it +# greatly increase the speed when running under the 32bit Xen hypervisor. +EGLIBC_PASSES += xen +DEB_ARCH_REGULAR_PACKAGES += libc6-xen +xen_add-ons = nptl $(add-ons) +xen_configure_target=i686-linux-gnu +xen_extra_cflags = -march=i686 -mtune=generic -mno-tls-direct-seg-refs +xen_rtlddir = /lib +xen_slibdir = /lib/tls/i686/nosegneg +xen_extra_config_options = $(extra_config_options) --disable-profile --enable-multi-arch + +define libc6-xen_extra_pkg_install +mkdir -p debian/libc6-xen/etc/ld.so.conf.d +echo '# This directive teaches ldconfig to search in nosegneg subdirectories' > debian/libc6-xen/etc/ld.so.conf.d/xen.conf +echo '# and cache the DSOs there with extra bit 1 set in their hwcap match' >> debian/libc6-xen/etc/ld.so.conf.d/xen.conf +echo '# fields. In Xen guest kernels, the vDSO tells the dynamic linker to' >> debian/libc6-xen/etc/ld.so.conf.d/xen.conf +echo '# search in nosegneg subdirectories and to match this extra hwcap bit' >> debian/libc6-xen/etc/ld.so.conf.d/xen.conf +echo '# in the ld.so.cache file.' >> debian/libc6-xen/etc/ld.so.conf.d/xen.conf +echo 'hwcap 1 nosegneg' >> debian/libc6-xen/etc/ld.so.conf.d/xen.conf +endef + +# build 64-bit (amd64) alternative library +EGLIBC_PASSES += amd64 +DEB_ARCH_REGULAR_PACKAGES += libc6-amd64 libc6-dev-amd64 +libc6-amd64_shlib_dep = libc6-amd64 (>= $(shlib_dep_ver)) +amd64_add-ons = nptl $(add-ons) +amd64_configure_target = x86_64-linux-gnu +# __x86_64__ is defined here because Makeconfig uses -undef and the +# /usr/include/asm wrappers need that symbol. +amd64_CC = $(CC) -m64 -D__x86_64__ +amd64_CXX = $(CXX) -m64 -D__x86_64__ +amd64_extra_config_options = $(extra_config_options) --disable-profile --enable-multi-arch +amd64_slibdir = /lib64 +amd64_libdir = /usr/lib64 + +define amd64_extra_install +cp debian/tmp-amd64/usr/bin/ldd \ + debian/tmp-libc/usr/bin +cp -af debian/tmp-amd64/usr/include/* \ + debian/tmp-libc/usr/include +rm -f debian/tmp-libc/usr/include/gnu/stubs-64.h +endef + +define libc6-dev_extra_pkg_install +mkdir -p debian/libc6-dev/usr/lib/xen +cp -af debian/tmp-xen/usr/lib/*.a \ + debian/libc6-dev/usr/lib/xen +endef + +define libc6-dev-amd64_extra_pkg_install +mkdir -p debian/libc6-dev-amd64/usr/include/gnu +cp -af debian/tmp-amd64/usr/include/gnu/stubs-64.h \ + debian/libc6-dev-amd64/usr/include/gnu +mkdir -p debian/libc6-dev-amd64/usr/include/x86_64-linux-gnu +endef + --- eglibc-2.12.1.orig/debian/sysdeps/m32r.mk +++ eglibc-2.12.1/debian/sysdeps/m32r.mk @@ -0,0 +1,2 @@ +libc_add-ons = ports linuxthreads $(add-ons) +libc_extra_config_options = $(extra_config_options) --disable-sanity-checks --- eglibc-2.12.1.orig/debian/sysdeps/ia64.mk +++ eglibc-2.12.1/debian/sysdeps/ia64.mk @@ -0,0 +1 @@ +libc = libc6.1 --- eglibc-2.12.1.orig/debian/sysdeps/m68k.mk +++ eglibc-2.12.1/debian/sysdeps/m68k.mk @@ -0,0 +1,3 @@ +libc_MIN_KERNEL_SUPPORTED = 2.4.1 +libc_add-ons = ports linuxthreads $(add-ons) +libc_extra_config_options = $(extra_config_options) --disable-sanity-checks --without-__thread --without-tls --- eglibc-2.12.1.orig/debian/sysdeps/sparc64.mk +++ eglibc-2.12.1/debian/sysdeps/sparc64.mk @@ -0,0 +1,19 @@ +libc_rtlddir = /lib64 +libc_extra_cflags = -mcpu=ultrasparc + +# build a sparcv9b optimized library +EGLIBC_PASSES += sparcv9b +DEB_ARCH_REGULAR_PACKAGES += libc6-sparcv9b +sparcv9b_add-ons = nptl $(add-ons) +sparcv9b_configure_target=sparc64b-linux-gnu +sparcv9b_configure_build=sparc64b-linux-gnu +sparcv9b_extra_cflags = -mcpu=ultrasparc3 +sparcv9b_extra_config_options = $(extra_config_options) --disable-profile +sparcv9b_rtlddir = /lib +sparcv9b_slibdir = /lib/ultra3 + +# /lib64 and /usr/lib64 are provided by glibc instead base-files: #259302. +define libc6_extra_pkg_install +ln -sf lib debian/$(curpass)/lib64 +ln -sf lib debian/$(curpass)/usr/lib64 +endef --- eglibc-2.12.1.orig/debian/sysdeps/ppc64.mk +++ eglibc-2.12.1/debian/sysdeps/ppc64.mk @@ -0,0 +1,36 @@ +libc_slibdir = /lib +libc_libdir = /usr/lib +libc_rtlddir = /lib64 + +# /lib64 and /usr/lib64 are provided as symlinks +define libc6_extra_pkg_install +ln -sf /lib debian/$(curpass)/lib64 +ln -sf lib debian/$(curpass)/usr/lib64 +endef + +# build 32-bit (powerpc) alternative library +EGLIBC_PASSES += powerpc +DEB_ARCH_REGULAR_PACKAGES += libc6-powerpc libc6-dev-powerpc +libc6-powerpc_shlib_dep = libc6-powerpc (>= $(shlib_dep_ver)) +powerpc_add-ons = nptl $(add-ons) +powerpc_configure_target = powerpc-linux-gnu +powerpc_CC = $(CC) -m32 +powerpc_CXX = $(CXX) -m32 +powerpc_includedir = /usr/include/powerpc-linux-gnu +powerpc_extra_config_options := $(extra_config_options) --disable-profile +powerpc_rtlddir = /lib +powerpc_slibdir = /lib32 +powerpc_libdir = /usr/lib32 + +define libc6-dev-powerpc_extra_pkg_install +mkdir -p debian/libc6-dev-powerpc/usr/include/gnu +cp -af debian/tmp-powerpc/usr/include/powerpc-linux-gnu/gnu/stubs-32.h \ + debian/libc6-dev-powerpc/usr/include/gnu +mkdir -p debian/libc6-dev-powerpc/usr/include/powerpc-linux-gnu +endef + +# create a symlink for the 32 bit dynamic linker in /lib +define libc6-powerpc_extra_pkg_install +mkdir -p debian/$(curpass)/lib +ln -s /lib32/ld.so.1 debian/$(curpass)/lib +endef --- eglibc-2.12.1.orig/debian/sysdeps/armel.mk +++ eglibc-2.12.1/debian/sysdeps/armel.mk @@ -0,0 +1 @@ +libc_add-ons = ports nptl $(add-ons) --- eglibc-2.12.1.orig/debian/sysdeps/mips.mk +++ eglibc-2.12.1/debian/sysdeps/mips.mk @@ -0,0 +1,30 @@ +libc_add-ons = ports nptl $(add-ons) + +# build 32-bit (n32) alternative library +EGLIBC_PASSES += mipsn32 +DEB_ARCH_REGULAR_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32 +mipsn32_add-ons = ports nptl $(add-ons) +mipsn32_configure_target = mips32-linux-gnu +mipsn32_CC = $(CC) -mabi=n32 +mipsn32_CXX = $(CXX) -mabi=n32 +libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) +mipsn32_slibdir = /lib32 +mipsn32_libdir = /usr/lib32 +mipsn32_extra_config_options := $(extra_config_options) --disable-profile + +# build 64-bit alternative library +EGLIBC_PASSES += mips64 +DEB_ARCH_REGULAR_PACKAGES += libc6-mips64 libc6-dev-mips64 +mips64_add-ons = ports nptl $(add-ons) +mips64_configure_target = mips64-linux-gnu +mips64_CC = $(CC) -mabi=64 +mips64_CXX = $(CXX) -mabi=64 +libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) +mips64_slibdir = /lib64 +mips64_libdir = /usr/lib64 +mips64_extra_config_options := $(extra_config_options) --disable-profile + +# Need to put a tri-arch aware version of ldd in the base package +define mipsn32_extra_install +cp debian/tmp-mipsn32/usr/bin/ldd debian/tmp-libc/usr/bin +endef --- eglibc-2.12.1.orig/debian/sysdeps/powerpcspe.mk +++ eglibc-2.12.1/debian/sysdeps/powerpcspe.mk @@ -0,0 +1 @@ +libc_add-ons = ports nptl $(add-ons) --- eglibc-2.12.1.orig/debian/sysdeps/sh4.mk +++ eglibc-2.12.1/debian/sysdeps/sh4.mk @@ -0,0 +1,4 @@ +libc_add-ons = ports nptl $(add-ons) + +# Renesas SH enabled -ffinte-math-only. Some software need -mieee. +extra_cflags = -mieee --- eglibc-2.12.1.orig/debian/sysdeps/hppa.mk +++ eglibc-2.12.1/debian/sysdeps/hppa.mk @@ -0,0 +1,14 @@ +libc_add-ons = ports nptl $(add-ons) +libc_extra_config_options = $(extra_config_options) --disable-sanity-checks + +# hppa64 needs symlink /usr/hppa64-linux/include to /usr/include +# (See: Bug#239020) In future we may drop this file with supporting hppa64. + +define libc6-dev_extra_pkg_install +mkdir -p debian/$(curpass)/usr +mkdir -p debian/$(curpass)/usr/hppa64-linux +ln -sf ../include debian/$(curpass)/usr/hppa64-linux/include +mkdir -p debian/$(curpass)/usr/hppa64-linux-gnu +ln -sf ../include debian/$(curpass)/usr/hppa64-linux-gnu/include +endef + --- eglibc-2.12.1.orig/debian/sysdeps/kfreebsd-i386.mk +++ eglibc-2.12.1/debian/sysdeps/kfreebsd-i386.mk @@ -0,0 +1,11 @@ +EGLIBC_PASSES += i686 +DEB_ARCH_REGULAR_PACKAGES += libc0.1-i686 + +# We use -march=i686 and glibc's i686 routines use cmov, so require it. +# A Debian-local glibc patch adds cmov to the search path. +i686_add-ons = ports linuxthreads $(add-ons) +i686_configure_target=i686-kfreebsd-gnu +i686_extra_cflags = -march=i686 -mtune=generic +i686_rtlddir = /lib +i686_slibdir = /lib/i686/cmov +i686_extra_config_options = $(extra_config_options) --disable-profile --disable-compatible-utmp --- eglibc-2.12.1.orig/debian/sysdeps/mipsel.mk +++ eglibc-2.12.1/debian/sysdeps/mipsel.mk @@ -0,0 +1,30 @@ +libc_add-ons = ports nptl $(add-ons) + +# build 32-bit (n32) alternative library +EGLIBC_PASSES += mipsn32 +DEB_ARCH_REGULAR_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32 +mipsn32_add-ons = ports nptl $(add-ons) +mipsn32_configure_target = mips32el-linux-gnu +mipsn32_CC = $(CC) -mabi=n32 +mipsn32_CXX = $(CXX) -mabi=n32 +libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) +mipsn32_slibdir = /lib32 +mipsn32_libdir = /usr/lib32 +mipsn32_extra_config_options := $(extra_config_options) --disable-profile + +# build 64-bit alternative library +EGLIBC_PASSES += mips64 +DEB_ARCH_REGULAR_PACKAGES += libc6-mips64 libc6-dev-mips64 +mips64_add-ons = ports nptl $(add-ons) +mips64_configure_target = mips64el-linux-gnu +mips64_CC = $(CC) -mabi=64 +mips64_CXX = $(CXX) -mabi=64 +libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) +mips64_slibdir = /lib64 +mips64_libdir = /usr/lib64 +mips64_extra_config_options := $(extra_config_options) --disable-profile + +# Need to put a tri-arch aware version of ldd in the base package +define mipsn32_extra_install +cp debian/tmp-mipsn32/usr/bin/ldd debian/tmp-libc/usr/bin +endef --- eglibc-2.12.1.orig/debian/sysdeps/linux.mk +++ eglibc-2.12.1/debian/sysdeps/linux.mk @@ -0,0 +1,51 @@ +EGLIBC_OVERLAYS ?= $(shell ls glibc-linuxthreads* glibc-ports* glibc-libidn*) +MIN_KERNEL_SUPPORTED := 2.6.15 +libc = libc6 + +# NPTL Config +threads = yes +libc_add-ons = nptl $(add-ons) +libc_extra_config_options = $(extra_config_options) + +ifndef LINUX_SOURCE + ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) + LINUX_HEADERS := /usr/include + else + LINUX_HEADERS := /usr/$(DEB_HOST_GNU_TYPE)/include + endif +else + LINUX_HEADERS := $(LINUX_SOURCE)/include +endif + +# Minimum Kernel supported +with_headers = --with-headers=$(shell pwd)/debian/include --enable-kernel=$(call xx,MIN_KERNEL_SUPPORTED) + +KERNEL_HEADER_DIR = $(stamp)mkincludedir +$(stamp)mkincludedir: + rm -rf debian/include + mkdir debian/include + ln -s $(LINUX_HEADERS)/linux debian/include + # Link all asm directories. We can't just link asm and asm-generic + # because of explicit references to and + # . + find $(LINUX_HEADERS) -maxdepth 1 -xtype d -name asm\* \ + -exec ln -s '{}' debian/include ';' + + # To make configure happy if libc6-dev is not installed. + touch debian/include/assert.h + + touch $@ + +# Also to make configure happy. +export CPPFLAGS = -isystem $(shell pwd)/debian/include + +# This round of ugliness decomposes the Linux kernel version number +# into an integer so it can be easily compared and then does so. +CURRENT_KERNEL_VERSION=$(shell uname -r) +define kernel_check +(minimum=$$((`echo $(1) | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`)); \ +current=$$((`echo $(CURRENT_KERNEL_VERSION) | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`)); \ +if [ $$current -lt $$minimum ]; then \ + false; \ +fi) +endef --- eglibc-2.12.1.orig/debian/sysdeps/armeb.mk +++ eglibc-2.12.1/debian/sysdeps/armeb.mk @@ -0,0 +1 @@ +libc_add-ons = ports nptl $(add-ons) --- eglibc-2.12.1.orig/debian/sysdeps/s390.mk +++ eglibc-2.12.1/debian/sysdeps/s390.mk @@ -0,0 +1,24 @@ +# build 64-bit (s390x) alternative library +EGLIBC_PASSES += s390x +DEB_ARCH_REGULAR_PACKAGES += libc6-s390x libc6-dev-s390x +s390x_add-ons = nptl $(add-ons) +s390x_configure_target = s390x-linux-gnu +s390x_CC = $(CC) -m64 +s390x_CXX = $(CXX) -m64 +libc6-s390x_shlib_dep = libc6-s390x (>= $(shlib_dep_ver)) +s390x_extra_config_options := $(extra_config_options) --disable-profile +s390x_includedir = /usr/include/s390x-linux-gnu +s390x_slibdir = /lib64 +s390x_libdir = /usr/lib64 + +define libc6-dev-s390x_extra_pkg_install +mkdir -p debian/libc6-dev-s390x/usr/include/gnu +cp -af debian/tmp-s390x/usr/include/s390x-linux-gnu/gnu/stubs-64.h \ + debian/libc6-dev-s390x/usr/include/gnu +mkdir -p debian/libc6-dev-s390x/usr/include/s390x-linux-gnu +endef + +define libc6-s390x_extra_pkg_install +mkdir -p debian/$(curpass)/lib +ln -s /lib64/ld64.so.1 debian/$(curpass)/lib +endef --- eglibc-2.12.1.orig/debian/sysdeps/kfreebsd-amd64.mk +++ eglibc-2.12.1/debian/sysdeps/kfreebsd-amd64.mk @@ -0,0 +1,42 @@ +libc_slibdir = /lib +libc_libdir = /usr/lib +libc_rtlddir = /lib + +# /lib64 and /usr/lib64 are provided by glibc instead base-files: #259302. +define libc0.1_extra_pkg_install +ln -sf /lib debian/$(curpass)/lib64 +ln -sf lib debian/$(curpass)/usr/lib64 +endef + +# build 32-bit (i386) alternative library +EGLIBC_PASSES += i386 +DEB_ARCH_REGULAR_PACKAGES += libc0.1-i386 libc0.1-dev-i386 +libc0.1-i386_shlib_dep = libc0.1-i386 (>= $(shlib_dep_ver)) + +i386_configure_target = i686-kfreebsd-gnu +i386_CC = $(CC) -m32 +i386_CXX = $(CXX) -m32 +i386_add-ons = ports linuxthreads $(add-ons) +i386_extra_cflags = -march=pentium4 -mtune=generic +i386_extra_config_options = $(extra_config_options) --disable-compatible-utmp +i386_includedir = /usr/include/i486-kfreebsd-gnu +i386_rtlddir = /lib +i386_slibdir = /lib32 +i386_libdir = /usr/lib32 +i386_MIN_KERNEL_SUPPORTED = 6.0.0 + +define libc0.1-dev-i386_extra_pkg_install +mkdir -p debian/libc0.1-dev-i386/usr/include/gnu +cp -af debian/tmp-i386/usr/include/i486-kfreebsd-gnu/gnu/stubs-32.h \ + debian/libc0.1-dev-i386/usr/include/gnu +mkdir -p debian/libc0.1-dev-i386/usr/include/sys +cp -af debian/tmp-i386/usr/include/i486-kfreebsd-gnu/sys/vm86.h \ + debian/libc0.1-dev-i386/usr/include/sys +mkdir -p debian/libc0.1-dev-i386/usr/include/i486-kfreebsd-gnu +endef + +define libc0.1-i386_extra_pkg_install +mkdir -p debian/libc0.1-i386/lib +ln -sf /lib32/ld.so.1 debian/libc0.1-i386/lib +endef + --- eglibc-2.12.1.orig/debian/sysdeps/sparc.mk +++ eglibc-2.12.1/debian/sysdeps/sparc.mk @@ -0,0 +1,84 @@ +# build 64-bit (sparc64) alternative library +EGLIBC_PASSES += sparc64 +DEB_ARCH_REGULAR_PACKAGES += libc6-sparc64 libc6-dev-sparc64 +sparc64_add-ons = nptl $(add-ons) +sparc64_configure_target=sparc64-linux-gnu +sparc64_CC = $(CC) -m64 +sparc64_CXX = $(CXX) -m64 +libc6-sparc64_shlib_dep = libc6-sparc64 (>= $(shlib_dep_ver)) +sparc64_extra_config_options = $(extra_config_options) --disable-profile +sparc64_includedir = /usr/include/sparc64-linux-gnu +sparc64_slibdir = /lib64 +sparc64_libdir = /usr/lib64 + +define libc6-dev-sparc64_extra_pkg_install +mkdir -p debian/libc6-dev-sparc64/usr/include/gnu +cp -af debian/tmp-sparc64/usr/include/sparc64-linux-gnu/gnu/stubs-64.h \ + debian/libc6-dev-sparc64/usr/include/gnu +mkdir -p debian/libc6-dev-sparc64/usr/include/sparc64-linux-gnu +endef + +EGLIBC_PASSES += sparc64b +DEB_ARCH_REGULAR_PACKAGES += libc6-sparc64b +sparc64b_add-ons = nptl $(add-ons) +sparc64b_configure_build=sparc64-linux-gnu +sparc64b_configure_target=sparc64b-linux-gnu +sparc64b_CC = $(CC) -m64 -mcpu=ultrasparc3 +sparc64b_CXX = $(CXX) -m64 -mcpu=ultrasparc3 +sparc64b_extra_cflags = -g2 -O3 +sparc64b_extra_config_options = $(extra_config_options) --disable-profile +libc6-sparc64b_shlib_dep = libc6-sparc64b (>= $(shlib_dep_ver)) +sparc64b_slibdir = /lib64/ultra3 + +EGLIBC_PASSES += sparc64v +DEB_ARCH_REGULAR_PACKAGES += libc6-sparc64v +sparc64v_add-ons = nptl $(add-ons) +sparc64v_configure_build=sparc64-linux-gnu +sparc64v_configure_target=sparc64v-linux-gnu +sparc64v_CC = $(CC) -m64 -mcpu=niagara +sparc64v_CXX = $(CXX) -m64 -mcpu=niagara +sparc64v_extra_cflags = -g2 -O3 +sparc64v_extra_config_options = $(extra_config_options) --disable-profile +libc6-sparc64v_shlib_dep = libc6-sparc64v (>= $(shlib_dep_ver)) +sparc64v_slibdir = /lib64/v9v + +EGLIBC_PASSES += sparc64v2 +DEB_ARCH_REGULAR_PACKAGES += libc6-sparc64v2 +sparc64v2_add-ons = nptl $(add-ons) +sparc64v2_configure_build=sparc64-linux-gnu +sparc64v2_configure_target=sparc64v2-linux-gnu +sparc64v2_CC = $(CC) -m64 -mcpu=niagara2 +sparc64v2_CXX = $(CXX) -m64 -mcpu=niagara2 +sparc64v2_extra_cflags = -g2 -O3 +sparc64v2_extra_config_options = $(extra_config_options) --disable-profile +libc6-sparc64v2_shlib_dep = libc6-sparc64v2 (>= $(shlib_dep_ver)) +sparc64v2_slibdir = /lib64/v9v2 + +# build a sparcv9b optimized library +EGLIBC_PASSES += sparcv9b +DEB_ARCH_REGULAR_PACKAGES += libc6-sparcv9b +sparcv9b_add-ons = nptl $(add-ons) +sparcv9b_configure_target=sparcv9b-linux-gnu +sparcv9b_configure_build=sparcv9b-linux-gnu +sparcv9b_extra_cflags = -mcpu=ultrasparc3 +sparcv9b_extra_config_options = $(extra_config_options) --disable-profile +sparcv9b_rtlddir = /lib +sparcv9b_slibdir = /lib/ultra3 + +EGLIBC_PASSES += sparcv9v +DEB_ARCH_REGULAR_PACKAGES += libc6-sparcv9v +sparcv9v_add-ons = nptl $(add-ons) +sparcv9v_configure_target=sparcv9v-linux-gnu +sparcv9v_extra_cflags = -O3 -mtune=niagara +sparcv9v_extra_config_options = $(extra_config_options) --disable-profile --with-tls --with-__thread +sparcv9v_rtlddir = /lib +sparcv9v_slibdir = /lib/v9v + +EGLIBC_PASSES += sparcv9v2 +DEB_ARCH_REGULAR_PACKAGES += libc6-sparcv9v2 +sparcv9v2_add-ons = nptl $(add-ons) +sparcv9v2_configure_target=sparcv9v2-linux-gnu +sparcv9v2_extra_cflags = -O3 -mtune=niagara2 +sparcv9v2_extra_config_options = $(extra_config_options) --disable-profile --with-tls --with-__thread +sparcv9v2_rtlddir = /lib +sparcv9v2_slibdir = /lib/v9v2 --- eglibc-2.12.1.orig/debian/sysdeps/alpha.mk +++ eglibc-2.12.1/debian/sysdeps/alpha.mk @@ -0,0 +1,14 @@ +libc_add-ons = ports nptl $(add-ons) + +libc = libc6.1 + +# build an ev67 optimized library +EGLIBC_PASSES += alphaev67 +DEB_ARCH_REGULAR_PACKAGES += libc6.1-alphaev67 +alphaev67_MIN_KERNEL_SUPPORTED = 2.6.9 +alphaev67_add-ons = ports nptl $(add-ons) +alphaev67_configure_target = alphaev67-linux-gnu +alphaev67_extra_cflags = -mcpu=ev67 -mtune=ev67 -O2 +alphaev67_extra_config_options = $(extra_config_options) --disable-profile +alphaev67_rtlddir = /lib +alphaev67_slibdir = /lib/ev67 --- eglibc-2.12.1.orig/debian/sysdeps/arm.mk +++ eglibc-2.12.1/debian/sysdeps/arm.mk @@ -0,0 +1 @@ +libc_add-ons = ports nptl $(add-ons) --- eglibc-2.12.1.orig/debian/sysdeps/amd64.mk +++ eglibc-2.12.1/debian/sysdeps/amd64.mk @@ -0,0 +1,47 @@ +libc_add_ons = nptl $(add-ons) +libc_extra_cflags = -O3 +libc_rtlddir = /lib64 +libc_extra_config_options = $(extra_config_options) --enable-multi-arch + +# /lib64 and /usr/lib64 are provided by glibc instead base-files: #259302. +define libc6_extra_pkg_install +ln -sf /lib debian/$(curpass)/lib64 +ln -sf lib debian/$(curpass)/usr/lib64 +endef + +# build 32-bit (i386) alternative library +EGLIBC_PASSES += i386 +DEB_ARCH_REGULAR_PACKAGES += libc6-i386 libc6-dev-i386 +libc6-i386_shlib_dep = libc6-i386 (>= $(shlib_dep_ver)) + +# This section is quite different in Ubuntu. +# +# This only looks like i386. It's really i686, fine for compatability +i386_add-ons = nptl $(add-ons) +i386_configure_target = i686-linux-gnu +i386_CC = $(BUILD_CC) -m32 +i386_CXX = $(BUILD_CXX) -m32 +i386_MAKEFLAGS = MAKEFLAGS="gconvdir=/usr/lib32/gconv" +i386_extra_cflags = -march=i686 -mtune=generic +i386_extra_config_options = $(extra_config_options) --disable-profile --enable-multi-arch +i386_includedir = /usr/include/i486-linux-gnu +i386_slibdir = /lib32 +i386_libdir = /usr/lib32 + +define libc6-dev-i386_extra_pkg_install +mkdir -p debian/libc6-dev-i386/usr/include/gnu +cp -af debian/tmp-i386/usr/include/i486-linux-gnu/gnu/stubs-32.h \ + debian/libc6-dev-i386/usr/include/gnu +mkdir -p debian/libc6-dev-i386/usr/include/sys +cp -af debian/tmp-i386/usr/include/i486-linux-gnu/sys/elf.h \ + debian/libc6-dev-i386/usr/include/sys +cp -af debian/tmp-i386/usr/include/i486-linux-gnu/sys/vm86.h \ + debian/libc6-dev-i386/usr/include/sys +mkdir -p debian/libc6-dev-i386/usr/include/i486-linux-gnu +endef + +define libc6-i386_extra_pkg_install +mkdir -p debian/libc6-i386/lib +ln -s /lib32/ld-linux.so.2 debian/libc6-i386/lib/ld-linux.so.2 +endef + --- eglibc-2.12.1.orig/debian/debhelper.in/libc.README.Debian +++ eglibc-2.12.1/debian/debhelper.in/libc.README.Debian @@ -0,0 +1,117 @@ +Q1: Why does the Debian libc6-dev package create /usr/include/linux and +/usr/include/asm directories containing header files from a specific +kernel, instead of using the "established" convention of making those +directories into symlinks pointing to the currently installed kernel? + +A1: Occasionally, changes in the kernel headers cause problems with +the compilation of libc and of programs that use libc. To ensure that +users are not affected by these problems, we configure libc to use the +headers from a kernel that is known to work with libc and the programs +that depend on stable kernel headers. + +[Note: /usr/include/linux is now in the linux-libc-dev package.] + +Q2: What if I want to compile a program that needs a feature from a +later kernel than is used by libc? + +A2: In practice, most programs will not have this problem. However, +depending on the scope of the problem you have several options available: + +If the situation is one like "kernel driver development", where all use +of the machine for development is expected to be against a different set +of kernel headers than are supplied with the "stock" libc6-dev, rebuilding +the glibc packages against that particular kernel will create a full set of +libc6 packages that are "compliant" with the new kernel. All development +done on machines with these packages installed will be done against the +new kernel. To build libc6-dev against your particular kernel, export the +environment variable LINUX_SOURCE, set to the path to that particular kernel +source directory and then build the package. + +If you want this new glibc package to stick against further upgrades, simply +use dselect and place the packages on HOLD. This will keep them from being +upgraded against your wishes. + +If there is just one particular program/package that needs different headers, +and your kernel of choice is installed in the usual place, you can use the +-I/usr/src/linux/include option on the gcc command line, when compiling that +specific program. + +Q3: My program is trying to use a kernel header that is in libc-dev, and +it is causing problems. (or) Why are the kernel headers not the same for +all architectures in Debian, for a given version of libc-dev? + +A3: For starters, you should never use kernel headers directly from user +space programs. You cannot be guaranteed a consistent interface across +different versions of the kernel, much less across architectures (even for +the same version of kernel source). + +Kernel headers are included with libc-dev _only_ to support those headers +in libc-dev. They are not there for userspace programs to include. If you +need kernel headers, then use one of the provided kernel-headers-x.x.x +packages provided for each architectures, or include the kernel headers +(or just the parts of the headers) you need directly in your source for +compilation. Only this way can you ensure a consistent state. + +Q4: Why does Debian's glibc seem to follow the stable CVS branch? + +A4: During our development cycle we follow the stable CVS branch so that +we can cause as little disruption as possible, and catch problems easier. +Differences between minor releases of glibc are known to be very large, +contain many changes, and generally affect all architectures differently. +We sync frequently with CVS so that we can take this large amount of +changes in smaller chunks, simplifying the process, and allowing us to +communicate problems to upstream much easier. + +Q5: How to setup my own language/regional (locale) setting? + +A5: Glibc provides "locale" defined in POSIX. Locale is a framework +to switch between multiple languages for users who can select to use +their language, country, characters, collation order, etc. For +example, some program display messages in your own language, if you +set the appropriate locale. Default locale is C (or POSIX) which +behaves traditional Unix with ASCII message. For more information, +look locale (5). + +If you want to use your own locale, install "locales" package. With +debconf interface, you can setup which locale is generated, and which +locale is used in default on your machine. + +Q6: I get this message when I run a program: + ld.so: Incorrectly built binary which accesses errno or h_errno directly. + ld.so: See /usr/share/doc/libc6/FAQ.gz. +A6: + +The program is broken. It probably says "extern int errno" somewhere, +instead of including . Errno in recent glibc versions is a macro, +which calls the function __errno_location; when glibc is built with +thread-local storage enabled, there is no extern int variable named errno. +In addition, "extern int errno" is not thread-safe. + +NOTE: Currently this error message is suppressed, for the benefit of some +truly buggy programs which redirect stderr into something important, like a +network socket. + +Q7: I get this error when I compile an static linked application that's +compiled with glibc 2.2 or before: + gcc -o foo.o libbar.a + libbar.a(obj.o): In function `func(char *)': + : undefined reference to `__ctype_toupper' + +A7: +During glibc 2.3.x development, some symbols (__ctype_b, __ctype_toupper, +__ctype_tolower) are changed to hidden attributes. This means old static +linked applications/libraries built with glibc 2.2.x cannot be linked on glibc +2.3.x systems any more. + +But it made a lot of user applications unusable, we applied a workaround patch +for glibc in Sarge. Therefore your applications worked OK, and you didn't +need to consider about this problem. However, most other distros already +dropped such local modification. For that reason, we decided to drop +supporting such old static linked applications/libraries from Etch, you need +to recompile them. + +If you want to keep this workaround that was applied in Sarge for the present, +please recompile Debian glibc package with adding "glibc23-ctype-compat" line +at the end of debian/patches/00list, and install it on your local machine. +Note that we don't support this patch nowadays, please use it at your own +risk. --- eglibc-2.12.1.orig/debian/debhelper.in/libc-dev.docs +++ eglibc-2.12.1/debian/debhelper.in/libc-dev.docs @@ -0,0 +1,5 @@ +CONFORMANCE +FAQ +NAMESPACE +README.libm +NOTES --- eglibc-2.12.1.orig/debian/debhelper.in/libc-otherbuild.install +++ eglibc-2.12.1/debian/debhelper.in/libc-otherbuild.install @@ -0,0 +1,5 @@ +# This file is used for making NPTL and other +# optimized libraries. +TMPDIR/SLIBDIR/*.so* SLIBDIR + +BUILD-TREE/test-results-*-FLAVOR usr/share/doc/LIBC-FLAVOR --- eglibc-2.12.1.orig/debian/debhelper.in/libc-bin.triggers +++ eglibc-2.12.1/debian/debhelper.in/libc-bin.triggers @@ -0,0 +1 @@ +interest ldconfig --- eglibc-2.12.1.orig/debian/debhelper.in/libc.postrm +++ eglibc-2.12.1/debian/debhelper.in/libc.postrm @@ -0,0 +1,46 @@ +#! /bin/sh +set -e + +if [ "$1" = remove ]; then + if command -v suidunregister >/dev/null 2>&1 && [ -e /etc/suid.conf ]; then + if [ -x /usr/lib/pt_chown ]; then + suidunregister -s LIBC /usr/lib/pt_chown + elif [ -x /usr/libexec/pt_chown ]; then + suidunregister -s LIBC /usr/libexec/pt_chown + fi + fi +fi + +if [ "$1" = upgrade ]; then + case $(dpkg --print-architecture) in + i386|sparc) + if dpkg --compare-versions "$2" lt 2.3.4-3; then + # Make sure the downgraded package does not support + # ld.so.hwcappkgs mechanism on i686 and sparc. + rm -f /etc/ld.so.hwcappkgs + echo "downgrade-to-old-glibc" >> /etc/ld.so.nohwcap + + echo + echo You are trying to downgrade to glibc 2.3.4-2 or earlier. + echo Such old packages do not support the version mismatch between + echo standard libc and hwcap libc using /etc/ld.so.hwcappkgs + echo on i386 and sparc. To be safe from library inconsistency, + echo hwcap libraries are disabled until glibc 2.3.4-3 or later + echo is installed. + echo + fi + ;; + esac +fi + +if [ "$1" = deconfigure ]; then + :; # blah, do something useful with ldso +fi + +#if [ "$1" = purge ]; then +# update-rc.d mountkernfs remove > /dev/null +#fi + +#DEBHELPER# + +exit 0 --- eglibc-2.12.1.orig/debian/debhelper.in/locales-all.NEWS +++ eglibc-2.12.1/debian/debhelper.in/locales-all.NEWS @@ -0,0 +1,8 @@ +locales-all (2.7-1) unstable; urgency=low + + * Starting with locales 2.7-1 the deprecated no_NO locale has been + removed. Users who have not yet switched to nb_NO should do it + after the installation of this package. + + -- Aurelien Jarno Mon, 26 Nov 2007 18:56:32 +0100 + --- eglibc-2.12.1.orig/debian/debhelper.in/libc-pic.dirs +++ eglibc-2.12.1/debian/debhelper.in/libc-pic.dirs @@ -0,0 +1 @@ +LIBDIR/libc_pic --- eglibc-2.12.1.orig/debian/debhelper.in/nscd.init +++ eglibc-2.12.1/debian/debhelper.in/nscd.init @@ -0,0 +1,125 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: nscd +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Starts the Name Service Cache Daemon +### END INIT INFO + +# +# nscd: Starts the Name Service Cache Daemon +# +# description: This is a daemon which handles passwd and group lookups +# for running programs and caches the results for the next +# query. You should start this daemon only if you use +# slow Services like NIS or NIS+ + +PATH="/sbin:/usr/sbin:/bin:/usr/bin" +NAME="nscd" +DESC="Name Service Cache Daemon" +DAEMON="/usr/sbin/nscd" +PIDFILE="/var/run/nscd/nscd.pid" + +# Sanity checks. +umask 022 +[ -f /etc/nscd.conf ] || exit 0 +[ -x "$DAEMON" ] || exit 0 +[ -d /var/run/nscd ] || mkdir -p /var/run/nscd +. /lib/lsb/init-functions + +start_nscd() +{ + # Return + # 0 if daemon has been started or was already running + # 2 if daemon could not be started + start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec "$DAEMON" || return 2 +} + +stop_nscd() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + + # we try to stop using nscd --shutdown, that fails also if nscd is not present. + # in that case, fallback to "good old methods" + RETVAL=0 + if ! $DAEMON --shutdown; then + start-stop-daemon --stop --quiet --pidfile "$PIDFILE" --name "$NAME" --test > /dev/null + RETVAL="$?" + [ "$?" -ne 0 -a "$?" -ne 1 ] && return 2 + fi + + # Wait for children to finish too + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec "$DAEMON" > /dev/null + [ "$?" -ne 0 -a "$?" -ne 1 ] && return 2 + rm -f "$PIDFILE" + return "$RETVAL" +} + +status() +{ + # Return + # 0 if daemon is stopped + # 1 if daemon is running + start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec "$DAEMON" --test > /dev/null || return 1 + return 0 +} + +case "$1" in +start) + log_daemon_msg "Starting $DESC" "$NAME" + start_nscd + case "$?" in + 0) log_end_msg 0 ; exit 0 ;; + 1) log_warning_msg " (already running)." ; exit 0 ;; + *) log_end_msg 1 ; exit 1 ;; + esac + ;; +stop) + log_daemon_msg "Stopping $DESC" "$NAME" + stop_nscd + case "$?" in + 0) log_end_msg 0 ; exit 0 ;; + 1) log_warning_msg " (not running)." ; exit 0 ;; + *) log_end_msg 1 ; exit 1 ;; + esac + ;; +restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + for table in passwd group hosts ; do + $DAEMON --invalidate $table + done + stop_nscd + case "$?" in + 0|1) + start_nscd + case "$?" in + 0) log_end_msg 0 ; exit 0 ;; + 1) log_failure_msg " (failed -- old process is still running)." ; exit 1 ;; + *) log_failure_msg " (failed to start)." ; exit 1 ;; + esac + ;; + *) + log_failure_msg " (failed to stop)." + exit 1 + ;; + esac + ;; +status) + log_daemon_msg "Status of $DESC service: " + status + case "$?" in + 0) log_failure_msg "not running." ; exit 3 ;; + 1) log_success_msg "running." ; exit 0 ;; + esac + ;; +*) + echo "Usage: /etc/init.d/$NAME {start|stop|force-reload|restart|status}" >&2 + exit 1 + ;; +esac + --- eglibc-2.12.1.orig/debian/debhelper.in/locales-all.prerm +++ eglibc-2.12.1/debian/debhelper.in/locales-all.prerm @@ -0,0 +1,22 @@ +#!/bin/sh +set -e + +case "$1" in + remove|purge) + # Is locales installed? + if [ -x /usr/sbin/locale-gen ] ; then + # If yes, generate locales selected in the debconf question + locale-gen + else + # If not, clean the locales + rm -f /usr/lib/locale/locale-archive + rmdir --ignore-fail-on-non-empty /usr/lib/locale + fi + ;; + *) + ;; +esac + +#DEBHELPER# + +exit 0 --- eglibc-2.12.1.orig/debian/debhelper.in/glibc-doc.install +++ eglibc-2.12.1/debian/debhelper.in/glibc-doc.install @@ -0,0 +1,5 @@ +ChangeLog* /usr/share/doc/glibc-doc +nptl/ChangeLog* /usr/share/doc/glibc-doc/nptl +nptl_db/ChangeLog* /usr/share/doc/glibc-doc/nptl_db +ports/ChangeLog* /usr/share/doc/glibc-doc/ports +DEB_SRCDIR/manual/*.html usr/share/doc/glibc-doc/html --- eglibc-2.12.1.orig/debian/debhelper.in/libc-dev-bin.install +++ eglibc-2.12.1/debian/debhelper.in/libc-dev-bin.install @@ -0,0 +1,4 @@ +debian/tmp-libc/usr/bin/gencat usr/bin +debian/tmp-libc/usr/bin/mtrace usr/bin +debian/tmp-libc/usr/bin/rpcgen usr/bin +debian/tmp-libc/usr/bin/sprof usr/bin --- eglibc-2.12.1.orig/debian/debhelper.in/nscd.dirs +++ eglibc-2.12.1/debian/debhelper.in/nscd.dirs @@ -0,0 +1 @@ +var/cache/nscd --- eglibc-2.12.1.orig/debian/debhelper.in/libc-dev-alt.lintian-overrides +++ eglibc-2.12.1/debian/debhelper.in/libc-dev-alt.lintian-overrides @@ -0,0 +1,4 @@ +# Those file are actually .o files not package in a ar archive, and +# thus should not be stripped +LIBC-dev-FLAVOR: unstripped-binary-or-object .LIBDIR/libieee.a +LIBC-dev-FLAVOR: unstripped-binary-or-object .LIBDIR/libmcheck.a --- eglibc-2.12.1.orig/debian/debhelper.in/locales.prerm +++ eglibc-2.12.1/debian/debhelper.in/locales.prerm @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +case "$1" in + remove|purge) + if ! [ -f /usr/lib/locales-all/supported.tar.lzma ] ; then + # If locales-all is not installed, clean the locales + rm -f /usr/lib/locale/locale-archive + fi + ;; + *) + ;; +esac + +#DEBHELPER# + +exit 0 --- eglibc-2.12.1.orig/debian/debhelper.in/glibc-doc.docs +++ eglibc-2.12.1/debian/debhelper.in/glibc-doc.docs @@ -0,0 +1 @@ +ChangeLog* --- eglibc-2.12.1.orig/debian/debhelper.in/libc-prof.install +++ eglibc-2.12.1/debian/debhelper.in/libc-prof.install @@ -0,0 +1 @@ +TMPDIR/LIBDIR/*_p.a LIBDIR --- eglibc-2.12.1.orig/debian/debhelper.in/libc-dev-alt.install +++ eglibc-2.12.1/debian/debhelper.in/libc-dev-alt.install @@ -0,0 +1,21 @@ +# This file is used for making biarch libraries development packages. +TMPDIR/LIBDIR/libanl.a LIBDIR +TMPDIR/LIBDIR/libBrokenLocale.a LIBDIR +TMPDIR/LIBDIR/libbsd-compat.a LIBDIR +TMPDIR/LIBDIR/libc.a LIBDIR +TMPDIR/LIBDIR/libc_nonshared.a LIBDIR +TMPDIR/LIBDIR/libcrypt.a LIBDIR +TMPDIR/LIBDIR/libdl.a LIBDIR +TMPDIR/LIBDIR/libg.a LIBDIR +TMPDIR/LIBDIR/libieee.a LIBDIR +TMPDIR/LIBDIR/libm.a LIBDIR +TMPDIR/LIBDIR/libmcheck.a LIBDIR +TMPDIR/LIBDIR/libnsl.a LIBDIR +TMPDIR/LIBDIR/libpthread.a LIBDIR +TMPDIR/LIBDIR/libpthread_nonshared.a LIBDIR +TMPDIR/LIBDIR/libresolv.a LIBDIR +TMPDIR/LIBDIR/librt.a LIBDIR +TMPDIR/LIBDIR/libutil.a LIBDIR + +TMPDIR/LIBDIR/*.o LIBDIR +TMPDIR/LIBDIR/*.so LIBDIR --- eglibc-2.12.1.orig/debian/debhelper.in/libc.docs +++ eglibc-2.12.1/debian/debhelper.in/libc.docs @@ -0,0 +1,4 @@ +BUGS +FAQ +NEWS +hesiod/README.hesiod --- eglibc-2.12.1.orig/debian/debhelper.in/nscd.NEWS +++ eglibc-2.12.1/debian/debhelper.in/nscd.NEWS @@ -0,0 +1,11 @@ +glibc (2.5-5) unstable; urgency=low + + Since this release, hosts caching in nscd is off by default: for some of the + libc calls (gethostby* calls) nscd does not respect the DNS TTLs. It can + lead to system lockups (e.g. if you are using pam-ldap and change the IP of + your authentication server) hence is not considered safe. + + See debian bug #335476 and how upstream answered to that in + http://sourceware.org/bugzilla/show_bug.cgi?id=4428. + + -- Pierre Habouzit Sat, 28 Apr 2007 11:10:56 +0200 --- eglibc-2.12.1.orig/debian/debhelper.in/locales.postrm +++ eglibc-2.12.1/debian/debhelper.in/locales.postrm @@ -0,0 +1,15 @@ +#!/bin/sh +set -e + +case "$1" in + purge) + rm -f /etc/locale.gen + rm -f /etc/default/locale + ;; + *) + ;; +esac + +#DEBHELPER# + +exit 0 --- eglibc-2.12.1.orig/debian/debhelper.in/locales.NEWS +++ eglibc-2.12.1/debian/debhelper.in/locales.NEWS @@ -0,0 +1,28 @@ +locales (2.7-3) unstable; urgency=low + + * Starting with locales 2.7-3, users can provide their own locales in + /usr/local/share/i18n. See /usr/share/doc/locales/README.Debian for + more information. + + -- Aurelien Jarno Thu, 29 Nov 2007 18:54:12 +0100 + +locales (2.7-1) unstable; urgency=low + + * Starting with locales 2.7-1 the deprecated no_NO locale has been + removed. The switch to the nb_NO locale should be done automatically + by this package, however some applications may have to be restarted + in order to recognize the new locale settings. + + -- Aurelien Jarno Mon, 26 Nov 2007 18:56:32 +0100 + +locales (2.3.6-7) unstable; urgency=low + + * Locale variables are now stored in /etc/default/locale and no more + /etc/environment. The reason is that Debian Policy forbids modifying + configuration files of other packages, and /etc/environment is a + configuration file for PAM. + Make sure to remove old definitions from /etc/environment, this file + is no more modified for the reason explained above. + + -- Denis Barbier Tue, 11 Apr 2006 21:24:13 +0200 + --- eglibc-2.12.1.orig/debian/debhelper.in/libc-otherbuild.lintian-overrides +++ eglibc-2.12.1/debian/debhelper.in/libc-otherbuild.lintian-overrides @@ -0,0 +1,3 @@ +# libpthread must be stripped specially; GDB needs the non-dynamic +# symbol table in order to load the thread debugging library. +LIBC-FLAVOR: unstripped-binary-or-object .SLIBDIR/libpthread-2.12.so --- eglibc-2.12.1.orig/debian/debhelper.in/libc-udeb.install +++ eglibc-2.12.1/debian/debhelper.in/libc-udeb.install @@ -0,0 +1,13 @@ +# FIXME: someday we may need to handle installing into non-lib. +TMPDIR/SLIBDIR/ld*.so* lib +TMPDIR/SLIBDIR/libm-*.so* lib +TMPDIR/SLIBDIR/libm.so* lib +TMPDIR/SLIBDIR/libdl*.so* lib +TMPDIR/SLIBDIR/libresolv*.so* lib +TMPDIR/SLIBDIR/libc-*.so* lib +TMPDIR/SLIBDIR/libc.so* lib +TMPDIR/SLIBDIR/libutil* lib +TMPDIR/SLIBDIR/libcrypt* lib +TMPDIR/SLIBDIR/librt*.so* lib +TMPDIR/SLIBDIR/libpthread*.so* lib + --- eglibc-2.12.1.orig/debian/debhelper.in/locales.manpages +++ eglibc-2.12.1/debian/debhelper.in/locales.manpages @@ -0,0 +1,4 @@ +debian/local/manpages/locale-gen.8 +debian/local/manpages/locale.gen.5 +debian/local/manpages/update-locale.8 +debian/local/manpages/validlocale.8 --- eglibc-2.12.1.orig/debian/debhelper.in/libc-otherbuild.postinst +++ eglibc-2.12.1/debian/debhelper.in/libc-otherbuild.postinst @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ] +then + # /etc/ld.so.nohwcap code: NOHWCAP +fi + +#DEBHELPER# + +exit 0 --- eglibc-2.12.1.orig/debian/debhelper.in/libnss-dns-udeb.install +++ eglibc-2.12.1/debian/debhelper.in/libnss-dns-udeb.install @@ -0,0 +1,3 @@ +# FIXME: someday we may need to handle installing into non-lib. +TMPDIR/SLIBDIR/libnss_dns*.so* lib + --- eglibc-2.12.1.orig/debian/debhelper.in/locales.postinst +++ eglibc-2.12.1/debian/debhelper.in/locales.postinst @@ -0,0 +1,80 @@ +#! /bin/sh +set -e + +# Files +LG="/etc/locale.gen" +EE="/etc/default/locale" + +# Sanitize environnement +LC_ALL=C +LANG=C + +if [ "$1" = configure ]; then + # Load debconf + . /usr/share/debconf/confmodule + db_version 2.0 + + db_get locales/default_environment_locale && DEFAULT_ENVIRONMENT="$RET" + db_get locales/locales_to_be_generated && SELECTED_LOCALES=$RET + SELECTED_LOCALES="$(echo $SELECTED_LOCALES | sed -e 's/, /\n/g')" + + if [ "$SELECTED_LOCALES" = "All locales" ]; then + [ -e $LG ] && rm -f $LG + ln -s /usr/share/i18n/SUPPORTED $LG + else + [ -L $LG ] && [ "$(readlink $LG)" = "/usr/share/i18n/SUPPORTED" ] && rm -f $LG + if [ ! -e $LG ] ; then + cat > $LG << EOF +# This file lists locales that you wish to have built. You can find a list +# of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add +# user defined locales to /usr/local/share/i18n/SUPPORTED. If you change +# this file, you need to rerun locale-gen. +# + +EOF + fi + + # Comment previous defined locales + sed -i -e 's/^ *[a-zA-Z]/# &/' $LG + + # Get list of supported locales + if [ -f "/usr/local/share/i18n/SUPPORTED" ] ; then + SUPPORTED_LOCALES="$(sed -e '/^[a-zA-Z]/!d' -e 's/ *$//g' /usr/share/i18n/SUPPORTED /usr/local/share/i18n/SUPPORTED | sort -u)" + else + SUPPORTED_LOCALES="$(sed -e '/^[a-zA-Z]/!d' -e 's/ *$//g' /usr/share/i18n/SUPPORTED | sort -u)" + fi + + # Make sure all locales exist in locales.gen + echo "$SUPPORTED_LOCALES" | while read locale ; do + if ! grep -q "^[# ]*$locale *\$" $LG; then + echo "# $locale" >> $LG + fi + done + + # Uncomment selected locales + echo "$SELECTED_LOCALES" | while read locale ; do + sed -i -e "0,/^[# ]*$locale *$/ s/^[# ]*$locale *$/$locale/" $LG + done + fi + + # Update requested locales if locales-all is not installed + if [ -f /usr/lib/locales-all/supported.tar.lzma ] ; then + echo "locales-all installed, skipping locales generation" + else + locale-gen + fi + + if ! [ -e $EE ] || [ -n "$DEBCONF_RECONFIGURE" ] ; then + # Remove previous definitions + update-locale --no-checks LANG + + # Set default LANG environment variable + if [ -n "$DEFAULT_ENVIRONMENT" ] && [ "$DEFAULT_ENVIRONMENT" != "None" ]; then + update-locale "LANG=$DEFAULT_ENVIRONMENT" + fi + fi +fi + +#DEBHELPER# + +exit 0 --- eglibc-2.12.1.orig/debian/debhelper.in/libc-alt.install +++ eglibc-2.12.1/debian/debhelper.in/libc-alt.install @@ -0,0 +1,5 @@ +# This file is used for biarch libraries. +TMPDIR/SLIBDIR/*.so* SLIBDIR +TMPDIR/LIBDIR/gconv/* LIBDIR/gconv/ + +BUILD-TREE/test-results-*-FLAVOR usr/share/doc/LIBC-FLAVOR --- eglibc-2.12.1.orig/debian/debhelper.in/libc-alt-dev.postinst +++ eglibc-2.12.1/debian/debhelper.in/libc-alt-dev.postinst @@ -0,0 +1,18 @@ +#!/bin/sh + +set -e +export LC_ALL=C + +type=$1 +preversion=$2 + +if [ `dpkg --print-installation-architecture` = "powerpc" ]; then + if dpkg --compare-versions "$preversion" lt 2.4-1ubuntu7; then + if [ ! -L /usr/include/ppc64-linux-gnu ]; then + rm -rf /usr/include/ppc64-linux-gnu + ln -s /usr/include/powerpc64-linux-gnu /usr/include/ppc64-linux-gnu + fi + fi +fi + +#DEBHELPER# --- eglibc-2.12.1.orig/debian/debhelper.in/locales.install +++ eglibc-2.12.1/debian/debhelper.in/locales.install @@ -0,0 +1,8 @@ +debian/tmp-libc/usr/share/locale/[a-z][a-z] usr/share/locale +debian/tmp-libc/usr/share/locale/[a-z][a-z]_[A-Z][A-Z] usr/share/locale +debian/tmp-libc/usr/share/locale/locale.alias /etc +debian/tmp-libc/usr/share/i18n/* usr/share/i18n +debian/local/usr_sbin/locale-gen usr/sbin +debian/local/usr_sbin/update-locale usr/sbin +debian/local/usr_sbin/validlocale usr/sbin +localedata/README usr/share/doc/locales --- eglibc-2.12.1.orig/debian/debhelper.in/locales.dirs +++ eglibc-2.12.1/debian/debhelper.in/locales.dirs @@ -0,0 +1 @@ +usr/lib/locale --- eglibc-2.12.1.orig/debian/debhelper.in/nscd.manpages +++ eglibc-2.12.1/debian/debhelper.in/nscd.manpages @@ -0,0 +1,2 @@ +debian/local/manpages/nscd.conf.5 +debian/local/manpages/nscd.8 --- eglibc-2.12.1.orig/debian/debhelper.in/locales-all.dirs +++ eglibc-2.12.1/debian/debhelper.in/locales-all.dirs @@ -0,0 +1 @@ +usr/lib/locales-all --- eglibc-2.12.1.orig/debian/debhelper.in/libc-dev-bin.manpages +++ eglibc-2.12.1/debian/debhelper.in/libc-dev-bin.manpages @@ -0,0 +1,4 @@ +debian/local/manpages/gencat.1 +debian/local/manpages/mtrace.1 +debian/local/manpages/rpcgen.1 +debian/local/manpages/sprof.1 --- eglibc-2.12.1.orig/debian/debhelper.in/libnss-files-udeb.install +++ eglibc-2.12.1/debian/debhelper.in/libnss-files-udeb.install @@ -0,0 +1,3 @@ +# FIXME: someday we may need to handle installing into non-lib. +TMPDIR/SLIBDIR/libnss_files*.so* lib + --- eglibc-2.12.1.orig/debian/debhelper.in/libc.lintian-overrides +++ eglibc-2.12.1/debian/debhelper.in/libc.lintian-overrides @@ -0,0 +1,13 @@ +# libpthread must be stripped specially; GDB needs the non-dynamic +# symbol table in order to load the thread debugging library. +LIBC: unstripped-binary-or-object .SLIBDIR/libpthread-2.12.so + +# ld.so must be executable, otherwise the system will not work +LIBC: shlib-with-executable-bit SLIBDIR/ld-2.12.so 0755 + +# It is normal that the ELF dynamic linker does not need any other +# library +LIBC: shared-lib-without-dependency-information .SLIBDIR/ld-2.12.so + +# dependency on debconf is not needed, as glibc has a fallback to tty +LIBC: missing-debconf-dependency-for-preinst --- eglibc-2.12.1.orig/debian/debhelper.in/locales.templates +++ eglibc-2.12.1/debian/debhelper.in/locales.templates @@ -0,0 +1,27 @@ +Template: locales/locales_to_be_generated +Type: multiselect +#flag:translate:1 +__Choices: All locales, ${locales} +_Description: Locales to be generated: + Locales are a framework to switch between multiple languages and + allow users to use their language, country, characters, collation + order, etc. + . + Please choose which locales to generate. UTF-8 locales should be + chosen by default, particularly for new installations. Other + character sets may be useful for backwards compatibility with older + systems and software. + +Template: locales/default_environment_locale +Type: select +#flag:translate:1 +__Choices: None, ${locales} +Default: None +_Description: Default locale for the system environment: + Many packages in Debian use locales to display text in the correct + language for the user. You can choose a default locale for the system + from the generated locales. + . + This will select the default language for the entire system. If this + system is a multi-user system where not all users are able to speak + the default language, they will experience difficulties. --- eglibc-2.12.1.orig/debian/debhelper.in/glibc-doc.doc-base +++ eglibc-2.12.1/debian/debhelper.in/glibc-doc.doc-base @@ -0,0 +1,24 @@ +Document: glibc-manual +Title: The GNU C Library Reference Manual +Author: Sandra Loosemore with Richard M. Stallman, Roland McGrath, + Andrew Oram, and Ulrich Drepper +Abstract: The GNU C Library Reference Manual + The GNU C library, described in this document, defines all of the + library functions that are specified by the ISO C standard, as well as + additional features specific to POSIX and other derivatives of the Unix + operating system, and extensions specific to the GNU system. + . + The purpose of this manual is to tell you how to use the facilities + of the GNU library. We have mentioned which features belong to which + standards to help you identify things that are potentially non-portable + to other systems. But the emphasis in this manual is not on strict + portability. +Section: Apps/Programming + +Format: info +Index: /usr/share/info/libc.info.gz +Files: /usr/share/info/libc.* + +Format: HTML +Index: /usr/share/doc/glibc-doc/html/index.html +Files: /usr/share/doc/glibc-doc/html/* --- eglibc-2.12.1.orig/debian/debhelper.in/libc-dev.install.hurd-i386 +++ eglibc-2.12.1/debian/debhelper.in/libc-dev.install.hurd-i386 @@ -0,0 +1,22 @@ +debian/tmp-libc/usr/lib/libBrokenLocale.a usr/lib +debian/tmp-libc/usr/lib/libbsd-compat.a usr/lib +debian/tmp-libc/usr/lib/libc.a usr/lib +debian/tmp-libc/usr/lib/libcrt.a usr/lib +debian/tmp-libc/usr/lib/libcrt_nonshared.a usr/lib +debian/tmp-libc/usr/lib/libcrypt.a usr/lib +debian/tmp-libc/usr/lib/libdl.a usr/lib +debian/tmp-libc/usr/lib/libg.a usr/lib +debian/tmp-libc/usr/lib/libhurduser.a usr/lib +debian/tmp-libc/usr/lib/libieee.a usr/lib +debian/tmp-libc/usr/lib/libm.a usr/lib +debian/tmp-libc/usr/lib/libmachuser.a usr/lib +debian/tmp-libc/usr/lib/libmcheck.a usr/lib +debian/tmp-libc/usr/lib/libnsl.a usr/lib +debian/tmp-libc/usr/lib/libresolv.a usr/lib +debian/tmp-libc/usr/lib/librpcsvc.a usr/lib +debian/tmp-libc/usr/lib/librt.a usr/lib +debian/tmp-libc/usr/lib/libutil.a usr/lib + +debian/tmp-libc/usr/lib/*.o usr/lib +debian/tmp-libc/usr/lib/*.so usr/lib +debian/tmp-libc/usr/include/* usr/include --- eglibc-2.12.1.orig/debian/debhelper.in/libc.dirs +++ eglibc-2.12.1/debian/debhelper.in/libc.dirs @@ -0,0 +1 @@ +etc/ld.so.conf.d --- eglibc-2.12.1.orig/debian/debhelper.in/locales.links +++ eglibc-2.12.1/debian/debhelper.in/locales.links @@ -0,0 +1 @@ +etc/locale.alias usr/share/locale/locale.alias --- eglibc-2.12.1.orig/debian/debhelper.in/libc-otherbuild.postrm +++ eglibc-2.12.1/debian/debhelper.in/libc-otherbuild.postrm @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if [ "$1" = "remove" ]; then + # /etc/ld.so.nohwcap code: NOHWCAP +fi + +#DEBHELPER# + +exit 0 --- eglibc-2.12.1.orig/debian/debhelper.in/glibc-doc.info +++ eglibc-2.12.1/debian/debhelper.in/glibc-doc.info @@ -0,0 +1 @@ +DEB_SRCDIR/manual/*.info* --- eglibc-2.12.1.orig/debian/debhelper.in/locales-all.install +++ eglibc-2.12.1/debian/debhelper.in/locales-all.install @@ -0,0 +1 @@ +BUILD-TREE/locales-all/supported.tar.lzma usr/lib/locales-all --- eglibc-2.12.1.orig/debian/debhelper.in/libc-dev-bin.docs +++ eglibc-2.12.1/debian/debhelper.in/libc-dev-bin.docs @@ -0,0 +1,2 @@ +NOTES +NAMESPACE --- eglibc-2.12.1.orig/debian/debhelper.in/libc-dev.install +++ eglibc-2.12.1/debian/debhelper.in/libc-dev.install @@ -0,0 +1,21 @@ +TMPDIR/LIBDIR/libanl.a LIBDIR +TMPDIR/LIBDIR/libBrokenLocale.a LIBDIR +TMPDIR/LIBDIR/libbsd-compat.a LIBDIR +TMPDIR/LIBDIR/libc.a LIBDIR +TMPDIR/LIBDIR/libc_nonshared.a LIBDIR +TMPDIR/LIBDIR/libcrypt.a LIBDIR +TMPDIR/LIBDIR/libdl.a LIBDIR +TMPDIR/LIBDIR/libg.a LIBDIR +TMPDIR/LIBDIR/libieee.a LIBDIR +TMPDIR/LIBDIR/libm.a LIBDIR +TMPDIR/LIBDIR/libmcheck.a LIBDIR +TMPDIR/LIBDIR/libnsl.a LIBDIR +TMPDIR/LIBDIR/libpthread.a LIBDIR +TMPDIR/LIBDIR/libpthread_nonshared.a LIBDIR +TMPDIR/LIBDIR/libresolv.a LIBDIR +TMPDIR/LIBDIR/librpcsvc.a LIBDIR +TMPDIR/LIBDIR/librt.a LIBDIR +TMPDIR/LIBDIR/libutil.a LIBDIR +TMPDIR/LIBDIR/*.o LIBDIR +TMPDIR/LIBDIR/*.so LIBDIR +TMPDIR/usr/include/* usr/include --- eglibc-2.12.1.orig/debian/debhelper.in/libc.templates +++ eglibc-2.12.1/debian/debhelper.in/libc.templates @@ -0,0 +1,49 @@ +Template: glibc/upgrade +Type: boolean +Default: true +_Description: Do you want to upgrade glibc now? + Running services and programs that are using NSS need to be restarted, + otherwise they might not be able to do lookup or authentication any more. + The installation process is able to restart some services (such as ssh or + telnetd), but other programs cannot be restarted automatically. One such + program that needs manual stopping and restart after the glibc upgrade by + yourself is xdm - because automatic restart might disconnect your active + X11 sessions. + . + This script detected the following installed services which must be + stopped before the upgrade: ${services} + . + If you want to interrupt the upgrade now and continue later, please + answer No to the question below. + +Template: glibc/restart-services +Type: string +_Description: Services to restart for GNU libc library upgrade: + Running services and programs that are using NSS need to be restarted, + otherwise they might not be able to do lookup or authentication any more + (for services such as ssh, this can affect your ability to login). + Please review the following space-separated list of init.d scripts for + services to be restarted now, and correct it if needed. + . + Note: restarting sshd/telnetd should not affect any existing connections. + +Template: glibc/restart-failed +Type: error +#flag:translate!:3 +_Description: Failure restarting some services for GNU libc upgrade + The following services could not be restarted for the GNU libc library upgrade: + . + ${services} + . + You will need to start these manually by running + '/etc/init.d/ start'. + +Template: glibc/disable-screensaver +Type: error +_Description: xscreensaver and xlockmore must be restarted before upgrading + One or more running instances of xscreensaver or xlockmore have been + detected on this system. Because of incompatible library changes, the + upgrade of the GNU libc library will leave you unable to + authenticate to these programs. You should arrange for these programs + to be restarted or stopped before continuing this upgrade, to avoid + locking your users out of their current sessions. --- eglibc-2.12.1.orig/debian/debhelper.in/libc.NEWS +++ eglibc-2.12.1/debian/debhelper.in/libc.NEWS @@ -0,0 +1,51 @@ +glibc (2.9-8) unstable; urgency=low + + Starting with version 2.9-8, unified IPv4/IPv6 lookup have been enabled + in the glibc's resolver. This is faster, fixes numerous of bugs, but is + problematic on some broken DNS servers and/or wrongly configured + firewalls. + + If such a DNS server is detected, the resolver switches (permanently + for that process) to a mode where the second request is sent only when + the first answer has been received. This means the first request will + be timeout, but subsequent requests should be fast again. This + behaviour can be enabled permanently by adding 'options single-request' + to /etc/resolv.conf. + + -- Aurelien Jarno Thu, 23 Apr 2009 21:14:32 +0200 + +glibc (2.6.1-2) unstable; urgency=low + + Starting with version 2.6.1, glibc ships a /etc/ld.so.conf.d/libc.conf that + enforces /usr/local/lib to take precedence over /usr/lib. This is the + intended behaviour (it works like the $PATH where /usr/local/bin takes + precedence over /usr/bin). + + To revert that (though doing so is discouraged) you can add /usr/lib to the + beginning of /etc/ld.so.conf.d/libc.conf. (see bug#440394). + + -- Pierre Habouzit Sat, 01 Sep 2007 16:58:15 +0200 + +glibc (2.5-1) unstable; urgency=low + + The script tzconfig has been removed from glibc 2.5-1 and following + versions. Please use 'dpkg-reconfigure tzdata' instead to configure + the timezone. + + -- Aurelien Jarno Fri, 16 Nov 2007 15:38:54 +0100 + +glibc (2.5-1) unstable; urgency=low + + Starting with version 2.5-1, the glibc requires a 2.6.1 or later + kernel. If you use a 2.4 kernel, please upgrade it *before* + installing glibc. + + This also means that it is not possible to use LD_ASSUME_KERNEL with a + version lower than 2.6.1. If you have set such a thing in /etc/profile, + ~/.bashrc or any other initialization file (something you should have + never done!!!), please remove that *before* installing glibc. + + Note: This does not apply to the m68k architecture and to non-Linux + kernels. + + -- Aurelien Jarno Tue, 24 Apr 2007 00:26:48 +0200 --- eglibc-2.12.1.orig/debian/debhelper.in/glibc-doc.links +++ eglibc-2.12.1/debian/debhelper.in/glibc-doc.links @@ -0,0 +1,20 @@ +usr/share/man/man3/pthread_condattr_init.3.gz usr/share/man/man3/pthread_condattr_destroy.3.gz +usr/share/man/man3/pthread_cond_init.3.gz usr/share/man/man3/pthread_cond_signal.3.gz +usr/share/man/man3/pthread_cond_init.3.gz usr/share/man/man3/pthread_cond_broadcast.3.gz +usr/share/man/man3/pthread_cond_init.3.gz usr/share/man/man3/pthread_cond_wait.3.gz +usr/share/man/man3/pthread_cond_init.3.gz usr/share/man/man3/pthread_cond_timedwait.3.gz +usr/share/man/man3/pthread_cond_init.3.gz usr/share/man/man3/pthread_cond_destroy.3.gz +usr/share/man/man3/pthread_key_create.3.gz usr/share/man/man3/pthread_getspecific.3.gz +usr/share/man/man3/pthread_key_create.3.gz usr/share/man/man3/pthread_key_delete.3.gz +usr/share/man/man3/pthread_key_create.3.gz usr/share/man/man3/pthread_setspecific.3.gz +usr/share/man/man3/pthread_mutexattr_init.3.gz usr/share/man/man3/pthread_mutexattr_destroy.3.gz +usr/share/man/man3/pthread_mutexattr_init.3.gz usr/share/man/man3/pthread_mutexattr_settype.3.gz +usr/share/man/man3/pthread_mutexattr_init.3.gz usr/share/man/man3/pthread_mutexattr_gettype.3.gz +usr/share/man/man3/pthread_mutexattr_setkind_np.3.gz usr/share/man/man3/pthread_mutexattr_getkind_np.3.gz +usr/share/man/man3/pthread_mutex_init.3.gz usr/share/man/man3/pthread_mutex_lock.3.gz +usr/share/man/man3/pthread_mutex_init.3.gz usr/share/man/man3/pthread_mutex_trylock.3.gz +usr/share/man/man3/pthread_mutex_init.3.gz usr/share/man/man3/pthread_mutex_unlock.3.gz +usr/share/man/man3/pthread_mutex_init.3.gz usr/share/man/man3/pthread_mutex_destroy.3.gz +usr/share/man/man3/pthread_sigmask.3.gz usr/share/man/man3/pthread_kill.3.gz +usr/share/man/man3/pthread_sigmask.3.gz usr/share/man/man3/sigwait.3.gz +usr/share/doc/glibc-doc/html/libc.html usr/share/doc/glibc-doc/html/index.html --- eglibc-2.12.1.orig/debian/debhelper.in/nscd.postrm +++ eglibc-2.12.1/debian/debhelper.in/nscd.postrm @@ -0,0 +1,14 @@ +#!/bin/sh +set -e + +case "$1" in + purge) + rm -rf /var/cache/nscd + ;; + *) + ;; +esac + +#DEBHELPER# + +exit 0 --- eglibc-2.12.1.orig/debian/debhelper.in/eglibc-source.install +++ eglibc-2.12.1/debian/debhelper.in/eglibc-source.install @@ -0,0 +1 @@ +BUILD-TREE/eglibc-*.tar.xz /usr/src/glibc --- eglibc-2.12.1.orig/debian/debhelper.in/libc.install +++ eglibc-2.12.1/debian/debhelper.in/libc.install @@ -0,0 +1,6 @@ +TMPDIR/SLIBDIR/*.so* SLIBDIR +TMPDIR/LIBDIR/gconv/* LIBDIR/gconv + +TMPDIR/etc/ld.so.conf.d /etc + +BUILD-TREE/test-results-*-libc usr/share/doc/LIBC --- eglibc-2.12.1.orig/debian/debhelper.in/libc-dev.lintian-overrides +++ eglibc-2.12.1/debian/debhelper.in/libc-dev.lintian-overrides @@ -0,0 +1,6 @@ +# Those file are actually .o files not package in a ar archive, and +# thus should not be stripped +LIBC-dev: unstripped-binary-or-object ./usr/lib/libieee.a +LIBC-dev: unstripped-binary-or-object ./usr/lib/libmcheck.a +LIBC-dev: unstripped-binary-or-object ./usr/lib/xen/libieee.a +LIBC-dev: unstripped-binary-or-object ./usr/lib/xen/libmcheck.a --- eglibc-2.12.1.orig/debian/debhelper.in/nscd.install +++ eglibc-2.12.1/debian/debhelper.in/nscd.install @@ -0,0 +1,3 @@ +debian/tmp-libc/usr/sbin/nscd usr/sbin +nscd/nscd.conf /etc + --- eglibc-2.12.1.orig/debian/debhelper.in/locales.README.Debian +++ eglibc-2.12.1/debian/debhelper.in/locales.README.Debian @@ -0,0 +1,17 @@ +locales +------- + + * Starting with locales 2.7-3, users can provide their own locales in + addition to the ones provided by the package. They will be handled + as other locales in the various scripts. + + Each user defined locale has to be provided as a single file and + placed in the /usr/local/share/i18n/locales/ directory. The list of + user defined locales should be placed, one by line, in the file + /usr/local/share/i18n/SUPPORTED. You can have a look to the locales + provided by the locales package in /usr/share/i18n/ for more details. + + To enable the new locales, just run 'dpkg-reconfigure locales' and + select the new locales. + + -- Aurelien Jarno Thu 29 Nov 2007 18:54:12 +0100 --- eglibc-2.12.1.orig/debian/debhelper.in/libc-bin.lintian-overrides +++ eglibc-2.12.1/debian/debhelper.in/libc-bin.lintian-overrides @@ -0,0 +1,10 @@ +# ldconfig must be executable even when the libc is not configured, and +# thus must be linked statically +libc-bin: statically-linked-binary ./sbin/ldconfig + +# pt_chown must be setuid root, otherwise non-root users won't be able +# to login +libc-bin: setuid-binary usr/lib/pt_chown 4755 root/root + +# libc-bin depending on libc6 make apt crazy... +libc-bin: missing-depends-line --- eglibc-2.12.1.orig/debian/debhelper.in/glibc-doc.manpages +++ eglibc-2.12.1/debian/debhelper.in/glibc-doc.manpages @@ -0,0 +1,10 @@ +linuxthreads/man/pthread_atfork.3thr +linuxthreads/man/pthread_condattr_init.3thr +linuxthreads/man/pthread_cond_init.3thr +linuxthreads/man/pthread_key_create.3thr +linuxthreads/man/pthread_kill_other_threads_np.3thr +linuxthreads/man/pthread_mutexattr_init.3thr +linuxthreads/man/pthread_mutexattr_setkind_np.3thr +linuxthreads/man/pthread_mutex_init.3thr +linuxthreads/man/pthread_once.3thr +linuxthreads/man/pthread_sigmask.3thr --- eglibc-2.12.1.orig/debian/debhelper.in/libc-prof.README.Debian +++ eglibc-2.12.1/debian/debhelper.in/libc-prof.README.Debian @@ -0,0 +1,23 @@ +README.Debian for libc-prof +--------------------------- + +gprof is the GNU Profiler, a tool used when tracking which functions are +eating CPU in your program. Anyway, you should already be familiar with +it if you got interested by this package. + +This package provides a version of the GNU Libc compiled for profiling +in order to get profiling information from standard library functions +such as malloc, read or open. + +In order to use it, you have to use `-static-libgcc -lc_p' in addition +to the normal `-pg'. `-static-libgcc' is needed to ensure that libgcc +does not pull the dynamic version of the GNU Libc. + +For instance here is how to compile and link myprog.c with profiling: + gcc -g -pg -o myprog.o -c myprog.c + gcc -pg -o myprog myprog.o -static-libgcc -lc_p + +This also works with a command that both compiles and links: + gcc -g -pg -o myprog myprog.c -static-libgcc -lc_p + + -- Aurelien Jarno Sun, 06 Apr 2008 11:28:25 +0200 --- eglibc-2.12.1.orig/debian/debhelper.in/libc-udeb.install.hurd-i386 +++ eglibc-2.12.1/debian/debhelper.in/libc-udeb.install.hurd-i386 @@ -0,0 +1,11 @@ +# FIXME: someday we may need to handle installing into non-lib. +debian/tmp-libc/lib/ld*.so* lib +debian/tmp-libc/lib/libm-*.so* lib +debian/tmp-libc/lib/libm.so* lib +debian/tmp-libc/lib/libdl*.so* lib +debian/tmp-libc/lib/libresolv*.so* lib +debian/tmp-libc/lib/libc-*.so* lib +debian/tmp-libc/lib/libc.so* lib +debian/tmp-libc/lib/libutil* lib +debian/tmp-libc/lib/libcrypt* lib +debian/tmp-libc/lib/librt*.so* lib --- eglibc-2.12.1.orig/debian/debhelper.in/libc-bin.manpages +++ eglibc-2.12.1/debian/debhelper.in/libc-bin.manpages @@ -0,0 +1,14 @@ +debian/local/manpages/catchsegv.1 +debian/local/manpages/gai.conf.5 +debian/local/manpages/getent.1 +debian/local/manpages/getconf.1 +debian/local/manpages/iconv.1 +debian/local/manpages/iconvconfig.8 +debian/local/manpages/ldconfig.8 +debian/local/manpages/ldd.1 +debian/local/manpages/locale.1 +debian/local/manpages/localedef.1 +debian/local/manpages/rpcinfo.8 +debian/local/manpages/tzselect.1 +debian/local/manpages/zdump.1 +debian/local/manpages/zic.8 --- eglibc-2.12.1.orig/debian/debhelper.in/libc.preinst +++ eglibc-2.12.1/debian/debhelper.in/libc.preinst @@ -0,0 +1,367 @@ +#!/bin/sh +set -e +export LC_ALL=C + +type=$1 +preversion=$2 + +rm_conffile() { + local PKGNAME="$1" + local CONFFILE="$2" + + [ -e "$CONFFILE" ] || return 0 + + local md5sum="$(md5sum $CONFFILE | sed -e 's/ .*//')" + local old_md5sum="$(dpkg-query -W -f='${Conffiles}' $PKGNAME | \ + sed -n -e "\' $CONFFILE ' { s/ obsolete$//; s/.* //; p }")" + if [ "$md5sum" != "$old_md5sum" ]; then + echo "Obsolete conffile $CONFFILE has been modified by you." + echo "Saving as $CONFFILE.dpkg-bak ..." + mv -f "$CONFFILE" "$CONFFILE".dpkg-bak + else + echo "Removing obsolete conffile $CONFFILE ..." + rm -f "$CONFFILE" + fi +} + +linux_compare_versions () { + verA=$(($(echo "$1" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/'))) + verB=$(($(echo "$3" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/'))) + + test $verA -$2 $verB +} + +kfreebsd_compare_versions () { + verA=$(($(echo "$1" | sed 's/\([0-9]*\)\.\([0-9]*\).*/\1 \* 100 + \2/'))) + verB=$(($(echo "$3" | sed 's/\([0-9]*\)\.\([0-9]*\).*/\1 \* 100 + \2/'))) + + test $verA -$2 $verB +} + +kernel26_help() { + echo "" + echo "The installation of a 2.6 kernel _could_ ask you to install a new libc" + echo "first, this is NOT a bug, and should *NOT* be reported. In that case," + echo "please add lenny sources to your /etc/apt/sources.list and run:" + echo " apt-get install -t lenny linux-image-2.6" + echo "Then reboot into this new kernel, and proceed with your upgrade" +} + +if [ "$type" = upgrade ] +then + # Remove old /etc/init.d/glibc.sh init script + if dpkg --compare-versions "$preversion" le "2.9-22"; then + rm_conffile LIBC "/etc/init.d/glibc.sh" + update-rc.d glibc.sh remove >/dev/null + fi + + # Load debconf module if available + if [ -f /usr/share/debconf/confmodule ] ; then + . /usr/share/debconf/confmodule + fi + + if [ -n "$preversion" ]; then + # NSS authentication trouble guard + if dpkg --compare-versions "$preversion" lt 2.12; then + if pidof xscreensaver xlockmore >/dev/null; then + if [ -f /usr/share/debconf/confmodule ] ; then + db_version 2.0 + db_reset glibc/disable-screensaver + db_input critical glibc/disable-screensaver || true + db_go || true + else + echo "xscreensaver and xlockmore must be restarted before upgrading" + echo + echo "One or more running instances of xscreensaver or xlockmore have been" + echo "detected on this system. Because of incompatible library changes, the" + echo "upgrade of the GNU C library will leave you unable to authenticate to" + echo "these programs. You should arrange for these programs to be restarted" + echo "or stopped before continuing this upgrade, to avoid locking your users" + echo "out of their current sessions." + echo + frontend=`echo "$DEBIAN_FRONTEND" | tr '[:upper:]' '[:lower:]'` + if [ "$frontend" = noninteractive ]; then + echo "Non-interactive mode, upgrade glibc forcibly" + else + echo -n "Press a key to continue" + read answer + fi + echo + fi + fi + + check="kdm postgresql xdm" + # NSS services check: NSS_CHECK + if [ -n "$services" ]; then + if [ -f /usr/share/debconf/confmodule ] ; then + db_version 2.0 + db_reset glibc/upgrade + db_subst glibc/upgrade services $services + if [ "$RELEASE_UPGRADE_MODE" = desktop ]; then + db_input medium glibc/upgrade || true + else + db_input critical glibc/upgrade || true + fi + db_go || true + db_get glibc/upgrade + answer=$RET + else + echo "Do you want to upgrade glibc now?" + echo + echo "Running services and programs that are using NSS need to be restarted," + echo "otherwise they might not be able to do lookup or authentication any more." + echo "The installation process is able to restart some services (such as ssh or" + echo "telnetd), but other programs cannot be restarted automatically. One such" + echo "program that needs manual stopping and restart after the glibc upgrade by" + echo "yourself is xdm - because automatic restart might disconnect your active" + echo "X11 sessions." + echo + echo "This script detected the following installed services which must be" + echo "stopped before the upgrade: $services" + echo + echo "If you want to interrupt the upgrade now and continue later, please" + echo "answer No to the question below." + echo + frontend=`echo "$DEBIAN_FRONTEND" | tr '[:upper:]' '[:lower:]'` + if [ "$frontend" = noninteractive ]; then + echo "Non-interactive mode, upgrade glibc forcibly" + answer=true + else + echo -n "Do you want to upgrade glibc now? [Y/n] " + read answer + case $answer in + Y*|y*) answer=true ;; + N*|n*) answer=false ;; + *) answer=true ;; + esac + fi + echo + fi + + if [ "x$answer" != "xtrue" ]; then + echo "Stopped glibc upgrade. Please retry the upgrade after you have" + echo "checked or stopped services by hand." + exit 1 + fi + fi + fi # end upgrading and $preversion lt 2.12 + fi # Upgrading + + # This will keep us from using hwcap libs (optimized) during an + # upgrade. + touch /etc/ld.so.nohwcap +fi + +# Sanity check. +# If there are versions of glibc outside of the normal installation +# location (/lib, /lib64, etc.) then things may break very badly +# as soon as ld.so is replaced by a new version. This check is not +# foolproof, but it's pretty accurate. This script ignores libraries +# with different sonames, and libraries incompatible with the +# to-be-installed ld.so. + +check_dirs () { + for dir in $*; do + # Follow symlinks + dirlink=$(readlink -e $dir) + [ -n "$dirlink" ] && dir=$dirlink + + # Handle /lib in LD_LIBRARY_PATH. + if expr $dir : "/lib.*" > /dev/null; then + continue + fi + # Skip ia32-libs package on ia64, and similar libraries + # (not sure why these get added to /etc/ld.so.conf) + if expr $dir : "/emul/.*" > /dev/null; then + continue + fi + if test -d $dir; then + output=$(ls $dir | egrep '^(C_SO|M_SO|PTHREAD_SO|RT_SO|DL_SO)$' 2>/dev/null) + + if test -n "$output"; then + # See if the found libraries are compatible with the system ld.so; + # if they aren't, they'll be ignored. Check e_ident, e_type (which + # will just be ET_DYN), and e_machine. If a match is found, there + # is a risk of breakage. + for lib in $output + do + if test -f "$dir/$lib"; then + libbytes=`head -c 20 $dir/$lib | od -c` + if test "$ldbytes" = "$libbytes"; then + echo "Matching libraries: $dir/$lib" + return 0 + fi + fi + done + fi + fi + done + return 1 +} + +if [ "$type" != abort-upgrade ] +then + ldbytes=`head -c 20 RTLD_SO | od -c` + dirs="/lib32 /lib64 /usr/local/lib /usr/local/lib32 /usr/local/lib64" + if ! test -L /usr; then + dirs="$dirs /usr/lib /usr/lib32 /usr/lib64" + fi + if check_dirs $dirs; then + echo + echo "A copy of glibc was found in an unexpected directory." + echo "It is not safe to upgrade the C library in this situation;" + echo "please remove that copy of the C library and try again." + echo "Please check: https://launchpad.net/bugs/81125" + fi + + if test -n "$LD_LIBRARY_PATH"; then + dirs=$(echo $LD_LIBRARY_PATH | sed 's/:/ /') + if check_dirs $dirs; then + echo + echo "Another copy of the C library was found via LD_LIBRARY_PATH." + echo "It is not safe to upgrade the C library in this situation;" + echo "please remove the directory from LD_LIBRARY_PATH and try again." + echo "Please check: https://launchpad.net/bugs/81125" + fi + fi + if test -e /etc/ld.so.conf; then + dirs=$(echo $(cat /etc/ld.so.conf)) + if check_dirs $dirs; then + echo + echo "Another copy of the C library was found via /etc/ld.so.conf." + echo "It is not safe to upgrade the C library in this situation;" + echo "please remove the directory from /etc/ld.so.conf and try again." + echo "Please check: https://launchpad.net/bugs/81125" + fi + fi + for i in ld-2.3.2.so libc-2.3.2.so ld-2.3.6.so libc-2.3.6.so ; do + if [ -e /lib/tls/$i ] && ! dpkg-query -L LIBC 2>/dev/null | grep -q /lib/tls/$i ; then + echo + echo "A non-dpkg owned copy of the C library was found in /lib/tls." + echo "It is not safe to upgrade the C library in this situation;" + echo "please remove that copy of the C library and try again." + exit 1 + fi + done + if [ -e /lib/tls/i686/cmov/libc.so.6 ] || [ -e /lib/i686/cmov/libc.so.6 ] ; then + status_i686=$(dpkg -s libc6-i686 2>/dev/null | grep ^Status: | sed -e 's/^Status: \(.*\) \(.*\) \(.*\)/\3/g') + status_xen=$(dpkg -s libc6-xen 2>/dev/null | grep ^Status: | sed -e 's/^Status: \(.*\) \(.*\) \(.*\)/\3/g') + if ([ -z "$status_i686" ] || [ "$status_i686" = "not-installed" ] || [ "$status_i686" = "config-files" ]) && \ + ([ -z "$status_xen" ] || [ "$status_xen" = "not-installed" ] || [ "$status_xen" = "config-files" ]); then + echo + echo "A non-dpkg owned copy of the libc6-i686 package was found." + echo "It is not safe to upgrade the C library in this situation;" + echo "please remove that copy of the C library and try again." + exit 1 + fi + fi + if [ -n "$LD_ASSUME_KERNEL" ] ; then + if dpkg --compare-versions "$LD_ASSUME_KERNEL" le "2.6.1"; then + echo + echo "POSIX threads library NPTL requires kernel version 2.6.1" + echo "or later. It appears that LD_ASSUME_KERNEL is set to $LD_ASSUME_KERNEL." + echo "It is not safe to upgrade the C library in this situation;" + echo "Please unset this environment variable and try again." + exit 1 + fi + fi + + # glibc kernel version check + system=`uname -s` + if [ "$system" = "Linux" ] + then + # Test to make sure z < 255, in x.y.z-n form of kernel version + # Also make sure we don't trip on x.y.zFOO-n form + kernel_rev=$(uname -r | sed 's/\([0-9]*\.[0-9]*\.\)\([0-9]*\)\(.*\)/\2/') + if [ "$kernel_rev" -ge 255 ] + then + echo "WARNING: Your kernel version indicates a revision number" + echo "of 255 or greater. Glibc has a number of built in" + echo "assumptions that this revision number is less than 255." + echo "If you\'ve built your own kernel, please make sure that any" + echo "custom version numbers are appended to the upstream" + echo "kernel number with a dash or some other delimiter." + + exit 1 + fi + + # sanity checking for the appropriate kernel on each architecture. + realarch=`uname -m` + kernel_ver=`uname -r` + + # convert "armv4l" and similar to just "arm", and "mips64" and similar + # to just "mips" + case $realarch in + arm*) realarch="arm";; + mips*) realarch="mips";; + esac + + # The GNU libc requires a >= 2.6.18 kernel (except on m68k) + if [ "$realarch" != m68k ] + then + # Ubuntu buildd limitation: allow just 2.6.15, although 2.6.18 is required + # for some patches + #if linux_compare_versions "$kernel_ver" lt 2.6.18 + if linux_compare_versions "$kernel_ver" lt 2.6.15 + then + echo WARNING: this version of the GNU libc requires kernel version + echo 2.6.18 or later. Please upgrade your kernel before installing + echo glibc. + kernel26_help + + exit 1 + fi + fi + + # The GNU libc is now built with --with-kernel= >= 2.4.1 on m68k + if [ "$realarch" = m68k ] + then + if linux_compare_versions "$kernel_ver" lt 2.4.1 + then + echo WARNING: This version of glibc requires that you be running + echo kernel version 2.4.1 or later. Earlier kernels contained + echo bugs that may render the system unusable if a modern version + echo of glibc is installed. + kernel26_help + + exit 1 + fi + fi + + # From glibc 2.6-3 SPARC V8 support is dropped. + if [ "$realarch" = sparc ] + then + # The process could be run using linux32, check for /proc. + if [ -f /proc/cpuinfo ] + then + case "$(sed '/^type/!d;s/^type.*: //g' /proc/cpuinfo)" in + sun4u) + # UltraSPARC CPU + ;; + sun4v) + # Niagara CPU + ;; + *) + echo "WARNING: This machine has a SPARC V8 or earlier class processor." + echo "Debian lenny and later does not support such old hardware" + echo "any longer." + exit 1 + ;; + esac + fi + fi + elif [ $system = "GNU/kFreeBSD" ] ; then + kernel_ver=`uname -r` + if kfreebsd_compare_versions "$kernel_ver" lt 6.0 + then + echo WARNING: This version of glibc uses UMTX_OP_WAIT and UMTX_OP_WAKE + echo syscalls that are not present in the current running kernel. They + echo have been added in kFreeBSD 6.0. Your system should still work, + echo but it is recommended to upgrade to a more recent version. + fi + fi +fi + +#DEBHELPER# + +exit 0 --- eglibc-2.12.1.orig/debian/debhelper.in/libc.postinst +++ eglibc-2.12.1/debian/debhelper.in/libc.postinst @@ -0,0 +1,254 @@ +#!/bin/sh +set -e +export LC_ALL=C + +type=$1 +preversion=$2 + +package_name() +{ + echo LIBC +} + +# element() is a helper function for file-rc: +element() { + local element list IFS + + element="$1" + + [ "$2" = "in" ] && shift + list="$2" + [ "$list" = "-" ] && return 1 + [ "$list" = "*" ] && return 0 + + IFS="," + set -- $list + case $element in + "$1"|"$2"|"$3"|"$4"|"$5"|"$6"|"$7"|"$8"|"$9") + return 0 + esac + return 1 +} + +# filerc (runlevel, service) returns /etc/init.d/service, if service is +# running in $runlevel: +filerc() { + local runlevel basename + runlevel=$1 + basename=$2 + while read LINE + do + case $LINE in + \#*|"") continue + esac + + set -- $LINE + SORT_NO="$1"; STOP="$2"; START="$3"; CMD="$4" + [ "$CMD" = "/etc/init.d/$basename" ] || continue + + if element "$runlevel" in "$START" || element "S" in "$START" + then + echo "/etc/init.d/$basename" + return 0 + fi + done < /etc/runlevel.conf + echo "" +} + +checkpkgver () { + local status pkg + pkg=$1 + status=$(dpkg -s $pkg 2>/dev/null | grep ^Status: | sed -e 's/^Status: \(.*\) \(.*\) \(.*\)/\3/g') + if [ -n "$status" ] && [ "$status" != "not-installed" ] && [ "$status" != "config-files" ]; then + echo $(dpkg -s $pkg 2>/dev/null | grep ^Version: | sed -e 's/^Version: *//'); + fi +} + +if [ "$type" = "configure" ] +then + # Add support for /etc/ld.so.conf.d + if [ -e /etc/ld.so.conf ]; then + [ -z "$(tail -n 1 /etc/ld.so.conf)" ] || echo >> /etc/ld.so.conf + else + touch /etc/ld.so.conf + fi + if ! grep -q '^include /etc/ld.so.conf.d/.*\.conf$' /etc/ld.so.conf ; then + echo 'include /etc/ld.so.conf.d/*.conf' >> /etc/ld.so.conf + fi + + # We don't use a registry anymore, remove the old file + rm -f /etc/ld.so.hwcappkgs + + # /etc/ld.so.nohwcap code: NOHWCAP + + # Load debconf module if available + if [ -f /usr/share/debconf/confmodule ] ; then + . /usr/share/debconf/confmodule + fi + + if [ -n "$preversion" ]; then + if [ ! -d /var/mail ] && [ ! -L /var/mail ]; then + ln -sf spool/mail /var/mail + fi + if dpkg --compare-versions "$preversion" lt '2.12'; then + # LP #504198 + if which locale-gen >/dev/null; then + locale-gen --purge + fi + fi + if dpkg --compare-versions "$preversion" lt 2.12; then + check="apache2-common apache apache-ssl apache-perl autofs at" + check="$check boa cucipop courier-authdaemon cron cups exim" + check="$check exim4-base dovecot-common cucipop incron lprng lpr" + check="$check lpr-ppd mysql-server nis openbsd-inetd" + check="$check openldapd proftpd postfix postfix-tls rsync samba" + check="$check sasl2-bin slapd smail sendmail snmpd ssh" + check="$check spamassassin vsftpd wu-ftpd wu-ftpd-academ wwwoffle" + check="$check webmin dropbear gdm" + # NSS services check: NSS_CHECK + if [ -n "$services" ]; then + + if [ -f /usr/share/debconf/confmodule ] ; then + db_version 2.0 + db_reset glibc/restart-services + db_set glibc/restart-services "$services" + if [ "$RELEASE_UPGRADE_MODE" = desktop ]; then + db_input medium glibc/restart-services || true + else + db_input critical glibc/restart-services || true + fi + db_go || true + db_get glibc/restart-services + if [ "x$RET" != "x" ] + then + services="$RET" + else + services="" + fi + else + echo + echo "Name Service Switch update in the C Library: post-installation question." + echo + echo "Running services and programs that are using NSS need to be restarted," + echo "otherwise they might not be able to do lookup or authentication any more" + echo "(for services such as ssh, this can affect your ability to login)." + echo "Note: restarting sshd/telnetd should not affect any existing connections." + echo + echo "The services detected are: " + echo " $services" + echo + echo "If other services have begun to fail mysteriously after this upgrade, it is" + echo "probably necessary to restart them too. We recommend that you reboot your" + echo "machine after the upgrade to avoid NSS-related troubles." + echo + frontend=`echo "$DEBIAN_FRONTEND" | tr '[:upper:]' '[:lower:]'` + if [ "$frontend" = noninteractive ]; then + echo "Non-interactive mode, restarting services" + answer=yes + else + echo -n "Do you wish to restart services? [Y/n] " + read answer + case $answer in + N*|n*) services="" ;; + *) ;; + esac + fi + fi + echo + if [ "$services" != "" ]; then + echo "Restarting services possibly affected by the upgrade:" + failed="" + for service in $services; do + if [ -x /lib/init/readlink ] && [ "$(/lib/init/readlink /etc/init.d/$service)" = /lib/init/upstart-job ]; then + idl="restart" + idlopt="${service}" + elif [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + idl="invoke-rc.d ${service}" + idlopt="restart" + elif [ -f /usr/share/file-rc/rc ] || [ -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ]; then + idl=$(filerc $rl $service) + idlopt="restart" + else + idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1) + idlopt="restart" + fi + case "$service" in + gdm) + # old gdm uses initscript, we need + # to restart it. note that we do + # not need to do anything for new + # gdm that uses upstart job, so this + # special case can be removed after lucid + if [ "$idlopt" = restart ]; then + echo -n " $service: reloading..." + idlopt="reload" + if $idl $idlopt > /dev/null 2>&1; then + echo "done." + else + echo "FAILED! ($?)" + failed="$service $failed" + fi + fi + ;; + *) + echo -n " $service: restarting..." + if $idl $idlopt > /dev/null 2>&1; then + echo "done." + else + echo "FAILED! ($?)" + failed="$service $failed" + fi + ;; + esac + done + echo + if [ -n "$failed" ]; then + if [ -f /usr/share/debconf/confmodule ] ; then + db_fset glibc/restart-failed seen false + db_subst glibc/restart-failed services "$failed" + if [ "$RELEASE_UPGRADE_MODE" = desktop ]; then + db_input medium glibc/restart-failed || true + else + db_input critical glibc/restart-failed || true + fi + db_go || true + else + echo "The following services failed to start: $failed" + echo + echo "You will need to start these manually by running \`/etc/init.d/ start'" + echo "If the service still fails to start, you may need to file a bug on" + echo "$(package_name) or the service involved." + frontend=`echo "$DEBIAN_FRONTEND" | tr '[:upper:]' '[:lower:]'` + if [ "$frontend" != noninteractive ]; then + echo + echo -n "Press ENTER to continue: " + read foo + fi + fi + else + echo "Services restarted successfully." + fi + fi + # Shut down the frontend, to make sure none of the + # restarted services keep a connection open to it + if [ -f /usr/share/debconf/confmodule ] ; then + db_stop + fi + else + echo "Nothing to restart." + fi + fi # end upgrading and $preversion lt 2.12 + fi # Upgrading + + if [ "`uname -s`" = Linux ]; then + if [ "$(stat -c %d/%i /)" = "$(stat -Lc %d/%i /proc/1/root 2>/dev/null)" ]; then + # the devicenumber/inode pair of / is the same as that of /sbin/init's + # root, so we're *not* in a chroot + (telinit u ; sleep 1) + fi + fi +fi + +#DEBHELPER# + +exit 0 --- eglibc-2.12.1.orig/debian/debhelper.in/libc-bin.postinst +++ eglibc-2.12.1/debian/debhelper.in/libc-bin.postinst @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +if [ "x$1" = xtriggered ] +then + LDCONFIG_NOTRIGGER=y + export LDCONFIG_NOTRIGGER + echo ldconfig deferred processing now taking place + ldconfig + exit 0 +fi + +#DEBHELPER# --- eglibc-2.12.1.orig/debian/debhelper.in/locales-all.postinst +++ eglibc-2.12.1/debian/debhelper.in/locales-all.postinst @@ -0,0 +1,19 @@ +#!/bin/sh +set -e +export LC_ALL=C + +if [ "$1" = "configure" ]; then + [ -d /usr/lib/locale ] || mkdir /usr/lib/locale + # Remove existing locales, otherwise localedef does not + # overwrite them and exits with a non-null value + rm -f /usr/lib/locale/locale-archive 2>/dev/null || true + tmpdir=$(mktemp -d -t locales.XXXXXXXXXX) + trap 'rm -rf "$tmpdir" > /dev/null 2>&1' exit + tar --use-compress-program /usr/bin/lzma -xf /usr/lib/locales-all/supported.tar.lzma -C "$tmpdir" + localedef --quiet --add-to-archive "$tmpdir"/* +fi + +#DEBHELPER# + +exit 0 + --- eglibc-2.12.1.orig/debian/debhelper.in/locales.config +++ eglibc-2.12.1/debian/debhelper.in/locales.config @@ -0,0 +1,92 @@ +#! /bin/sh +set -e + +# Files +LG="/etc/locale.gen" +EE="/etc/default/locale" + +# Sanitize environnement +LC_ALL=C +LANG=C + +# Load debconf +. /usr/share/debconf/confmodule +db_version 2.0 +db_capb backup multiselect + +# Conversion of locales that have been removed +convert_locale() +{ + echo "$1" | sed -e "s/no_NO/nb_NO/g" -e 's/ks_IN/ks_IN@devanagari/g' +} + +# List of locales provided by the current version +PROVIDED_LOCALES="__PROVIDED_LOCALES__" + +# List of locales provided by the user +if [ -f /usr/local/share/i18n/SUPPORTED ] ; then + USER_LOCALES="$(sed -e '/^[a-zA-Z]/!d' -e 's/ *$//g' /usr/local/share/i18n/SUPPORTED)" +fi + +# List of locales in /etc/locale.gen +if [ -e $LG ]; then + GEN_LOCALES="$(sed -e '/^[a-zA-Z]/!d' -e 's/ *$//g' $LG)" + GEN_LOCALES="$(convert_locale "$GEN_LOCALES")" +fi + +# List of supported locales (PROVIDED_LOCALES + USER_LOCALES + GEN_LOCALES) +SUPPORTED_LOCALES="$(printf '%s\n' "$PROVIDED_LOCALES" "$USER_LOCALES" "$GEN_LOCALES" | grep -v "^$" | sort -u | tr '\n' ',' | sed -e 's/, */, /g' -e 's/, *$//g')" +db_subst locales/locales_to_be_generated locales "$SUPPORTED_LOCALES" + +# Get the list of selected locales from /etc/locale.gen +if [ -e /etc/locale.gen ]; then + if [ -L $LG ] && [ "$(readlink $LG)" = "/usr/share/i18n/SUPPORTED" ]; then + SELECTED_LOCALES="All locales" + else + SELECTED_LOCALES="$(echo "$GEN_LOCALES" | sort -u | tr '\n' ',' | sed -e 's/, */, /g' -e 's/, *$//g')" + fi + db_set locales/locales_to_be_generated "$SELECTED_LOCALES" +fi + +DEFAULT_ENVIRONMENT="$(cat /etc/environment /etc/default/locale 2>/dev/null | awk '/^LANG=/ {gsub("\"", ""); sub("LANG=", ""); lang=$0;} END {print lang}')" +DEFAULT_ENVIRONMENT="$(convert_locale "$DEFAULT_ENVIRONMENT")" +if ! echo "$SUPPORTED_LOCALES" | grep -q -e "\b$DEFAULT_ENVIRONMENT\b" ; then + db_set locales/default_environment_locale "$DEFAULT_ENVIRONMENT" +fi + +STATE=1 +while [ "$STATE" -ge 0 ]; do + case "$STATE" in + 0) + exit 1 + ;; + 1) + db_input medium locales/locales_to_be_generated || true + ;; + 2) + db_get locales/locales_to_be_generated || RET= + if expr ", $RET," : ".*, None,.*" >/dev/null 2>&1; then + # "None" was a choice in older packages + db_set locales/locales_to_be_generated "" + RET= + elif expr ", $RET," : ".*, All locales,.*" >/dev/null 2>&1; then + # When "All locales" is selected, other choices have to be dropped + db_set locales/locales_to_be_generated "All locales" + RET=$SUPPORTED_LOCALES + fi + DEFAULT_LOCALES="$(echo $RET | sed -e 's/ [^ ]*,/,/g' -e 's/ [^ ]*$//')" + if [ -n "$DEFAULT_LOCALES" ]; then + db_subst locales/default_environment_locale locales $DEFAULT_LOCALES + db_input medium locales/default_environment_locale || true + fi + ;; + *) + break + ;; + esac + if db_go; then + STATE=$(($STATE + 1)) + else + STATE=$(($STATE - 1)) + fi +done --- eglibc-2.12.1.orig/debian/debhelper.in/libc-bin.install +++ eglibc-2.12.1/debian/debhelper.in/libc-bin.install @@ -0,0 +1,19 @@ +debian/local/etc/* /etc +posix/gai.conf /etc +debian/tmp-libc/sbin/ldconfig sbin +debian/tmp-libc/usr/bin/catchsegv usr/bin +debian/tmp-libc/usr/bin/getconf usr/bin +debian/tmp-libc/usr/bin/getent usr/bin +debian/tmp-libc/usr/bin/iconv usr/bin +debian/tmp-libc/usr/bin/ldd usr/bin +debian/tmp-libc/usr/bin/localedef usr/bin +debian/tmp-libc/usr/bin/locale usr/bin +debian/tmp-libc/usr/bin/tzselect usr/bin +debian/tmp-libc/usr/lib/pt_chown usr/lib +debian/tmp-libc/usr/sbin/iconvconfig usr/sbin +debian/tmp-libc/usr/sbin/rpcinfo usr/bin +debian/tmp-libc/usr/sbin/zdump usr/bin +debian/tmp-libc/usr/sbin/zic usr/sbin + +debian/local/usr_sbin/update-locale usr/sbin +debian/local/usr_sbin/validlocale usr/sbin --- eglibc-2.12.1.orig/debian/debhelper.in/libc-alt.lintian-overrides +++ eglibc-2.12.1/debian/debhelper.in/libc-alt.lintian-overrides @@ -0,0 +1,15 @@ +# libpthread must be stripped specially; GDB needs the non-dynamic +# symbol table in order to load the thread debugging library. +LIBC-FLAVOR: unstripped-binary-or-object .SLIBDIR/libpthread-2.12.so + +# Those file are actually .o files not package in a ar archive, and +# thus should not be stripped +LIBC-FLAVOR: unstripped-binary-or-object .LIBDIR/libieee.a +LIBC-FLAVOR: unstripped-binary-or-object .LIBDIR/libmcheck.a + +# ld.so must be executable, otherwise the system will not work +LIBC-FLAVOR: shlib-with-executable-bit .SLIBDIR/ld-2.12.so 0755 + +# It is normal that the ELF dynamic linker does not need any other +# library +LIBC-FLAVOR: shared-lib-without-dependency-information .SLIBDIR/ld-2.12.so --- eglibc-2.12.1.orig/debian/wrapper/objcopy +++ eglibc-2.12.1/debian/wrapper/objcopy @@ -0,0 +1,11 @@ +#!/bin/sh + +case " $* " in +*" --only-keep-debug "*".so"*) + exec /usr/bin/objcopy -R .debug_info -R .debug_aranges -R .debug_pubnames \ + -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges \ + -R .debug_loc -R .comment -R .note "$@" + ;; +esac + +exec /usr/bin/objcopy "$@"