From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 22 05:29:20 2016 Received: (at submit) by debbugs.gnu.org; 22 Jan 2016 10:29:20 +0000 Received: from localhost ([127.0.0.1]:56999 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aMYy0-0003HB-QX for submit@debbugs.gnu.org; Fri, 22 Jan 2016 05:29:20 -0500 Received: from eggs.gnu.org ([208.118.235.92]:40594) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aMYxz-0003Gx-9K for submit@debbugs.gnu.org; Fri, 22 Jan 2016 05:29:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aMYxg-0006xl-2P for submit@debbugs.gnu.org; Fri, 22 Jan 2016 05:29:13 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:37919) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aMYxf-0006xh-T5 for submit@debbugs.gnu.org; Fri, 22 Jan 2016 05:28:59 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59737) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aMYxU-0002Ff-VT for bug-coreutils@gnu.org; Fri, 22 Jan 2016 05:28:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aMYxH-0006vJ-Dr for bug-coreutils@gnu.org; Fri, 22 Jan 2016 05:28:48 -0500 Received: from aserp1040.oracle.com ([141.146.126.69]:28918) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aMYxG-0006uX-TF for bug-coreutils@gnu.org; Fri, 22 Jan 2016 05:28:35 -0500 Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u0MASUWc013195 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Fri, 22 Jan 2016 10:28:31 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u0MASUL4019938 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Fri, 22 Jan 2016 10:28:30 GMT Received: from abhmp0014.oracle.com (abhmp0014.oracle.com [141.146.116.20]) by userv0122.oracle.com (8.14.4/8.13.8) with ESMTP id u0MASTtL021698 for ; Fri, 22 Jan 2016 10:28:29 GMT Received: from [10.0.1.5] (/50.136.242.202) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 22 Jan 2016 02:28:29 -0800 To: bug-coreutils@gnu.org From: Rich Burridge Subject: Relocation error with libstdbuf.so on Solaris SPARC with Studio compilation. Message-ID: <56A2044A.7070807@oracle.com> Date: Fri, 22 Jan 2016 02:28:26 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060709040603010004070507" X-Source-IP: aserv0021.oracle.com [141.146.126.233] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" This is a multi-part message in MIME format. --------------060709040603010004070507 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Hi, We've noticed an interesting problem recently with the version of stdbuf (really libstdbuf.so) from coreutils version 8.24 on SPARC in Solaris 12. If you do something like: $ stdbuf -oL echo it generates: ld.so.1: echo: fatal: relocation error: file /usr/lib/64/libstdbuf.so: symbol program_name: referenced symbol not found Killed but that same command works just fine for stdbuf and libstdbuf.so from 8.24 in Solaris 12 on x86. There's a similar problem for the 32-bit version as well. I'll use that to describe what's going on. I took the command we use to compile 32-bit libstdbuf.c on SPARC: $ /ws/on12-tools/SUNWspro/solarisstudio12.4/bin/cc -I. -I/builds/richb/22510525-coreutils/components/coreutils/coreutils-8.24 -I./lib -Ilib -I/builds/richb/22510525-coreutils/components/coreutils/coreutils-8.24/lib -Isrc -I/builds/richb/22510525-coreutils/components/coreutils/coreutils-8.24/src -I/usr/include/gmp -D_REENTRANT -fPIC -m32 -xO4 -xtarget=ultra2 -xarch=sparcvis -xchip=ultra2 -Qoption cg -xregs=no%appl -W2,-xwrap_int -xmemalign=8s -mt -c -o src/src_libstdbuf_so-libstdbuf.o `test -f 'src/libstdbuf.c' || echo '/builds/richb/22510525-coreutils/components/coreutils/coreutils-8.24/'`src/libstdbuf.c and adjusted that to use "-E" instead of "-c" and reran it to generate a self-contained lsb.c source file (attached). I then compiled/linked that on SPARC and x86 (using the commands that are generated by our Userland build environment) and noticed the following differences: x86: $ /ws/on12-tools/SUNWspro/solarisstudio12.4/bin/cc -fPIC -m32 -xO4 '-xchip=pentium' '-xregs=no%frameptr' -mt -shared -o lsb.so lsb.c "src/libstdbuf.c", line 97: warning: shift count negative or too big: << 63 $ elfdump lsb.so | grep program_name $ SPARC: $ /ws/on12-tools/SUNWspro/solarisstudio12.4/bin/cc -fPIC -m32 -xO4 '-xtarget=ultra2' '-xarch=sparcvis' '-xchip=ultra2' -Qoption cg '-xregs=no%appl' -W2,-xwrap_int '-xmemalign=8s' -mt -shared -o lsb.so lsb.c "src/libstdbuf.c", line 97: warning: shift count negative or too big: << 63 $ elfdump lsb.so | grep program_name [1] 0 0x4 OBJT GLOB D 0 UNDEF program_name [42] 0 0x4 OBJT GLOB D 0 UNDEF program_name 2 [1] program_name [1] 0x1177c 0 R_SPARC_GLOB_DAT program_name [12] R_SPARC_GLOB_DAT 0x1177c 0 0 .got program_name $ Now you can see from lsb.c that the code includes: extern const char *program_name; ... static inline void emit_try_help (void) { fprintf ( ( & __iob [ 2 ] ), gettext ( "Try '%s --help' for more information.\n" ), program_name); } It looks like the Studio compiler for x86 is nicely optimizing the emit_try_help() away as it's not being used, but the SPARC version of the Studio compiler isn't, and is causing the problem. (Note that this isn't a problem with GNU compiling/linking on Solaris for both x86 and SPARC). Now I can "fix" this by adding progname.o (where the program_name variable is defined) to libstdbuf.so as it's being linked. $ /ws/on12-tools/SUNWspro/solarisstudio12.4/bin/cc -fPIC -m32 -xO4 '-xarch=sparcvis' '-xchip=ultra2' '-xregs=no%appl' '-xtarget=ultra2' -Qoption cg -W2,-xwrap_int '-xmemalign=8s' -mt -shared -o mylsb.so build/sparcv7/lib/progname.o lsb.c "src/libstdbuf.c", line 97: warning: shift count negative or too big: << 63 $ elfdump mylsb.so | grep program_name [20] 0x11ae4 0x4 OBJT GLOB D 0 .data program_name [26] 0x1010 0xf0 FUNC GLOB D 0 .text set_program_name [63] 0x11ae4 0x4 OBJT GLOB D 0 .data program_name [69] 0x1010 0xf0 FUNC GLOB D 0 .text set_program_name [42] 0x1010 0xf0 FUNC GLOB D 0 .text set_program_name [36] 0x11ae4 0x4 OBJT GLOB D 0 .data program_name [20] program_name 26 [26] set_program_name [2] 0x11a10 0 R_SPARC_GLOB_DAT program_name [23] R_SPARC_HI22 0x10d4 0 0 .text program_name [24] R_SPARC_LO10 0x10d8 0 0 .text program_name [25] R_SPARC_GLOB_DAT 0x11a10 0 0 .got program_name but program_name really is an undefined variable here in this context, so I was wondering if there was a better fix that was needed here. Thanks in consideration. PS: Going to bed now; back online in a few hours... --------------060709040603010004070507 Content-Type: text/x-csrc; name="lsb.c" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="lsb.c" # 1 "src/libstdbuf.c" # 16 # 1 "./lib/config.h" # 9 # 12 # 15 # 18 # 21 # 24 # 27 # 31 # 34 # 48 # 56 # 59 # 76 # 89 # 96 # 100 # 103 # 107 # 120 # 124 # 127 # 142 # 150 # 153 # 157 # 161 # 171 # 174 # 182 # 185 # 190 # 194 # 198 # 202 # 206 # 210 # 214 # 218 # 222 # 226 # 230 # 234 # 238 # 242 # 246 # 250 # 254 # 258 # 262 # 266 # 270 # 274 # 278 # 284 # 289 # 293 # 297 # 301 # 305 # 309 # 312 # 315 # 318 # 321 # 324 # 328 # 331 # 334 # 337 # 340 # 343 # 346 # 349 # 352 # 355 # 358 # 361 # 364 # 367 # 370 # 373 # 376 # 379 # 382 # 385 # 388 # 391 # 394 # 397 # 400 # 403 # 406 # 409 # 412 # 415 # 418 # 421 # 424 # 427 # 430 # 433 # 436 # 439 # 442 # 445 # 448 # 451 # 454 # 457 # 460 # 463 # 466 # 469 # 472 # 475 # 478 # 481 # 484 # 487 # 490 # 493 # 496 # 499 # 502 # 505 # 508 # 511 # 514 # 517 # 520 # 523 # 526 # 529 # 532 # 535 # 538 # 541 # 544 # 547 # 550 # 553 # 556 # 559 # 562 # 565 # 568 # 571 # 574 # 577 # 580 # 583 # 586 # 589 # 592 # 595 # 598 # 601 # 604 # 607 # 610 # 613 # 616 # 619 # 622 # 625 # 628 # 631 # 634 # 637 # 640 # 643 # 646 # 649 # 652 # 655 # 658 # 661 # 664 # 667 # 670 # 673 # 676 # 679 # 682 # 685 # 688 # 691 # 694 # 697 # 700 # 703 # 706 # 709 # 712 # 715 # 718 # 721 # 724 # 727 # 730 # 733 # 736 # 739 # 743 # 747 # 751 # 826 # 833 # 837 # 840 # 843 # 858 # 864 # 868 # 871 # 874 # 880 # 883 # 887 # 891 # 894 # 900 # 903 # 906 # 909 # 912 # 916 # 920 # 928 # 932 # 936 # 939 # 943 # 947 # 952 # 956 # 960 # 964 # 968 # 972 # 976 # 980 # 984 # 988 # 992 # 996 # 1000 # 1004 # 1008 # 1012 # 1016 # 1020 # 1024 # 1028 # 1032 # 1036 # 1040 # 1044 # 1048 # 1052 # 1056 # 1060 # 1064 # 1068 # 1072 # 1076 # 1080 # 1084 # 1088 # 1092 # 1096 # 1100 # 1104 # 1108 # 1112 # 1116 # 1120 # 1123 # 1127 # 1131 # 1135 # 1140 # 1144 # 1148 # 1152 # 1156 # 1160 # 1164 # 1168 # 1172 # 1176 # 1180 # 1184 # 1188 # 1192 # 1196 # 1200 # 1204 # 1208 # 1212 # 1215 # 1219 # 1224 # 1228 # 1231 # 1236 # 1240 # 1244 # 1247 # 1252 # 1256 # 1260 # 1264 # 1268 # 1272 # 1276 # 1280 # 1283 # 1286 # 1289 # 1292 # 1298 # 1301 # 1304 # 1313 # 1316 # 1322 # 1325 # 1328 # 1331 # 1334 # 1337 # 1340 # 1347 # 1350 # 1353 # 1365 # 1368 # 1371 # 1374 # 1377 # 1386 # 1389 # 1392 # 1398 # 1404 # 1407 # 1411 # 1414 # 1417 # 1429 # 1432 # 1435 # 1438 # 1441 # 1444 # 1447 # 1453 # 1456 # 1459 # 1462 # 1465 # 1471 # 1474 # 1477 # 1480 # 1483 # 1486 # 1489 # 1495 # 1498 # 1507 # 1512 # 1521 # 1524 # 1528 # 1531 # 1534 # 1537 # 1543 # 1546 # 1549 # 1552 # 1555 # 1561 # 1564 # 1567 # 1570 # 1573 # 1576 # 1579 # 1585 # 1588 # 1594 # 1600 # 1603 # 1615 # 1618 # 1627 # 1630 # 1633 # 1636 # 1649 # 1652 # 1655 # 1659 # 1665 # 1668 # 1671 # 1674 # 1680 # 1683 # 1686 # 1699 # 1702 # 1705 # 1708 # 1717 # 1720 # 1730 # 1733 # 1736 # 1754 # 1760 # 1763 # 1781 # 1785 # 1788 # 1791 # 1794 # 1800 # 1812 # 1815 # 1818 # 1821 # 1824 # 1827 # 1830 # 1833 # 1836 # 1839 # 1842 # 1846 # 1849 # 1852 # 1855 # 1861 # 1867 # 1879 # 1882 # 1885 # 1894 # 1900 # 1903 # 1906 # 1909 # 1912 # 1915 # 1918 # 1921 # 1924 # 1927 # 1933 # 1936 # 1939 # 1942 # 1945 # 1948 # 1954 # 1959 # 1968 # 1972 # 1975 # 1978 # 1981 # 1984 # 1987 # 1990 # 1993 # 1996 # 1999 # 2002 # 2005 # 2008 # 2011 # 2014 # 2020 # 2023 # 2029 # 2032 # 2035 # 2038 # 2041 # 2054 # 2060 # 2063 # 2078 # 2084 # 2099 # 2114 # 2124 # 2127 # 2130 # 2133 # 2142 # 2145 # 2148 # 2151 # 2154 # 2157 # 2160 # 2163 # 2172 # 2175 # 2178 # 2181 # 2184 # 2187 # 2191 # 2197 # 2200 # 2203 # 2212 # 2215 # 2218 # 2224 # 2239 # 2242 # 2245 # 2248 # 2251 # 2254 # 2257 # 2263 # 2266 # 2269 # 2272 # 2275 # 2278 # 2284 # 2293 # 2302 # 2305 # 2311 # 2314 # 2317 # 2320 # 2326 # 2329 # 2332 # 2335 # 2338 # 2344 # 2348 # 2351 # 2354 # 2358 # 2361 # 2364 # 2367 # 2370 # 2373 # 2376 # 2379 # 2382 # 2385 # 2388 # 2391 # 2394 # 2397 # 2400 # 2406 # 2409 # 2415 # 2418 # 2421 # 2424 # 2427 # 2430 # 2433 # 2436 # 2439 # 2445 # 2448 # 2451 # 2457 # 2460 # 2464 # 2467 # 2470 # 2473 # 2482 # 2497 # 2501 # 2507 # 2519 # 2528 # 2531 # 2534 # 2538 # 2542 # 2545 # 2548 # 2563 # 2573 # 2577 # 2580 # 2584 # 2590 # 2612 # 2617 # 2621 # 2625 # 2629 # 2634 # 2639 # 2643 # 2648 # 2652 # 2656 # 2661 # 2669 # 2672 # 2677 # 2680 # 2684 # 2688 # 2692 # 2697 # 2701 # 2705 # 2708 # 2712 # 2722 # 2725 # 2728 # 2740 # 2743 # 2746 # 2749 # 2755 # 2762 # 2769 # 2772 # 2776 # 2782 # 2786 # 2790 # 2794 # 2801 # 2805 # 2812 # 2823 # 2827 # 2831 # 2835 # 2837 # 2841 # 2848 # 2854 # 2861 # 2865 # 2869 # 2873 # 2877 # 2887 # 2893 # 2911 # 2914 # 2924 # 2933 # 2943 # 2946 # 2950 # 2956 # 2963 # 2969 # 2973 # 2977 # 2981 # 2985 # 2989 # 2993 # 2995 # 2999 # 3005 # 3011 # 3014 # 3021 # 3031 # 3043 # 3046 # 3052 # 3062 # 3081 # 3085 # 3089 # 3096 # 3100 # 3103 # 3106 # 3110 # 3176 # 3201 # 3207 # 3213 # 3219 # 3223 # 3225 # 3241 # 3262 # 3274 # 3278 # 3281 # 3284 # 3287 # 3290 # 3293 # 3296 # 3299 # 3302 # 3305 # 3308 # 3311 # 3314 # 3317 # 3320 # 3325 # 3334 # 3358 # 3361 # 3371 # 3378 # 3385 # 3395 # 1 "./lib/stdio.h" # 18 # 22 # 36 # 39 # 41 # 1 "lib/stdio.h" # 18 # 22 # 25 # 32 # 1 "/usr/include/stdio.h" # 4 # 11 # 14 # 1 "/usr/include/sys/feature_tests.h" # 4 # 7 # 21 # 1 "/usr/include/sys/ccompile.h" # 4 # 7 # 12 # 16 # 26 # 36 # 65 # 73 # 80 # 85 # 92 # 99 # 104 # 111 # 114 # 120 # 124 # 133 # 135 # 140 # 1 "/usr/include/sys/isa_defs.h" # 5 # 8 # 194 # 198 # 345 # 352 # 362 # 383 # 392 # 398 # 407 # 409 # 417 # 449 # 456 # 460 # 464 # 24 "/usr/include/sys/feature_tests.h" # 28 # 43 # 80 # 84 # 89 # 134 # 141 # 145 # 152 # 192 # 220 # 277 # 326 # 353 # 358 # 379 # 395 # 404 # 418 # 424 # 430 # 438 # 443 # 449 # 453 # 16 "/usr/include/stdio.h" # 20 # 27 # 43 # 59 # 61 # 65 # 1 "/usr/include/iso/stdio_iso.h" # 4 # 19 # 23 # 26 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "/usr/include/sys/va_list.h" # 8 # 11 # 31 # 44 # 1 "/usr/include/sys/isa_defs.h" # 5 # 46 "/usr/include/sys/va_list.h" # 50 # 56 # 58 # 61 # 68 # 102 typedef void *__va_list; # 106 # 110 # 1 "/usr/include/stdio_tag.h" # 4 # 7 # 11 # 18 typedef struct __FILE __FILE; # 20 # 24 # 1 "/usr/include/stdio_impl.h" # 4 # 7 # 1 "/usr/include/sys/isa_defs.h" # 5 # 9 "/usr/include/stdio_impl.h" # 13 # 25 struct __FILE { # 32 int _cnt; unsigned char *_ptr; # 35 unsigned char *_base; unsigned char _flag; unsigned char _magic; unsigned __orientation:2; unsigned __ionolock:1; unsigned __seekable:1; unsigned __extendedfd:1; unsigned __xf_nocheck:1; unsigned __filler:10; }; # 48 # 52 # 31 "/usr/include/iso/stdio_iso.h" # 35 # 43 # 47 # 49 # 55 typedef long long __longlong_t; # 64 # 68 # 71 typedef __FILE FILE; # 73 # 79 typedef unsigned int size_t; # 82 # 84 typedef long fpos_t; # 88 # 92 # 104 # 106 # 118 # 120 # 126 # 131 # 135 # 138 # 143 # 145 # 151 # 153 extern __FILE __iob[ 20 ]; # 163 # 167 # 213 # 240 # 242 extern int remove(const char *); extern int rename(const char *, const char *); extern FILE *tmpfile(void); extern char *tmpnam(char *); extern int fclose(FILE *); extern int fflush(FILE *); extern FILE *fopen(const char *, const char *); extern FILE *freopen(const char *, const char *, FILE *); extern void setbuf(FILE *, char *); extern int setvbuf(FILE *, char *, int, size_t); extern int fprintf(FILE *, const char *, ...); extern int fscanf(FILE *, const char *, ...); extern int printf(const char *, ...); extern int scanf(const char *, ...); extern int sprintf(char *, const char *, ...); extern int sscanf(const char *, const char *, ...); extern int vfprintf(FILE *, const char *, __va_list); extern int vprintf(const char *, __va_list); extern int vsprintf(char *, const char *, __va_list); extern int fgetc(FILE *); extern char *fgets(char *, int, FILE *); extern int fputc(int, FILE *); extern int fputs(const char *, FILE *); extern int getc(FILE *); extern int putc(int, FILE *); extern int getchar(void); extern int putchar(int); # 282 extern char *gets(char *) __attribute__ ( ( __deprecated__ ) ); # 284 extern int puts(const char *); extern int ungetc(int, FILE *); extern size_t fread(void *, size_t, size_t, FILE *); extern size_t fwrite(const void *, size_t, size_t, FILE *); # 291 extern int fgetpos(FILE *, fpos_t *); extern int fsetpos(FILE *, const fpos_t *); # 294 extern int fseek(FILE *, long, int); extern long ftell(FILE *); extern void rewind(FILE *); extern void clearerr(FILE *); extern int feof(FILE *); extern int ferror(FILE *); extern void perror(const char *); # 303 extern int __filbuf(FILE *); extern int __flsbuf(int, FILE *); # 306 # 357 # 361 # 365 # 67 "/usr/include/stdio.h" # 75 # 151 # 1 "/usr/include/iso/stdio_c99.h" # 4 # 15 # 18 # 22 # 30 # 33 # 49 # 51 extern int vfscanf(FILE *, const char *, __va_list); extern int vscanf(const char *, __va_list); extern int vsscanf(const char *, const char *, __va_list); # 65 extern int snprintf(char *, size_t, const char *, ...); extern int vsnprintf(char *, size_t, const char *, __va_list); # 74 # 76 # 80 # 157 "/usr/include/stdio.h" # 161 # 165 # 170 typedef long off_t; # 178 typedef __longlong_t off64_t; # 183 # 188 typedef __longlong_t fpos64_t; # 191 # 201 # 204 # 206 # 211 # 213 # 217 # 220 # 222 extern unsigned char _sibuf[], _sobuf[]; # 224 # 268 # 270 extern unsigned char *_bufendtab[]; extern FILE *_lastbuf; # 273 # 291 # 297 typedef int ssize_t; # 300 # 302 # 305 extern char *tmpnam_r(char *); # 307 # 310 extern int fcloseall(void); extern void setbuffer(FILE *, char *, size_t); extern int setlinebuf(FILE *); extern int asprintf(char **, const char *, ...); extern int vasprintf(char **, const char *, __va_list); # 318 # 322 extern int dprintf(int, const char *, ...); extern int vdprintf(int, const char *, __va_list); extern int renameat(int, const char *, int, const char *); extern ssize_t getdelim(char **, size_t *, int, FILE *); extern ssize_t getline(char **, size_t *, FILE *); extern FILE *fmemopen(void *, size_t, const char *); extern FILE *open_memstream(char **, size_t *); # 334 # 340 extern FILE *fdopen(int, const char *); extern char *ctermid(char *); extern int fileno(FILE *); # 344 # 351 extern void flockfile(FILE *); extern int ftrylockfile(FILE *); extern void funlockfile(FILE *); extern int getc_unlocked(FILE *); extern int getchar_unlocked(void); extern int putc_unlocked(int, FILE *); extern int putchar_unlocked(int); # 360 # 366 extern FILE *popen(const char *, const char *); extern char *tempnam(const char *, const char *); extern int pclose(FILE *); # 370 extern int getsubopt(char **, char *const *, char **); # 372 # 375 extern char *cuserid(char *); extern int getopt(int, char *const *, const char *); extern char *optarg; extern int optind, opterr, optopt; extern int getw(FILE *); extern int putw(int, FILE *); # 382 # 384 # 391 extern int fseeko(FILE *, off_t, int); extern off_t ftello(FILE *); # 394 # 401 extern FILE *fopen64(const char *, const char *); extern FILE *freopen64(const char *, const char *, FILE *); extern FILE *tmpfile64(void); extern int fgetpos64(FILE *, fpos64_t *); extern int fsetpos64(FILE *, const fpos64_t *); extern int fseeko64(FILE *, off64_t, int); extern off64_t ftello64(FILE *); # 415 # 501 # 503 # 529 # 531 # 535 # 34 "lib/stdio.h" # 44 "./lib/stdio.h" # 46 # 49 # 1 "/usr/include/stdarg.h" # 8 # 11 # 23 # 25 # 1 "/usr/include/iso/stdarg_iso.h" # 8 # 20 # 23 # 34 # 1 "/usr/include/sys/va_impl.h" # 8 # 11 # 27 # 43 # 52 # 67 # 80 # 1 "/usr/include/sys/va_list.h" # 8 # 82 "/usr/include/sys/va_impl.h" # 86 # 118 # 125 # 152 # 156 # 36 "/usr/include/iso/stdarg_iso.h" # 40 # 47 typedef __va_list va_list; # 49 # 53 # 57 # 1 "/usr/include/iso/stdarg_c99.h" # 8 # 11 # 27 # 1 "/usr/include/sys/feature_tests.h" # 4 # 29 "/usr/include/iso/stdarg_c99.h" # 33 # 42 # 44 # 46 # 50 # 28 "/usr/include/stdarg.h" # 36 # 42 # 52 "./lib/stdio.h" # 1 "./lib/stddef.h" # 18 # 25 # 29 # 49 # 52 # 1 "lib/stddef.h" # 18 # 25 # 29 # 49 # 52 # 1 "/usr/include/stddef.h" # 8 # 11 # 1 "/usr/include/sys/isa_defs.h" # 5 # 1 "/usr/include/iso/stddef_iso.h" # 8 # 20 # 23 # 1 "/usr/include/sys/isa_defs.h" # 5 # 25 "/usr/include/iso/stddef_iso.h" # 29 # 33 # 45 # 51 typedef int ptrdiff_t; # 54 # 63 # 67 # 71 # 75 # 81 # 85 # 14 "/usr/include/stddef.h" # 23 # 27 # 47 typedef long wchar_t; # 51 # 69 # 56 "lib/stddef.h" # 76 # 79 # 84 # 87 # 98 typedef union { char *__p ; double __d ; long double __ld ; long int __i ; } max_align_t; # 106 # 56 "./lib/stddef.h" # 76 # 54 "./lib/stdio.h" # 1 "./lib/sys/types.h" # 18 # 22 # 25 # 1 "lib/sys/types.h" # 18 # 22 # 25 # 1 "/usr/include/sys/types.h" # 4 # 10 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "/usr/include/sys/isa_defs.h" # 5 # 13 "/usr/include/sys/types.h" # 1 "/usr/include/sys/machtypes.h" # 4 # 11 # 1 "/usr/include/sys/feature_tests.h" # 4 # 13 "/usr/include/sys/machtypes.h" # 17 # 23 # 26 typedef struct _label_t { long val[2]; } label_t; # 30 # 39 typedef unsigned int lock_t; # 44 # 18 "/usr/include/sys/types.h" # 1 "/usr/include/sys/int_types.h" # 4 # 7 # 30 # 1 "/usr/include/sys/feature_tests.h" # 4 # 32 "/usr/include/sys/int_types.h" # 36 # 51 typedef char int8_t; # 57 typedef short int16_t; typedef int int32_t; # 65 typedef long long int64_t; # 68 typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; # 76 typedef unsigned long long uint64_t; # 79 # 85 typedef int64_t intmax_t; typedef uint64_t uintmax_t; # 91 # 101 typedef int intptr_t; typedef unsigned int uintptr_t; # 104 # 110 typedef char int_fast8_t; # 116 typedef int int_fast16_t; typedef int int_fast32_t; # 122 typedef long long int_fast64_t; # 125 typedef unsigned char uint_fast8_t; typedef unsigned int uint_fast16_t; typedef unsigned int uint_fast32_t; # 133 typedef unsigned long long uint_fast64_t; # 136 # 142 typedef char int_least8_t; # 148 typedef short int_least16_t; typedef int int_least32_t; # 154 typedef long long int_least64_t; # 157 typedef unsigned char uint_least8_t; typedef unsigned short uint_least16_t; typedef unsigned int uint_least32_t; # 165 typedef unsigned long long uint_least64_t; # 168 # 172 # 31 "/usr/include/sys/types.h" # 35 # 39 # 46 typedef long long longlong_t; typedef unsigned long long u_longlong_t; # 59 # 69 typedef long t_scalar_t; typedef unsigned long t_uscalar_t; # 72 # 76 typedef unsigned char uchar_t; typedef unsigned short ushort_t; typedef unsigned int uint_t; typedef unsigned long ulong_t; typedef char *caddr_t; typedef long daddr_t; typedef short cnt_t; # 93 # 97 typedef ulong_t pfn_t; typedef ulong_t pgcnt_t; typedef long spgcnt_t; typedef uchar_t use_t; typedef short sysid_t; typedef short index_t; typedef void *timeout_id_t; typedef void *bufcall_id_t; # 133 # 135 typedef ulong_t ino_t; typedef long blkcnt_t; typedef ulong_t fsblkcnt_t; typedef ulong_t fsfilcnt_t; # 145 # 153 typedef u_longlong_t ino64_t; typedef longlong_t blkcnt64_t; typedef u_longlong_t fsblkcnt64_t; typedef u_longlong_t fsfilcnt64_t; # 159 # 163 typedef long blksize_t; # 165 # 169 typedef enum { B_FALSE = 0, B_TRUE = 1, _B_FALSE = 0, _B_TRUE = 1 } boolean_t; # 176 # 180 # 194 typedef int64_t pad64_t; typedef uint64_t upad64_t; # 207 typedef union { long double _q; int32_t _l[4]; } pad128_t; typedef union { long double _q; uint32_t _l[4]; } upad128_t; typedef longlong_t offset_t; typedef u_longlong_t u_offset_t; typedef u_longlong_t len_t; typedef u_longlong_t diskaddr_t; # 225 # 240 # 242 typedef union { offset_t _f; struct { int32_t _u; int32_t _l; } _p; } lloff_t; # 250 # 260 # 262 typedef union { longlong_t _f; struct { int32_t _u; int32_t _l; } _p; } lldaddr_t; # 270 typedef uint_t k_fltset_t; # 285 typedef long id_t; # 287 typedef id_t lgrp_id_t; # 294 typedef uint_t useconds_t; # 298 typedef long suseconds_t; # 300 # 308 typedef ulong_t major_t; typedef ulong_t minor_t; # 311 # 315 typedef short pri_t; # 321 typedef ushort_t cpu_flag_t; # 334 typedef ushort_t o_mode_t; typedef short o_dev_t; typedef ushort_t o_uid_t; typedef o_uid_t o_gid_t; typedef short o_nlink_t; typedef short o_pid_t; typedef ushort_t o_ino_t; # 346 typedef int key_t; # 350 typedef ulong_t mode_t; # 352 # 355 typedef unsigned int uid_t; # 357 typedef uid_t gid_t; typedef uint32_t datalink_id_t; typedef uint32_t vrid_t; typedef id_t taskid_t; typedef id_t projid_t; typedef id_t poolid_t; typedef id_t zoneid_t; typedef id_t ctid_t; # 374 typedef uint_t pthread_t; typedef uint_t pthread_key_t; # 382 typedef struct _pthread_mutex { struct { uint16_t __pthread_mutex_flag1; uint8_t __pthread_mutex_flag2; uint8_t __pthread_mutex_ceiling; uint16_t __pthread_mutex_type; uint16_t __pthread_mutex_magic; } __pthread_mutex_flags; union { struct { uint8_t __pthread_mutex_pad[8]; } __pthread_mutex_lock64; struct { uint32_t __pthread_ownerpid; uint32_t __pthread_lockword; } __pthread_mutex_lock32; upad64_t __pthread_mutex_owner64; } __pthread_mutex_lock; upad64_t __pthread_mutex_data; } pthread_mutex_t; typedef struct _pthread_cond { struct { uint8_t __pthread_cond_flag[4]; uint16_t __pthread_cond_type; uint16_t __pthread_cond_magic; } __pthread_cond_flags; upad64_t __pthread_cond_data; } pthread_cond_t; # 416 typedef struct _pthread_rwlock { int32_t __pthread_rwlock_readers; uint16_t __pthread_rwlock_type; uint16_t __pthread_rwlock_magic; pthread_mutex_t __pthread_rwlock_mutex; pthread_cond_t __pthread_rwlock_readercv; pthread_cond_t __pthread_rwlock_writercv; } pthread_rwlock_t; # 428 typedef struct { uint32_t __pthread_barrier_count; uint32_t __pthread_barrier_current; upad64_t __pthread_barrier_cycle; upad64_t __pthread_barrier_reserved; pthread_mutex_t __pthread_barrier_lock; pthread_cond_t __pthread_barrier_cond; } pthread_barrier_t; typedef pthread_mutex_t pthread_spinlock_t; # 442 typedef struct _pthread_attr { void *__pthread_attrp; } pthread_attr_t; # 449 typedef struct _pthread_mutexattr { void *__pthread_mutexattrp; } pthread_mutexattr_t; # 456 typedef struct _pthread_condattr { void *__pthread_condattrp; } pthread_condattr_t; # 463 typedef struct _once { upad64_t __pthread_once_pad[4]; } pthread_once_t; # 471 typedef struct _pthread_rwlockattr { void *__pthread_rwlockattrp; } pthread_rwlockattr_t; # 479 typedef struct { void *__pthread_barrierattrp; } pthread_barrierattr_t; typedef ulong_t dev_t; # 489 typedef ulong_t nlink_t; typedef long pid_t; # 492 # 501 # 510 # 513 typedef long time_t; # 515 # 518 typedef long clock_t; # 520 # 523 typedef int clockid_t; # 525 # 528 typedef int timer_t; # 530 # 532 typedef unsigned char unchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; # 572 # 574 # 582 # 589 # 597 # 605 # 612 # 615 typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef struct _quad { int val[2]; } quad_t; typedef quad_t quad; # 633 typedef struct klgrpset { ulong_t klgb[ 6 ]; } klgrpset_t; # 640 # 1 "./lib/sys/select.h" # 17 # 21 # 34 # 1 "lib/sys/select.h" # 17 # 21 # 71 # 73 # 1 "./lib/sys/types.h" # 18 # 22 # 25 # 1 "lib/sys/types.h" # 18 # 22 # 25 # 1 "/usr/include/sys/types.h" # 4 # 30 "lib/sys/types.h" # 33 # 45 # 52 # 30 "./lib/sys/types.h" # 78 "lib/sys/select.h" # 80 # 1 "./lib/sys/time.h" # 18 # 22 # 26 # 36 # 1 "lib/sys/time.h" # 18 # 22 # 26 # 36 # 1 "/usr/include/sys/time.h" # 10 # 14 # 17 # 1 "/usr/include/sys/feature_tests.h" # 4 # 19 "/usr/include/sys/time.h" # 24 # 28 # 32 # 37 # 42 struct timeval { time_t tv_sec; suseconds_t tv_usec; }; # 69 # 72 # 75 struct timezone { int tz_minuteswest; int tz_dsttime; }; # 82 # 86 # 1 "./lib/sys/types.h" # 18 # 22 # 95 "/usr/include/sys/time.h" # 99 # 101 # 113 # 124 # 126 # 167 # 180 # 182 # 184 # 191 # 194 # 198 struct itimerval { struct timeval it_interval; struct timeval it_value; }; # 227 # 230 # 237 # 239 # 241 # 245 typedef longlong_t hrtime_t; # 377 # 380 int adjtime(struct timeval *, struct timeval *); int futimesat(int, const char *, const struct timeval *); # 387 # 390 # 392 int getitimer(int, struct itimerval *); int utimes(const char *, const struct timeval *); # 399 int setitimer(int, struct itimerval *, struct itimerval *); # 402 # 410 # 426 # 431 int settimeofday(struct timeval *, void *); # 433 hrtime_t gethrtime(void); hrtime_t gethrvtime(void); # 440 # 442 # 445 # 450 int gettimeofday(struct timeval *, void *); # 455 # 457 # 1 "./lib/time.h" # 18 # 22 # 36 # 38 # 1 "lib/time.h" # 18 # 22 # 32 # 1 "/usr/include/time.h" # 4 # 10 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "/usr/include/iso/time_iso.h" # 8 # 20 # 23 # 1 "/usr/include/sys/feature_tests.h" # 4 # 25 "/usr/include/iso/time_iso.h" # 29 # 33 # 37 # 49 # 58 # 63 # 68 # 70 struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; }; # 85 extern char *asctime(const struct tm *); extern clock_t clock(void); extern char *ctime(const time_t *); extern double difftime(time_t, time_t); extern struct tm *gmtime(const time_t *); extern struct tm *localtime(const time_t *); extern time_t mktime(struct tm *); extern time_t time(time_t *); # 106 # 116 extern size_t strftime(char *, size_t, const char *, const struct tm *); # 143 # 147 # 151 # 1 "./lib/sys/types.h" # 18 # 22 # 1 "/usr/include/sys/time_impl.h" # 4 # 14 # 17 # 1 "/usr/include/sys/feature_tests.h" # 4 # 19 "/usr/include/sys/time_impl.h" # 23 # 25 # 30 # 34 # 47 # 49 typedef struct timespec { time_t tv_sec; long tv_nsec; } timespec_t; typedef struct timespec timestruc_t; # 57 # 61 # 95 # 103 # 107 typedef struct itimerspec { struct timespec it_interval; struct timespec it_value; } itimerspec_t; # 129 # 131 # 140 # 144 # 147 # 151 # 18 "/usr/include/time.h" # 46 # 50 # 55 # 60 # 65 typedef struct _LC_locale_t **locale_t; # 68 # 70 # 74 extern struct tm *gmtime_r(const time_t *, struct tm *); extern struct tm *localtime_r(const time_t *, struct tm *); # 79 # 82 extern time_t timegm(struct tm *); extern time_t timelocal(struct tm *); # 85 # 88 # 110 # 119 # 121 extern char *strptime(const char *, const char *, struct tm *); # 126 # 129 # 142 union sigval { int sival_int; void *sival_ptr; }; # 147 # 150 struct sigevent { int sigev_notify; int sigev_signo; union sigval sigev_value; void (*sigev_notify_function)(union sigval); pthread_attr_t *sigev_notify_attributes; int __sigev_pad2; }; # 159 extern int clock_getres(clockid_t, struct timespec *); extern int clock_gettime(clockid_t, struct timespec *); extern int clock_settime(clockid_t, const struct timespec *); extern int timer_create(clockid_t, struct sigevent *, timer_t *); extern int timer_delete(timer_t); extern int timer_getoverrun(timer_t); extern int timer_gettime(timer_t, struct itimerspec *); extern int timer_settime(timer_t, int, const struct itimerspec *, struct itimerspec *); extern int nanosleep(const struct timespec *, struct timespec *); extern int clock_nanosleep(clockid_t, int, const struct timespec *, struct timespec *); # 176 # 179 extern void tzset(void); extern char *tzname[2]; # 186 extern long _sysconf(int); # 188 # 191 # 194 extern long timezone; extern int daylight; # 197 # 199 # 202 extern int cftime(char *, char *, const time_t *); extern int ascftime(char *, const char *, const struct tm *); extern long altzone; # 206 # 209 extern struct tm *getdate(const char *); # 212 extern int *_getdate_err_addr(void); # 214 # 217 extern size_t strftime_l(char *, size_t, const char *, const struct tm *, locale_t); # 220 # 282 # 286 # 318 # 322 # 324 # 326 #pragma redefine_extname ctime_r __posix_ctime_r #pragma redefine_extname asctime_r __posix_asctime_r # 330 extern char *asctime_r(const struct tm *, char *); extern char *ctime_r(const time_t *, char *); # 358 # 365 # 413 # 415 # 419 # 34 "lib/time.h" # 40 "./lib/time.h" # 1 "./lib/stddef.h" # 18 # 25 # 29 # 49 # 43 "./lib/time.h" # 47 # 106 # 114 # 126 # 136 # 156 # 174 # 199 # 217 # 242 # 270 # 298 # 300 # 312 # 315 # 329 # 350 # 360 # 395 # 397 # 402 struct __time_t_must_be_integral { unsigned int __floating_time_t_unsupported : (time_t) 1; }; # 407 # 427 extern int _gl_cxxalias_dummy ; # 430 extern int _gl_cxxalias_dummy ; # 432 # 439 extern time_t rpl_mktime ( struct tm * __tp ); extern int _gl_cxxalias_dummy ; # 444 extern int _gl_cxxalias_dummy ; # 446 # 467 extern int _gl_cxxalias_dummy ; # 471 extern int _gl_cxxalias_dummy ; # 489 extern int _gl_cxxalias_dummy ; # 493 extern int _gl_cxxalias_dummy ; # 496 # 510 extern int _gl_cxxalias_dummy ; # 512 extern int _gl_cxxalias_dummy ; # 514 # 525 extern int _gl_cxxalias_dummy ; # 527 extern int _gl_cxxalias_dummy ; # 529 # 545 # 563 # 587 # 473 "/usr/include/sys/time.h" # 1 "./lib/sys/select.h" # 17 # 21 # 47 # 1 "lib/sys/select.h" # 17 # 21 # 71 # 73 # 1 "./lib/sys/types.h" # 18 # 22 # 78 "lib/sys/select.h" # 80 # 1 "./lib/sys/time.h" # 18 # 22 # 26 # 1 "lib/sys/time.h" # 18 # 22 # 26 # 1 "/usr/include/sys/time.h" # 10 # 14 # 89 "lib/sys/select.h" # 1 "./lib/string.h" # 18 # 22 # 34 # 37 # 39 # 1 "lib/string.h" # 18 # 22 # 25 # 30 # 1 "/usr/include/string.h" # 4 # 10 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "/usr/include/iso/string_iso.h" # 8 # 20 # 23 # 1 "/usr/include/sys/feature_tests.h" # 4 # 25 "/usr/include/iso/string_iso.h" # 29 # 33 # 37 # 46 # 59 # 82 # 84 extern int memcmp(const void *, const void *, size_t); extern void *memcpy(void *, const void *, size_t); extern void *memmove(void *, const void *, size_t); extern void *memset(void *, int, size_t); extern char *strcat(char *, const char *); extern int strcmp(const char *, const char *); extern char *strcpy(char *, const char *); extern int strcoll(const char *, const char *); extern size_t strcspn(const char *, const char *); extern char *strerror(int); extern size_t strlen(const char *); extern char *strncat(char *, const char *, size_t); extern int strncmp(const char *, const char *, size_t); extern char *strncpy(char *, const char *, size_t); extern size_t strspn(const char *, const char *); extern char *strtok(char *, const char *); extern size_t strxfrm(char *, const char *, size_t); # 155 extern void *memchr(const void *, int, size_t); extern char *strchr(const char *, int); extern char *strpbrk(const char *, const char *); extern char *strrchr(const char *, int); extern char *strstr(const char *, const char *); # 161 # 188 # 192 # 196 # 13 "/usr/include/string.h" # 58 # 62 # 71 # 73 # 77 extern int strerror_r(int, char *, size_t); # 79 # 83 extern char *strtok_r(char *, const char *, char **); # 86 # 89 extern void *memccpy(void *, const void *, int, size_t); # 92 # 96 extern char *stpcpy(char *, const char *); extern char *stpncpy(char *, const char *, size_t); extern char *strndup(const char *, size_t); extern size_t strnlen(const char *, size_t); extern char *strsignal(int); # 103 # 106 # 120 extern int uucopy(const void *, void *, size_t); extern int uucopystr(const void *, void *, size_t); extern int ffs(int); extern int ffsl(long); extern int ffsll(long long); extern int fls(int); extern int flsl(long); extern int flsll(long long); extern void *memmem(const void *, size_t, const void *, size_t); extern int strcasecmp(const char *, const char *); extern int strncasecmp(const char *, const char *, size_t); extern char *strcasestr(const char *, const char *); extern char *strnstr(const char *, const char *, size_t); extern size_t strlcpy(char *, const char *, size_t); extern size_t strlcat(char *, const char *, size_t); extern char *strsep(char **stringp, const char *delim); extern char *strchrnul(const char *, int); # 140 # 144 extern char *strdup(const char *); # 146 # 175 # 178 # 185 extern void *__builtin_alloca(size_t); extern __thread char *__strdupa_str; extern __thread size_t __strdupa_len; # 193 # 201 # 204 # 208 extern int strcoll_l(const char *, const char *, locale_t); extern char *strerror_l(int, locale_t); extern size_t strxfrm_l(char *, const char *, size_t, locale_t); # 213 # 289 # 293 # 32 "lib/string.h" # 42 "./lib/string.h" # 44 # 47 # 1 "./lib/stddef.h" # 18 # 25 # 29 # 49 # 50 "./lib/string.h" # 55 # 63 # 70 # 327 # 339 # 356 # 377 # 387 # 402 # 417 # 435 # 438 extern int _gl_cxxalias_dummy ; # 448 extern int _gl_cxxalias_dummy ; # 456 # 492 # 497 extern void * mempcpy ( void * __restrict__ __dest , void const * __restrict__ __src , size_t __n ) ; # 502 extern int _gl_cxxalias_dummy ; # 505 extern int _gl_cxxalias_dummy ; # 513 # 517 extern void * memrchr ( void const * , int , size_t ) ; # 521 # 524 extern int _gl_cxxalias_dummy ; # 532 extern int _gl_cxxalias_dummy ; # 541 # 571 # 579 extern int _gl_cxxalias_dummy ; # 581 extern int _gl_cxxalias_dummy ; # 589 # 612 extern int _gl_cxxalias_dummy ; # 616 extern int _gl_cxxalias_dummy ; # 624 # 634 # 673 # 691 extern int _gl_cxxalias_dummy ; # 693 extern int _gl_cxxalias_dummy ; # 701 # 709 extern char * rpl_strncat ( char * dest , const char * src , size_t n ) ; # 711 extern int _gl_cxxalias_dummy ; # 715 extern int _gl_cxxalias_dummy ; # 723 # 739 extern int _gl_cxxalias_dummy ; # 741 extern int _gl_cxxalias_dummy ; # 749 # 769 extern int _gl_cxxalias_dummy ; # 771 extern int _gl_cxxalias_dummy ; # 779 # 791 # 799 # 802 extern int _gl_cxxalias_dummy ; # 811 extern int _gl_cxxalias_dummy ; # 830 # 840 # 850 # 889 # 900 # 903 extern int _gl_cxxalias_dummy ; # 913 extern int _gl_cxxalias_dummy ; # 928 # 977 # 1040 # 1044 # 1046 # 1060 extern size_t mbslen ( const char * string ) ; # 1063 extern int _gl_cxxalias_dummy ; # 1065 extern int _gl_cxxalias_dummy ; # 1067 # 1075 # 1097 # 1119 # 1121 # 1125 extern char * mbsstr (const char *haystack, const char *needle) ; # 1129 # 1131 # 1137 extern int mbscasecmp (const char *s1, const char *s2) ; # 1141 # 1156 # 1170 # 1181 # 1192 # 1214 # 1225 # 1244 # 1265 # 1273 extern char * rpl_strerror ( int ); extern int _gl_cxxalias_dummy ; # 1278 extern int _gl_cxxalias_dummy ; # 1285 # 1314 # 1320 extern char * rpl_strsignal ( int __sig ); extern int _gl_cxxalias_dummy ; # 1330 extern int _gl_cxxalias_dummy ; # 1338 # 1354 # 97 "lib/sys/select.h" # 1 "/usr/include/sys/select.h" # 4 # 17 # 20 # 1 "/usr/include/sys/feature_tests.h" # 4 # 22 "/usr/include/sys/select.h" # 1 "/usr/include/sys/time_impl.h" # 4 # 14 # 1 "./lib/sys/time.h" # 18 # 22 # 26 # 1 "lib/sys/time.h" # 18 # 22 # 26 # 1 "/usr/include/sys/time.h" # 10 # 14 # 29 "/usr/include/sys/select.h" # 33 # 36 # 48 typedef struct { unsigned int __sigbits[4]; } sigset_t; # 52 # 54 # 80 # 82 typedef unsigned long fd_mask; # 84 typedef unsigned long fds_mask; # 96 # 101 # 108 # 110 typedef struct fd_set { # 114 unsigned long fds_bits[ ( ( ( 1024 ) + ( ( ( sizeof ( fds_mask ) * 8 ) ) - 1 ) ) / ( ( sizeof ( fds_mask ) * 8 ) ) )]; } fd_set; # 119 # 122 # 125 # 131 # 134 extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); # 138 extern int pselect(int, fd_set *, fd_set *, fd_set *, const struct timespec *, const sigset_t *); # 142 # 150 # 154 # 100 "lib/sys/select.h" # 102 # 1 "./lib/signal.h" # 18 # 22 # 39 # 42 # 44 # 1 "./lib/sys/types.h" # 18 # 22 # 50 "./lib/signal.h" # 1 "lib/signal.h" # 18 # 22 # 25 # 35 # 1 "/usr/include/signal.h" # 4 # 10 # 1 "/usr/include/sys/feature_tests.h" # 4 # 12 "/usr/include/signal.h" # 1 "./lib/sys/types.h" # 18 # 22 # 17 "/usr/include/signal.h" # 1 "/usr/include/iso/signal_iso.h" # 8 # 20 # 23 # 1 "/usr/include/sys/iso/signal_iso.h" # 4 # 19 # 22 # 1 "/usr/include/sys/unistd.h" # 6 # 10 # 16 # 19 # 1 "/usr/include/sys/feature_tests.h" # 4 # 21 "/usr/include/sys/unistd.h" # 25 # 29 # 33 # 38 # 43 # 61 # 81 # 103 # 115 # 120 # 125 # 153 # 174 # 178 # 184 # 189 # 192 # 208 # 219 # 240 # 249 # 290 # 293 # 302 # 305 # 318 # 322 # 336 # 338 # 346 # 353 # 358 # 364 # 371 # 381 # 391 # 406 # 410 # 414 # 418 # 444 # 449 # 452 # 456 # 24 "/usr/include/sys/iso/signal_iso.h" # 28 # 73 # 77 extern long _sysconf(int); # 80 # 90 # 99 # 104 # 106 # 110 # 114 # 27 "/usr/include/iso/signal_iso.h" # 31 # 35 typedef int sig_atomic_t; # 39 # 43 extern void (*signal(int, void (*)(int)))(int); # 45 extern int raise(int); # 53 # 57 # 61 # 1 "/usr/include/sys/signal.h" # 4 # 17 # 20 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "/usr/include/sys/iso/signal_iso.h" # 4 # 19 # 23 "/usr/include/sys/signal.h" # 27 # 30 # 34 # 1 "/usr/include/sys/siginfo.h" # 4 # 10 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "./lib/sys/types.h" # 18 # 22 # 13 "/usr/include/sys/siginfo.h" # 17 # 20 # 32 # 43 # 52 # 55 # 71 # 79 # 94 # 96 # 99 # 103 # 106 # 118 # 120 # 124 # 1 "/usr/include/sys/machsig.h" # 8 # 11 # 1 "/usr/include/sys/feature_tests.h" # 4 # 13 "/usr/include/sys/machsig.h" # 17 # 21 # 29 # 31 # 35 # 44 # 48 # 52 # 58 # 62 # 74 # 78 # 88 # 92 # 102 # 104 # 108 # 126 "/usr/include/sys/siginfo.h" # 130 # 140 # 144 # 151 # 155 # 159 # 166 # 170 # 172 # 174 # 177 # 180 # 182 # 185 # 193 # 1 "/usr/include/sys/time_impl.h" # 4 # 14 # 202 "/usr/include/sys/siginfo.h" # 1 "./lib/sys/types.h" # 18 # 22 # 210 "/usr/include/sys/siginfo.h" # 212 typedef struct siginfo { # 216 int si_signo; int si_code; int si_errno; # 222 union { int __pad[ ( ( 128 / sizeof ( int ) ) - 3 )]; struct { pid_t __pid; union { struct { uid_t __uid; # 233 union sigval __value; # 237 id_t __tid; } __kill; struct { clock_t __utime; int __status; clock_t __stime; } __cld; } __pdata; ctid_t __ctid; zoneid_t __zoneid; } __proc; struct { void *__addr; int __trapno; caddr_t __pc; int __adivers; } __fault; struct { int __fd; long __band; } __file; # 263 struct { caddr_t __faddr; timespec_t __tstamp; short __syscall; char __nsysarg; char __fault; long __sysarg[8]; int __mstate[10]; } __prof; # 273 struct { int32_t __entity; } __rctl; } __data; } siginfo_t; # 350 # 355 # 357 typedef struct k_siginfo { int si_signo; int si_code; int si_errno; # 365 union { struct { pid_t __pid; union { struct { uid_t __uid; union sigval __value; id_t __tid; } __kill; struct { clock_t __utime; int __status; clock_t __stime; } __cld; } __pdata; ctid_t __ctid; zoneid_t __zoneid; } __proc; struct { void *__addr; int __trapno; caddr_t __pc; int __adivers; } __fault; struct { int __fd; long __band; } __file; # 398 struct { caddr_t __faddr; timespec_t __tstamp; short __syscall; char __nsysarg; char __fault; } __prof; # 409 struct { int32_t __entity; } __rctl; } __data; } k_siginfo_t; typedef struct sigqueue { struct sigqueue *sq_next; k_siginfo_t sq_info; void (*sq_func)(struct sigqueue *); void *sq_backptr; int sq_external; } sigqueue_t; # 429 # 431 # 459 # 461 # 469 # 473 # 39 "/usr/include/sys/signal.h" # 47 typedef struct { unsigned int __sigbits[3]; } k_sigset_t; # 55 struct sigaction { int sa_flags; union { void (*_handler)(int); # 62 void (*_sigaction)(int, siginfo_t *, void *); # 64 } _funcptr; sigset_t sa_mask; # 67 int sa_resv[2]; # 69 }; # 72 # 88 # 91 # 93 # 97 # 105 # 111 # 116 # 119 # 121 # 128 # 131 # 134 # 139 typedef struct sigaltstack { # 143 void *ss_sp; size_t ss_size; int ss_flags; } stack_t; # 159 # 161 # 163 # 166 typedef struct signotify_id { pid_t sn_pid; int sn_index; id_t sn_tid; } signotify_id_t; # 179 # 181 # 186 struct sigstack { void *ss_sp; int ss_onstack; }; # 191 # 199 # 291 # 295 # 20 "/usr/include/signal.h" # 30 # 34 # 37 extern const char **_sys_siglistp; extern const int _sys_siglistn; # 45 # 48 extern int kill(pid_t, int); extern int sigaction(int, const struct sigaction *, struct sigaction *); extern int sigaddset(sigset_t *, int); extern int sigdelset(sigset_t *, int); extern int sigemptyset(sigset_t *); extern int sigfillset(sigset_t *); extern int sigismember(const sigset_t *, int); extern int sigpending(sigset_t *); extern int sigprocmask(int, const sigset_t *, sigset_t *); extern int sigsuspend(const sigset_t *); # 61 # 1 "/usr/include/sys/procset.h" # 4 # 10 # 14 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "./lib/sys/types.h" # 18 # 22 # 1 "/usr/include/sys/signal.h" # 4 # 17 # 18 "/usr/include/sys/procset.h" # 27 # 33 typedef enum # 35 idtype # 37 { P_PID, P_PPID, P_PGID, P_SID, P_CID, P_UID, P_GID, P_ALL, P_LWPID, P_TASKID, P_PROJID, P_POOLID, P_ZONEID, P_CTID, P_CPUID, P_PSETID } idtype_t; # 61 typedef enum idop { POP_DIFF, POP_AND, POP_OR, POP_XOR } idop_t; # 80 typedef struct procset { idop_t p_op; idtype_t p_lidtype; id_t p_lid; idtype_t p_ridtype; id_t p_rid; } procset_t; # 104 # 114 # 116 # 131 # 135 # 65 "/usr/include/signal.h" extern int gsignal(int); extern int (*ssignal(int, int (*)(int)))(int); extern int sigsend(idtype_t, id_t, int); extern int sigsendset(const procset_t *, int); extern int sig2str(int, char *); extern int str2sig(const char *, int *); # 72 extern int sigqueue_wait(pid_t, int, const union sigval, const struct timespec *); extern int pthread_sigqueue(pthread_t, int, const union sigval); extern int pthread_sigqueue_wait(pthread_t, int, const union sigval, const struct timespec *); extern int proc_thr_kill(pid_t, pthread_t, int); extern int proc_thr_sigqueue(pid_t, pthread_t, int, const union sigval); extern int proc_thr_sigqueue_wait(pid_t, pthread_t, int, const union sigval, const struct timespec *); # 83 # 87 extern int killpg(pid_t, int); extern int siginterrupt(int, int); extern int sigaltstack(const stack_t *, stack_t *); extern int sighold(int); extern int sigignore(int); extern int sigpause(int); extern int sigrelse(int); extern void (*sigset(int, void (*)(int)))(int); # 96 # 100 extern void psignal(int, const char *); extern void psiginfo(const siginfo_t *, const char *); # 103 # 108 extern void (*bsd_signal(int, void (*)(int)))(int); # 110 # 115 extern int sigstack(struct sigstack *, struct sigstack *); # 117 # 1 "/usr/include/sys/siginfo.h" # 4 # 1 "./lib/time.h" # 18 # 22 # 32 # 1 "lib/time.h" # 18 # 22 # 32 # 1 "/usr/include/time.h" # 4 # 34 "lib/time.h" # 34 "./lib/time.h" # 123 "/usr/include/signal.h" extern int pthread_kill(pthread_t, int); extern int pthread_sigmask(int, const sigset_t *, sigset_t *); extern int sigwaitinfo(const sigset_t *, siginfo_t *); extern int sigtimedwait(const sigset_t *, siginfo_t *, const struct timespec *); extern int sigqueue(pid_t, int, const union sigval); # 132 # 212 # 216 # 220 # 222 # 224 #pragma redefine_extname sigwait __posix_sigwait # 227 extern int sigwait(const sigset_t *, int *); # 247 # 253 # 291 # 293 # 297 # 37 "lib/signal.h" # 53 "./lib/signal.h" # 55 # 58 # 69 # 326 # 338 # 355 # 376 # 386 # 398 # 406 # 413 typedef void (*sighandler_t) (int); # 420 # 431 # 439 # 467 # 481 extern int _gl_cxxalias_dummy ; # 483 extern int _gl_cxxalias_dummy ; # 490 # 511 # 525 # 528 # 536 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 541 # 548 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 553 # 561 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 566 # 574 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 579 # 586 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 593 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 608 extern int _gl_cxxalias_dummy ; # 610 extern int _gl_cxxalias_dummy ; # 618 typedef void (*_gl_function_taking_int_returning_void_t) (int); # 633 extern int _gl_cxxalias_dummy ; # 636 extern int _gl_cxxalias_dummy ; # 642 # 680 # 754 extern int _gl_cxxalias_dummy ; # 757 extern int _gl_cxxalias_dummy ; # 766 # 771 # 110 "lib/sys/select.h" # 113 # 136 # 393 # 410 # 431 # 441 # 472 # 554 # 586 # 598 extern int _gl_cxxalias_dummy ; # 601 extern int _gl_cxxalias_dummy ; # 612 # 50 "./lib/sys/select.h" # 485 "/usr/include/sys/time.h" # 487 # 491 # 41 "lib/sys/time.h" # 44 # 48 # 58 # 315 # 327 # 344 # 365 # 375 # 379 # 396 # 400 # 418 # 420 extern int _gl_cxxalias_dummy ; # 423 extern int _gl_cxxalias_dummy ; # 431 # 522 # 41 "./lib/sys/time.h" # 89 "lib/sys/select.h" # 1 "./lib/string.h" # 18 # 22 # 34 # 97 "lib/sys/select.h" # 1 "/usr/include/sys/select.h" # 4 # 17 # 100 "lib/sys/select.h" # 102 # 1 "./lib/signal.h" # 18 # 22 # 25 # 35 # 1 "lib/signal.h" # 18 # 22 # 25 # 35 # 1 "/usr/include/signal.h" # 4 # 37 "lib/signal.h" # 37 "./lib/signal.h" # 110 "lib/sys/select.h" # 37 "./lib/sys/select.h" # 646 "/usr/include/sys/types.h" # 648 typedef id_t mrpid_t; typedef u_longlong_t memsize_t; typedef longlong_t memtime_sec_t; # 663 # 665 # 669 # 30 "lib/sys/types.h" # 30 "./lib/sys/types.h" # 59 "./lib/stdio.h" # 71 # 83 # 95 # 107 # 114 # 121 # 379 # 391 # 408 # 429 # 439 # 443 # 453 # 479 # 481 # 489 extern int _gl_cxxalias_dummy ; # 491 extern int _gl_cxxalias_dummy ; # 498 # 509 extern int _gl_cxxalias_dummy ; # 511 extern int _gl_cxxalias_dummy ; # 518 # 520 # 533 extern int _gl_cxxalias_dummy ; # 535 extern int _gl_cxxalias_dummy ; # 542 # 552 extern int _gl_cxxalias_dummy ; # 554 extern int _gl_cxxalias_dummy ; # 556 # 567 extern int _gl_cxxalias_dummy ; # 569 extern int _gl_cxxalias_dummy ; # 571 # 582 extern int _gl_cxxalias_dummy ; # 584 extern int _gl_cxxalias_dummy ; # 591 # 610 extern int _gl_cxxalias_dummy ; # 612 extern int _gl_cxxalias_dummy ; # 623 # 625 # 639 extern int fpurge ( FILE * gl_stream ) ; # 641 extern int _gl_cxxalias_dummy ; # 643 extern int _gl_cxxalias_dummy ; # 651 # 661 extern int _gl_cxxalias_dummy ; # 663 extern int _gl_cxxalias_dummy ; # 665 # 676 extern int _gl_cxxalias_dummy ; # 678 extern int _gl_cxxalias_dummy ; # 680 # 691 extern int _gl_cxxalias_dummy ; # 693 extern int _gl_cxxalias_dummy ; # 695 # 708 extern int _gl_cxxalias_dummy ; # 711 extern int _gl_cxxalias_dummy ; # 719 # 731 extern int _gl_cxxalias_dummy ; # 733 extern int _gl_cxxalias_dummy ; # 735 # 767 # 782 extern int _gl_cxxalias_dummy ; # 784 extern int _gl_cxxalias_dummy ; # 786 # 807 extern int _gl_cxxalias_dummy ; # 809 extern int _gl_cxxalias_dummy ; # 819 # 828 # 845 extern int _gl_cxxalias_dummy ; # 847 extern int _gl_cxxalias_dummy ; # 849 # 866 extern int _gl_cxxalias_dummy ; # 868 extern int _gl_cxxalias_dummy ; # 878 # 887 # 901 extern int _gl_cxxalias_dummy ; # 903 # 927 extern int _gl_cxxalias_dummy ; # 929 # 939 extern int _gl_cxxalias_dummy ; # 941 extern int _gl_cxxalias_dummy ; # 943 # 953 extern int _gl_cxxalias_dummy ; # 955 extern int _gl_cxxalias_dummy ; # 957 # 959 # 984 extern int _gl_cxxalias_dummy ; # 988 extern int _gl_cxxalias_dummy ; # 996 # 998 # 1020 extern int _gl_cxxalias_dummy ; # 1024 extern int _gl_cxxalias_dummy ; # 1033 # 1041 # 1092 # 1106 # 1127 # 1152 # 1189 extern int _gl_cxxalias_dummy ; # 1191 extern int _gl_cxxalias_dummy ; # 1202 # 1212 extern int _gl_cxxalias_dummy ; # 1214 extern int _gl_cxxalias_dummy ; # 1216 # 1226 extern int _gl_cxxalias_dummy ; # 1228 extern int _gl_cxxalias_dummy ; # 1230 # 1240 extern int _gl_cxxalias_dummy ; # 1242 extern int _gl_cxxalias_dummy ; # 1244 # 1254 extern int _gl_cxxalias_dummy ; # 1256 extern int _gl_cxxalias_dummy ; # 1263 # 1276 extern int _gl_cxxalias_dummy ; # 1279 extern int _gl_cxxalias_dummy ; # 1286 # 1315 # 1342 extern int _gl_cxxalias_dummy ; # 1344 extern int _gl_cxxalias_dummy ; # 1346 # 1365 extern int _gl_cxxalias_dummy ; # 1368 extern int _gl_cxxalias_dummy ; # 1376 # 1385 # 1406 # 1425 # 1427 # 1435 extern int rpl_asprintf ( char * * result , const char * format , ... ) ; # 1439 extern int _gl_cxxalias_dummy ; # 1451 extern int _gl_cxxalias_dummy ; # 1456 extern int rpl_vasprintf ( char * * result , const char * format , va_list args ) ; # 1460 extern int _gl_cxxalias_dummy ; # 1472 extern int _gl_cxxalias_dummy ; # 1474 # 1503 # 1512 extern int rpl_vfprintf ( FILE * fp , const char * format , va_list args ) ; # 1520 extern int _gl_cxxalias_dummy ; # 1528 extern int _gl_cxxalias_dummy ; # 1539 # 1558 # 1567 extern int rpl_vprintf ( const char * format , va_list args ) ; # 1575 extern int _gl_cxxalias_dummy ; # 1582 extern int _gl_cxxalias_dummy ; # 1593 # 1609 # 1639 # 1666 # 1 "src/system.h" # 16 # 1 "/usr/include/alloca.h" # 4 # 7 # 1 "./lib/sys/types.h" # 18 # 22 # 9 "/usr/include/alloca.h" # 13 # 30 # 34 # 36 extern void *__builtin_alloca(size_t); # 40 # 50 # 54 # 20 "src/system.h" # 1 "./lib/sys/stat.h" # 17 # 23 # 27 # 35 # 38 # 1 "./lib/sys/types.h" # 18 # 22 # 42 "./lib/sys/stat.h" # 1 "./lib/time.h" # 18 # 22 # 32 # 1 "lib/time.h" # 18 # 22 # 32 # 1 "/usr/include/time.h" # 4 # 34 "lib/time.h" # 34 "./lib/time.h" # 45 "./lib/sys/stat.h" # 1 "lib/sys/stat.h" # 17 # 23 # 27 # 35 # 38 # 1 "./lib/sys/types.h" # 18 # 22 # 42 "lib/sys/stat.h" # 1 "./lib/time.h" # 18 # 22 # 32 # 1 "lib/time.h" # 18 # 22 # 32 # 1 "/usr/include/time.h" # 4 # 34 "lib/time.h" # 34 "./lib/time.h" # 45 "lib/sys/stat.h" # 1 "/usr/include/sys/stat.h" # 4 # 11 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "./lib/sys/types.h" # 18 # 22 # 14 "/usr/include/sys/stat.h" # 18 # 1 "/usr/include/sys/time_impl.h" # 4 # 14 # 37 "/usr/include/sys/stat.h" # 39 # 43 # 132 # 159 # 185 # 189 # 210 struct stat { dev_t st_dev; long st_pad1[3]; ino_t st_ino; mode_t st_mode; nlink_t st_nlink; uid_t st_uid; gid_t st_gid; dev_t st_rdev; long st_pad2[2]; off_t st_size; # 223 long st_pad3; # 225 timespec_t st_atim; timespec_t st_mtim; timespec_t st_ctim; blksize_t st_blksize; blkcnt_t st_blocks; char st_fstype[ 16 ]; long st_pad4[8]; }; # 235 # 259 struct stat64 { dev_t st_dev; long st_pad1[3]; ino64_t st_ino; mode_t st_mode; nlink_t st_nlink; uid_t st_uid; gid_t st_gid; dev_t st_rdev; long st_pad2[2]; off64_t st_size; timespec_t st_atim; timespec_t st_mtim; timespec_t st_ctim; blksize_t st_blksize; blkcnt64_t st_blocks; char st_fstype[ 16 ]; long st_pad4[8]; }; # 282 # 286 # 288 # 345 # 355 # 372 # 387 # 398 # 403 # 418 # 422 # 426 # 428 # 1 "/usr/include/sys/stat_impl.h" # 4 # 7 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "./lib/sys/types.h" # 18 # 22 # 10 "/usr/include/sys/stat_impl.h" # 14 # 18 # 20 # 22 extern int fstat(int, struct stat *); extern int stat(const char *, struct stat *); # 26 extern int lstat(const char *, struct stat *); extern int mknod(const char *, mode_t, dev_t); # 30 extern int fstatat(int, const char *, struct stat *, int); # 32 # 46 # 48 # 52 # 430 "/usr/include/sys/stat.h" # 432 # 435 extern int fchmod(int, mode_t); # 437 extern int chmod(const char *, mode_t); extern int mkdir(const char *, mode_t); extern int mkfifo(const char *, mode_t); extern mode_t umask(mode_t); # 446 extern int fstat64(int, struct stat64 *); extern int stat64(const char *, struct stat64 *); # 449 extern int lstat64(const char *, struct stat64 *); # 452 extern int fstatat64(int, const char *, struct stat64 *, int); # 455 # 459 extern int mkdirat(int, const char *, mode_t); extern int mkfifoat(int, const char *, mode_t); extern int mknodat(int, const char *, mode_t, dev_t); extern int fchmodat(int, const char *, mode_t, int); extern int futimens(int, const timespec_t[2]); extern int utimensat(int, const char *, const timespec_t[2], int); # 466 # 504 # 506 # 510 # 48 "lib/sys/stat.h" # 51 # 308 # 320 # 337 # 358 # 368 # 376 # 381 # 386 # 392 # 396 # 410 # 418 # 426 # 434 # 438 # 446 # 454 # 464 # 468 # 476 # 484 # 488 # 496 # 504 # 509 # 513 # 522 # 530 # 535 # 540 # 545 # 550 # 559 # 564 # 577 # 590 # 603 # 613 # 618 # 622 # 628 # 636 extern int _gl_cxxalias_dummy ; # 638 extern int _gl_cxxalias_dummy ; # 646 # 657 extern int _gl_cxxalias_dummy ; # 659 extern int _gl_cxxalias_dummy ; # 670 # 689 extern int _gl_cxxalias_dummy ; # 692 extern int _gl_cxxalias_dummy ; # 700 # 703 # 712 extern int rpl_futimens ( int fd , struct timespec const times [ 2 ] ); extern int _gl_cxxalias_dummy ; # 721 extern int _gl_cxxalias_dummy ; # 730 # 733 # 736 # 746 # 748 extern int _gl_cxxalias_dummy ; # 767 # 786 extern int _gl_cxxalias_dummy ; # 789 extern int _gl_cxxalias_dummy ; # 798 # 809 # 829 extern int _gl_cxxalias_dummy ; # 832 extern int _gl_cxxalias_dummy ; # 849 # 865 extern int _gl_cxxalias_dummy ; # 867 extern int _gl_cxxalias_dummy ; # 875 # 891 # 907 extern int _gl_cxxalias_dummy ; # 910 extern int _gl_cxxalias_dummy ; # 918 # 936 # 1004 # 1007 # 1027 extern int _gl_cxxalias_dummy ; # 1031 extern int _gl_cxxalias_dummy ; # 1040 # 48 "./lib/sys/stat.h" # 22 "src/system.h" # 25 # 29 # 1 "/usr/include/sys/param.h" # 4 # 17 # 20 # 1 "./lib/sys/types.h" # 18 # 22 # 1 "/usr/include/sys/isa_defs.h" # 5 # 25 "/usr/include/sys/param.h" # 30 # 34 # 50 # 54 # 58 # 73 # 90 # 98 # 100 # 103 # 105 # 107 # 109 # 111 # 122 # 127 # 132 # 136 # 138 # 150 # 157 # 170 # 174 # 191 # 198 # 206 # 212 # 216 # 225 # 229 # 233 # 237 # 269 # 274 # 280 # 289 # 300 # 307 # 326 # 330 # 335 # 493 # 501 # 1 "/usr/include/sys/unistd.h" # 6 # 10 # 16 # 503 "/usr/include/sys/param.h" # 507 # 509 extern long _sysconf(int); # 511 # 519 # 523 # 525 # 33 "src/system.h" # 1 "./lib/unistd.h" # 17 # 19 # 23 # 35 # 1 "lib/unistd.h" # 17 # 19 # 23 # 26 # 31 # 1 "/usr/include/unistd.h" # 4 # 10 # 1 "/usr/include/sys/feature_tests.h" # 4 # 12 "/usr/include/unistd.h" # 1 "./lib/sys/types.h" # 18 # 22 # 1 "/usr/include/sys/unistd.h" # 6 # 10 # 16 # 15 "/usr/include/unistd.h" # 19 # 25 # 32 # 38 # 42 # 46 # 51 # 56 # 58 # 62 # 68 # 74 # 80 # 124 # 153 # 178 # 187 # 208 # 217 # 221 # 233 # 237 # 247 # 268 # 289 # 291 extern int access(const char *, int); # 294 extern int acct(const char *); # 296 extern unsigned alarm(unsigned); # 300 extern int brk(void *); # 302 extern int chdir(const char *); extern int chown(const char *, uid_t, gid_t); # 307 extern int chroot(const char *); # 309 extern int close(int); # 319 extern size_t confstr(int, char *, size_t); # 321 # 324 extern char *ctermid(char *); # 327 extern char *ctermid_r(char *); # 329 # 331 extern char *cuserid(char *); # 333 extern int dup(int); extern int dup2(int, int); # 336 extern char *crypt(const char *, const char *); extern void encrypt(char *, int); # 340 extern void endusershell(void); # 342 extern int execl(const char *, const char *, ...); extern int execle(const char *, const char *, ...); extern int execlp(const char *, const char *, ...); extern int execv(const char *, char *const *); extern int execve(const char *, char *const *, char *const *); extern int execvp(const char *, char *const *); extern void _exit(int) __attribute__ ( ( __noreturn__ ) ); # 350 extern int fexecve(int, char *const *, char *const *); # 352 # 358 extern int fattach(int, const char *); # 361 extern int fchdir(int); extern int fchown(int, uid_t, gid_t); # 365 extern int fchroot(int); # 369 extern int fdatasync(int); # 371 # 377 extern int fdetach(const char *); # 379 extern pid_t fork(void); # 381 extern pid_t fork1(void); extern pid_t forkall(void); # 384 extern long fpathconf(int, int); # 387 extern int fsync(int); # 392 extern int ftruncate(int, off_t); # 394 extern char *getcwd(char *, size_t); # 397 extern int getdtablesize(void); # 399 extern gid_t getegid(void); extern uid_t geteuid(void); extern gid_t getgid(void); extern int getgroups(int, gid_t *); # 404 extern long gethostid(void); # 412 extern int gethostname(char *, size_t); # 415 extern char *getlogin(void); # 417 extern int getopt(int, char *const *, const char *); extern char *optarg; extern int opterr, optind, optopt; # 422 extern char * gnu_getpass ( const char * ); # 426 # 428 extern int getpagesize(void); # 430 extern pid_t getpgid(pid_t); # 432 extern pid_t getpid(void); extern pid_t getppid(void); extern pid_t getpgrp(void); # 437 char *gettxt(const char *, const char *); # 440 extern pid_t getsid(pid_t); # 442 extern uid_t getuid(void); # 444 extern char *getusershell(void); # 448 extern char *getwd(char *); # 450 # 456 extern int ioctl(int, int, ...); extern int isaexec(const char *, char *const *, char *const *); extern int issetugid(void); # 460 extern int isatty(int); # 462 extern int lchown(const char *, uid_t, gid_t); # 464 extern int link(const char *, const char *); # 466 extern int reflink(const char *, const char *, int); extern int reflinkat(int, const char *, int, const char *, int, int); extern offset_t llseek(int, offset_t, int); # 473 extern int lockf(int, int, off_t); # 475 extern off_t lseek(int, off_t, int); # 478 extern int nice(int); # 481 extern int mincore(caddr_t, size_t, char *); # 483 extern long pathconf(const char *, int); extern int pause(void); extern int pipe(int *); # 489 extern ssize_t pread(int, void *, size_t, off_t); # 491 # 495 extern void profil(unsigned short *, size_t, unsigned long, unsigned int) __attribute__ ( ( __deprecated__ ) ); # 498 # 508 extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void)); # 512 extern int ptrace(int, pid_t, int, int); # 517 extern ssize_t pwrite(int, const void *, size_t, off_t); # 522 extern int rbac_chkauth(const char *, const char *, const char *); # 525 extern int rcmd_af(char **, unsigned short, const char *, const char *, const char *, int *, int); # 529 extern ssize_t read(int, void *, size_t); # 531 extern ssize_t readlink(const char *, char *, size_t); # 538 extern int resolvepath(const char *, char *, size_t); extern char *frealpath(int, char *, size_t); extern int rexec_af(char **, unsigned short, const char *, const char *, const char *, int *, int); # 544 extern int rmdir(const char *); # 546 extern int rresvport_af(int *, int); # 549 # 552 extern void *sbrk(intptr_t); # 555 extern int setegid(gid_t); extern int seteuid(uid_t); # 558 extern int setgid(gid_t); # 560 extern int setgroups(int, const gid_t *); extern int sethostname(const char *, size_t); # 563 extern int setpgid(pid_t, pid_t); # 565 extern pid_t setpgrp(void); extern int setregid(gid_t, gid_t); extern int setreuid(uid_t, uid_t); # 569 extern pid_t setsid(void); extern int setuid(uid_t); # 572 extern void setusershell(void); # 574 extern unsigned sleep(unsigned); # 576 extern int stime(const time_t *); # 580 extern void swab(const void *, void *, ssize_t); # 583 extern int symlink(const char *, const char *); extern void sync(void); # 586 # 601 extern long sysconf(int); extern pid_t tcgetpgrp(int); extern int tcsetpgrp(int, pid_t); # 608 extern off_t tell(int); # 613 extern int truncate(const char *, off_t); # 615 extern char *ttyname(int); # 618 extern useconds_t ualarm(useconds_t, useconds_t); # 620 extern int unlink(const char *); # 623 extern int usleep(useconds_t); # 627 extern pid_t vfork(void) __attribute__ ( ( __deprecated__ ) ); # 630 extern void vhangup(void); # 632 extern ssize_t write(int, const void *, size_t); # 634 extern void yield(void); # 636 # 638 extern int faccessat(int, const char *, int, int); extern int fchownat(int, const char *, uid_t, gid_t, int); extern int linkat(int, const char *, int, const char *, int); extern ssize_t readlinkat(int, const char *, char *, size_t); extern int symlinkat(const char *, int, const char *); extern int unlinkat(int, const char *, int); # 647 extern int get_nprocs(void); extern int get_nprocs_conf(void); # 650 # 654 extern int ftruncate64(int, off64_t); extern off64_t lseek64(int, off64_t, int); extern ssize_t pread64(int, void *, size_t, off64_t); extern ssize_t pwrite64(int, const void *, size_t, off64_t); extern off64_t tell64(int); extern int truncate64(const char *, off64_t); extern int lockf64(int, int, off64_t); # 662 # 991 #pragma unknown_control_flow(vfork) # 996 # 1000 # 1032 # 1036 # 1038 # 1040 #pragma redefine_extname getlogin_r __posix_getlogin_r #pragma redefine_extname ttyname_r __posix_ttyname_r # 1044 extern int getlogin_r(char *, size_t); extern int ttyname_r(int, char *, size_t); # 1071 # 1078 # 1127 # 1129 # 1133 # 33 "lib/unistd.h" # 43 "./lib/unistd.h" # 51 # 54 # 1 "./lib/stddef.h" # 18 # 25 # 29 # 49 # 57 "./lib/unistd.h" # 67 # 74 # 78 # 81 # 1 "./lib/stdlib.h" # 18 # 22 # 25 # 27 # 1 "lib/stdlib.h" # 18 # 22 # 25 # 27 # 1 "/usr/include/stdlib.h" # 4 # 10 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "/usr/include/iso/stdlib_iso.h" # 4 # 19 # 22 # 1 "/usr/include/sys/feature_tests.h" # 4 # 24 "/usr/include/iso/stdlib_iso.h" # 30 # 34 # 36 extern unsigned char __ctype[]; # 40 # 63 # 69 # 71 # 75 # 79 # 83 typedef struct { int quot; int rem; } div_t; typedef struct { long quot; long rem; } ldiv_t; # 102 # 114 # 118 # 142 # 176 # 178 extern void abort(void) __attribute__ ( ( __noreturn__ ) ); extern int abs(int); extern int atexit(void (*)(void)); extern double atof(const char *); extern int atoi(const char *); extern long int atol(const char *); extern void *bsearch(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); # 193 extern void *calloc(size_t, size_t); extern div_t div(int, int); extern void exit(int) __attribute__ ( ( __noreturn__ ) ); extern void free(void *); extern char *getenv(const char *); extern long int labs(long); extern ldiv_t ldiv(long, long); extern void *malloc(size_t); extern int mblen(const char *, size_t); extern size_t mbstowcs(wchar_t *, const char *, size_t); extern int mbtowc(wchar_t *, const char *, size_t); extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); # 211 extern int rand(void); extern void *realloc(void *, size_t); extern void srand(unsigned int); extern double strtod(const char *, char **); extern long int strtol(const char *, char **, int); extern unsigned long int strtoul(const char *, char **, int); extern int system(const char *); extern int wctomb(char *, wchar_t); extern size_t wcstombs(char *, const wchar_t *, size_t); # 229 # 262 # 266 # 270 # 1 "/usr/include/iso/stdlib_c99.h" # 4 # 15 # 18 # 22 # 30 # 32 typedef struct { long long quot; long long rem; } lldiv_t; # 37 # 39 # 42 extern void _Exit(int) __attribute__ ( ( __noreturn__ ) ); extern float strtof(const char *, char **); extern long double strtold(const char *, char **); # 48 extern long long atoll(const char *); extern long long llabs(long long); extern lldiv_t lldiv(long long, long long); extern long long strtoll(const char *, char **, int); extern unsigned long long strtoull(const char *, char **, int); # 56 # 58 # 64 # 67 # 71 # 80 extern void *aligned_alloc(size_t, size_t); extern int at_quick_exit(void (*)(void)); extern void quick_exit(int) __attribute__ ( ( __noreturn__ ) ); # 87 # 89 # 115 # 119 # 14 "/usr/include/stdlib.h" # 1 "./lib/sys/wait.h" # 17 # 20 # 24 # 1 "lib/sys/wait.h" # 17 # 20 # 24 # 1 "/usr/include/sys/wait.h" # 7 # 10 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "./lib/sys/types.h" # 18 # 22 # 13 "/usr/include/sys/wait.h" # 1 "./lib/sys/resource.h" # 17 # 21 # 24 # 26 # 1 "./lib/sys/types.h" # 18 # 22 # 1 "./lib/sys/time.h" # 18 # 31 "./lib/sys/resource.h" # 1 "lib/sys/resource.h" # 17 # 21 # 24 # 26 # 1 "./lib/sys/types.h" # 18 # 22 # 1 "./lib/sys/time.h" # 18 # 31 "lib/sys/resource.h" # 1 "/usr/include/sys/resource.h" # 4 # 17 # 20 # 1 "/usr/include/sys/feature_tests.h" # 4 # 22 "/usr/include/sys/resource.h" # 1 "./lib/sys/types.h" # 18 # 22 # 1 "./lib/sys/time.h" # 18 # 25 "/usr/include/sys/resource.h" # 29 # 43 # 55 # 57 # 67 # 73 typedef unsigned long rlim_t; # 79 # 89 # 91 # 108 struct rlimit { rlim_t rlim_cur; rlim_t rlim_max; }; # 116 typedef u_longlong_t rlim64_t; # 122 struct rlimit64 { rlim64_t rlim_cur; rlim64_t rlim_max; }; # 129 # 141 # 144 # 146 struct rusage { struct timeval ru_utime; struct timeval ru_stime; long ru_maxrss; long ru_ixrss; long ru_idrss; long ru_isrss; long ru_minflt; long ru_majflt; long ru_nswap; long ru_inblock; long ru_oublock; long ru_msgsnd; long ru_msgrcv; long ru_nsignals; long ru_nvcsw; long ru_nivcsw; }; # 171 # 194 # 203 # 207 # 222 # 237 # 239 extern int setrlimit(int, const struct rlimit *); extern int getrlimit(int, struct rlimit *); # 246 extern int setrlimit64(int, const struct rlimit64 *); extern int getrlimit64(int, struct rlimit64 *); # 249 extern int getpriority(int, id_t); extern int setpriority(int, id_t, int); extern int getrusage(int, struct rusage *); # 271 # 273 # 277 # 34 "lib/sys/resource.h" # 36 # 39 # 84 # 341 # 353 # 370 # 391 # 401 # 420 # 34 "./lib/sys/resource.h" # 36 # 18 "/usr/include/sys/wait.h" # 1 "/usr/include/sys/siginfo.h" # 4 # 1 "/usr/include/sys/procset.h" # 4 # 24 "/usr/include/sys/wait.h" # 28 # 32 # 35 # 45 # 49 # 51 # 56 # 60 # 63 # 65 # 74 # 78 extern pid_t wait(int *); extern pid_t waitpid(pid_t, int *, int); # 83 extern int waitid(idtype_t, id_t, siginfo_t *, int); # 86 extern pid_t wait3(int *, int, struct rusage *); # 89 # 91 extern pid_t wait4(pid_t, int *, int, struct rusage *); # 93 # 112 # 116 # 30 "lib/sys/wait.h" # 33 # 1 "./lib/sys/types.h" # 18 # 22 # 36 "lib/sys/wait.h" # 294 # 311 # 332 # 342 # 345 # 352 # 364 # 369 # 374 # 379 # 384 # 411 # 428 # 30 "./lib/sys/wait.h" # 18 "/usr/include/stdlib.h" # 1 "./lib/sys/types.h" # 18 # 22 # 23 "/usr/include/stdlib.h" # 79 # 83 # 88 # 90 # 103 # 116 # 120 extern int rand_r(unsigned int *); # 122 extern void _exithandle(void); # 128 extern double drand48(void); extern double erand48(unsigned short *); extern long jrand48(unsigned short *); extern void lcong48(unsigned short *); extern long lrand48(void); extern long mrand48(void); extern long nrand48(unsigned short *); extern unsigned short *seed48(unsigned short *); extern void srand48(long); extern int putenv(char *); extern void setkey(const char *); # 140 # 143 typedef struct drand48_data { unsigned int _initialised; unsigned short int x[3]; unsigned short int a[3]; unsigned int c; unsigned short lastx[3]; } drand48_data; extern int drand48_r(struct drand48_data *buffer, double *result); extern int erand48_r(unsigned short xsubi[3], struct drand48_data *buffer, double *result); extern int lrand48_r(struct drand48_data *buffer, long int *result); extern int nrand48_r(unsigned short int xsubi[3], struct drand48_data *buffer, long int *result); extern int mrand48_r(struct drand48_data *buffer, long int *result); extern int jrand48_r(unsigned short int xsubi[3], struct drand48_data *buffer, long int *result); extern int srand48_r(long int seedval, struct drand48_data *buffer); extern int seed48_r(unsigned short int seed16v[3], struct drand48_data *buffer); extern int lcong48_r(unsigned short int param[7], struct drand48_data *buffer); # 175 # 194 # 198 extern int mkstemp(char *); # 200 extern int mkstemps(char *, int); # 203 # 206 extern int mkstemp64(char *); # 208 extern int mkstemps64(char *, int); # 211 # 216 extern int ttyslot(void); extern void *valloc(size_t); # 219 # 224 extern char *ecvt(double, int, int *, int *); extern char *fcvt(double, int, int *, int *); extern char *gcvt(double, int, char *); extern char *mktemp(char *); # 229 # 233 extern long a64l(const char *); extern int getsubopt(char **, char *const *, char **); extern int grantpt(int); extern char *initstate(unsigned, char *, size_t); extern char *l64a(long); extern char *ptsname(int); extern long random(void); extern char *realpath(const char *, char *); extern char *setstate(const char *); extern void srandom(unsigned); extern int unlockpt(int); # 245 # 249 extern int posix_memalign(void **, size_t, size_t); extern int posix_openpt(int); extern int setenv(const char *, const char *, int); extern int unsetenv(const char *); # 254 # 258 extern char *mkdtemp(char *); # 260 # 263 extern uint32_t arc4random(void); extern void arc4random_addrandom(uchar_t *, size_t); extern void arc4random_buf(void *, size_t); extern void arc4random_stir(void); extern uint32_t arc4random_uniform(uint32_t); extern char *canonicalize_file_name(const char *); extern int clearenv(void); extern void closefrom(int); extern int daemon(int, int); extern int dup2(int, int); extern int fdwalk(int (*)(void *, int), void *); extern char *qecvt(long double, int, int *, int *); extern char *qfcvt(long double, int, int *, int *); extern char *qgcvt(long double, int, char *); extern char *getcwd(char *, size_t); extern const char *getexecname(void); extern char *getlogin(void); extern int getopt(int, char *const *, const char *); extern char *optarg; extern int optind, opterr, optopt; extern char * gnu_getpass ( const char * ); extern char *getpassphrase(const char *); extern int getpw(uid_t, char *); extern int isatty(int); extern void *memalign(size_t, size_t); extern char *ttyname(int); extern const char *getprogname(void); extern void setprogname(const char *); extern char *secure_getenv(const char *); # 294 extern char *lltostr(long long, char *); extern char *ulltostr(unsigned long long, char *); # 297 # 299 # 425 # 429 # 29 "lib/stdlib.h" # 29 "./lib/stdlib.h" # 87 "./lib/unistd.h" # 103 # 106 # 112 # 119 # 123 # 1 "./lib/sys/types.h" # 18 # 22 # 126 "./lib/unistd.h" # 1 "./lib/getopt.h" # 19 # 21 # 25 # 1 "lib/getopt.h" # 19 # 21 # 25 # 1 "/usr/include/getopt.h" # 4 # 9 # 12 # 16 # 26 struct option { char *name; int has_arg; int *flag; int val; }; # 38 extern char *optarg; extern int opterr; extern int optind; extern int optopt; # 47 extern int getopt_long(int, char * const *, const char *, const struct option *, int *); extern int getopt_long_only(int, char * const *, const char *, const struct option *, int *); extern int getopt_clip(int, char * const *, const char *, const struct option *, int *); # 58 # 62 # 35 "lib/getopt.h" # 37 # 41 # 81 # 105 # 1 "./lib/ctype.h" # 18 # 25 # 27 # 31 # 1 "lib/ctype.h" # 18 # 25 # 27 # 31 # 1 "/usr/include/ctype.h" # 8 # 11 # 1 "/usr/include/iso/ctype_iso.h" # 8 # 20 # 23 # 1 "/usr/include/sys/feature_tests.h" # 4 # 25 "/usr/include/iso/ctype_iso.h" # 29 # 38 # 51 # 54 # 56 extern int isalnum(int); extern int isalpha(int); extern int iscntrl(int); extern int isdigit(int); extern int isgraph(int); extern int islower(int); extern int isprint(int); extern int ispunct(int); extern int isspace(int); extern int isupper(int); extern int isxdigit(int); # 70 # 74 extern int tolower(int); extern int toupper(int); # 81 extern unsigned char __ctype[]; extern unsigned int *__ctype_mask; extern int *__trans_upper; extern int *__trans_lower; # 88 # 134 # 162 # 164 # 166 # 188 # 192 # 1 "/usr/include/iso/ctype_c99.h" # 4 # 15 # 18 # 22 # 30 # 32 # 36 extern int isblank(int); # 38 # 40 # 47 # 49 # 59 # 63 # 14 "/usr/include/ctype.h" # 34 # 38 # 46 # 48 # 52 extern int isascii(int); extern int toascii(int); extern int _tolower(int); extern int _toupper(int); # 59 # 62 extern int isalnum_l(int, locale_t); extern int isalpha_l(int, locale_t); extern int isblank_l(int, locale_t); extern int iscntrl_l(int, locale_t); extern int isdigit_l(int, locale_t); extern int isgraph_l(int, locale_t); extern int islower_l(int, locale_t); extern int isprint_l(int, locale_t); extern int ispunct_l(int, locale_t); extern int isspace_l(int, locale_t); extern int isupper_l(int, locale_t); extern int isxdigit_l(int, locale_t); extern int tolower_l(int, locale_t); extern int toupper_l(int, locale_t); # 79 # 81 # 94 # 96 # 98 # 130 # 134 # 36 "lib/ctype.h" # 39 # 296 # 313 # 334 # 344 # 357 # 36 "./lib/ctype.h" # 116 "lib/getopt.h" # 127 # 139 # 143 # 149 extern char *optarg; # 163 extern int optind; # 168 extern int opterr; extern int optopt; # 216 # 242 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) ; # 257 # 261 # 264 # 35 "./lib/getopt.h" # 37 # 41 # 81 # 105 # 1 "./lib/ctype.h" # 18 # 25 # 116 "./lib/getopt.h" # 127 # 139 # 143 # 149 extern char * rpl_optarg ; # 163 extern int rpl_optind ; # 168 extern int rpl_opterr ; extern int rpl_optopt ; # 176 # 196 # 198 struct rpl_option { const char *name; # 203 int has_arg; int *flag; int val; }; # 209 # 216 # 242 extern int rpl_getopt ( int ___argc , char * const * ___argv , const char * __shortopts ) ; # 247 extern int rpl_getopt_long ( int ___argc , char * * ___argv , const char *__shortopts, const struct rpl_option *__longopts, int *__longind) ; extern int rpl_getopt_long_only ( int ___argc , char * * ___argv , const char *__shortopts, const struct rpl_option *__longopts, int *__longind) ; # 257 # 261 # 264 # 133 "./lib/unistd.h" # 137 # 141 # 398 # 410 # 427 # 448 # 458 # 534 # 546 # 554 # 564 # 567 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 576 # 579 # 597 extern int _gl_cxxalias_dummy ; # 599 extern int _gl_cxxalias_dummy ; # 608 # 620 extern int _gl_cxxalias_dummy ; # 622 extern int _gl_cxxalias_dummy ; # 632 # 642 extern int _gl_cxxalias_dummy ; # 644 extern int _gl_cxxalias_dummy ; # 652 # 655 # 670 extern int _gl_cxxalias_dummy ; # 672 extern int _gl_cxxalias_dummy ; # 680 # 709 # 713 # 728 extern char **environ; # 747 # 750 # 753 extern int euidaccess ( const char * filename , int mode ) ; # 756 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 770 # 778 extern int _gl_cxxalias_dummy ; # 780 extern int _gl_cxxalias_dummy ; # 788 # 791 # 811 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 820 # 839 extern int _gl_cxxalias_dummy ; # 842 extern int _gl_cxxalias_dummy ; # 850 # 853 # 860 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 869 # 872 # 879 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 888 # 891 # 906 extern int _gl_cxxalias_dummy ; # 908 extern int _gl_cxxalias_dummy ; # 916 # 919 # 936 # 938 extern int _gl_cxxalias_dummy ; # 940 extern int _gl_cxxalias_dummy ; # 948 # 984 # 987 # 1000 extern int _gl_cxxalias_dummy ; # 1002 extern int _gl_cxxalias_dummy ; # 1010 # 1013 # 1029 extern int _gl_cxxalias_dummy ; # 1031 extern int _gl_cxxalias_dummy ; # 1039 # 1042 # 1062 # 1065 extern int _gl_cxxalias_dummy ; # 1067 extern int _gl_cxxalias_dummy ; # 1078 # 1081 # 1094 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 1103 # 1144 # 1213 extern int _gl_cxxalias_dummy ; # 1217 extern int _gl_cxxalias_dummy ; # 1226 # 1229 # 1234 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 1243 # 1245 # 1249 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 1258 # 1260 # 1265 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 1274 # 1277 # 1279 extern int group_member ( gid_t gid ); # 1281 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 1290 # 1301 extern int _gl_cxxalias_dummy ; # 1303 extern int _gl_cxxalias_dummy ; # 1311 # 1314 # 1332 extern int _gl_cxxalias_dummy ; # 1334 extern int _gl_cxxalias_dummy ; # 1342 # 1345 # 1361 extern int _gl_cxxalias_dummy ; # 1363 extern int _gl_cxxalias_dummy ; # 1371 # 1374 # 1396 extern int _gl_cxxalias_dummy ; # 1400 extern int _gl_cxxalias_dummy ; # 1408 # 1411 # 1422 extern int _gl_cxxalias_dummy ; # 1424 extern int _gl_cxxalias_dummy ; # 1432 # 1435 # 1441 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 1450 # 1479 # 1514 # 1549 # 1552 # 1564 # 1567 extern int _gl_cxxalias_dummy ; # 1569 extern int _gl_cxxalias_dummy ; # 1571 # 1574 # 1594 extern int _gl_cxxalias_dummy ; # 1597 extern int _gl_cxxalias_dummy ; # 1605 # 1623 extern int _gl_cxxalias_dummy ; # 1626 extern int _gl_cxxalias_dummy ; # 1634 # 1637 # 1645 extern int _gl_cxxalias_dummy ; # 1647 extern int _gl_cxxalias_dummy ; # 1655 # 1682 # 1710 # 1726 extern int _gl_cxxalias_dummy ; # 1728 extern int _gl_cxxalias_dummy ; # 1736 # 1766 # 1796 # 1807 extern int _gl_cxxalias_dummy ; # 1809 extern int _gl_cxxalias_dummy ; # 1817 # 1833 extern int _gl_cxxalias_dummy ; # 1835 extern int _gl_cxxalias_dummy ; # 1843 # 1871 # 1874 # 1886 # 1889 extern int _gl_cxxalias_dummy ; # 1891 extern int _gl_cxxalias_dummy ; # 1893 # 35 "src/system.h" # 1 "/usr/include/limits.h" # 4 # 11 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "/usr/include/sys/isa_defs.h" # 5 # 1 "/usr/include/iso/limits_iso.h" # 4 # 20 # 23 # 27 # 35 # 37 # 47 # 63 # 69 # 71 # 73 # 75 # 79 # 15 "/usr/include/limits.h" # 1 "/usr/include/sys/int_limits.h" # 4 # 7 # 31 # 1 "/usr/include/sys/feature_tests.h" # 4 # 33 "/usr/include/sys/int_limits.h" # 37 # 69 # 78 # 84 # 90 # 99 # 106 # 115 # 122 # 136 # 143 # 156 # 161 # 170 # 175 # 182 # 193 # 199 # 208 # 217 # 224 # 231 # 236 # 245 # 250 # 252 # 260 # 264 # 28 "/usr/include/limits.h" # 32 # 35 # 37 # 50 # 54 # 58 # 60 # 64 # 66 # 68 # 72 # 116 # 122 # 127 # 131 # 140 # 142 # 155 # 157 # 161 # 167 # 173 # 175 # 177 # 180 # 190 # 197 # 203 # 208 # 211 # 216 # 220 # 223 # 225 # 229 # 231 # 234 # 237 # 254 # 259 # 261 # 266 # 270 # 282 # 288 # 290 # 1 "/usr/include/sys/unistd.h" # 6 # 10 # 16 # 293 "/usr/include/limits.h" # 302 extern long _sysconf(int); # 306 # 311 # 315 # 37 "src/system.h" # 1 "./lib/pathmax.h" # 17 # 20 # 41 # 1 "./lib/unistd.h" # 17 # 43 "./lib/pathmax.h" # 1 "/usr/include/limits.h" # 4 # 45 "./lib/pathmax.h" # 49 # 54 # 58 # 67 # 82 # 42 "src/system.h" # 1 "./lib/configmake.h" # 44 "src/system.h" # 1 "./lib/sys/time.h" # 18 # 1 "./lib/time.h" # 18 # 22 # 32 # 1 "lib/time.h" # 18 # 22 # 32 # 1 "/usr/include/time.h" # 4 # 34 "lib/time.h" # 34 "./lib/time.h" # 47 "src/system.h" # 1 "/usr/include/sys/mkdev.h" # 4 # 10 # 1 "./lib/sys/types.h" # 18 # 22 # 1 "/usr/include/sys/types32.h" # 4 # 7 # 1 "/usr/include/sys/int_types.h" # 4 # 9 "/usr/include/sys/types32.h" # 13 # 25 typedef uint32_t caddr32_t; typedef int32_t daddr32_t; typedef int32_t off32_t; typedef uint32_t ino32_t; typedef int32_t blkcnt32_t; typedef uint32_t fsblkcnt32_t; typedef uint32_t fsfilcnt32_t; typedef int32_t id32_t; typedef uint32_t major32_t; typedef uint32_t minor32_t; typedef int32_t key32_t; typedef uint32_t mode32_t; typedef uint32_t uid32_t; typedef uint32_t gid32_t; typedef uint32_t nlink32_t; typedef uint32_t dev32_t; typedef int32_t pid32_t; typedef uint32_t size32_t; typedef int32_t ssize32_t; typedef int32_t time32_t; typedef int32_t clock32_t; struct timeval32 { time32_t tv_sec; int32_t tv_usec; }; typedef struct timespec32 { time32_t tv_sec; int32_t tv_nsec; } timespec32_t; typedef struct timespec32 timestruc32_t; typedef struct itimerspec32 { struct timespec32 it_interval; struct timespec32 it_value; } itimerspec32_t; # 67 # 13 "/usr/include/sys/mkdev.h" # 17 # 25 # 33 # 36 # 48 # 53 # 55 # 57 # 64 # 66 extern dev_t makedev(const major_t, const minor_t); extern major_t major(const dev_t); extern minor_t minor(const dev_t); extern minor_t maxminor(); extern dev_t __makedev(const int, const major_t, const minor_t); extern major_t __major(const int, const dev_t); extern minor_t __minor(const int, const dev_t); # 86 # 89 # 93 # 95 # 99 # 60 "src/system.h" # 67 # 71 # 1 "./lib/string.h" # 18 # 22 # 34 # 1 "/usr/include/errno.h" # 7 # 10 # 14 # 1 "/usr/include/sys/ccompile.h" # 4 # 1 "/usr/include/sys/errno.h" # 4 # 17 # 20 # 24 # 28 # 77 # 80 # 89 # 91 # 95 # 101 # 108 # 111 # 114 # 117 # 120 # 127 # 141 # 154 # 157 # 161 # 167 # 177 # 180 # 184 # 17 "/usr/include/errno.h" # 21 # 25 # 55 # 76 # 88 # 90 extern int *___errno(void) __attribute__ ( ( __const__ ) ); # 94 # 96 # 98 #pragma does_not_read_global_data(___errno) #pragma does_not_write_global_data(___errno) #pragma no_side_effect(___errno) # 102 # 106 # 74 "src/system.h" # 81 # 1 "/usr/include/stdbool.h" # 5 # 8 # 1 "/usr/include/sys/stdbool.h" # 5 # 8 # 26 # 1 "/usr/include/sys/feature_tests.h" # 4 # 28 "/usr/include/sys/stdbool.h" # 31 # 35 # 39 # 41 # 44 # 10 "/usr/include/stdbool.h" # 1 "./lib/stdlib.h" # 18 # 22 # 31 # 34 # 1 "lib/stdlib.h" # 18 # 22 # 31 # 34 # 1 "/usr/include/stdlib.h" # 4 # 37 "lib/stdlib.h" # 40 # 1 "./lib/stddef.h" # 18 # 25 # 29 # 49 # 43 "lib/stdlib.h" # 48 # 1 "/usr/include/sys/loadavg.h" # 4 # 7 # 11 # 15 # 17 # 23 # 27 extern int getloadavg(double [], int); # 30 # 34 # 53 "lib/stdlib.h" # 58 # 90 # 92 # 1 "./lib/unistd.h" # 17 # 98 "lib/stdlib.h" # 106 # 118 # 375 # 387 # 404 # 425 # 435 # 441 # 449 # 466 # 485 # 495 extern int _gl_cxxalias_dummy ; # 497 extern int _gl_cxxalias_dummy ; # 504 # 518 extern int _gl_cxxalias_dummy ; # 520 extern int _gl_cxxalias_dummy ; # 529 # 531 # 539 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 548 # 576 # 592 # 607 extern int _gl_cxxalias_dummy ; # 609 extern int _gl_cxxalias_dummy ; # 616 # 627 extern int _gl_cxxalias_dummy ; # 629 extern int _gl_cxxalias_dummy ; # 631 # 650 # 677 # 707 # 709 # 728 extern int _gl_cxxalias_dummy ; # 730 extern int _gl_cxxalias_dummy ; # 738 # 763 # 779 # 804 # 830 # 837 extern int rpl_putenv ( char * string ); extern int _gl_cxxalias_dummy ; # 842 extern int _gl_cxxalias_dummy ; # 844 # 867 # 876 # 891 # 905 # 922 # 936 # 962 # 991 # 1024 # 1053 # 1065 extern int _gl_cxxalias_dummy ; # 1067 extern int _gl_cxxalias_dummy ; # 1074 # 1098 # 1100 # 1103 extern int rpmatch ( const char * response ) ; # 1105 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 1114 # 1116 # 1121 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 1130 # 1132 # 1150 extern int _gl_cxxalias_dummy ; # 1154 extern int _gl_cxxalias_dummy ; # 1163 # 1165 # 1170 extern double rpl_strtod ( const char * str , char * * endp ) ; # 1172 extern int _gl_cxxalias_dummy ; # 1180 extern int _gl_cxxalias_dummy ; # 1188 # 1190 # 1203 extern int _gl_cxxalias_dummy ; # 1205 extern int _gl_cxxalias_dummy ; # 1213 # 1215 # 1228 extern int _gl_cxxalias_dummy ; # 1230 extern int _gl_cxxalias_dummy ; # 1238 # 1254 # 1256 # 1262 extern int rpl_unsetenv ( const char * name ); extern int _gl_cxxalias_dummy ; # 1271 extern int _gl_cxxalias_dummy ; # 1280 # 1295 # 37 "./lib/stdlib.h" # 1 "src/version.h" extern char const *Version; # 85 "src/system.h" enum { EXIT_TIMEDOUT = 124, EXIT_CANCELED = 125, EXIT_CANNOT_INVOKE = 126, EXIT_ENOENT = 127 }; # 1 "./lib/exitfail.h" # 17 extern int volatile exit_failure; # 96 "src/system.h" static inline void initialize_exit_failure (int status) { if (status != 1 ) exit_failure = status; } # 1 "./lib/fcntl.h" # 18 # 24 # 44 # 47 # 1 "./lib/sys/types.h" # 18 # 22 # 51 "./lib/fcntl.h" # 1 "./lib/sys/stat.h" # 17 # 23 # 27 # 35 # 60 "./lib/fcntl.h" # 1 "lib/fcntl.h" # 18 # 24 # 44 # 47 # 1 "./lib/sys/types.h" # 18 # 22 # 51 "lib/fcntl.h" # 1 "./lib/sys/stat.h" # 17 # 23 # 27 # 35 # 60 "lib/fcntl.h" # 1 "/usr/include/fcntl.h" # 4 # 10 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "./lib/sys/stat.h" # 17 # 23 # 27 # 35 # 1 "./lib/sys/types.h" # 18 # 22 # 1 "/usr/include/sys/fcntl.h" # 4 # 17 # 20 # 1 "/usr/include/sys/feature_tests.h" # 4 # 22 "/usr/include/sys/fcntl.h" # 1 "./lib/sys/types.h" # 18 # 22 # 24 "/usr/include/sys/fcntl.h" # 28 # 47 # 53 # 70 # 84 # 104 # 109 # 116 # 122 # 124 # 132 # 134 # 150 # 152 # 154 # 174 # 176 # 180 # 182 # 186 typedef struct flock { short l_type; short l_whence; off_t l_start; off_t l_len; int l_sysid; pid_t l_pid; long l_pad[4]; } flock_t; # 213 # 217 typedef struct flock64 { short l_type; short l_whence; off64_t l_start; off64_t l_len; int l_sysid; pid_t l_pid; long l_pad[4]; } flock64_t; # 263 # 265 # 277 # 285 # 289 # 296 # 303 # 307 typedef struct fshare { short f_access; short f_deny; int f_id; } fshare_t; # 321 # 333 # 338 # 353 # 355 # 363 # 367 # 17 "/usr/include/fcntl.h" # 21 # 23 # 29 # 33 # 38 # 43 # 48 # 80 # 110 # 112 extern int fcntl(int, int, ...); extern int open(const char *, int, ...); extern int creat(const char *, mode_t); # 117 extern int posix_fadvise(int, off_t, off_t, int); extern int posix_fallocate(int, off_t, off_t); # 121 extern int openat(int, const char *, int, ...); # 124 extern int attropen(const char *, const char *, int, ...); extern int directio(int, int); # 127 # 131 extern int open64(const char *, int, ...); extern int creat64(const char *, mode_t); # 134 extern int posix_fadvise64(int, off64_t, off64_t, int); extern int posix_fallocate64(int, off64_t, off64_t); # 138 extern int openat64(int, const char *, int, ...); # 141 extern int attropen64(const char *, const char *, int, ...); # 144 # 180 # 184 # 62 "lib/fcntl.h" # 65 # 1 "./lib/unistd.h" # 17 # 69 "lib/fcntl.h" # 75 # 333 # 345 # 362 # 383 # 393 # 409 extern int _gl_cxxalias_dummy ; # 411 extern int _gl_cxxalias_dummy ; # 419 # 430 extern int _gl_cxxalias_dummy ; # 432 # 435 extern int _gl_cxxalias_dummy ; # 443 # 461 extern int _gl_cxxalias_dummy ; # 464 extern int _gl_cxxalias_dummy ; # 472 # 479 # 482 # 490 # 494 # 498 # 516 # 521 # 526 # 530 # 534 # 538 # 542 # 546 # 550 # 554 # 558 # 562 # 575 # 579 # 583 # 587 # 591 # 595 # 599 # 603 # 607 # 611 # 616 # 624 # 630 # 635 # 645 # 652 # 658 # 662 # 667 # 671 # 62 "./lib/fcntl.h" # 106 "src/system.h" # 1 "./lib/dirent.h" # 17 # 19 # 23 # 1 "lib/dirent.h" # 17 # 19 # 23 # 1 "/usr/include/dirent.h" # 4 # 10 # 1 "/usr/include/sys/feature_tests.h" # 4 # 12 "/usr/include/dirent.h" # 1 "./lib/sys/types.h" # 18 # 22 # 1 "/usr/include/sys/dirent.h" # 4 # 10 # 1 "/usr/include/sys/feature_tests.h" # 4 # 12 "/usr/include/sys/dirent.h" # 16 # 20 typedef struct dirent { ino_t d_ino; off_t d_off; unsigned short d_reclen; char d_name[1]; } dirent_t; # 39 # 41 # 45 typedef struct dirent64 { ino64_t d_ino; off64_t d_off; unsigned short d_reclen; char d_name[1]; } dirent64_t; # 53 # 65 # 71 # 73 # 81 # 91 # 101 # 103 extern int getdents(int, struct dirent *, size_t); # 107 # 110 extern int getdents64(int, struct dirent64 *, size_t); # 115 # 120 # 124 # 15 "/usr/include/dirent.h" # 19 # 21 # 24 # 26 # 36 typedef struct { int d_fd; int d_loc; int d_size; char *d_buf; } DIR; # 44 # 57 # 70 # 72 extern DIR *opendir(const char *); # 75 extern DIR *fdopendir(int); extern int dirfd(DIR *); extern int scandir(const char *, struct dirent *(*[]), int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **)); extern int alphasort(const struct dirent **, const struct dirent **); # 84 extern struct dirent *readdir(DIR *); # 87 extern long telldir(DIR *); extern void seekdir(DIR *, long); # 90 extern void rewinddir(DIR *); extern int closedir(DIR *); # 96 extern struct dirent64 *readdir64(DIR *); # 98 extern int scandir64(const char *, struct dirent64 *(*[]), int (*)(const struct dirent64 *), int (*)(const struct dirent64 **, const struct dirent64 **)); extern int alphasort64(const struct dirent64 **, const struct dirent64 **); # 105 # 135 # 140 # 155 # 159 # 161 # 163 # 165 #pragma redefine_extname readdir_r __posix_readdir_r # 168 extern int readdir_r(DIR *, struct dirent *, struct dirent **); # 189 # 195 # 215 # 218 extern int readdir64_r(DIR *, struct dirent64 *, struct dirent64 **); # 222 # 284 # 286 # 290 # 29 "lib/dirent.h" # 32 # 1 "./lib/sys/types.h" # 18 # 22 # 35 "lib/dirent.h" # 58 # 66 # 323 # 335 # 352 # 373 # 383 # 400 extern int _gl_cxxalias_dummy ; # 402 extern int _gl_cxxalias_dummy ; # 410 # 415 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 424 # 429 extern int _gl_cxxalias_dummy ; extern int _gl_cxxalias_dummy ; # 438 # 452 extern int _gl_cxxalias_dummy ; # 454 extern int _gl_cxxalias_dummy ; # 462 # 464 # 483 extern int _gl_cxxalias_dummy ; # 485 extern int _gl_cxxalias_dummy ; # 493 # 495 # 511 extern int _gl_cxxalias_dummy ; # 513 extern int _gl_cxxalias_dummy ; # 521 # 548 # 569 # 29 "./lib/dirent.h" # 111 "src/system.h" enum { NOT_AN_INODE_NUMBER = 0 }; # 123 # 1 "./lib/inttypes.h" # 18 # 23 # 27 # 35 # 40 # 1 "lib/inttypes.h" # 18 # 23 # 27 # 35 # 40 # 1 "/usr/include/inttypes.h" # 4 # 7 # 16 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "/usr/include/sys/inttypes.h" # 4 # 7 # 17 # 1 "/usr/include/sys/feature_tests.h" # 4 # 1 "/usr/include/sys/int_types.h" # 4 # 1 "/usr/include/sys/int_limits.h" # 4 # 1 "/usr/include/sys/int_const.h" # 4 # 7 # 29 # 1 "/usr/include/sys/feature_tests.h" # 4 # 31 "/usr/include/sys/int_const.h" # 35 # 52 # 58 # 69 # 73 # 76 # 78 # 85 # 89 # 97 # 99 # 106 # 110 # 1 "/usr/include/sys/int_fmtio.h" # 4 # 7 # 26 # 1 "/usr/include/sys/feature_tests.h" # 4 # 28 "/usr/include/sys/int_fmtio.h" # 32 # 54 # 65 # 72 # 95 # 118 # 122 # 143 # 164 # 185 # 206 # 210 # 226 # 247 # 265 # 284 # 300 # 316 # 332 # 351 # 358 # 362 # 25 "/usr/include/sys/inttypes.h" # 19 "/usr/include/inttypes.h" # 1 "/usr/include/sys/stdint.h" # 4 # 7 # 13 # 1 "/usr/include/sys/int_types.h" # 4 # 1 "/usr/include/sys/int_limits.h" # 4 # 1 "/usr/include/sys/int_const.h" # 4 # 17 "/usr/include/sys/stdint.h" # 24 "/usr/include/inttypes.h" # 28 # 54 # 57 typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; # 62 # 80 # 83 # 85 extern intmax_t imaxabs(intmax_t); extern imaxdiv_t imaxdiv(intmax_t, intmax_t); extern intmax_t strtoimax(const char *, char **, int); extern uintmax_t strtoumax(const char *, char **, int); extern intmax_t wcstoimax(const wchar_t *, wchar_t **, int); extern uintmax_t wcstoumax(const wchar_t *, wchar_t **, int); # 103 # 105 # 109 # 44 "lib/inttypes.h" # 47 # 1 "./lib/stdint.h" # 18 # 23 # 25 # 29 # 36 # 45 # 53 # 61 # 71 # 1 "lib/stdint.h" # 18 # 23 # 25 # 29 # 36 # 45 # 53 # 61 # 71 # 1 "/usr/include/stdint.h" # 4 # 7 # 13 # 1 "/usr/include/sys/stdint.h" # 4 # 15 "/usr/include/stdint.h" # 79 "lib/stdint.h" # 82 # 1 "./lib/sys/types.h" # 18 # 22 # 92 "lib/stdint.h" # 1 "/usr/include/limits.h" # 4 # 96 "lib/stdint.h" # 98 # 1 "./lib/inttypes.h" # 18 # 23 # 27 # 35 # 40 # 1 "lib/inttypes.h" # 18 # 23 # 27 # 35 # 40 # 1 "/usr/include/inttypes.h" # 4 # 44 "lib/inttypes.h" # 44 "./lib/inttypes.h" # 107 "lib/stdint.h" # 114 # 116 # 120 # 123 # 131 # 133 # 138 # 141 typedef signed char gl_int8_t; typedef unsigned char gl_uint8_t; # 145 # 148 typedef short int gl_int16_t; typedef unsigned short int gl_uint16_t; # 152 # 155 typedef int gl_int32_t; typedef unsigned int gl_uint32_t; # 159 # 165 # 188 # 209 # 214 # 221 # 242 # 247 # 253 # 262 typedef signed char gl_int_fast8_t; typedef unsigned char gl_uint_fast8_t; # 266 # 268 typedef int gl_int_fast32_t; typedef unsigned int gl_uint_fast32_t; # 274 typedef gl_int_fast32_t gl_int_fast16_t; typedef gl_uint_fast32_t gl_uint_fast16_t; # 289 # 294 typedef long int gl_intptr_t; typedef unsigned long int gl_uintptr_t; # 298 # 303 # 307 # 321 # 335 # 339 typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) ? 1 : -1]; # 344 # 351 # 358 # 365 # 372 # 379 # 383 # 389 # 396 # 403 # 410 # 417 # 422 # 428 # 435 # 442 # 455 # 462 # 467 # 476 # 489 # 497 # 517 # 527 # 540 # 563 # 571 # 579 # 584 # 589 # 594 # 611 # 623 # 633 # 79 "./lib/stdint.h" # 53 "lib/inttypes.h" # 1 "/usr/include/limits.h" # 4 # 55 "lib/inttypes.h" # 59 # 63 # 320 # 332 # 349 # 370 # 380 # 390 # 541 # 642 # 815 # 864 # 901 # 1030 # 1115 # 1290 # 1331 # 1362 # 1368 # 1380 # 1396 # 1412 extern int _gl_cxxalias_dummy ; # 1414 extern int _gl_cxxalias_dummy ; # 1422 # 1438 extern int _gl_cxxalias_dummy ; # 1440 extern int _gl_cxxalias_dummy ; # 1448 # 1451 # 1455 # 44 "./lib/inttypes.h" # 126 "src/system.h" # 137 # 1 "./lib/stat-macros.h" # 139 "src/system.h" # 1 "./lib/timespec.h" # 18 # 21 # 1 "./lib/time.h" # 18 # 22 # 32 # 1 "lib/time.h" # 18 # 22 # 32 # 1 "/usr/include/time.h" # 4 # 34 "lib/time.h" # 34 "./lib/time.h" # 23 "./lib/timespec.h" # 27 # 31 # 34 enum { TIMESPEC_RESOLUTION = 1000000000 }; enum { LOG10_TIMESPEC_RESOLUTION = 9 }; static struct timespec make_timespec (time_t s, long int ns) { struct timespec r; r.tv_sec = s; r.tv_nsec = ns; return r; } # 76 static int timespec_cmp (struct timespec a, struct timespec b) { return (a.tv_sec < b.tv_sec ? -1 : a.tv_sec > b.tv_sec ? 1 : (int) (a.tv_nsec - b.tv_nsec)); } # 87 static int timespec_sign (struct timespec a) { return a.tv_sec < 0 ? -1 : a.tv_sec || a.tv_nsec; } struct timespec timespec_add (struct timespec, struct timespec) ; struct timespec timespec_sub (struct timespec, struct timespec) ; struct timespec dtotimespec (double) ; static double timespectod (struct timespec a) { return a.tv_sec + a.tv_nsec / 1e9; } void gettime (struct timespec *); int settime (struct timespec const *); # 141 "src/system.h" # 1 "./lib/ctype.h" # 18 # 25 # 143 "src/system.h" # 152 # 156 static inline unsigned char to_uchar (char ch) { return ch; } # 1 "./lib/locale.h" # 17 # 21 # 31 # 34 # 36 # 1 "lib/locale.h" # 17 # 21 # 24 # 27 # 1 "/usr/include/locale.h" # 4 # 7 # 1 "/usr/include/iso/locale_iso.h" # 4 # 20 # 23 # 1 "/usr/include/sys/feature_tests.h" # 4 # 25 "/usr/include/iso/locale_iso.h" # 29 # 33 struct lconv { char *decimal_point; char *thousands_sep; char *grouping; char *int_curr_symbol; char *currency_symbol; char *mon_decimal_point; char *mon_thousands_sep; char *mon_grouping; char *positive_sign; char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn; # 61 char int_p_cs_precedes; char int_p_sep_by_space; char int_n_cs_precedes; char int_n_sep_by_space; char int_p_sign_posn; char int_n_sign_posn; # 68 }; # 77 # 89 # 91 extern char *setlocale(int, const char *); extern struct lconv *localeconv(void); # 97 # 101 # 105 # 9 "/usr/include/locale.h" # 1 "/usr/include/libintl.h" # 4 # 8 # 1 "/usr/include/sys/isa_defs.h" # 5 # 10 "/usr/include/libintl.h" # 14 # 38 # 40 # 43 # 45 # 51 extern char *gettext(const char *); extern char *dgettext(const char *, const char *); extern char *dcgettext(const char *, const char *, int); # 55 extern char *textdomain(const char *); extern char *bindtextdomain(const char *, const char *); # 63 extern char *dcngettext(const char *, const char *, const char *, unsigned long int, int); extern char *dngettext(const char *, const char *, const char *, unsigned long int); extern char *ngettext(const char *, const char *, unsigned long int); extern char *bind_textdomain_codeset(const char *, const char *); extern int wdinit(void); extern int wdchkind(wchar_t); extern int wdbindf(wchar_t, wchar_t, int); extern wchar_t *wddelim(wchar_t, wchar_t, int); extern wchar_t mcfiller(void); extern int mcwrap(void); # 106 # 110 # 14 "/usr/include/locale.h" # 24 # 28 # 30 # 34 # 36 # 45 typedef struct { char *locale; void *reserved; } lclist_t; # 52 extern int localelist(lclist_t **, int); extern void localelistfree(lclist_t *); # 58 # 60 # 63 # 68 # 70 extern locale_t duplocale(locale_t); extern void freelocale(locale_t); extern locale_t newlocale(int, const char *, locale_t); extern locale_t uselocale(locale_t); # 80 # 90 # 96 # 98 # 102 # 29 "lib/locale.h" # 39 "./lib/locale.h" # 41 # 44 # 1 "./lib/stddef.h" # 18 # 25 # 29 # 49 # 47 "./lib/locale.h" # 52 # 309 # 321 # 338 # 359 # 369 # 375 # 456 # 466 extern int _gl_cxxalias_dummy ; # 468 extern int _gl_cxxalias_dummy ; # 480 # 501 # 525 # 159 "src/system.h" # 1 "./lib/gettext.h" # 17 # 20 # 23 # 1 "/usr/include/libintl.h" # 4 # 26 "./lib/gettext.h" # 38 # 94 # 100 # 109 # 112 # 139 # 147 static const char * pgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, int category) { const char *translation = dcgettext (domain, msg_ctxt_id, category); if (translation == msg_ctxt_id) return msgid; else return translation; } # 166 static const char * npgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { const char *translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); if (translation == msg_ctxt_id || translation == msgid_plural) return (n == 1 ? msgid : msgid_plural); else return translation; } # 183 # 1 "./lib/string.h" # 18 # 22 # 34 # 185 "./lib/gettext.h" # 192 # 1 "./lib/stdlib.h" # 18 # 22 # 31 # 196 "./lib/gettext.h" # 201 # 209 static const char * dcpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; # 220 char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != 0 ) # 227 { memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcgettext (domain, msg_ctxt_id, category); # 233 if (msg_ctxt_id != buf) free (msg_ctxt_id); # 236 if (translation != msg_ctxt_id) return translation; } return msgid; } # 246 # 254 static const char * dcnpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; # 266 char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != 0 ) # 273 { memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); # 279 if (msg_ctxt_id != buf) free (msg_ctxt_id); # 282 if (!(translation == msg_ctxt_id || translation == msgid_plural)) return translation; } return (n == 1 ? msgid : msgid_plural); } # 169 "src/system.h" # 172 # 175 static inline unsigned long int select_plural (uintmax_t n) { # 180 enum { PLURAL_REDUCER = 1000000 }; return (n <= 4294967295UL ? n : n % PLURAL_REDUCER + PLURAL_REDUCER); } # 187 # 191 # 195 # 199 # 203 # 207 # 211 # 215 # 229 # 233 # 1 "./lib/xalloc.h" # 17 # 20 # 1 "./lib/stddef.h" # 18 # 25 # 29 # 49 # 22 "./lib/xalloc.h" # 1 "lib/xalloc-oversized.h" # 17 # 20 # 1 "./lib/stddef.h" # 18 # 25 # 29 # 49 # 22 "lib/xalloc-oversized.h" # 37 # 24 "./lib/xalloc.h" # 28 # 32 # 36 # 43 # 50 # 56 extern __attribute__ ( ( __noreturn__ ) ) void xalloc_die (void); void *xmalloc (size_t s) ; void *xzalloc (size_t s) ; void *xcalloc (size_t n, size_t s) ; void *xrealloc (void *p, size_t s) ; void *x2realloc (void *p, size_t *pn); void *xmemdup (void const *p, size_t s) ; char *xstrdup (char const *str) ; # 76 # 80 # 85 # 88 # 90 # 93 # 96 # 100 static void *xnmalloc (size_t n, size_t s) ; static void * xnmalloc (size_t n, size_t s) { if ( ( ( size_t ) ( sizeof ( ptrdiff_t ) <= sizeof ( size_t ) ? - 1 : - 2 ) / ( s ) < ( n ) )) xalloc_die (); return xmalloc (n * s); } # 113 static void *xnrealloc (void *p, size_t n, size_t s) ; static void * xnrealloc (void *p, size_t n, size_t s) { if ( ( ( size_t ) ( sizeof ( ptrdiff_t ) <= sizeof ( size_t ) ? - 1 : - 2 ) / ( s ) < ( n ) )) xalloc_die (); return xrealloc (p, n * s); } # 177 static void * x2nrealloc (void *p, size_t *pn, size_t s) { size_t n = *pn; if (! p) { if (! n) { # 191 enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; n = DEFAULT_MXFAST / s; n += !n; } } else { # 203 if ((size_t) -1 / 3 * 2 / s <= n) xalloc_die (); n += n / 2 + 1; } *pn = n; return xrealloc (p, n * s); } # 214 static char *xcharalloc (size_t n) ; static char * xcharalloc (size_t n) { return ( ( char * ) ( sizeof ( char ) == 1 ? xmalloc ( n ) : xnmalloc ( n , sizeof ( char ) ) ) ); } # 261 # 1 "./lib/verify.h" # 17 # 22 # 39 # 44 # 1 "./lib/stddef.h" # 18 # 25 # 29 # 49 # 52 "./lib/verify.h" # 152 # 156 # 166 # 170 # 174 # 177 # 198 # 205 # 213 # 223 # 234 # 239 # 241 # 244 # 247 # 250 # 252 # 256 # 260 # 276 # 236 "src/system.h" # 243 # 250 # 1 "./lib/unlocked-io.h" # 17 # 22 # 33 # 1 "./lib/stdio.h" # 18 # 22 # 36 # 35 "./lib/unlocked-io.h" # 42 # 49 # 56 # 63 # 70 # 77 # 84 # 91 # 98 # 105 # 112 # 119 # 126 # 129 # 132 # 135 # 1 "./lib/same-inode.h" # 17 # 20 # 32 # 253 "src/system.h" # 1 "./lib/dirname.h" # 18 # 21 # 1 "/usr/include/stdbool.h" # 5 # 1 "./lib/stddef.h" # 18 # 25 # 29 # 49 # 1 "lib/dosname.h" # 19 # 22 # 40 # 44 # 52 # 25 "./lib/dirname.h" # 29 # 33 # 37 # 39 char *base_name (char const *file); char *dir_name (char const *file); # 42 char *mdir_name (char const *file); size_t base_len (char const *file) ; size_t dir_len (char const *file) ; char *last_component (char const *file) ; _Bool strip_trailing_slashes (char *file); # 53 # 1 "./lib/openat.h" # 16 # 21 # 1 "./lib/fcntl.h" # 18 # 24 # 44 # 23 "./lib/openat.h" # 1 "./lib/sys/types.h" # 18 # 22 # 1 "./lib/sys/stat.h" # 17 # 23 # 27 # 35 # 1 "./lib/unistd.h" # 17 # 1 "/usr/include/stdbool.h" # 5 # 28 "./lib/openat.h" # 32 # 41 # 45 # 47 __attribute__ ( ( __noreturn__ ) ) void openat_restore_fail (int); __attribute__ ( ( __noreturn__ ) ) void openat_save_fail (int); # 54 # 56 # 60 static int chownat (int fd, char const *file, uid_t owner, gid_t group) { return fchownat (fd, file, owner, group, 0); } static int lchownat (int fd, char const *file, uid_t owner, gid_t group) { return fchownat (fd, file, owner, group, 0x1000 ); } # 74 # 76 # 80 static int chmodat (int fd, char const *file, mode_t mode) { return fchmodat (fd, file, mode, 0); } static int lchmodat (int fd, char const *file, mode_t mode) { return fchmodat (fd, file, mode, 0x1000 ); } # 94 # 96 # 100 static int statat (int fd, char const *name, struct stat *st) { return fstatat (fd, name, st, 0); } static int lstatat (int fd, char const *name, struct stat *st) { return fstatat (fd, name, st, 0x1000 ); } # 114 # 120 # 256 "src/system.h" static inline _Bool dot_or_dotdot (char const *file_name) { if (file_name[0] == '.') { char sep = file_name[(file_name[1] == '.') + 1]; return (! sep || ( ( sep ) == '/' )); } else return 0 ; } static inline struct dirent const * readdir_ignoring_dot_and_dotdot (DIR *dirp) { while (1) { struct dirent const *dp = readdir (dirp); if (dp == 0 || ! dot_or_dotdot (dp->d_name)) return dp; } } static inline _Bool is_empty_dir (int fd_cwd, char const *dir) { DIR *dirp; struct dirent const *dp; int saved_errno; int fd = openat (fd_cwd, dir, ( 0 | 0x1000000 | 0x800 | 0x20000 | 0x80 )); if (fd < 0) return 0 ; dirp = fdopendir (fd); if (dirp == 0 ) { close (fd); return 0 ; } ( * ( ___errno ( ) ) ) = 0; dp = readdir_ignoring_dot_and_dotdot (dirp); saved_errno = ( * ( ___errno ( ) ) ); closedir (dirp); if (dp != 0 ) return 0 ; return saved_errno == 0 ? 1 : 0 ; } # 316 enum { GETOPT_HELP_CHAR = ( ( - 128 ) - 2), GETOPT_VERSION_CHAR = ( ( - 128 ) - 3) }; # 328 # 333 # 341 # 346 # 1 "./lib/closein.h" # 17 # 20 # 24 void close_stdin_set_file_name (const char *file); void close_stdin (void); # 31 # 1 "./lib/closeout.h" # 18 # 21 # 1 "/usr/include/stdbool.h" # 5 # 23 "./lib/closeout.h" # 27 void close_stdout_set_file_name (const char *file); void close_stdout_set_ignore_EPIPE ( _Bool ignore); void close_stdout (void); # 35 # 349 "src/system.h" # 1 "./lib/version-etc.h" # 16 # 21 # 1 "/usr/include/stdarg.h" # 8 # 1 "./lib/stdio.h" # 18 # 22 # 36 # 24 "./lib/version-etc.h" # 33 extern const char version_etc_copyright[]; # 50 extern void version_etc_arn (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors, size_t n_authors); extern void version_etc_ar (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors); extern void version_etc_va (FILE *stream, const char *command_name, const char *package, const char *version, va_list authors); # 69 extern void version_etc (FILE *stream, const char *command_name, const char *package, const char *version, ... ) ; extern void unused__emit_bug_reporting_address ( void ); # 353 "src/system.h" # 1 "./lib/propername.h" # 17 # 82 # 85 # 90 extern const char * proper_name (const char *name) ; # 98 extern const char * proper_name_utf8 (const char *name_ascii, const char *name_utf8); # 104 # 355 "src/system.h" # 361 # 1 "./lib/progname.h" # 17 # 20 # 24 # 29 extern const char *program_name; # 37 extern void set_program_name (const char *argv0); # 55 # 60 # 363 "src/system.h" # 370 # 374 # 378 # 1 "./lib/intprops.h" # 17 # 22 # 1 "/usr/include/limits.h" # 4 # 24 "./lib/intprops.h" # 28 # 32 # 35 # 39 # 47 # 50 # 53 # 57 # 63 # 75 # 88 # 98 # 107 # 112 # 124 # 128 # 163 # 170 # 177 # 184 # 201 # 206 # 214 # 226 # 253 # 265 # 294 # 310 # 319 # 380 "src/system.h" # 384 # 388 # 392 # 396 # 400 # 404 # 411 # 417 # 421 # 429 # 444 # 448 # 451 static inline size_t gcd (size_t u, size_t v) { do { size_t t = u % v; u = v; v = t; } while (v); return u; } # 469 static inline size_t lcm (size_t u, size_t v) { return u * (v / gcd (u, v)); } # 480 static inline void * ptr_align (void const *ptr, size_t alignment) { char const *p0 = ptr; char const *p1 = p0 + alignment - 1; return (void *) (p1 - (size_t) p1 % alignment); } # 491 static inline _Bool is_nul (void const *buf, size_t bufsize) { typedef gl_uintptr_t word; void const *vp; char const *cbuf = buf; word const *wp = buf; while (*wp++ == 0) continue; vp = wp - 1; char const *cp = vp; while (*cp++ == 0) continue; return cbuf + bufsize < cp; } # 523 # 533 static inline void emit_stdin_note (void) { fputs ( gettext ( "\nWith no FILE, or when FILE is -, read standard input.\n" ), ( & __iob [ 1 ] )); # 540 } static inline void emit_mandatory_arg_note (void) { fputs ( gettext ( "\nMandatory arguments to long options are mandatory for short options too.\n" ), ( & __iob [ 1 ] )); # 547 } static inline void emit_size_note (void) { fputs ( gettext ( "\nThe SIZE argument is an integer and optional unit (example: 10K is 10*1024).\nUnits are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).\n" ), ( & __iob [ 1 ] )); # 556 } static inline void emit_blocksize_note (char const *program) { printf ( gettext ( "\nDisplay values are in units of the first available SIZE from --block-size,\nand the %s_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables.\nOtherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).\n" ), program); # 566 } static inline void emit_ancillary_info (char const *program) { struct infomap { char const *program; char const *node; } const infomap[] = { { "[", "test invocation" }, { "coreutils", "Multi-call invocation" }, { "sha224sum", "sha2 utilities" }, { "sha256sum", "sha2 utilities" }, { "sha384sum", "sha2 utilities" }, { "sha512sum", "sha2 utilities" }, { 0 , 0 } }; char const *node = program; struct infomap const *map_prog = infomap; while (map_prog->program && ! ( strcmp ( program , map_prog -> program ) == 0 )) map_prog++; if (map_prog->node) node = map_prog->node; printf ( gettext ( "\n%s online help: <%s>\n" ), "GNU coreutils" , "http://www.gnu.org/software/coreutils/" ); # 594 const char *lc_messages = setlocale ( 5 , 0 ); if (lc_messages && strncmp ( lc_messages , "" "en_" "" , sizeof ( "en_" ) - 1 )) { # 601 printf ( gettext ( "Report %s translation bugs to " "\n" ) , program ) ; # 603 } printf ( gettext ( "Full documentation at: <%s%s>\n" ), "http://www.gnu.org/software/coreutils/" , program); printf ( gettext ( "or available locally via: info '(coreutils) %s%s'\n" ), node, node == program ? " invocation" : ""); } static inline void emit_try_help (void) { fprintf ( ( & __iob [ 2 ] ), gettext ( "Try '%s --help' for more information.\n" ), program_name); } # 1 "./lib/inttostr.h" # 17 # 1 "./lib/stdint.h" # 18 # 23 # 1 "./lib/sys/types.h" # 18 # 22 # 22 "./lib/inttostr.h" # 1 "lib/intprops.h" # 17 # 24 "./lib/inttostr.h" # 33 # 41 char *imaxtostr (intmax_t, char *) ; char *inttostr (int, char *) ; char *offtostr (off_t, char *) ; char *uinttostr (unsigned int, char *) ; char *umaxtostr (uintmax_t, char *) ; # 617 "src/system.h" static inline char * timetostr (time_t t, char *buf) { return ( ( ! ( ( time_t ) 0 < ( time_t ) - 1 ) ) ? imaxtostr (t, buf) : umaxtostr (t, buf)); } static inline char * bad_cast (char const *s) { return (char *) s; } static inline _Bool usable_st_size (struct stat const *sb) { return ( ( ( ( sb -> st_mode ) & 0xF000 ) == 0x8000 ) || ( ( ( sb -> st_mode ) & 0xF000 ) == 0xa000 ) || ( 0 ) || 0 ); } void usage (int status) ; # 651 # 663 # 669 static inline char * stzncpy (char * __restrict__ dest, char const * __restrict__ src, size_t len) { char const *src_end = src + len; while (src < src_end && *src) *dest++ = *src++; *dest = 0; return dest; } # 682 # 687 static inline char * se_const (char const * sctx) { return (char *) sctx; } # 693 static inline _Bool is_ENOTSUP (int err) { return err == 122 || ( 48 != 122 && err == 48 ); } # 22 "src/libstdbuf.c" # 58 static const char * fileno_to_name (const int fd) { const char *ret = 0 ; switch (fd) { case 0: ret = "stdin"; break; case 1: ret = "stdout"; break; case 2: ret = "stderr"; break; default: ret = "unknown"; break; } return ret; } static void apply_mode (FILE *stream, const char *mode) { char *buf = 0 ; int setvbuf_mode; size_t size = 0; if (*mode == '0') setvbuf_mode = 0004 ; else if (*mode == 'L') setvbuf_mode = 0100 ; else { setvbuf_mode = 0000 ; extern int ( * _gl_verify_function97 ( void ) ) [ ( ! ! sizeof ( struct { unsigned int _gl_verify_error_if_negative : ( ( ( 0 ) ? ~ ( ( 0 ) ? ( - ( ( 0ul ) + 1 ) << ( ( 64 ) ? ( 64 ) - 1 : 0 ) ) : ( 0ul ) ) : ( ( ( ( 0ul ) + 1 ) << ( ( 64 ) ? ( 64 ) - 1 - ( 0 ) : 0 ) ) - 1 ) * 2 + 1 ) <= 4294967295UL ) ? 1 : - 1 ; } ) ) ]; size = strtoul (mode, 0 , 10); if (size > 0) { if (!(buf = malloc (size))) { # 106 fprintf ( ( & __iob [ 2 ] ), gettext ( "failed to allocate a %" "llu" " byte stdio buffer\n" ) , ( uintmax_t ) size ) ; # 109 return; } } else { fprintf ( ( & __iob [ 2 ] ), gettext ( "invalid buffering mode %s for %s\n" ), mode, fileno_to_name (fileno (stream))); return; } } if (setvbuf (stream, buf, setvbuf_mode, size) != 0) { fprintf ( ( & __iob [ 2 ] ), gettext ( "could not set buffering of %s to mode %s\n" ), fileno_to_name (fileno (stream)), mode); free (buf); } } static void __attribute ((constructor)) stdbuf (void) { char *e_mode = getenv ("_STDBUF_E"); char *i_mode = getenv ("_STDBUF_I"); char *o_mode = getenv ("_STDBUF_O"); if (e_mode) apply_mode ( ( & __iob [ 2 ] ), e_mode); if (i_mode) apply_mode ( ( & __iob [ 0 ] ), i_mode); if (o_mode) apply_mode ( ( & __iob [ 1 ] ), o_mode); } #ident "acomp: Sun C 5.13 SunOS_sparc Patch 151632-04 2015/11/06" --------------060709040603010004070507-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 24 12:06:35 2016 Received: (at 22430) by debbugs.gnu.org; 24 Jan 2016 17:06:35 +0000 Received: from localhost ([127.0.0.1]:35097 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aNO7X-0004JI-1O for submit@debbugs.gnu.org; Sun, 24 Jan 2016 12:06:35 -0500 Received: from mail.magicbluesmoke.com ([82.195.144.49]:42621) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aNO7V-0004JA-Pa for 22430@debbugs.gnu.org; Sun, 24 Jan 2016 12:06:34 -0500 Received: from localhost.localdomain (c-73-70-29-104.hsd1.ca.comcast.net [73.70.29.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.magicbluesmoke.com (Postfix) with ESMTPSA id 8466A4AE7; Sun, 24 Jan 2016 17:06:30 +0000 (GMT) Subject: Re: bug#22430: Relocation error with libstdbuf.so on Solaris SPARC with Studio compilation. To: Rich Burridge , 22430@debbugs.gnu.org References: <56A2044A.7070807@oracle.com> From: =?UTF-8?Q?P=c3=a1draig_Brady?= Message-ID: <56A50496.8040607@draigBrady.com> Date: Sun, 24 Jan 2016 09:06:30 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <56A2044A.7070807@oracle.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 22430 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) On 22/01/16 02:28, Rich Burridge wrote: > Hi, > > We've noticed an interesting problem recently with the version of stdbuf > (really libstdbuf.so) from coreutils version 8.24 on SPARC in Solaris 12. > > If you do something like: > > $ stdbuf -oL echo > > it generates: > > ld.so.1: echo: fatal: relocation error: file /usr/lib/64/libstdbuf.so: > symbol > program_name: referenced symbol not found > Killed > > but that same command works just fine for stdbuf and libstdbuf.so from > 8.24 in Solaris 12 on x86. > > There's a similar problem for the 32-bit version as well. I'll use that > to describe what's going on. > > I took the command we use to compile 32-bit libstdbuf.c on SPARC: > > $ /ws/on12-tools/SUNWspro/solarisstudio12.4/bin/cc -I. > -I/builds/richb/22510525-coreutils/components/coreutils/coreutils-8.24 > -I./lib -Ilib > -I/builds/richb/22510525-coreutils/components/coreutils/coreutils-8.24/lib > -Isrc > -I/builds/richb/22510525-coreutils/components/coreutils/coreutils-8.24/src > -I/usr/include/gmp -D_REENTRANT -fPIC -m32 -xO4 -xtarget=ultra2 > -xarch=sparcvis -xchip=ultra2 -Qoption cg -xregs=no%appl -W2,-xwrap_int > -xmemalign=8s -mt -c -o src/src_libstdbuf_so-libstdbuf.o `test -f > 'src/libstdbuf.c' || echo > '/builds/richb/22510525-coreutils/components/coreutils/coreutils-8.24/'`src/libstdbuf.c > > and adjusted that to use "-E" instead of "-c" and reran it to generate a > self-contained lsb.c source file (attached). > > I then compiled/linked that on SPARC and x86 (using the commands that are > generated by our Userland build environment) and noticed the following > differences: > > x86: > > $ /ws/on12-tools/SUNWspro/solarisstudio12.4/bin/cc -fPIC -m32 -xO4 > '-xchip=pentium' '-xregs=no%frameptr' -mt -shared -o lsb.so lsb.c > "src/libstdbuf.c", line 97: warning: shift count negative or too big: << 63 > > $ elfdump lsb.so | grep program_name > $ > > SPARC: > > $ /ws/on12-tools/SUNWspro/solarisstudio12.4/bin/cc -fPIC -m32 -xO4 > '-xtarget=ultra2' '-xarch=sparcvis' '-xchip=ultra2' -Qoption cg > '-xregs=no%appl' -W2,-xwrap_int '-xmemalign=8s' -mt -shared -o lsb.so lsb.c > "src/libstdbuf.c", line 97: warning: shift count negative or too big: << 63 > > $ elfdump lsb.so | grep program_name > [1] 0 0x4 OBJT GLOB D 0 UNDEF program_name > [42] 0 0x4 OBJT GLOB D 0 UNDEF program_name > 2 [1] program_name > [1] 0x1177c 0 R_SPARC_GLOB_DAT program_name > [12] R_SPARC_GLOB_DAT 0x1177c 0 0 .got program_name > $ > > > Now you can see from lsb.c that the code includes: > > extern const char *program_name; > > ... > > static inline void > emit_try_help (void) > { > fprintf ( ( & __iob [ 2 ] ), gettext ( "Try '%s --help' for more > information.\n" ), program_name); > } > > It looks like the Studio compiler for x86 is nicely optimizing the > emit_try_help() away as it's not being used, but the SPARC version of > the Studio compiler isn't, and is causing the problem. > > (Note that this isn't a problem with GNU compiling/linking on Solaris > for both > x86 and SPARC). > > Now I can "fix" this by adding progname.o (where the program_name variable > is defined) to libstdbuf.so as it's being linked. > > > $ /ws/on12-tools/SUNWspro/solarisstudio12.4/bin/cc -fPIC -m32 -xO4 > '-xarch=sparcvis' '-xchip=ultra2' '-xregs=no%appl' '-xtarget=ultra2' > -Qoption cg -W2,-xwrap_int '-xmemalign=8s' -mt -shared -o mylsb.so > build/sparcv7/lib/progname.o lsb.c > "src/libstdbuf.c", line 97: warning: shift count negative or too big: << 63 > > $ elfdump mylsb.so | grep program_name > [20] 0x11ae4 0x4 OBJT GLOB D 0 .data program_name > [26] 0x1010 0xf0 FUNC GLOB D 0 .text set_program_name > [63] 0x11ae4 0x4 OBJT GLOB D 0 .data program_name > [69] 0x1010 0xf0 FUNC GLOB D 0 .text set_program_name > [42] 0x1010 0xf0 FUNC GLOB D 0 .text set_program_name > [36] 0x11ae4 0x4 OBJT GLOB D 0 .data program_name > [20] program_name > 26 [26] set_program_name > [2] 0x11a10 0 R_SPARC_GLOB_DAT program_name > [23] R_SPARC_HI22 0x10d4 0 0 .text program_name > [24] R_SPARC_LO10 0x10d8 0 0 .text program_name > [25] R_SPARC_GLOB_DAT 0x11a10 0 0 .got program_name > > but program_name really is an undefined variable here in this context, > so I was > wondering if there was a better fix that was needed here. > > Thanks in consideration. > > PS: Going to bed now; back online in a few hours... The simplest fix would be to turn it into a macro: diff --git a/src/system.h b/src/system.h index 9898bc7..857e56d 100644 --- a/src/system.h +++ b/src/system.h @@ -650,11 +650,16 @@ emit_ancillary_info (char const *program) node, node == program ? " invocation" : ""); } -static inline void -emit_try_help (void) -{ - fprintf (stderr, _("Try '%s --help' for more information.\n"), program_name); -} +/* A macro rather than an inline function, as it references + the global program_name, which causes run time linking issues + in libstdbuf.so where unused functions are not removed by the linker. */ +#define emit_try_help() \ + do \ + { \ + fprintf (stderr, _("Try '%s --help' for more information.\n"), \ + program_name); \ + } \ + while (0) #include "inttostr.h" From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 24 16:51:55 2016 Received: (at 22430) by debbugs.gnu.org; 24 Jan 2016 21:51:55 +0000 Received: from localhost ([127.0.0.1]:35236 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aNSZf-0003yS-Al for submit@debbugs.gnu.org; Sun, 24 Jan 2016 16:51:55 -0500 Received: from aserp1040.oracle.com ([141.146.126.69]:39275) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aNSZd-0003yA-7D for 22430@debbugs.gnu.org; Sun, 24 Jan 2016 16:51:53 -0500 Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u0OLpjrf010024 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Sun, 24 Jan 2016 21:51:45 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u0OLpig8031250 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Sun, 24 Jan 2016 21:51:45 GMT Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by userv0121.oracle.com (8.13.8/8.13.8) with ESMTP id u0OLpi1S023019; Sun, 24 Jan 2016 21:51:44 GMT Received: from [10.0.1.5] (/50.136.242.202) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 24 Jan 2016 13:51:44 -0800 Subject: Re: bug#22430: Relocation error with libstdbuf.so on Solaris SPARC with Studio compilation. To: =?UTF-8?Q?P=c3=a1draig_Brady?= , 22430@debbugs.gnu.org References: <56A2044A.7070807@oracle.com> <56A50496.8040607@draigBrady.com> From: Rich Burridge Message-ID: <56A5476F.90500@oracle.com> Date: Sun, 24 Jan 2016 13:51:43 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <56A50496.8040607@draigBrady.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Source-IP: aserv0021.oracle.com [141.146.126.233] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 22430 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On 01/24/2016 09:06 AM, Pádraig Brady wrote: > ... > The simplest fix would be to turn it into a macro: > > diff --git a/src/system.h b/src/system.h > index 9898bc7..857e56d 100644 > --- a/src/system.h > +++ b/src/system.h > @@ -650,11 +650,16 @@ emit_ancillary_info (char const *program) > node, node == program ? " invocation" : ""); > } > > -static inline void > -emit_try_help (void) > -{ > - fprintf (stderr, _("Try '%s --help' for more information.\n"), program_name); > -} > +/* A macro rather than an inline function, as it references > + the global program_name, which causes run time linking issues > + in libstdbuf.so where unused functions are not removed by the linker. */ > +#define emit_try_help() \ > + do \ > + { \ > + fprintf (stderr, _("Try '%s --help' for more information.\n"), \ > + program_name); \ > + } \ > + while (0) > > #include "inttostr.h" This works great. Thanks! From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 24 21:11:52 2016 Received: (at control) by debbugs.gnu.org; 25 Jan 2016 02:11:52 +0000 Received: from localhost ([127.0.0.1]:35327 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aNWdE-0004p2-4W for submit@debbugs.gnu.org; Sun, 24 Jan 2016 21:11:52 -0500 Received: from mail.magicbluesmoke.com ([82.195.144.49]:39363) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aNWdC-0004or-Je for control@debbugs.gnu.org; Sun, 24 Jan 2016 21:11:50 -0500 Received: from localhost.localdomain (c-73-70-29-104.hsd1.ca.comcast.net [73.70.29.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.magicbluesmoke.com (Postfix) with ESMTPSA id BDF2F9960 for ; Mon, 25 Jan 2016 02:11:46 +0000 (GMT) To: GNU bug tracker automated control server From: =?UTF-8?Q?P=c3=a1draig_Brady?= Message-ID: <56A58462.7010905@draigBrady.com> Date: Sun, 24 Jan 2016 18:11:46 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: close 22430 stop [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: close 22430 stop [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject close 22430 stop From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 25 02:23:17 2016 Received: (at 22430) by debbugs.gnu.org; 25 Jan 2016 07:23:17 +0000 Received: from localhost ([127.0.0.1]:35410 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aNbUb-0006wD-6l for submit@debbugs.gnu.org; Mon, 25 Jan 2016 02:23:17 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:58414) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aNbUZ-0006w0-ND for 22430@debbugs.gnu.org; Mon, 25 Jan 2016 02:23:16 -0500 Received: from [192.168.101.10] ([217.86.69.36]) by mrelayeu.kundenserver.de (mreue102) with ESMTPSA (Nemesis) id 0M6DsI-1aCxWM43as-00yAVx; Mon, 25 Jan 2016 08:23:05 +0100 Subject: Re: bug#22430: Relocation error with libstdbuf.so on Solaris SPARC with Studio compilation. To: =?UTF-8?Q?P=c3=a1draig_Brady?= , Rich Burridge , 22430@debbugs.gnu.org References: <56A2044A.7070807@oracle.com> <56A50496.8040607@draigBrady.com> From: Bernhard Voelker Message-ID: <56A5CD57.7000509@bernhard-voelker.de> Date: Mon, 25 Jan 2016 08:23:03 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <56A50496.8040607@draigBrady.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:EingArmjE/iQ5RX/aX1bJej8JDcAbwCVTbEYshfiDu2bIBeuNtY DZz2/Fc/ZEpN2L/QjY9+tDVANzxnHR6zUEZVafN824u+Uyd+nmmdTPO1sQ3/L7Lbg3iVjI2 tJNNrpbsheKyWsMrNLkDh38Q/reGT0hPzlBoPDoBIA7RAOwjFb8d0qlDShQqyRRcKm+lPMe if75i9J5I1eUv7APWp/vA== X-UI-Out-Filterresults: notjunk:1;V01:K0:mfhubd6S4/o=:HamfDvFNE5B58tLoxpLmNW gENQFppnZW9uS3bEYvqDb0j1rwDymFjWdS+wpOQSBVqoDds4F3H7jwglloafczsnTNTQ33IL4 pHHevyR+iPJ3yIaBhnu/n1NrC0wz4f1PR8jbrEM76FgKv5ON/NsE8FkAHPVTmNDJ+2Vxx0/FR Z8wzkAC11BwaolMMHs6P7Ve8kNSJGTiwTmgr/tDVC/NQk4D3GIaLr2ZTntLc5xhGZdE9vQGO7 XGqJ2Y7e2c95Ho9R8bWfpOuASGA1V5s9kqoAYfeFqaclDgajiPm5ahiJEbMneQ+jNlG9C03mE CkDjvmNAZ4KUp+4mXCIVM6JdP+n9IS6u367RqRTRXKh2NxQVCeazOrqECcHkxvw+S7jP2ItLs h5jM9q/v9kutTjQm7oHYjlNBt2BUX3MzRL/mlka+uhuqUGl9npuFIkcMKHsxNkSovmPFj3QJL fI+gSEI6t5ziHDk0fNwXBgW6j1OFJAy4QP6J7A827TScSyYQzWis0k1WOypp83ZQ41gJtBugJ tgAJPQs2u9D41jGiiev5nHHzU4WjKhyQaP6ypiTi09nmrjgCfqxQrAMdP4iL4EjXHZQh9HJT1 wJ7eDd5Mnb1n4CoAWsQ1pvJwliNtoCARr4T+8C28+yeEATkb3MShykyYbDHWqSm+r1H/DigzH g1KVcvMY3jCe3N8iNCyhPAvWxmAPMEJyvx4P+nGuOS0WAMEkeq5pja0U6oLXMrqL1cH5hfqUZ v0QbstJTajrbLZ8+ X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 22430 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On 01/24/2016 06:06 PM, Pádraig Brady wrote: > The simplest fix would be to turn it into a macro: Thinking about it again, we could've passed program_name as parameter to emit_try_help(), too, right? (... which would've meant a change to usage() of all programs, of course.) Have a nice day, Berny From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 25 03:25:10 2016 Received: (at 22430) by debbugs.gnu.org; 25 Jan 2016 08:25:10 +0000 Received: from localhost ([127.0.0.1]:35431 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aNcSU-0008Lg-0V for submit@debbugs.gnu.org; Mon, 25 Jan 2016 03:25:10 -0500 Received: from mail.magicbluesmoke.com ([82.195.144.49]:39926) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aNcSS-0008LX-Mh for 22430@debbugs.gnu.org; Mon, 25 Jan 2016 03:25:09 -0500 Received: from localhost.localdomain (c-73-70-29-104.hsd1.ca.comcast.net [73.70.29.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.magicbluesmoke.com (Postfix) with ESMTPSA id 53A4B4AB1; Mon, 25 Jan 2016 08:25:04 +0000 (GMT) Subject: Re: bug#22430: Relocation error with libstdbuf.so on Solaris SPARC with Studio compilation. To: Bernhard Voelker , Rich Burridge , 22430@debbugs.gnu.org References: <56A2044A.7070807@oracle.com> <56A50496.8040607@draigBrady.com> <56A5CD57.7000509@bernhard-voelker.de> From: =?UTF-8?Q?P=c3=a1draig_Brady?= Message-ID: <56A5DBE0.6070802@draigBrady.com> Date: Mon, 25 Jan 2016 00:25:04 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <56A5CD57.7000509@bernhard-voelker.de> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 22430 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) On 24/01/16 23:23, Bernhard Voelker wrote: > On 01/24/2016 06:06 PM, Pádraig Brady wrote: >> The simplest fix would be to turn it into a macro: > > Thinking about it again, we could've passed program_name as > parameter to emit_try_help(), too, right? yes. > (... which would've > meant a change to usage() of all programs, of course.) right a more awkward patch From unknown Fri Jun 20 20:13:03 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 22 Feb 2016 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator