| author | |
| committer | |
| log | c354f074fa91d3d1672469ba4bbc49a1730e1d01 |
| tree | a48c93c1d19c38ec49d5f3b6412d265a58e4f0b5 |
| parent | 4971400bdcc810766da15c63e3e57a59e49499ca |
| parent | 26140678a5c72604f2baac3cb9d1e5f7b37b6b8d |
340 files changed, 11140 insertions(+), 5135 deletions(-)
README.md+2-1| ... | @@ -17,7 +17,8 @@ A general-purpose programming language and toolchain for maintaining | ... | @@ -17,7 +17,8 @@ A general-purpose programming language and toolchain for maintaining |
| 17 | [](https://dev.azure.com/ziglang/zig/_build/latest?definitionId=1&branchName=master) | 17 | [](https://dev.azure.com/ziglang/zig/_build/latest?definitionId=1&branchName=master) |
| 18 | 18 | ||
| 19 | Note that you can | 19 | Note that you can |
| 20 | [download a binary of master branch](https://ziglang.org/download/#release-master). | 20 | [download a binary of master branch](https://ziglang.org/download/#release-master) or |
| 21 | [install Zig from a package manager](https://github.com/ziglang/zig/wiki/Install-Zig-from-a-Package-Manager). | ||
| 21 | 22 | ||
| 22 | ### Stage 1: Build Zig from C++ Source Code | 23 | ### Stage 1: Build Zig from C++ Source Code |
| 23 | 24 |
build.zig+6-1| ... | @@ -49,6 +49,7 @@ pub fn build(b: *Builder) !void { | ... | @@ -49,6 +49,7 @@ pub fn build(b: *Builder) !void { |
| 49 | const skip_release_safe = b.option(bool, "skip-release-safe", "Main test suite skips release-safe builds") orelse skip_release; | 49 | const skip_release_safe = b.option(bool, "skip-release-safe", "Main test suite skips release-safe builds") orelse skip_release; |
| 50 | const skip_non_native = b.option(bool, "skip-non-native", "Main test suite skips non-native builds") orelse false; | 50 | const skip_non_native = b.option(bool, "skip-non-native", "Main test suite skips non-native builds") orelse false; |
| 51 | const skip_libc = b.option(bool, "skip-libc", "Main test suite skips tests that link libc") orelse false; | 51 | const skip_libc = b.option(bool, "skip-libc", "Main test suite skips tests that link libc") orelse false; |
| 52 | const skip_compile_errors = b.option(bool, "skip-compile-errors", "Main test suite skips compile error tests") orelse false; | ||
| 52 | 53 | ||
| 53 | const only_install_lib_files = b.option(bool, "lib-files-only", "Only install library files") orelse false; | 54 | const only_install_lib_files = b.option(bool, "lib-files-only", "Only install library files") orelse false; |
| 54 | const enable_llvm = b.option(bool, "enable-llvm", "Build self-hosted compiler with LLVM backend enabled") orelse false; | 55 | const enable_llvm = b.option(bool, "enable-llvm", "Build self-hosted compiler with LLVM backend enabled") orelse false; |
| ... | @@ -83,6 +84,7 @@ pub fn build(b: *Builder) !void { | ... | @@ -83,6 +84,7 @@ pub fn build(b: *Builder) !void { |
| 83 | } | 84 | } |
| 84 | 85 | ||
| 85 | const log_scopes = b.option([]const []const u8, "log", "Which log scopes to enable") orelse &[0][]const u8{}; | 86 | const log_scopes = b.option([]const []const u8, "log", "Which log scopes to enable") orelse &[0][]const u8{}; |
| 87 | const zir_dumps = b.option([]const []const u8, "dump-zir", "Which functions to dump ZIR for before codegen") orelse &[0][]const u8{}; | ||
| 86 | 88 | ||
| 87 | const opt_version_string = b.option([]const u8, "version-string", "Override Zig version string. Default is to find out with git."); | 89 | const opt_version_string = b.option([]const u8, "version-string", "Override Zig version string. Default is to find out with git."); |
| 88 | const version = if (opt_version_string) |version| version else v: { | 90 | const version = if (opt_version_string) |version| version else v: { |
| ... | @@ -103,6 +105,7 @@ pub fn build(b: *Builder) !void { | ... | @@ -103,6 +105,7 @@ pub fn build(b: *Builder) !void { |
| 103 | exe.addBuildOption([]const u8, "version", version); | 105 | exe.addBuildOption([]const u8, "version", version); |
| 104 | 106 | ||
| 105 | exe.addBuildOption([]const []const u8, "log_scopes", log_scopes); | 107 | exe.addBuildOption([]const []const u8, "log_scopes", log_scopes); |
| 108 | exe.addBuildOption([]const []const u8, "zir_dumps", zir_dumps); | ||
| 106 | exe.addBuildOption(bool, "enable_tracy", tracy != null); | 109 | exe.addBuildOption(bool, "enable_tracy", tracy != null); |
| 107 | if (tracy) |tracy_path| { | 110 | if (tracy) |tracy_path| { |
| 108 | const client_cpp = fs.path.join( | 111 | const client_cpp = fs.path.join( |
| ... | @@ -182,7 +185,9 @@ pub fn build(b: *Builder) !void { | ... | @@ -182,7 +185,9 @@ pub fn build(b: *Builder) !void { |
| 182 | test_step.dependOn(tests.addRunTranslatedCTests(b, test_filter)); | 185 | test_step.dependOn(tests.addRunTranslatedCTests(b, test_filter)); |
| 183 | // tests for this feature are disabled until we have the self-hosted compiler available | 186 | // tests for this feature are disabled until we have the self-hosted compiler available |
| 184 | // test_step.dependOn(tests.addGenHTests(b, test_filter)); | 187 | // test_step.dependOn(tests.addGenHTests(b, test_filter)); |
| 185 | test_step.dependOn(tests.addCompileErrorTests(b, test_filter, modes)); | 188 | if (!skip_compile_errors) { |
| 189 | test_step.dependOn(tests.addCompileErrorTests(b, test_filter, modes)); | ||
| 190 | } | ||
| 186 | test_step.dependOn(docs_step); | 191 | test_step.dependOn(docs_step); |
| 187 | } | 192 | } |
| 188 | 193 |
ci/azure/windows_msvc_script.bat+1-1| ... | @@ -24,7 +24,7 @@ cd %ZIGBUILDDIR% | ... | @@ -24,7 +24,7 @@ cd %ZIGBUILDDIR% |
| 24 | cmake.exe .. -Thost=x64 -G"Visual Studio 16 2019" -A x64 "-DCMAKE_INSTALL_PREFIX=%ZIGINSTALLDIR%" "-DCMAKE_PREFIX_PATH=%ZIGPREFIXPATH%" -DCMAKE_BUILD_TYPE=Release || exit /b | 24 | cmake.exe .. -Thost=x64 -G"Visual Studio 16 2019" -A x64 "-DCMAKE_INSTALL_PREFIX=%ZIGINSTALLDIR%" "-DCMAKE_PREFIX_PATH=%ZIGPREFIXPATH%" -DCMAKE_BUILD_TYPE=Release || exit /b |
| 25 | msbuild /maxcpucount /p:Configuration=Release INSTALL.vcxproj || exit /b | 25 | msbuild /maxcpucount /p:Configuration=Release INSTALL.vcxproj || exit /b |
| 26 | 26 | ||
| 27 | "%ZIGINSTALLDIR%\bin\zig.exe" build test || exit /b | 27 | "%ZIGINSTALLDIR%\bin\zig.exe" build test -Dskip-compile-errors || exit /b |
| 28 | 28 | ||
| 29 | set "PATH=%CD:~0,2%\msys64\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem" | 29 | set "PATH=%CD:~0,2%\msys64\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem" |
| 30 | SET "MSYSTEM=MINGW64" | 30 | SET "MSYSTEM=MINGW64" |
doc/langref.html.in+581-9| ... | @@ -10308,14 +10308,586 @@ fn readU32Be() u32 {} | ... | @@ -10308,14 +10308,586 @@ fn readU32Be() u32 {} |
| 10308 | {#header_close#} | 10308 | {#header_close#} |
| 10309 | 10309 | ||
| 10310 | {#header_open|Keyword Reference#} | 10310 | {#header_open|Keyword Reference#} |
| 10311 | <p> | 10311 | <div class="table-wrapper"> |
| 10312 | TODO the rest of the keywords. Most of these can just be links to the relevant section. | 10312 | <table> |
| 10313 | </p> | 10313 | <tr> |
| 10314 | {#header_open|Keyword: pub#} | 10314 | <th> |
| 10315 | <p>The {#syntax#}pub{#endsyntax#} in front of a top level declaration makes the | 10315 | Keyword |
| 10316 | declaration available to reference from a different file than the one it is declared in.</p> | 10316 | </th> |
| 10317 | {#see_also|@import#} | 10317 | <th> |
| 10318 | {#header_close#} | 10318 | Description |
| 10319 | </th> | ||
| 10320 | </tr> | ||
| 10321 | <tr> | ||
| 10322 | <td> | ||
| 10323 | <pre>{#syntax#}align{#endsyntax#}</pre> | ||
| 10324 | </td> | ||
| 10325 | <td> | ||
| 10326 | {#syntax#}align{#endsyntax#} can be used to specify the alignment of a pointer. | ||
| 10327 | It can also be used after a variable or function declaration to specify the alignment of pointers to that variable or function. | ||
| 10328 | <ul> | ||
| 10329 | <li>See also {#link|Alignment#}</li> | ||
| 10330 | </ul> | ||
| 10331 | </td> | ||
| 10332 | </tr> | ||
| 10333 | <tr> | ||
| 10334 | <td> | ||
| 10335 | <pre>{#syntax#}allowzero{#endsyntax#}</pre> | ||
| 10336 | </td> | ||
| 10337 | <td> | ||
| 10338 | The pointer attribute {#syntax#}allowzero{#endsyntax#} allows a pointer to have address zero. | ||
| 10339 | <ul> | ||
| 10340 | <li>See also {#link|allowzero#}</li> | ||
| 10341 | </ul> | ||
| 10342 | </td> | ||
| 10343 | </tr> | ||
| 10344 | <tr> | ||
| 10345 | <td> | ||
| 10346 | <pre>{#syntax#}and{#endsyntax#}</pre> | ||
| 10347 | </td> | ||
| 10348 | <td> | ||
| 10349 | The boolean operator {#syntax#}and{#endsyntax#}. | ||
| 10350 | <ul> | ||
| 10351 | <li>See also {#link|Operators#}</li> | ||
| 10352 | </ul> | ||
| 10353 | </td> | ||
| 10354 | </tr> | ||
| 10355 | <tr> | ||
| 10356 | <td> | ||
| 10357 | <pre>{#syntax#}anyframe{#endsyntax#}</pre> | ||
| 10358 | </td> | ||
| 10359 | <td> | ||
| 10360 | {#syntax#}anyframe{#endsyntax#} can be used as a type for variables which hold pointers to function frames. | ||
| 10361 | <ul> | ||
| 10362 | <li>See also {#link|Async Functions#}</li> | ||
| 10363 | </ul> | ||
| 10364 | </td> | ||
| 10365 | </tr> | ||
| 10366 | <tr> | ||
| 10367 | <td> | ||
| 10368 | <pre>{#syntax#}anytype{#endsyntax#}</pre> | ||
| 10369 | </td> | ||
| 10370 | <td> | ||
| 10371 | Function parameters and struct fields can be declared with {#syntax#}anytype{#endsyntax#} in place of the type. | ||
| 10372 | The type will be inferred where the function is called or the struct is instantiated. | ||
| 10373 | <ul> | ||
| 10374 | <li>See also {#link|Function Parameter Type Inference#}</li> | ||
| 10375 | </ul> | ||
| 10376 | </td> | ||
| 10377 | </tr> | ||
| 10378 | <tr> | ||
| 10379 | <td> | ||
| 10380 | <pre>{#syntax#}asm{#endsyntax#}</pre> | ||
| 10381 | </td> | ||
| 10382 | <td> | ||
| 10383 | {#syntax#}asm{#endsyntax#} begins an inline assembly expression. This allows for directly controlling the machine code generated on compilation. | ||
| 10384 | <ul> | ||
| 10385 | <li>See also {#link|Assembly#}</li> | ||
| 10386 | </ul> | ||
| 10387 | </td> | ||
| 10388 | </tr> | ||
| 10389 | <tr> | ||
| 10390 | <td> | ||
| 10391 | <pre>{#syntax#}async{#endsyntax#}</pre> | ||
| 10392 | </td> | ||
| 10393 | <td> | ||
| 10394 | {#syntax#}async{#endsyntax#} can be used before a function call to get a pointer to the function's frame when it suspends. | ||
| 10395 | <ul> | ||
| 10396 | <li>See also {#link|Async Functions#}</li> | ||
| 10397 | </ul> | ||
| 10398 | </td> | ||
| 10399 | </tr> | ||
| 10400 | <tr> | ||
| 10401 | <td> | ||
| 10402 | <pre>{#syntax#}await{#endsyntax#}</pre> | ||
| 10403 | </td> | ||
| 10404 | <td> | ||
| 10405 | {#syntax#}await{#endsyntax#} can be used to suspend the current function until the frame provided after the {#syntax#}await{#endsyntax#} completes. | ||
| 10406 | {#syntax#}await{#endsyntax#} copies the value returned from the target function's frame to the caller. | ||
| 10407 | <ul> | ||
| 10408 | <li>See also {#link|Async Functions#}</li> | ||
| 10409 | </ul> | ||
| 10410 | </td> | ||
| 10411 | </tr> | ||
| 10412 | <tr> | ||
| 10413 | <td> | ||
| 10414 | <pre>{#syntax#}break{#endsyntax#}</pre> | ||
| 10415 | </td> | ||
| 10416 | <td> | ||
| 10417 | {#syntax#}break{#endsyntax#} can be used with a block label to return a value from the block. | ||
| 10418 | It can also be used to exit a loop before iteration completes naturally. | ||
| 10419 | <ul> | ||
| 10420 | <li>See also {#link|blocks#}, {#link|while#}, {#link|for#}</li> | ||
| 10421 | </ul> | ||
| 10422 | </td> | ||
| 10423 | </tr> | ||
| 10424 | <tr> | ||
| 10425 | <td> | ||
| 10426 | <pre>{#syntax#}catch{#endsyntax#}</pre> | ||
| 10427 | </td> | ||
| 10428 | <td> | ||
| 10429 | {#syntax#}catch{#endsyntax#} can be used to evaluate an expression if the expression before it evaluates to an error. | ||
| 10430 | The expression after the {#syntax#}catch{#endsyntax#} can optionally capture the error value. | ||
| 10431 | <ul> | ||
| 10432 | <li>See also {#link|catch#}, {#link|Operators#}</li> | ||
| 10433 | </ul> | ||
| 10434 | </td> | ||
| 10435 | </tr> | ||
| 10436 | <tr> | ||
| 10437 | <td> | ||
| 10438 | <pre>{#syntax#}comptime{#endsyntax#}</pre> | ||
| 10439 | </td> | ||
| 10440 | <td> | ||
| 10441 | {#syntax#}comptime{#endsyntax#} before a declaration can be used to label variables or function parameters as known at compile time. | ||
| 10442 | It can also be used to guarantee an expression is run at compile time. | ||
| 10443 | <ul> | ||
| 10444 | <li>See also {#link|comptime#}</li> | ||
| 10445 | </ul> | ||
| 10446 | </td> | ||
| 10447 | </tr> | ||
| 10448 | <tr> | ||
| 10449 | <td> | ||
| 10450 | <pre>{#syntax#}const{#endsyntax#}</pre> | ||
| 10451 | </td> | ||
| 10452 | <td> | ||
| 10453 | {#syntax#}const{#endsyntax#} declares a variable that can not be modified. | ||
| 10454 | Used as a pointer attribute, it denotes the value referenced by the pointer cannot be modified. | ||
| 10455 | <ul> | ||
| 10456 | <li>See also {#link|Variables#}</li> | ||
| 10457 | </ul> | ||
| 10458 | </td> | ||
| 10459 | </tr> | ||
| 10460 | <tr> | ||
| 10461 | <td> | ||
| 10462 | <pre>{#syntax#}continue{#endsyntax#}</pre> | ||
| 10463 | </td> | ||
| 10464 | <td> | ||
| 10465 | {#syntax#}continue{#endsyntax#} can be used in a loop to jump back to the beginning of the loop. | ||
| 10466 | <ul> | ||
| 10467 | <li>See also {#link|while#}, {#link|for#}</li> | ||
| 10468 | </ul> | ||
| 10469 | </td> | ||
| 10470 | </tr> | ||
| 10471 | <tr> | ||
| 10472 | <td> | ||
| 10473 | <pre>{#syntax#}defer{#endsyntax#}</pre> | ||
| 10474 | </td> | ||
| 10475 | <td> | ||
| 10476 | {#syntax#}defer{#endsyntax#} will execute an expression when control flow leaves the current block. | ||
| 10477 | <ul> | ||
| 10478 | <li>See also {#link|defer#}</li> | ||
| 10479 | </ul> | ||
| 10480 | </td> | ||
| 10481 | </tr> | ||
| 10482 | <tr> | ||
| 10483 | <td> | ||
| 10484 | <pre>{#syntax#}else{#endsyntax#}</pre> | ||
| 10485 | </td> | ||
| 10486 | <td> | ||
| 10487 | {#syntax#}else{#endsyntax#} can be used to provide an alternate branch for {#syntax#}if{#endsyntax#}, {#syntax#}switch{#endsyntax#}, | ||
| 10488 | {#syntax#}while{#endsyntax#}, and {#syntax#}for{#endsyntax#} expressions. | ||
| 10489 | <ul> | ||
| 10490 | <li>If used after an if expression, the else branch will be executed if the test value returns false, null, or an error.</li> | ||
| 10491 | <li>If used within a switch expression, the else branch will be executed if the test value matches no other cases.</li> | ||
| 10492 | <li>If used after a loop expression, the else branch will be executed if the loop finishes without breaking.</li> | ||
| 10493 | <li>See also {#link|if#}, {#link|switch#}, {#link|while#}, {#link|for#}</li> | ||
| 10494 | </ul> | ||
| 10495 | </td> | ||
| 10496 | </tr> | ||
| 10497 | <tr> | ||
| 10498 | <td> | ||
| 10499 | <pre>{#syntax#}enum{#endsyntax#}</pre> | ||
| 10500 | </td> | ||
| 10501 | <td> | ||
| 10502 | {#syntax#}enum{#endsyntax#} defines an enum type. | ||
| 10503 | <ul> | ||
| 10504 | <li>See also {#link|enum#}</li> | ||
| 10505 | </ul> | ||
| 10506 | </td> | ||
| 10507 | </tr> | ||
| 10508 | <tr> | ||
| 10509 | <td> | ||
| 10510 | <pre>{#syntax#}errdefer{#endsyntax#}</pre> | ||
| 10511 | </td> | ||
| 10512 | <td> | ||
| 10513 | {#syntax#}errdefer{#endsyntax#} will execute an expression when control flow leaves the current block if the function returns an error. | ||
| 10514 | <ul> | ||
| 10515 | <li>See also {#link|errdefer#}</li> | ||
| 10516 | </ul> | ||
| 10517 | </td> | ||
| 10518 | </tr> | ||
| 10519 | <tr> | ||
| 10520 | <td> | ||
| 10521 | <pre>{#syntax#}error{#endsyntax#}</pre> | ||
| 10522 | </td> | ||
| 10523 | <td> | ||
| 10524 | {#syntax#}error{#endsyntax#} defines an error type. | ||
| 10525 | <ul> | ||
| 10526 | <li>See also {#link|Errors#}</li> | ||
| 10527 | </ul> | ||
| 10528 | </td> | ||
| 10529 | </tr> | ||
| 10530 | <tr> | ||
| 10531 | <td> | ||
| 10532 | <pre>{#syntax#}export{#endsyntax#}</pre> | ||
| 10533 | </td> | ||
| 10534 | <td> | ||
| 10535 | {#syntax#}export{#endsyntax#} makes a function or variable externally visible in the generated object file. | ||
| 10536 | Exported functions default to the C calling convention. | ||
| 10537 | <ul> | ||
| 10538 | <li>See also {#link|Functions#}</li> | ||
| 10539 | </ul> | ||
| 10540 | </td> | ||
| 10541 | </tr> | ||
| 10542 | <tr> | ||
| 10543 | <td> | ||
| 10544 | <pre>{#syntax#}extern{#endsyntax#}</pre> | ||
| 10545 | </td> | ||
| 10546 | <td> | ||
| 10547 | {#syntax#}extern{#endsyntax#} can be used to declare a function or variable that will be resolved at link time, when linking statically | ||
| 10548 | or at runtime, when linking dynamically. | ||
| 10549 | <ul> | ||
| 10550 | <li>See also {#link|Functions#}</li> | ||
| 10551 | </ul> | ||
| 10552 | </td> | ||
| 10553 | </tr> | ||
| 10554 | <tr> | ||
| 10555 | <td> | ||
| 10556 | <pre>{#syntax#}false{#endsyntax#}</pre> | ||
| 10557 | </td> | ||
| 10558 | <td> | ||
| 10559 | The boolean value {#syntax#}false{#endsyntax#}. | ||
| 10560 | <ul> | ||
| 10561 | <li>See also {#link|Primitive Values#}</li> | ||
| 10562 | </ul> | ||
| 10563 | </td> | ||
| 10564 | </tr> | ||
| 10565 | <tr> | ||
| 10566 | <td> | ||
| 10567 | <pre>{#syntax#}fn{#endsyntax#}</pre> | ||
| 10568 | </td> | ||
| 10569 | <td> | ||
| 10570 | {#syntax#}fn{#endsyntax#} declares a function. | ||
| 10571 | <ul> | ||
| 10572 | <li>See also {#link|Functions#}</li> | ||
| 10573 | </ul> | ||
| 10574 | </td> | ||
| 10575 | </tr> | ||
| 10576 | <tr> | ||
| 10577 | <td> | ||
| 10578 | <pre>{#syntax#}for{#endsyntax#}</pre> | ||
| 10579 | </td> | ||
| 10580 | <td> | ||
| 10581 | A {#syntax#}for{#endsyntax#} expression can be used to iterate over the elements of a slice, array, or tuple. | ||
| 10582 | <ul> | ||
| 10583 | <li>See also {#link|for#}</li> | ||
| 10584 | </ul> | ||
| 10585 | </td> | ||
| 10586 | </tr> | ||
| 10587 | <tr> | ||
| 10588 | <td> | ||
| 10589 | <pre>{#syntax#}if{#endsyntax#}</pre> | ||
| 10590 | </td> | ||
| 10591 | <td> | ||
| 10592 | An {#syntax#}if{#endsyntax#} expression can test boolean expressions, optional values, or error unions. | ||
| 10593 | For optional values or error unions, the if expression can capture the unwrapped value. | ||
| 10594 | <ul> | ||
| 10595 | <li>See also {#link|if#}</li> | ||
| 10596 | </ul> | ||
| 10597 | </td> | ||
| 10598 | </tr> | ||
| 10599 | <tr> | ||
| 10600 | <td> | ||
| 10601 | <pre>{#syntax#}inline{#endsyntax#}</pre> | ||
| 10602 | </td> | ||
| 10603 | <td> | ||
| 10604 | {#syntax#}inline{#endsyntax#} can be used to label a loop expression such that it will be unrolled at compile time. | ||
| 10605 | It can also be used to force a function to be inlined at all call sites. | ||
| 10606 | <ul> | ||
| 10607 | <li>See also {#link|inline while#}, {#link|inline for#}, {#link|Functions#}</li> | ||
| 10608 | </ul> | ||
| 10609 | </td> | ||
| 10610 | </tr> | ||
| 10611 | <tr> | ||
| 10612 | <td> | ||
| 10613 | <pre>{#syntax#}noalias{#endsyntax#}</pre> | ||
| 10614 | </td> | ||
| 10615 | <td> | ||
| 10616 | The {#syntax#}noalias{#endsyntax#} keyword. | ||
| 10617 | <ul> | ||
| 10618 | <li>TODO add documentation for noalias</li> | ||
| 10619 | </ul> | ||
| 10620 | </td> | ||
| 10621 | </tr> | ||
| 10622 | <tr> | ||
| 10623 | <td> | ||
| 10624 | <pre>{#syntax#}nosuspend{#endsyntax#}</pre> | ||
| 10625 | </td> | ||
| 10626 | <td> | ||
| 10627 | The {#syntax#}nosuspend{#endsyntax#} keyword. | ||
| 10628 | <ul> | ||
| 10629 | <li>TODO add documentation for nosuspend</li> | ||
| 10630 | </ul> | ||
| 10631 | </td> | ||
| 10632 | </tr> | ||
| 10633 | <tr> | ||
| 10634 | <td> | ||
| 10635 | <pre>{#syntax#}null{#endsyntax#}</pre> | ||
| 10636 | </td> | ||
| 10637 | <td> | ||
| 10638 | The optional value {#syntax#}null{#endsyntax#}. | ||
| 10639 | <ul> | ||
| 10640 | <li>See also {#link|null#}</li> | ||
| 10641 | </ul> | ||
| 10642 | </td> | ||
| 10643 | </tr> | ||
| 10644 | <tr> | ||
| 10645 | <td> | ||
| 10646 | <pre>{#syntax#}or{#endsyntax#}</pre> | ||
| 10647 | </td> | ||
| 10648 | <td> | ||
| 10649 | The boolean operator {#syntax#}or{#endsyntax#}. | ||
| 10650 | <ul> | ||
| 10651 | <li>See also {#link|Operators#}</li> | ||
| 10652 | </ul> | ||
| 10653 | </td> | ||
| 10654 | </tr> | ||
| 10655 | <tr> | ||
| 10656 | <td> | ||
| 10657 | <pre>{#syntax#}orelse{#endsyntax#}</pre> | ||
| 10658 | </td> | ||
| 10659 | <td> | ||
| 10660 | {#syntax#}orelse{#endsyntax#} can be used to evaluate an expression if the expression before it evaluates to null. | ||
| 10661 | <ul> | ||
| 10662 | <li>See also {#link|Optionals#}, {#link|Operators#}</li> | ||
| 10663 | </ul> | ||
| 10664 | </td> | ||
| 10665 | </tr> | ||
| 10666 | <tr> | ||
| 10667 | <td> | ||
| 10668 | <pre>{#syntax#}packed{#endsyntax#}</pre> | ||
| 10669 | </td> | ||
| 10670 | <td> | ||
| 10671 | The {#syntax#}packed{#endsyntax#} keyword before a struct definition changes the struct's in-memory layout | ||
| 10672 | to the guaranteed {#syntax#}packed{#endsyntax#} layout. | ||
| 10673 | <ul> | ||
| 10674 | <li>See also {#link|packed struct#}</li> | ||
| 10675 | </ul> | ||
| 10676 | </td> | ||
| 10677 | </tr> | ||
| 10678 | <tr> | ||
| 10679 | <td> | ||
| 10680 | <pre>{#syntax#}pub{#endsyntax#}</pre> | ||
| 10681 | </td> | ||
| 10682 | <td> | ||
| 10683 | The {#syntax#}pub{#endsyntax#} in front of a top level declaration makes the declaration available | ||
| 10684 | to reference from a different file than the one it is declared in. | ||
| 10685 | <ul> | ||
| 10686 | <li>See also {#link|import#}</li> | ||
| 10687 | </ul> | ||
| 10688 | </td> | ||
| 10689 | </tr> | ||
| 10690 | <tr> | ||
| 10691 | <td> | ||
| 10692 | <pre>{#syntax#}resume{#endsyntax#}</pre> | ||
| 10693 | </td> | ||
| 10694 | <td> | ||
| 10695 | {#syntax#}resume{#endsyntax#} will continue execution of a function frame after the point the function was suspended. | ||
| 10696 | <ul> | ||
| 10697 | <li>See also {#link|Suspend and Resume#}</li> | ||
| 10698 | </ul> | ||
| 10699 | </td> | ||
| 10700 | </tr> | ||
| 10701 | <tr> | ||
| 10702 | <td> | ||
| 10703 | <pre>{#syntax#}return{#endsyntax#}</pre> | ||
| 10704 | </td> | ||
| 10705 | <td> | ||
| 10706 | {#syntax#}return{#endsyntax#} exits a function with a value. | ||
| 10707 | <ul> | ||
| 10708 | <li>See also {#link|Functions#}</li> | ||
| 10709 | </ul> | ||
| 10710 | </td> | ||
| 10711 | </tr> | ||
| 10712 | <tr> | ||
| 10713 | <td> | ||
| 10714 | <pre>{#syntax#}linksection{#endsyntax#}</pre> | ||
| 10715 | </td> | ||
| 10716 | <td> | ||
| 10717 | The {#syntax#}linksection{#endsyntax#} keyword. | ||
| 10718 | <ul> | ||
| 10719 | <li>TODO add documentation for linksection</li> | ||
| 10720 | </ul> | ||
| 10721 | </td> | ||
| 10722 | </tr> | ||
| 10723 | <tr> | ||
| 10724 | <td> | ||
| 10725 | <pre>{#syntax#}struct{#endsyntax#}</pre> | ||
| 10726 | </td> | ||
| 10727 | <td> | ||
| 10728 | {#syntax#}struct{#endsyntax#} defines a struct. | ||
| 10729 | <ul> | ||
| 10730 | <li>See also {#link|struct#}</li> | ||
| 10731 | </ul> | ||
| 10732 | </td> | ||
| 10733 | </tr> | ||
| 10734 | <tr> | ||
| 10735 | <td> | ||
| 10736 | <pre>{#syntax#}suspend{#endsyntax#}</pre> | ||
| 10737 | </td> | ||
| 10738 | <td> | ||
| 10739 | {#syntax#}suspend{#endsyntax#} will cause control flow to return to the call site or resumer of the function. | ||
| 10740 | {#syntax#}suspend{#endsyntax#} can also be used before a block within a function, | ||
| 10741 | to allow the function access to its frame before control flow returns to the call site. | ||
| 10742 | <ul> | ||
| 10743 | <li>See also {#link|Suspend and Resume#}</li> | ||
| 10744 | </ul> | ||
| 10745 | </td> | ||
| 10746 | </tr> | ||
| 10747 | <tr> | ||
| 10748 | <td> | ||
| 10749 | <pre>{#syntax#}switch{#endsyntax#}</pre> | ||
| 10750 | </td> | ||
| 10751 | <td> | ||
| 10752 | A {#syntax#}switch{#endsyntax#} expression can be used to test values of a common type. | ||
| 10753 | {#syntax#}switch{#endsyntax#} cases can capture field values of a {#link|Tagged union#}. | ||
| 10754 | <ul> | ||
| 10755 | <li>See also {#link|switch#}</li> | ||
| 10756 | </ul> | ||
| 10757 | </td> | ||
| 10758 | </tr> | ||
| 10759 | <tr> | ||
| 10760 | <td> | ||
| 10761 | <pre>{#syntax#}test{#endsyntax#}</pre> | ||
| 10762 | </td> | ||
| 10763 | <td> | ||
| 10764 | The {#syntax#}test{#endsyntax#} keyword can be used to denote a top-level block of code | ||
| 10765 | used to make sure behavior meets expectations. | ||
| 10766 | <ul> | ||
| 10767 | <li>See also {#link|Zig Test#}</li> | ||
| 10768 | </ul> | ||
| 10769 | </td> | ||
| 10770 | </tr> | ||
| 10771 | <tr> | ||
| 10772 | <td> | ||
| 10773 | <pre>{#syntax#}threadlocal{#endsyntax#}</pre> | ||
| 10774 | </td> | ||
| 10775 | <td> | ||
| 10776 | {#syntax#}threadlocal{#endsyntax#} can be used to specify a variable as thread-local. | ||
| 10777 | <ul> | ||
| 10778 | <li>See also {#link|Thread Local Variables#}</li> | ||
| 10779 | </ul> | ||
| 10780 | </td> | ||
| 10781 | </tr> | ||
| 10782 | <tr> | ||
| 10783 | <td> | ||
| 10784 | <pre>{#syntax#}true{#endsyntax#}</pre> | ||
| 10785 | </td> | ||
| 10786 | <td> | ||
| 10787 | The boolean value {#syntax#}true{#endsyntax#}. | ||
| 10788 | <ul> | ||
| 10789 | <li>See also {#link|Primitive Values#}</li> | ||
| 10790 | </ul> | ||
| 10791 | </td> | ||
| 10792 | </tr> | ||
| 10793 | <tr> | ||
| 10794 | <td> | ||
| 10795 | <pre>{#syntax#}try{#endsyntax#}</pre> | ||
| 10796 | </td> | ||
| 10797 | <td> | ||
| 10798 | {#syntax#}try{#endsyntax#} evaluates an error union expression. | ||
| 10799 | If it is an error, it returns from the current function with the same error. | ||
| 10800 | Otherwise, the expression results in the unwrapped value. | ||
| 10801 | <ul> | ||
| 10802 | <li>See also {#link|try#}</li> | ||
| 10803 | </ul> | ||
| 10804 | </td> | ||
| 10805 | </tr> | ||
| 10806 | <tr> | ||
| 10807 | <td> | ||
| 10808 | <pre>{#syntax#}undefined{#endsyntax#}</pre> | ||
| 10809 | </td> | ||
| 10810 | <td> | ||
| 10811 | {#syntax#}undefined{#endsyntax#} can be used to leave a value uninitialized. | ||
| 10812 | <ul> | ||
| 10813 | <li>See also {#link|undefined#}</li> | ||
| 10814 | </ul> | ||
| 10815 | </td> | ||
| 10816 | </tr> | ||
| 10817 | <tr> | ||
| 10818 | <td> | ||
| 10819 | <pre>{#syntax#}union{#endsyntax#}</pre> | ||
| 10820 | </td> | ||
| 10821 | <td> | ||
| 10822 | {#syntax#}union{#endsyntax#} defines a union. | ||
| 10823 | <ul> | ||
| 10824 | <li>See also {#link|union#}</li> | ||
| 10825 | </ul> | ||
| 10826 | </td> | ||
| 10827 | </tr> | ||
| 10828 | <tr> | ||
| 10829 | <td> | ||
| 10830 | <pre>{#syntax#}unreachable{#endsyntax#}</pre> | ||
| 10831 | </td> | ||
| 10832 | <td> | ||
| 10833 | {#syntax#}unreachable{#endsyntax#} can be used to assert that control flow will never happen upon a particular location. | ||
| 10834 | Depending on the build mode, {#syntax#}unreachable{#endsyntax#} may emit a panic. | ||
| 10835 | <ul> | ||
| 10836 | <li>Emits a panic in {#syntax#}Debug{#endsyntax#} and {#syntax#}ReleaseSafe{#endsyntax#} mode, or when using <code>zig test</code>.</li> | ||
| 10837 | <li>Does not emit a panic in {#syntax#}ReleaseFast{#endsyntax#} mode, unless <code>zig test</code> is being used.</li> | ||
| 10838 | <li>See also {#link|unreachable#}</li> | ||
| 10839 | </ul> | ||
| 10840 | </td> | ||
| 10841 | </tr> | ||
| 10842 | <tr> | ||
| 10843 | <td> | ||
| 10844 | <pre>{#syntax#}usingnamespace{#endsyntax#}</pre> | ||
| 10845 | </td> | ||
| 10846 | <td> | ||
| 10847 | {#syntax#}usingnamespace{#endsyntax#} is a top-level declaration that imports all the public declarations of the operand, | ||
| 10848 | which must be a struct, union, or enum, into the current scope. | ||
| 10849 | <ul> | ||
| 10850 | <li>See also {#link|usingnamespace#}</li> | ||
| 10851 | </ul> | ||
| 10852 | </td> | ||
| 10853 | </tr> | ||
| 10854 | <tr> | ||
| 10855 | <td> | ||
| 10856 | <pre>{#syntax#}var{#endsyntax#}</pre> | ||
| 10857 | </td> | ||
| 10858 | <td> | ||
| 10859 | {#syntax#}var{#endsyntax#} declares a variable that may be modified. | ||
| 10860 | <ul> | ||
| 10861 | <li>See also {#link|Variables#}</li> | ||
| 10862 | </ul> | ||
| 10863 | </td> | ||
| 10864 | </tr> | ||
| 10865 | <tr> | ||
| 10866 | <td> | ||
| 10867 | <pre>{#syntax#}volatile{#endsyntax#}</pre> | ||
| 10868 | </td> | ||
| 10869 | <td> | ||
| 10870 | {#syntax#}volatile{#endsyntax#} can be used to denote loads or stores of a pointer have side effects. | ||
| 10871 | It can also modify an inline assembly expression to denote it has side effects. | ||
| 10872 | <ul> | ||
| 10873 | <li>See also {#link|volatile#}, {#link|Assembly#}</li> | ||
| 10874 | </ul> | ||
| 10875 | </td> | ||
| 10876 | </tr> | ||
| 10877 | <tr> | ||
| 10878 | <td> | ||
| 10879 | <pre>{#syntax#}while{#endsyntax#}</pre> | ||
| 10880 | </td> | ||
| 10881 | <td> | ||
| 10882 | A {#syntax#}while{#endsyntax#} expression can be used to repeatedly test a boolean, optional, or error union expression, | ||
| 10883 | and cease looping when that expression evaluates to false, null, or an error, respectively. | ||
| 10884 | <ul> | ||
| 10885 | <li>See also {#link|while#}</li> | ||
| 10886 | </ul> | ||
| 10887 | </td> | ||
| 10888 | </tr> | ||
| 10889 | </table> | ||
| 10890 | </div> | ||
| 10319 | {#header_close#} | 10891 | {#header_close#} |
| 10320 | 10892 | ||
| 10321 | {#header_open|Grammar#} | 10893 | {#header_open|Grammar#} |
| ... | @@ -10822,7 +11394,7 @@ keyword &lt;- KEYWORD_align / KEYWORD_and / KEYWORD_anyframe / KEYWORD_anytype | ... | @@ -10822,7 +11394,7 @@ keyword &lt;- KEYWORD_align / KEYWORD_and / KEYWORD_anyframe / KEYWORD_anytype |
| 10822 | <li>Reduce the amount one must remember.</li> | 11394 | <li>Reduce the amount one must remember.</li> |
| 10823 | <li>Minimize energy spent on coding style.</li> | 11395 | <li>Minimize energy spent on coding style.</li> |
| 10824 | <li>Resource deallocation must succeed.</li> | 11396 | <li>Resource deallocation must succeed.</li> |
| 10825 | <li>Together we serve end users.</li> | 11397 | <li>Together we serve the users.</li> |
| 10826 | </ul> | 11398 | </ul> |
| 10827 | {#header_close#} | 11399 | {#header_close#} |
| 10828 | </div></div> | 11400 | </div></div> |
lib/libc/glibc/abi.txt+3606-351| ... | @@ -200,7 +200,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -200,7 +200,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 200 | 29 | 200 | 29 |
| 201 | 201 | ||
| 202 | 29 | 202 | 29 |
| 203 | |||
| 203 | 29 | 204 | 29 |
| 205 | |||
| 204 | 29 | 206 | 29 |
| 205 | 207 | ||
| 206 | 208 | ||
| ... | @@ -229,6 +231,8 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -229,6 +231,8 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 229 | 231 | ||
| 230 | 232 | ||
| 231 | 233 | ||
| 234 | |||
| 235 | |||
| 232 | 29 | 236 | 29 |
| 233 | 29 | 237 | 29 |
| 234 | 29 | 238 | 29 |
| ... | @@ -237,47 +241,83 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -237,47 +241,83 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 237 | 29 | 241 | 29 |
| 238 | 242 | ||
| 239 | 29 | 243 | 29 |
| 244 | |||
| 245 | |||
| 240 | 29 | 246 | 29 |
| 241 | 29 | 247 | 29 |
| 242 | 29 | 248 | 29 |
| 249 | |||
| 250 | |||
| 243 | 29 | 251 | 29 |
| 244 | 29 | 252 | 29 |
| 245 | 29 | 253 | 29 |
| 246 | 29 | 254 | 29 |
| 247 | 255 | ||
| 248 | 29 | 256 | 29 |
| 257 | |||
| 249 | 29 | 258 | 29 |
| 250 | 29 | 259 | 29 |
| 251 | 260 | ||
| 252 | 29 | 261 | 29 |
| 262 | |||
| 253 | 29 | 263 | 29 |
| 254 | 264 | ||
| 255 | 265 | ||
| 256 | 266 | ||
| 267 | |||
| 257 | 29 | 268 | 29 |
| 258 | 29 | 269 | 29 |
| 259 | 29 | 270 | 29 |
| 260 | 29 | 271 | 29 |
| 261 | 29 | 272 | 29 |
| 273 | |||
| 274 | |||
| 275 | |||
| 276 | |||
| 277 | |||
| 278 | |||
| 279 | |||
| 280 | |||
| 281 | |||
| 282 | |||
| 283 | |||
| 284 | |||
| 285 | |||
| 286 | |||
| 262 | 29 | 287 | 29 |
| 263 | 29 | 288 | 29 |
| 289 | |||
| 264 | 29 | 290 | 29 |
| 265 | 29 | 291 | 29 |
| 292 | |||
| 266 | 29 | 293 | 29 |
| 294 | |||
| 267 | 29 | 295 | 29 |
| 268 | 29 | 296 | 29 |
| 269 | 297 | ||
| 270 | 29 | 298 | 29 |
| 271 | 29 | 299 | 29 |
| 300 | |||
| 272 | 29 | 301 | 29 |
| 302 | |||
| 273 | 29 | 303 | 29 |
| 274 | 304 | ||
| 275 | 29 | 305 | 29 |
| 306 | |||
| 276 | 29 | 307 | 29 |
| 277 | 308 | ||
| 278 | 309 | ||
| 279 | 310 | ||
| 280 | 311 | ||
| 312 | |||
| 313 | |||
| 314 | |||
| 315 | |||
| 316 | |||
| 317 | |||
| 318 | |||
| 319 | |||
| 320 | |||
| 281 | 29 | 321 | 29 |
| 282 | 29 | 322 | 29 |
| 283 | 323 | ||
| ... | @@ -301,29 +341,50 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -301,29 +341,50 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 301 | 341 | ||
| 302 | 342 | ||
| 303 | 29 | 343 | 29 |
| 344 | |||
| 345 | |||
| 304 | 29 | 346 | 29 |
| 305 | 29 | 347 | 29 |
| 306 | 29 | 348 | 29 |
| 307 | 29 | 349 | 29 |
| 308 | 350 | ||
| 309 | 351 | ||
| 352 | |||
| 353 | |||
| 354 | |||
| 310 | 29 | 355 | 29 |
| 356 | |||
| 357 | |||
| 358 | |||
| 311 | 29 | 359 | 29 |
| 312 | 360 | ||
| 313 | 29 | 361 | 29 |
| 362 | |||
| 314 | 29 | 363 | 29 |
| 315 | 29 | 364 | 29 |
| 316 | 365 | ||
| 317 | 29 | 366 | 29 |
| 367 | |||
| 318 | 29 | 368 | 29 |
| 319 | 29 | 369 | 29 |
| 320 | 370 | ||
| 321 | 29 | 371 | 29 |
| 322 | 372 | ||
| 373 | |||
| 323 | 29 | 374 | 29 |
| 324 | 35 | 375 | 35 |
| 325 | 376 | ||
| 326 | 377 | ||
| 378 | |||
| 379 | |||
| 380 | |||
| 381 | |||
| 382 | |||
| 383 | |||
| 384 | |||
| 385 | |||
| 386 | |||
| 387 | |||
| 327 | 29 | 388 | 29 |
| 328 | 29 | 389 | 29 |
| 329 | 29 | 390 | 29 |
| ... | @@ -334,6 +395,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -334,6 +395,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 334 | 395 | ||
| 335 | 396 | ||
| 336 | 397 | ||
| 398 | |||
| 337 | 29 | 399 | 29 |
| 338 | 29 | 400 | 29 |
| 339 | 29 | 401 | 29 |
| ... | @@ -361,9 +423,16 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -361,9 +423,16 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 361 | 423 | ||
| 362 | 424 | ||
| 363 | 425 | ||
| 426 | |||
| 427 | |||
| 428 | |||
| 429 | |||
| 430 | |||
| 431 | |||
| 364 | 29 | 432 | 29 |
| 365 | 433 | ||
| 366 | 29 | 434 | 29 |
| 435 | |||
| 367 | 29 | 436 | 29 |
| 368 | 29 | 437 | 29 |
| 369 | 29 | 438 | 29 |
| ... | @@ -372,6 +441,8 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -372,6 +441,8 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 372 | 29 | 441 | 29 |
| 373 | 29 | 442 | 29 |
| 374 | 29 | 443 | 29 |
| 444 | |||
| 445 | |||
| 375 | 29 | 446 | 29 |
| 376 | 29 | 447 | 29 |
| 377 | 448 | ||
| ... | @@ -381,10 +452,17 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -381,10 +452,17 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 381 | 29 | 452 | 29 |
| 382 | 29 | 453 | 29 |
| 383 | 29 | 454 | 29 |
| 455 | |||
| 456 | |||
| 457 | |||
| 458 | |||
| 384 | 29 | 459 | 29 |
| 385 | 29 | 460 | 29 |
| 461 | |||
| 462 | |||
| 386 | 29 | 463 | 29 |
| 387 | 29 | 464 | 29 |
| 465 | |||
| 388 | 29 | 466 | 29 |
| 389 | 29 | 467 | 29 |
| 390 | 29 | 468 | 29 |
| ... | @@ -404,6 +482,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -404,6 +482,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 404 | 29 | 482 | 29 |
| 405 | 29 | 483 | 29 |
| 406 | 29 | 484 | 29 |
| 485 | |||
| 407 | 29 | 486 | 29 |
| 408 | 29 | 487 | 29 |
| 409 | 29 | 488 | 29 |
| ... | @@ -419,7 +498,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -419,7 +498,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 419 | 29 | 498 | 29 |
| 420 | 499 | ||
| 421 | 29 | 500 | 29 |
| 501 | |||
| 422 | 29 | 502 | 29 |
| 503 | |||
| 423 | 29 | 504 | 29 |
| 424 | 29 | 505 | 29 |
| 425 | 29 | 506 | 29 |
| ... | @@ -443,17 +524,29 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -443,17 +524,29 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 443 | 524 | ||
| 444 | 29 | 525 | 29 |
| 445 | 29 | 526 | 29 |
| 527 | |||
| 446 | 29 | 528 | 29 |
| 529 | |||
| 447 | 29 | 530 | 29 |
| 531 | |||
| 448 | 29 | 532 | 29 |
| 533 | |||
| 449 | 29 | 534 | 29 |
| 535 | |||
| 450 | 29 | 536 | 29 |
| 537 | |||
| 451 | 29 | 538 | 29 |
| 539 | |||
| 452 | 29 | 540 | 29 |
| 541 | |||
| 453 | 29 | 542 | 29 |
| 543 | |||
| 454 | 29 | 544 | 29 |
| 545 | |||
| 455 | 29 | 546 | 29 |
| 547 | |||
| 456 | 29 | 548 | 29 |
| 549 | |||
| 457 | 29 | 550 | 29 |
| 458 | 29 | 551 | 29 |
| 459 | 30 | 552 | 30 |
| ... | @@ -481,23 +574,29 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -481,23 +574,29 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 481 | 29 | 574 | 29 |
| 482 | 575 | ||
| 483 | 29 | 576 | 29 |
| 577 | |||
| 484 | 29 | 578 | 29 |
| 485 | 29 | 579 | 29 |
| 486 | 580 | ||
| 487 | 29 | 581 | 29 |
| 582 | |||
| 488 | 29 | 583 | 29 |
| 489 | 29 | 584 | 29 |
| 490 | 585 | ||
| 491 | 29 | 586 | 29 |
| 587 | |||
| 492 | 29 | 588 | 29 |
| 493 | 29 | 589 | 29 |
| 494 | 29 | 590 | 29 |
| 495 | 29 | 591 | 29 |
| 496 | 592 | ||
| 497 | 593 | ||
| 594 | |||
| 498 | 29 | 595 | 29 |
| 499 | 596 | ||
| 500 | 29 | 597 | 29 |
| 598 | |||
| 599 | |||
| 501 | 29 | 600 | 29 |
| 502 | 29 | 601 | 29 |
| 503 | 29 | 602 | 29 |
| ... | @@ -513,23 +612,34 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -513,23 +612,34 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 513 | 29 | 612 | 29 |
| 514 | 29 | 613 | 29 |
| 515 | 29 | 614 | 29 |
| 615 | 42 | ||
| 516 | 29 | 616 | 29 |
| 517 | 29 | 617 | 29 |
| 518 | 29 | 618 | 29 |
| 519 | 619 | ||
| 620 | |||
| 621 | |||
| 622 | |||
| 520 | 29 | 623 | 29 |
| 521 | 624 | ||
| 522 | 29 | 625 | 29 |
| 626 | |||
| 523 | 29 | 627 | 29 |
| 628 | |||
| 524 | 29 | 629 | 29 |
| 525 | 630 | ||
| 526 | 29 | 631 | 29 |
| 632 | |||
| 527 | 29 | 633 | 29 |
| 528 | 29 | 634 | 29 |
| 529 | 635 | ||
| 636 | |||
| 530 | 29 | 637 | 29 |
| 638 | |||
| 531 | 29 | 639 | 29 |
| 532 | 29 | 640 | 29 |
| 641 | |||
| 642 | |||
| 533 | 29 | 643 | 29 |
| 534 | 644 | ||
| 535 | 645 | ||
| ... | @@ -568,17 +678,26 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -568,17 +678,26 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 568 | 678 | ||
| 569 | 679 | ||
| 570 | 680 | ||
| 681 | |||
| 571 | 29 | 682 | 29 |
| 572 | 29 | 683 | 29 |
| 573 | 29 | 684 | 29 |
| 574 | 685 | ||
| 575 | 686 | ||
| 687 | |||
| 576 | 29 | 688 | 29 |
| 577 | 689 | ||
| 578 | 690 | ||
| 579 | 691 | ||
| 580 | 692 | ||
| 693 | |||
| 581 | 29 | 694 | 29 |
| 695 | |||
| 696 | |||
| 697 | |||
| 698 | |||
| 699 | |||
| 700 | |||
| 582 | 29 | 701 | 29 |
| 583 | 702 | ||
| 584 | 703 | ||
| ... | @@ -691,7 +810,11 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -691,7 +810,11 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 691 | 29 | 810 | 29 |
| 692 | 29 | 811 | 29 |
| 693 | 29 | 812 | 29 |
| 813 | |||
| 814 | |||
| 694 | 29 | 815 | 29 |
| 816 | |||
| 817 | |||
| 695 | 29 | 818 | 29 |
| 696 | 29 | 819 | 29 |
| 697 | 29 | 820 | 29 |
| ... | @@ -707,6 +830,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -707,6 +830,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 707 | 29 | 830 | 29 |
| 708 | 831 | ||
| 709 | 29 | 832 | 29 |
| 833 | |||
| 710 | 29 | 834 | 29 |
| 711 | 835 | ||
| 712 | 29 | 836 | 29 |
| ... | @@ -714,7 +838,10 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -714,7 +838,10 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 714 | 29 | 838 | 29 |
| 715 | 29 | 839 | 29 |
| 716 | 29 | 840 | 29 |
| 841 | |||
| 717 | 29 | 842 | 29 |
| 843 | |||
| 844 | |||
| 718 | 29 | 845 | 29 |
| 719 | 29 | 846 | 29 |
| 720 | 29 | 847 | 29 |
| ... | @@ -745,6 +872,11 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -745,6 +872,11 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 745 | 29 | 872 | 29 |
| 746 | 29 | 873 | 29 |
| 747 | 29 | 874 | 29 |
| 875 | |||
| 876 | |||
| 877 | |||
| 878 | |||
| 879 | |||
| 748 | 29 | 880 | 29 |
| 749 | 29 | 881 | 29 |
| 750 | 29 | 882 | 29 |
| ... | @@ -763,12 +895,17 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -763,12 +895,17 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 763 | 29 | 895 | 29 |
| 764 | 896 | ||
| 765 | 29 | 897 | 29 |
| 898 | |||
| 766 | 29 | 899 | 29 |
| 900 | |||
| 767 | 29 | 901 | 29 |
| 768 | 29 | 902 | 29 |
| 769 | 29 | 903 | 29 |
| 770 | 29 | 904 | 29 |
| 771 | 29 | 905 | 29 |
| 906 | |||
| 907 | |||
| 908 | |||
| 772 | 29 | 909 | 29 |
| 773 | 29 | 910 | 29 |
| 774 | 29 | 911 | 29 |
| ... | @@ -776,7 +913,11 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -776,7 +913,11 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 776 | 29 | 913 | 29 |
| 777 | 29 | 914 | 29 |
| 778 | 29 | 915 | 29 |
| 916 | |||
| 779 | 29 | 917 | 29 |
| 918 | |||
| 919 | |||
| 920 | |||
| 780 | 29 | 921 | 29 |
| 781 | 29 | 922 | 29 |
| 782 | 29 | 923 | 29 |
| ... | @@ -790,6 +931,8 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -790,6 +931,8 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 790 | 29 | 931 | 29 |
| 791 | 29 | 932 | 29 |
| 792 | 29 | 933 | 29 |
| 934 | |||
| 935 | |||
| 793 | 29 | 936 | 29 |
| 794 | 29 | 937 | 29 |
| 795 | 29 | 938 | 29 |
| ... | @@ -800,24 +943,34 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -800,24 +943,34 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 800 | 943 | ||
| 801 | 29 | 944 | 29 |
| 802 | 33 | 945 | 33 |
| 946 | |||
| 803 | 29 | 947 | 29 |
| 804 | 29 | 948 | 29 |
| 805 | 29 | 949 | 29 |
| 806 | 950 | ||
| 807 | 951 | ||
| 808 | 952 | ||
| 953 | |||
| 809 | 29 | 954 | 29 |
| 810 | 955 | ||
| 811 | 29 | 956 | 29 |
| 957 | |||
| 812 | 29 | 958 | 29 |
| 959 | |||
| 813 | 29 | 960 | 29 |
| 961 | |||
| 962 | |||
| 814 | 29 | 963 | 29 |
| 964 | |||
| 965 | |||
| 815 | 29 | 966 | 29 |
| 816 | 967 | ||
| 817 | 968 | ||
| 818 | 29 | 969 | 29 |
| 970 | |||
| 819 | 29 | 971 | 29 |
| 820 | 972 | ||
| 973 | |||
| 821 | 29 | 974 | 29 |
| 822 | 29 | 975 | 29 |
| 823 | 29 | 976 | 29 |
| ... | @@ -850,6 +1003,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -850,6 +1003,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 850 | 29 | 1003 | 29 |
| 851 | 29 | 1004 | 29 |
| 852 | 29 | 1005 | 29 |
| 1006 | |||
| 1007 | |||
| 1008 | |||
| 853 | 29 | 1009 | 29 |
| 854 | 1010 | ||
| 855 | 29 | 1011 | 29 |
| ... | @@ -884,6 +1040,8 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -884,6 +1040,8 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 884 | 1040 | ||
| 885 | 29 | 1041 | 29 |
| 886 | 29 | 1042 | 29 |
| 1043 | |||
| 1044 | |||
| 887 | 29 | 1045 | 29 |
| 888 | 29 | 1046 | 29 |
| 889 | 29 | 1047 | 29 |
| ... | @@ -903,48 +1061,93 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -903,48 +1061,93 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 903 | 1061 | ||
| 904 | 1062 | ||
| 905 | 29 | 1063 | 29 |
| 1064 | |||
| 1065 | |||
| 1066 | |||
| 906 | 29 | 1067 | 29 |
| 907 | 1068 | ||
| 908 | 29 | 1069 | 29 |
| 1070 | |||
| 1071 | |||
| 909 | 29 | 1072 | 29 |
| 1073 | |||
| 1074 | |||
| 1075 | |||
| 910 | 29 | 1076 | 29 |
| 911 | 29 | 1077 | 29 |
| 912 | 1078 | ||
| 913 | 1079 | ||
| 914 | 29 | 1080 | 29 |
| 915 | 29 | 1081 | 29 |
| 1082 | |||
| 1083 | |||
| 916 | 29 | 1084 | 29 |
| 917 | 29 | 1085 | 29 |
| 918 | 29 | 1086 | 29 |
| 919 | 29 | 1087 | 29 |
| 920 | 29 | 1088 | 29 |
| 921 | 1089 | ||
| 1090 | |||
| 922 | 29 | 1091 | 29 |
| 923 | 29 | 1092 | 29 |
| 924 | 1093 | ||
| 925 | 1094 | ||
| 926 | 29 | 1095 | 29 |
| 927 | 1096 | ||
| 1097 | |||
| 1098 | |||
| 928 | 29 | 1099 | 29 |
| 929 | 1100 | ||
| 930 | 1101 | ||
| 931 | 29 | 1102 | 29 |
| 932 | 29 | 1103 | 29 |
| 1104 | |||
| 1105 | |||
| 933 | 29 | 1106 | 29 |
| 1107 | |||
| 1108 | |||
| 1109 | |||
| 1110 | |||
| 934 | 29 | 1111 | 29 |
| 935 | 29 | 1112 | 29 |
| 1113 | |||
| 1114 | |||
| 936 | 29 | 1115 | 29 |
| 1116 | |||
| 937 | 29 | 1117 | 29 |
| 1118 | |||
| 1119 | |||
| 1120 | |||
| 938 | 29 | 1121 | 29 |
| 1122 | |||
| 1123 | |||
| 1124 | |||
| 939 | 29 | 1125 | 29 |
| 940 | 29 | 1126 | 29 |
| 1127 | |||
| 1128 | |||
| 941 | 29 | 1129 | 29 |
| 1130 | |||
| 1131 | |||
| 942 | 29 | 1132 | 29 |
| 1133 | |||
| 943 | 29 | 1134 | 29 |
| 1135 | |||
| 1136 | |||
| 1137 | |||
| 944 | 29 | 1138 | 29 |
| 1139 | |||
| 1140 | |||
| 1141 | |||
| 1142 | |||
| 945 | 29 | 1143 | 29 |
| 1144 | |||
| 1145 | |||
| 1146 | |||
| 946 | 29 | 1147 | 29 |
| 947 | 29 | 1148 | 29 |
| 1149 | |||
| 1150 | |||
| 948 | 29 | 1151 | 29 |
| 949 | 29 | 1152 | 29 |
| 950 | 29 | 1153 | 29 |
| ... | @@ -963,6 +1166,8 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -963,6 +1166,8 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 963 | 1166 | ||
| 964 | 29 | 1167 | 29 |
| 965 | 29 | 1168 | 29 |
| 1169 | |||
| 1170 | |||
| 966 | 29 | 1171 | 29 |
| 967 | 29 | 1172 | 29 |
| 968 | 29 | 1173 | 29 |
| ... | @@ -984,7 +1189,10 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -984,7 +1189,10 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 984 | 29 | 1189 | 29 |
| 985 | 29 | 1190 | 29 |
| 986 | 29 | 1191 | 29 |
| 1192 | |||
| 1193 | |||
| 987 | 29 | 1194 | 29 |
| 1195 | |||
| 988 | 29 | 1196 | 29 |
| 989 | 29 | 1197 | 29 |
| 990 | 29 | 1198 | 29 |
| ... | @@ -997,14 +1205,17 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -997,14 +1205,17 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 997 | 29 | 1205 | 29 |
| 998 | 1206 | ||
| 999 | 29 | 1207 | 29 |
| 1208 | |||
| 1000 | 29 | 1209 | 29 |
| 1001 | 29 | 1210 | 29 |
| 1002 | 1211 | ||
| 1003 | 29 | 1212 | 29 |
| 1213 | |||
| 1004 | 29 | 1214 | 29 |
| 1005 | 29 | 1215 | 29 |
| 1006 | 1216 | ||
| 1007 | 29 | 1217 | 29 |
| 1218 | |||
| 1008 | 29 | 1219 | 29 |
| 1009 | 29 | 1220 | 29 |
| 1010 | 29 | 1221 | 29 |
| ... | @@ -1602,7 +1813,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -1602,7 +1813,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 1602 | 29 | 1813 | 29 |
| 1603 | 29 39 | 1814 | 29 39 |
| 1604 | 29 | 1815 | 29 |
| 1605 | 29 | 1816 | 29 42 |
| 1606 | 37 | 1817 | 37 |
| 1607 | 37 | 1818 | 37 |
| 1608 | 37 | 1819 | 37 |
| ... | @@ -2728,17 +2939,19 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2728,17 +2939,19 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2728 | 29 | 2939 | 29 |
| 2729 | 29 | 2940 | 29 |
| 2730 | 29 | 2941 | 29 |
| 2942 | 42 | ||
| 2731 | 29 | 2943 | 29 |
| 2732 | 29 | 2944 | 29 |
| 2733 | 29 | 2945 | 29 |
| 2734 | 29 | 2946 | 29 |
| 2947 | 29 42 | ||
| 2735 | 29 | 2948 | 29 |
| 2736 | 29 | 2949 | 29 |
| 2737 | 29 | 2950 | 29 |
| 2738 | 29 | 2951 | 29 |
| 2739 | 29 | 2952 | 29 |
| 2740 | 29 | 2953 | 29 |
| 2741 | 29 | 2954 | 42 |
| 2742 | 29 | 2955 | 29 |
| 2743 | 29 | 2956 | 29 |
| 2744 | 29 | 2957 | 29 |
| ... | @@ -2768,8 +2981,20 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2768,8 +2981,20 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2768 | 29 | 2981 | 29 |
| 2769 | 29 | 2982 | 29 |
| 2770 | 29 | 2983 | 29 |
| 2771 | 29 | 2984 | 29 42 |
| 2772 | 30 | 2985 | 30 |
| 2986 | 29 42 | ||
| 2987 | 29 | ||
| 2988 | 29 | ||
| 2989 | 29 | ||
| 2990 | 29 | ||
| 2991 | 29 | ||
| 2992 | 29 | ||
| 2993 | 29 | ||
| 2994 | 29 | ||
| 2995 | 29 | ||
| 2996 | 29 | ||
| 2997 | 40 | ||
| 2773 | 29 | 2998 | 29 |
| 2774 | 29 | 2999 | 29 |
| 2775 | 29 | 3000 | 29 |
| ... | @@ -2781,6 +3006,23 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2781,6 +3006,23 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2781 | 29 | 3006 | 29 |
| 2782 | 29 | 3007 | 29 |
| 2783 | 29 | 3008 | 29 |
| 3009 | 29 | ||
| 3010 | 29 | ||
| 3011 | 29 | ||
| 3012 | 29 | ||
| 3013 | 29 | ||
| 3014 | 29 | ||
| 3015 | 29 | ||
| 3016 | 29 | ||
| 3017 | 29 | ||
| 3018 | 29 | ||
| 3019 | 29 | ||
| 3020 | 29 | ||
| 3021 | 29 | ||
| 3022 | 29 | ||
| 3023 | 29 | ||
| 3024 | 29 | ||
| 3025 | 40 | ||
| 2784 | 40 | 3026 | 40 |
| 2785 | 29 | 3027 | 29 |
| 2786 | 29 | 3028 | 29 |
| ... | @@ -2799,6 +3041,41 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2799,6 +3041,41 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2799 | 29 | 3041 | 29 |
| 2800 | 29 | 3042 | 29 |
| 2801 | 29 | 3043 | 29 |
| 3044 | 30 | ||
| 3045 | 29 | ||
| 3046 | 29 | ||
| 3047 | 29 | ||
| 3048 | 29 | ||
| 3049 | 29 | ||
| 3050 | 29 | ||
| 3051 | 29 | ||
| 3052 | 29 42 | ||
| 3053 | 29 | ||
| 3054 | 29 | ||
| 3055 | 29 | ||
| 3056 | 29 | ||
| 3057 | 29 | ||
| 3058 | 29 | ||
| 3059 | 29 | ||
| 3060 | 29 | ||
| 3061 | 29 | ||
| 3062 | 29 | ||
| 3063 | 29 | ||
| 3064 | 29 | ||
| 3065 | 29 | ||
| 3066 | 29 | ||
| 3067 | 29 | ||
| 3068 | 29 | ||
| 3069 | 29 | ||
| 3070 | 29 | ||
| 3071 | 29 | ||
| 3072 | 29 | ||
| 3073 | 29 | ||
| 3074 | 29 | ||
| 3075 | 29 | ||
| 3076 | 29 | ||
| 3077 | 29 | ||
| 3078 | 29 | ||
| 2802 | 29 | 3079 | 29 |
| 2803 | 29 | 3080 | 29 |
| 2804 | 29 | 3081 | 29 |
| ... | @@ -2809,9 +3086,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2809,9 +3086,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2809 | 29 | 3086 | 29 |
| 2810 | 29 | 3087 | 29 |
| 2811 | 29 | 3088 | 29 |
| 2812 | 40 | 3089 | 36 |
| 2813 | 40 | ||
| 2814 | 29 | 3090 | 29 |
| 3091 | 36 | ||
| 2815 | 29 | 3092 | 29 |
| 2816 | 29 | 3093 | 29 |
| 2817 | 29 | 3094 | 29 |
| ... | @@ -2820,6 +3097,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2820,6 +3097,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2820 | 29 | 3097 | 29 |
| 2821 | 29 | 3098 | 29 |
| 2822 | 29 | 3099 | 29 |
| 3100 | 29 34 | ||
| 2823 | 29 | 3101 | 29 |
| 2824 | 29 | 3102 | 29 |
| 2825 | 29 | 3103 | 29 |
| ... | @@ -2828,7 +3106,6 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2828,7 +3106,6 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2828 | 29 | 3106 | 29 |
| 2829 | 29 | 3107 | 29 |
| 2830 | 29 | 3108 | 29 |
| 2831 | 30 | ||
| 2832 | 29 | 3109 | 29 |
| 2833 | 29 | 3110 | 29 |
| 2834 | 29 | 3111 | 29 |
| ... | @@ -2836,6 +3113,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2836,6 +3113,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2836 | 29 | 3113 | 29 |
| 2837 | 29 | 3114 | 29 |
| 2838 | 29 | 3115 | 29 |
| 3116 | |||
| 2839 | 29 | 3117 | 29 |
| 2840 | 29 | 3118 | 29 |
| 2841 | 29 | 3119 | 29 |
| ... | @@ -2851,6 +3129,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2851,6 +3129,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2851 | 29 | 3129 | 29 |
| 2852 | 29 | 3130 | 29 |
| 2853 | 29 | 3131 | 29 |
| 3132 | 36 | ||
| 2854 | 29 | 3133 | 29 |
| 2855 | 29 | 3134 | 29 |
| 2856 | 29 | 3135 | 29 |
| ... | @@ -2868,39 +3147,65 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2868,39 +3147,65 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2868 | 29 | 3147 | 29 |
| 2869 | 29 | 3148 | 29 |
| 2870 | 29 | 3149 | 29 |
| 3150 | 37 | ||
| 3151 | 37 | ||
| 3152 | 37 | ||
| 3153 | 37 | ||
| 3154 | 37 | ||
| 2871 | 29 | 3155 | 29 |
| 2872 | 29 | 3156 | 29 |
| 2873 | 29 | 3157 | 29 |
| 2874 | 29 | 3158 | 29 |
| 2875 | 29 | 3159 | 29 |
| 2876 | 36 | ||
| 2877 | 29 | 3160 | 29 |
| 2878 | 36 | ||
| 2879 | 29 | 3161 | 29 |
| 3162 | 37 | ||
| 3163 | 37 | ||
| 3164 | 37 | ||
| 3165 | 37 | ||
| 3166 | 37 | ||
| 2880 | 29 | 3167 | 29 |
| 2881 | 29 | 3168 | 29 |
| 2882 | 29 | 3169 | 29 |
| 3170 | 38 | ||
| 3171 | |||
| 2883 | 29 | 3172 | 29 |
| 2884 | 29 | 3173 | 29 |
| 2885 | 29 | 3174 | 29 |
| 2886 | 29 | 3175 | 29 |
| 2887 | 29 34 | ||
| 2888 | 29 | 3176 | 29 |
| 2889 | 29 | 3177 | 29 |
| 2890 | 29 | 3178 | 29 |
| 2891 | 29 | 3179 | 29 |
| 2892 | 29 | 3180 | 29 |
| 3181 | 37 | ||
| 3182 | 37 | ||
| 3183 | 37 | ||
| 3184 | 37 | ||
| 3185 | 37 | ||
| 2893 | 29 | 3186 | 29 |
| 2894 | 29 | 3187 | 29 |
| 2895 | 29 | 3188 | 29 |
| 3189 | 35 | ||
| 3190 | 35 | ||
| 3191 | 37 | ||
| 3192 | 37 | ||
| 3193 | 37 | ||
| 3194 | 37 | ||
| 3195 | 37 | ||
| 3196 | 35 | ||
| 2896 | 29 | 3197 | 29 |
| 3198 | 37 | ||
| 3199 | 37 | ||
| 3200 | 37 | ||
| 3201 | 37 | ||
| 3202 | 37 | ||
| 2897 | 29 | 3203 | 29 |
| 2898 | 29 | 3204 | 29 |
| 2899 | 29 | 3205 | 29 |
| 2900 | 29 | 3206 | 29 |
| 2901 | 29 | 3207 | 29 |
| 2902 | 29 | 3208 | 29 |
| 2903 | |||
| 2904 | 29 | 3209 | 29 |
| 2905 | 29 | 3210 | 29 |
| 2906 | 29 | 3211 | 29 |
| ... | @@ -2910,13 +3215,51 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2910,13 +3215,51 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2910 | 29 | 3215 | 29 |
| 2911 | 29 | 3216 | 29 |
| 2912 | 29 | 3217 | 29 |
| 3218 | 37 | ||
| 3219 | 37 | ||
| 3220 | 37 | ||
| 3221 | 37 | ||
| 3222 | 37 | ||
| 3223 | 29 | ||
| 3224 | 29 | ||
| 3225 | 29 | ||
| 3226 | 37 | ||
| 3227 | 37 | ||
| 3228 | 37 | ||
| 3229 | 37 | ||
| 3230 | 37 | ||
| 3231 | 29 | ||
| 3232 | 29 | ||
| 3233 | 29 | ||
| 3234 | 29 | ||
| 3235 | 29 | ||
| 3236 | 29 | ||
| 3237 | 29 | ||
| 3238 | 29 | ||
| 3239 | 29 | ||
| 3240 | 29 | ||
| 3241 | 29 | ||
| 3242 | 29 | ||
| 3243 | 29 | ||
| 3244 | 29 | ||
| 3245 | 29 | ||
| 3246 | 29 | ||
| 3247 | 29 | ||
| 3248 | 29 | ||
| 3249 | 29 | ||
| 3250 | 29 | ||
| 3251 | 29 | ||
| 3252 | 29 | ||
| 3253 | 40 | ||
| 3254 | 29 | ||
| 3255 | 29 | ||
| 3256 | 29 | ||
| 2913 | 29 | 3257 | 29 |
| 2914 | 29 | 3258 | 29 |
| 2915 | 29 | 3259 | 29 |
| 2916 | 29 | 3260 | 29 |
| 2917 | 29 | 3261 | 29 |
| 2918 | 29 | 3262 | 29 |
| 2919 | 36 | ||
| 2920 | 29 | 3263 | 29 |
| 2921 | 29 | 3264 | 29 |
| 2922 | 29 | 3265 | 29 |
| ... | @@ -2934,11 +3277,6 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2934,11 +3277,6 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2934 | 29 | 3277 | 29 |
| 2935 | 29 | 3278 | 29 |
| 2936 | 29 | 3279 | 29 |
| 2937 | 37 | ||
| 2938 | 37 | ||
| 2939 | 37 | ||
| 2940 | 37 | ||
| 2941 | 37 | ||
| 2942 | 29 | 3280 | 29 |
| 2943 | 29 | 3281 | 29 |
| 2944 | 29 | 3282 | 29 |
| ... | @@ -2946,16 +3284,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2946,16 +3284,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2946 | 29 | 3284 | 29 |
| 2947 | 29 | 3285 | 29 |
| 2948 | 29 | 3286 | 29 |
| 2949 | 37 | ||
| 2950 | 37 | ||
| 2951 | 37 | ||
| 2952 | 37 | ||
| 2953 | 37 | ||
| 2954 | 29 | 3287 | 29 |
| 2955 | 29 | 3288 | 29 |
| 2956 | 29 | 3289 | 29 |
| 2957 | 38 | ||
| 2958 | |||
| 2959 | 29 | 3290 | 29 |
| 2960 | 29 | 3291 | 29 |
| 2961 | 29 | 3292 | 29 |
| ... | @@ -2965,11 +3296,6 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2965,11 +3296,6 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2965 | 29 | 3296 | 29 |
| 2966 | 29 | 3297 | 29 |
| 2967 | 29 | 3298 | 29 |
| 2968 | 37 | ||
| 2969 | 37 | ||
| 2970 | 37 | ||
| 2971 | 37 | ||
| 2972 | 37 | ||
| 2973 | 29 | 3299 | 29 |
| 2974 | 29 | 3300 | 29 |
| 2975 | 29 | 3301 | 29 |
| ... | @@ -2981,12 +3307,79 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -2981,12 +3307,79 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 2981 | 37 | 3307 | 37 |
| 2982 | 37 | 3308 | 37 |
| 2983 | 35 | 3309 | 35 |
| 2984 | 29 | 3310 | 35 |
| 3311 | 35 | ||
| 2985 | 37 | 3312 | 37 |
| 2986 | 37 | 3313 | 37 |
| 2987 | 37 | 3314 | 37 |
| 2988 | 37 | 3315 | 37 |
| 2989 | 37 | 3316 | 37 |
| 3317 | 35 | ||
| 3318 | 29 | ||
| 3319 | 29 | ||
| 3320 | 29 | ||
| 3321 | 29 | ||
| 3322 | 29 | ||
| 3323 | 29 | ||
| 3324 | 29 | ||
| 3325 | 29 | ||
| 3326 | 29 | ||
| 3327 | 29 | ||
| 3328 | 29 | ||
| 3329 | 29 | ||
| 3330 | 29 | ||
| 3331 | 29 | ||
| 3332 | 29 | ||
| 3333 | 29 | ||
| 3334 | 29 | ||
| 3335 | 29 | ||
| 3336 | 29 | ||
| 3337 | 29 | ||
| 3338 | 29 | ||
| 3339 | 29 | ||
| 3340 | 29 | ||
| 3341 | 29 | ||
| 3342 | 29 | ||
| 3343 | 29 | ||
| 3344 | 29 | ||
| 3345 | 29 | ||
| 3346 | 29 | ||
| 3347 | 29 | ||
| 3348 | 29 | ||
| 3349 | 29 | ||
| 3350 | 29 | ||
| 3351 | 29 | ||
| 3352 | 29 | ||
| 3353 | 29 | ||
| 3354 | 29 | ||
| 3355 | 29 | ||
| 3356 | 29 | ||
| 3357 | 42 | ||
| 3358 | 29 | ||
| 3359 | 29 | ||
| 3360 | 29 | ||
| 3361 | 29 | ||
| 3362 | 29 | ||
| 3363 | 29 | ||
| 3364 | 42 | ||
| 3365 | 29 | ||
| 3366 | 29 | ||
| 3367 | 29 | ||
| 3368 | 29 | ||
| 3369 | 29 | ||
| 3370 | 29 | ||
| 3371 | 29 | ||
| 3372 | 29 | ||
| 3373 | 29 | ||
| 3374 | 29 | ||
| 3375 | 29 | ||
| 3376 | 29 | ||
| 3377 | 29 | ||
| 3378 | 29 | ||
| 3379 | 29 | ||
| 3380 | 29 | ||
| 3381 | 29 | ||
| 3382 | 29 | ||
| 2990 | 29 | 3383 | 29 |
| 2991 | 29 | 3384 | 29 |
| 2992 | 29 | 3385 | 29 |
| ... | @@ -3009,6 +3402,12 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3009,6 +3402,12 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3009 | 37 | 3402 | 37 |
| 3010 | 29 | 3403 | 29 |
| 3011 | 29 | 3404 | 29 |
| 3405 | 37 | ||
| 3406 | 37 | ||
| 3407 | 37 | ||
| 3408 | 37 | ||
| 3409 | 37 | ||
| 3410 | 29 | ||
| 3012 | 29 | 3411 | 29 |
| 3013 | 37 | 3412 | 37 |
| 3014 | 37 | 3413 | 37 |
| ... | @@ -3027,6 +3426,11 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3027,6 +3426,11 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3027 | 29 | 3426 | 29 |
| 3028 | 29 | 3427 | 29 |
| 3029 | 29 | 3428 | 29 |
| 3429 | 37 | ||
| 3430 | 37 | ||
| 3431 | 37 | ||
| 3432 | 37 | ||
| 3433 | 37 | ||
| 3030 | 29 | 3434 | 29 |
| 3031 | 29 | 3435 | 29 |
| 3032 | 29 | 3436 | 29 |
| ... | @@ -3037,10 +3441,10 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3037,10 +3441,10 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3037 | 29 | 3441 | 29 |
| 3038 | 29 | 3442 | 29 |
| 3039 | 29 | 3443 | 29 |
| 3040 | 40 | ||
| 3041 | 29 | 3444 | 29 |
| 3042 | 29 | 3445 | 29 |
| 3043 | 29 | 3446 | 29 |
| 3447 | 38 | ||
| 3044 | 29 | 3448 | 29 |
| 3045 | 29 | 3449 | 29 |
| 3046 | 29 | 3450 | 29 |
| ... | @@ -3063,8 +3467,19 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3063,8 +3467,19 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3063 | 29 | 3467 | 29 |
| 3064 | 29 | 3468 | 29 |
| 3065 | 29 | 3469 | 29 |
| 3470 | 42 | ||
| 3471 | 42 | ||
| 3066 | 29 | 3472 | 29 |
| 3067 | 29 | 3473 | 29 |
| 3474 | 35 | ||
| 3475 | 35 | ||
| 3476 | 37 | ||
| 3477 | 37 | ||
| 3478 | 37 | ||
| 3479 | 37 | ||
| 3480 | 37 | ||
| 3481 | 35 | ||
| 3482 | 29 | ||
| 3068 | 29 | 3483 | 29 |
| 3069 | 29 | 3484 | 29 |
| 3070 | 29 | 3485 | 29 |
| ... | @@ -3086,27 +3501,16 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3086,27 +3501,16 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3086 | 29 | 3501 | 29 |
| 3087 | 29 | 3502 | 29 |
| 3088 | 29 | 3503 | 29 |
| 3089 | 35 | ||
| 3090 | 35 | ||
| 3091 | 37 | 3504 | 37 |
| 3092 | 37 | 3505 | 37 |
| 3093 | 37 | 3506 | 37 |
| 3094 | 37 | 3507 | 37 |
| 3095 | 37 | 3508 | 37 |
| 3096 | 35 | ||
| 3097 | 35 | ||
| 3098 | 35 | ||
| 3099 | 37 | 3509 | 37 |
| 3100 | 37 | 3510 | 37 |
| 3101 | 37 | 3511 | 37 |
| 3102 | 37 | 3512 | 37 |
| 3103 | 37 | 3513 | 37 |
| 3104 | 35 | ||
| 3105 | 29 | ||
| 3106 | 29 | ||
| 3107 | 29 | ||
| 3108 | 29 | ||
| 3109 | 29 | ||
| 3110 | 29 | 3514 | 29 |
| 3111 | 29 | 3515 | 29 |
| 3112 | 29 | 3516 | 29 |
| ... | @@ -3176,6 +3580,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3176,6 +3580,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3176 | 29 | 3580 | 29 |
| 3177 | 29 | 3581 | 29 |
| 3178 | 29 | 3582 | 29 |
| 3583 | |||
| 3179 | 29 | 3584 | 29 |
| 3180 | 29 | 3585 | 29 |
| 3181 | 29 | 3586 | 29 |
| ... | @@ -3194,11 +3599,12 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3194,11 +3599,12 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3194 | 37 | 3599 | 37 |
| 3195 | 29 | 3600 | 29 |
| 3196 | 29 | 3601 | 29 |
| 3197 | 37 | 3602 | 29 |
| 3198 | 37 | 3603 | 29 |
| 3199 | 37 | 3604 | 29 |
| 3200 | 37 | 3605 | 29 |
| 3201 | 37 | 3606 | 29 |
| 3607 | 29 | ||
| 3202 | 29 | 3608 | 29 |
| 3203 | 29 | 3609 | 29 |
| 3204 | 29 | 3610 | 29 |
| ... | @@ -3217,6 +3623,15 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3217,6 +3623,15 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3217 | 37 | 3623 | 37 |
| 3218 | 37 | 3624 | 37 |
| 3219 | 29 | 3625 | 29 |
| 3626 | 40 | ||
| 3627 | 38 | ||
| 3628 | 38 | ||
| 3629 | 38 | ||
| 3630 | 38 | ||
| 3631 | 38 | ||
| 3632 | 38 | ||
| 3633 | 38 | ||
| 3634 | 38 | ||
| 3220 | 29 | 3635 | 29 |
| 3221 | 29 | 3636 | 29 |
| 3222 | 29 | 3637 | 29 |
| ... | @@ -3229,9 +3644,6 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3229,9 +3644,6 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3229 | 29 | 3644 | 29 |
| 3230 | 29 | 3645 | 29 |
| 3231 | 29 | 3646 | 29 |
| 3232 | 38 | ||
| 3233 | 29 | ||
| 3234 | 29 | ||
| 3235 | 29 | 3647 | 29 |
| 3236 | 29 | 3648 | 29 |
| 3237 | 29 | 3649 | 29 |
| ... | @@ -3241,6 +3653,22 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3241,6 +3653,22 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3241 | 29 | 3653 | 29 |
| 3242 | 29 | 3654 | 29 |
| 3243 | 29 | 3655 | 29 |
| 3656 | 35 41 | ||
| 3657 | 35 41 | ||
| 3658 | 37 41 | ||
| 3659 | 37 41 | ||
| 3660 | 37 41 | ||
| 3661 | 37 41 | ||
| 3662 | 37 41 | ||
| 3663 | 35 41 | ||
| 3664 | 35 41 | ||
| 3665 | 35 41 | ||
| 3666 | 37 41 | ||
| 3667 | 37 41 | ||
| 3668 | 37 41 | ||
| 3669 | 37 41 | ||
| 3670 | 37 41 | ||
| 3671 | 35 41 | ||
| 3244 | 29 | 3672 | 29 |
| 3245 | 29 | 3673 | 29 |
| 3246 | 29 | 3674 | 29 |
| ... | @@ -3254,46 +3682,41 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3254,46 +3682,41 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3254 | 29 | 3682 | 29 |
| 3255 | 29 | 3683 | 29 |
| 3256 | 29 | 3684 | 29 |
| 3257 | 35 | ||
| 3258 | 35 | ||
| 3259 | 37 | 3685 | 37 |
| 3260 | 37 | 3686 | 37 |
| 3261 | 37 | 3687 | 37 |
| 3262 | 37 | 3688 | 37 |
| 3263 | 37 | 3689 | 37 |
| 3264 | 35 | ||
| 3265 | 29 | ||
| 3266 | 29 | ||
| 3267 | 29 | ||
| 3268 | 29 | ||
| 3269 | 29 | ||
| 3270 | 29 | ||
| 3271 | 29 | ||
| 3272 | 29 | ||
| 3273 | 29 | ||
| 3274 | 29 | ||
| 3275 | 29 | ||
| 3276 | 29 | ||
| 3277 | 29 | ||
| 3278 | 29 | 3690 | 29 |
| 3279 | 29 | 3691 | 29 |
| 3692 | 38 | ||
| 3693 | 38 | ||
| 3694 | 38 | ||
| 3695 | 38 | ||
| 3280 | 29 | 3696 | 29 |
| 3281 | 29 | 3697 | 29 |
| 3282 | 29 | 3698 | 29 |
| 3283 | 29 | 3699 | 29 |
| 3700 | 40 | ||
| 3284 | 29 | 3701 | 29 |
| 3285 | 29 | 3702 | 29 |
| 3286 | 29 | 3703 | 29 |
| 3704 | 35 | ||
| 3705 | 35 | ||
| 3287 | 37 | 3706 | 37 |
| 3288 | 37 | 3707 | 37 |
| 3289 | 37 | 3708 | 37 |
| 3290 | 37 | 3709 | 37 |
| 3291 | 37 | 3710 | 37 |
| 3711 | 35 | ||
| 3712 | 35 | ||
| 3713 | 35 | ||
| 3292 | 37 | 3714 | 37 |
| 3293 | 37 | 3715 | 37 |
| 3294 | 37 | 3716 | 37 |
| 3295 | 37 | 3717 | 37 |
| 3296 | 37 | 3718 | 37 |
| 3719 | 35 | ||
| 3297 | 29 | 3720 | 29 |
| 3298 | 29 | 3721 | 29 |
| 3299 | 29 | 3722 | 29 |
| ... | @@ -3333,213 +3756,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu | ... | @@ -3333,213 +3756,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 3333 | 29 | 3756 | 29 |
| 3334 | 29 | 3757 | 29 |
| 3335 | 29 | 3758 | 29 |
| 3336 | 29 | 3759 | |
| 3337 | 29 | ||
| 3338 | 29 | ||
| 3339 | 29 | ||
| 3340 | 29 | ||
| 3341 | 29 | ||
| 3342 | 29 | ||
| 3343 | 29 | ||
| 3344 | 29 | ||
| 3345 | 29 | ||
| 3346 | 29 | ||
| 3347 | 29 | ||
| 3348 | 29 | ||
| 3349 | 29 | ||
| 3350 | 29 | ||
| 3351 | 29 | ||
| 3352 | 29 | ||
| 3353 | 29 | ||
| 3354 | 29 | ||
| 3355 | 29 | ||
| 3356 | 29 | ||
| 3357 | 29 | ||
| 3358 | 29 | ||
| 3359 | 29 | ||
| 3360 | 29 | ||
| 3361 | 29 | ||
| 3362 | 29 | ||
| 3363 | 29 | ||
| 3364 | 29 | ||
| 3365 | 29 | ||
| 3366 | |||
| 3367 | 29 | ||
| 3368 | 29 | ||
| 3369 | 29 | ||
| 3370 | 29 | ||
| 3371 | 37 | ||
| 3372 | 37 | ||
| 3373 | 37 | ||
| 3374 | 37 | ||
| 3375 | 37 | ||
| 3376 | 29 | ||
| 3377 | 29 | ||
| 3378 | 37 | ||
| 3379 | 37 | ||
| 3380 | 37 | ||
| 3381 | 37 | ||
| 3382 | 37 | ||
| 3383 | 29 | ||
| 3384 | 29 | ||
| 3385 | 29 | ||
| 3386 | 29 | ||
| 3387 | 29 | ||
| 3388 | 29 | ||
| 3389 | 29 | ||
| 3390 | 29 | ||
| 3391 | 29 | ||
| 3392 | 29 | ||
| 3393 | 29 | ||
| 3394 | 29 | ||
| 3395 | 29 | ||
| 3396 | 29 | ||
| 3397 | 29 | ||
| 3398 | 29 | ||
| 3399 | 29 | ||
| 3400 | 29 | ||
| 3401 | 29 | ||
| 3402 | 29 | ||
| 3403 | 37 | ||
| 3404 | 37 | ||
| 3405 | 37 | ||
| 3406 | 37 | ||
| 3407 | 37 | ||
| 3408 | 29 | ||
| 3409 | 40 | ||
| 3410 | 38 | ||
| 3411 | 38 | ||
| 3412 | 38 | ||
| 3413 | 38 | ||
| 3414 | 38 | ||
| 3415 | 38 | ||
| 3416 | 38 | ||
| 3417 | 38 | ||
| 3418 | 29 | ||
| 3419 | 29 | ||
| 3420 | 29 | ||
| 3421 | 29 | ||
| 3422 | 29 | ||
| 3423 | 29 | ||
| 3424 | 29 | ||
| 3425 | 29 | ||
| 3426 | 29 | ||
| 3427 | 29 | ||
| 3428 | 29 | ||
| 3429 | 29 | ||
| 3430 | 29 | ||
| 3431 | 29 | ||
| 3432 | 29 | ||
| 3433 | 29 | ||
| 3434 | 29 | ||
| 3435 | 29 | ||
| 3436 | 29 | ||
| 3437 | 29 | ||
| 3438 | 29 | ||
| 3439 | 35 41 | ||
| 3440 | 35 41 | ||
| 3441 | 37 41 | ||
| 3442 | 37 41 | ||
| 3443 | 37 41 | ||
| 3444 | 37 41 | ||
| 3445 | 37 41 | ||
| 3446 | 35 41 | ||
| 3447 | 35 41 | ||
| 3448 | 35 41 | ||
| 3449 | 37 41 | ||
| 3450 | 37 41 | ||
| 3451 | 37 41 | ||
| 3452 | 37 41 | ||
| 3453 | 37 41 | ||
| 3454 | 35 41 | ||
| 3455 | 29 | ||
| 3456 | 29 | ||
| 3457 | 29 | ||
| 3458 | 29 | ||
| 3459 | 29 | ||
| 3460 | 29 | ||
| 3461 | 29 | ||
| 3462 | 29 | ||
| 3463 | 29 | ||
| 3464 | 29 | ||
| 3465 | 29 | ||
| 3466 | 29 | ||
| 3467 | 29 | ||
| 3468 | 37 | ||
| 3469 | 37 | ||
| 3470 | 37 | ||
| 3471 | 37 | ||
| 3472 | 37 | ||
| 3473 | 29 | ||
| 3474 | 29 | ||
| 3475 | 38 | ||
| 3476 | 38 | ||
| 3477 | 38 | ||
| 3478 | 38 | ||
| 3479 | 29 | ||
| 3480 | 29 | ||
| 3481 | 29 | ||
| 3482 | 29 | ||
| 3483 | 40 | ||
| 3484 | 29 | ||
| 3485 | 29 | ||
| 3486 | 29 | ||
| 3487 | 35 | ||
| 3488 | 35 | ||
| 3489 | 37 | ||
| 3490 | 37 | ||
| 3491 | 37 | ||
| 3492 | 37 | ||
| 3493 | 37 | ||
| 3494 | 35 | ||
| 3495 | 35 | ||
| 3496 | 35 | ||
| 3497 | 37 | ||
| 3498 | 37 | ||
| 3499 | 37 | ||
| 3500 | 37 | ||
| 3501 | 37 | ||
| 3502 | 35 | ||
| 3503 | 29 | ||
| 3504 | 29 | ||
| 3505 | 29 | ||
| 3506 | 29 | ||
| 3507 | 29 | ||
| 3508 | 29 | ||
| 3509 | 29 | ||
| 3510 | 29 | ||
| 3511 | 29 | ||
| 3512 | 29 | ||
| 3513 | 29 | ||
| 3514 | 29 | ||
| 3515 | 29 | ||
| 3516 | 29 | ||
| 3517 | 29 | ||
| 3518 | 29 | ||
| 3519 | 29 | ||
| 3520 | 29 | ||
| 3521 | 29 | ||
| 3522 | 29 | ||
| 3523 | 29 | ||
| 3524 | 29 | ||
| 3525 | 29 | ||
| 3526 | 29 | ||
| 3527 | 29 | ||
| 3528 | 29 | ||
| 3529 | 29 | ||
| 3530 | 29 | ||
| 3531 | 29 | ||
| 3532 | 29 | ||
| 3533 | 29 | ||
| 3534 | 29 | ||
| 3535 | 29 | ||
| 3536 | 29 | ||
| 3537 | 29 | ||
| 3538 | 29 | ||
| 3539 | 29 | ||
| 3540 | 29 | ||
| 3541 | 29 | ||
| 3542 | |||
| 3543 | 29 | 3760 | 29 |
| 3544 | 29 | 3761 | 29 |
| 3545 | 29 | 3762 | 29 |
| ... | @@ -3942,7 +4159,9 @@ s390x-linux-gnu | ... | @@ -3942,7 +4159,9 @@ s390x-linux-gnu |
| 3942 | 27 | 4159 | 27 |
| 3943 | 4160 | ||
| 3944 | 27 | 4161 | 27 |
| 4162 | |||
| 3945 | 27 | 4163 | 27 |
| 4164 | |||
| 3946 | 27 | 4165 | 27 |
| 3947 | 4166 | ||
| 3948 | 4167 | ||
| ... | @@ -3971,6 +4190,8 @@ s390x-linux-gnu | ... | @@ -3971,6 +4190,8 @@ s390x-linux-gnu |
| 3971 | 4190 | ||
| 3972 | 4191 | ||
| 3973 | 4192 | ||
| 4193 | |||
| 4194 | |||
| 3974 | 5 | 4195 | 5 |
| 3975 | 5 | 4196 | 5 |
| 3976 | 5 | 4197 | 5 |
| ... | @@ -3979,43 +4200,79 @@ s390x-linux-gnu | ... | @@ -3979,43 +4200,79 @@ s390x-linux-gnu |
| 3979 | 27 | 4200 | 27 |
| 3980 | 4201 | ||
| 3981 | 27 | 4202 | 27 |
| 4203 | |||
| 4204 | |||
| 3982 | 27 | 4205 | 27 |
| 3983 | 5 16 | 4206 | 5 16 |
| 3984 | 20 | 4207 | 20 |
| 4208 | |||
| 4209 | |||
| 3985 | 5 | 4210 | 5 |
| 3986 | 5 | 4211 | 5 |
| 3987 | 5 | 4212 | 5 |
| 3988 | 27 | 4213 | 27 |
| 3989 | 4214 | ||
| 3990 | 27 | 4215 | 27 |
| 4216 | |||
| 3991 | 27 | 4217 | 27 |
| 3992 | 27 | 4218 | 27 |
| 3993 | 4219 | ||
| 3994 | 27 | 4220 | 27 |
| 4221 | |||
| 3995 | 27 | 4222 | 27 |
| 3996 | 4223 | ||
| 3997 | 4224 | ||
| 3998 | 4225 | ||
| 4226 | |||
| 3999 | 5 | 4227 | 5 |
| 4000 | 5 | 4228 | 5 |
| 4001 | 5 | 4229 | 5 |
| 4002 | 5 | 4230 | 5 |
| 4003 | 5 | 4231 | 5 |
| 4232 | |||
| 4233 | |||
| 4234 | |||
| 4235 | |||
| 4236 | |||
| 4237 | |||
| 4238 | |||
| 4239 | |||
| 4240 | |||
| 4241 | |||
| 4242 | |||
| 4243 | |||
| 4244 | |||
| 4245 | |||
| 4004 | 5 | 4246 | 5 |
| 4005 | 15 | 4247 | 15 |
| 4248 | |||
| 4006 | 5 | 4249 | 5 |
| 4007 | 5 | 4250 | 5 |
| 4251 | |||
| 4008 | 5 16 | 4252 | 5 16 |
| 4253 | |||
| 4009 | 5 | 4254 | 5 |
| 4010 | 5 | 4255 | 5 |
| 4011 | 4256 | ||
| 4012 | 5 | 4257 | 5 |
| 4013 | 16 | 4258 | 16 |
| 4259 | |||
| 4014 | 5 | 4260 | 5 |
| 4261 | |||
| 4015 | 27 | 4262 | 27 |
| 4016 | 4263 | ||
| 4017 | 27 | 4264 | 27 |
| 4265 | |||
| 4018 | 27 | 4266 | 27 |
| 4267 | |||
| 4268 | |||
| 4269 | |||
| 4270 | |||
| 4271 | |||
| 4272 | |||
| 4273 | |||
| 4274 | |||
| 4275 | |||
| 4019 | 5 | 4276 | 5 |
| 4020 | 5 | 4277 | 5 |
| 4021 | 5 | 4278 | 5 |
| ... | @@ -4043,29 +4300,50 @@ s390x-linux-gnu | ... | @@ -4043,29 +4300,50 @@ s390x-linux-gnu |
| 4043 | 4300 | ||
| 4044 | 4301 | ||
| 4045 | 20 | 4302 | 20 |
| 4303 | |||
| 4304 | |||
| 4046 | 5 | 4305 | 5 |
| 4047 | 5 | 4306 | 5 |
| 4048 | 5 | 4307 | 5 |
| 4049 | 5 | 4308 | 5 |
| 4050 | 4309 | ||
| 4051 | 4310 | ||
| 4311 | |||
| 4312 | |||
| 4313 | |||
| 4052 | 5 | 4314 | 5 |
| 4315 | |||
| 4316 | |||
| 4317 | |||
| 4053 | 27 | 4318 | 27 |
| 4054 | 4319 | ||
| 4055 | 27 | 4320 | 27 |
| 4321 | |||
| 4056 | 27 | 4322 | 27 |
| 4057 | 27 | 4323 | 27 |
| 4058 | 4324 | ||
| 4059 | 27 | 4325 | 27 |
| 4326 | |||
| 4060 | 27 | 4327 | 27 |
| 4061 | 27 | 4328 | 27 |
| 4062 | 4329 | ||
| 4063 | 27 | 4330 | 27 |
| 4064 | 4331 | ||
| 4332 | |||
| 4065 | 27 | 4333 | 27 |
| 4066 | 35 | 4334 | 35 |
| 4067 | 4335 | ||
| 4068 | 4336 | ||
| 4337 | |||
| 4338 | |||
| 4339 | |||
| 4340 | |||
| 4341 | |||
| 4342 | |||
| 4343 | |||
| 4344 | |||
| 4345 | |||
| 4346 | |||
| 4069 | 5 | 4347 | 5 |
| 4070 | 5 | 4348 | 5 |
| 4071 | 27 | 4349 | 27 |
| ... | @@ -4075,6 +4353,7 @@ s390x-linux-gnu | ... | @@ -4075,6 +4353,7 @@ s390x-linux-gnu |
| 4075 | 4353 | ||
| 4076 | 4354 | ||
| 4077 | 4355 | ||
| 4356 | |||
| 4078 | 39 | 4357 | 39 |
| 4079 | 5 | 4358 | 5 |
| 4080 | 16 | 4359 | 16 |
| ... | @@ -4103,9 +4382,16 @@ s390x-linux-gnu | ... | @@ -4103,9 +4382,16 @@ s390x-linux-gnu |
| 4103 | 4382 | ||
| 4104 | 4383 | ||
| 4105 | 4384 | ||
| 4385 | |||
| 4386 | |||
| 4387 | |||
| 4388 | |||
| 4389 | |||
| 4390 | |||
| 4106 | 27 | 4391 | 27 |
| 4107 | 4392 | ||
| 4108 | 27 | 4393 | 27 |
| 4394 | |||
| 4109 | 27 | 4395 | 27 |
| 4110 | 5 | 4396 | 5 |
| 4111 | 5 | 4397 | 5 |
| ... | @@ -4114,6 +4400,8 @@ s390x-linux-gnu | ... | @@ -4114,6 +4400,8 @@ s390x-linux-gnu |
| 4114 | 16 | 4400 | 16 |
| 4115 | 5 | 4401 | 5 |
| 4116 | 15 16 | 4402 | 15 16 |
| 4403 | |||
| 4404 | |||
| 4117 | 5 | 4405 | 5 |
| 4118 | 5 | 4406 | 5 |
| 4119 | 5 | 4407 | 5 |
| ... | @@ -4123,10 +4411,17 @@ s390x-linux-gnu | ... | @@ -4123,10 +4411,17 @@ s390x-linux-gnu |
| 4123 | 5 | 4411 | 5 |
| 4124 | 5 | 4412 | 5 |
| 4125 | 5 | 4413 | 5 |
| 4414 | |||
| 4415 | |||
| 4416 | |||
| 4417 | |||
| 4126 | 5 | 4418 | 5 |
| 4127 | 16 | 4419 | 16 |
| 4420 | |||
| 4421 | |||
| 4128 | 5 | 4422 | 5 |
| 4129 | 5 | 4423 | 5 |
| 4424 | |||
| 4130 | 5 | 4425 | 5 |
| 4131 | 5 | 4426 | 5 |
| 4132 | 16 | 4427 | 16 |
| ... | @@ -4146,6 +4441,7 @@ s390x-linux-gnu | ... | @@ -4146,6 +4441,7 @@ s390x-linux-gnu |
| 4146 | 16 | 4441 | 16 |
| 4147 | 5 | 4442 | 5 |
| 4148 | 5 | 4443 | 5 |
| 4444 | |||
| 4149 | 5 | 4445 | 5 |
| 4150 | 5 | 4446 | 5 |
| 4151 | 15 | 4447 | 15 |
| ... | @@ -4161,7 +4457,9 @@ s390x-linux-gnu | ... | @@ -4161,7 +4457,9 @@ s390x-linux-gnu |
| 4161 | 27 | 4457 | 27 |
| 4162 | 4458 | ||
| 4163 | 27 | 4459 | 27 |
| 4460 | |||
| 4164 | 27 | 4461 | 27 |
| 4462 | |||
| 4165 | 5 | 4463 | 5 |
| 4166 | 5 | 4464 | 5 |
| 4167 | 5 | 4465 | 5 |
| ... | @@ -4185,17 +4483,29 @@ s390x-linux-gnu | ... | @@ -4185,17 +4483,29 @@ s390x-linux-gnu |
| 4185 | 4483 | ||
| 4186 | 5 16 | 4484 | 5 16 |
| 4187 | 19 | 4485 | 19 |
| 4486 | |||
| 4188 | 19 | 4487 | 19 |
| 4488 | |||
| 4189 | 19 | 4489 | 19 |
| 4490 | |||
| 4190 | 19 | 4491 | 19 |
| 4492 | |||
| 4191 | 19 | 4493 | 19 |
| 4494 | |||
| 4192 | 19 | 4495 | 19 |
| 4496 | |||
| 4193 | 19 | 4497 | 19 |
| 4498 | |||
| 4194 | 19 | 4499 | 19 |
| 4500 | |||
| 4195 | 19 | 4501 | 19 |
| 4502 | |||
| 4196 | 19 | 4503 | 19 |
| 4504 | |||
| 4197 | 19 | 4505 | 19 |
| 4506 | |||
| 4198 | 19 | 4507 | 19 |
| 4508 | |||
| 4199 | 5 | 4509 | 5 |
| 4200 | 5 | 4510 | 5 |
| 4201 | 30 | 4511 | 30 |
| ... | @@ -4223,23 +4533,29 @@ s390x-linux-gnu | ... | @@ -4223,23 +4533,29 @@ s390x-linux-gnu |
| 4223 | 27 | 4533 | 27 |
| 4224 | 4534 | ||
| 4225 | 27 | 4535 | 27 |
| 4536 | |||
| 4226 | 27 | 4537 | 27 |
| 4227 | 27 | 4538 | 27 |
| 4228 | 4539 | ||
| 4229 | 27 | 4540 | 27 |
| 4541 | |||
| 4230 | 27 | 4542 | 27 |
| 4231 | 27 | 4543 | 27 |
| 4232 | 4544 | ||
| 4233 | 27 | 4545 | 27 |
| 4546 | |||
| 4234 | 27 | 4547 | 27 |
| 4235 | 5 | 4548 | 5 |
| 4236 | 5 | 4549 | 5 |
| 4237 | 5 | 4550 | 5 |
| 4238 | 4551 | ||
| 4239 | 4552 | ||
| 4553 | |||
| 4240 | 27 | 4554 | 27 |
| 4241 | 4555 | ||
| 4242 | 27 | 4556 | 27 |
| 4557 | |||
| 4558 | |||
| 4243 | 27 | 4559 | 27 |
| 4244 | 5 | 4560 | 5 |
| 4245 | 5 | 4561 | 5 |
| ... | @@ -4255,23 +4571,34 @@ s390x-linux-gnu | ... | @@ -4255,23 +4571,34 @@ s390x-linux-gnu |
| 4255 | 5 | 4571 | 5 |
| 4256 | 5 | 4572 | 5 |
| 4257 | 5 | 4573 | 5 |
| 4574 | 42 | ||
| 4258 | 5 | 4575 | 5 |
| 4259 | 5 | 4576 | 5 |
| 4260 | 5 | 4577 | 5 |
| 4261 | 11 | 4578 | 8 11 |
| 4579 | |||
| 4580 | |||
| 4581 | |||
| 4262 | 27 | 4582 | 27 |
| 4263 | 4583 | ||
| 4264 | 27 | 4584 | 27 |
| 4585 | |||
| 4265 | 27 | 4586 | 27 |
| 4587 | |||
| 4266 | 27 | 4588 | 27 |
| 4267 | 4589 | ||
| 4268 | 27 | 4590 | 27 |
| 4591 | |||
| 4269 | 27 | 4592 | 27 |
| 4270 | 27 | 4593 | 27 |
| 4271 | 4594 | ||
| 4595 | |||
| 4272 | 27 | 4596 | 27 |
| 4597 | |||
| 4273 | 27 | 4598 | 27 |
| 4274 | 23 31 | 4599 | 23 31 |
| 4600 | |||
| 4601 | |||
| 4275 | 5 | 4602 | 5 |
| 4276 | 4603 | ||
| 4277 | 4604 | ||
| ... | @@ -4310,17 +4637,26 @@ s390x-linux-gnu | ... | @@ -4310,17 +4637,26 @@ s390x-linux-gnu |
| 4310 | 4637 | ||
| 4311 | 4638 | ||
| 4312 | 4639 | ||
| 4640 | |||
| 4313 | 5 | 4641 | 5 |
| 4314 | 5 | 4642 | 5 |
| 4315 | 19 | 4643 | 19 |
| 4316 | 4644 | ||
| 4317 | 4645 | ||
| 4646 | |||
| 4318 | 11 | 4647 | 11 |
| 4319 | 4648 | ||
| 4320 | 4649 | ||
| 4321 | 4650 | ||
| 4322 | 4651 | ||
| 4652 | |||
| 4323 | 5 | 4653 | 5 |
| 4654 | |||
| 4655 | |||
| 4656 | |||
| 4657 | |||
| 4658 | |||
| 4659 | |||
| 4324 | 5 | 4660 | 5 |
| 4325 | 16 | 4661 | 16 |
| 4326 | 16 | 4662 | 16 |
| ... | @@ -4433,7 +4769,11 @@ s390x-linux-gnu | ... | @@ -4433,7 +4769,11 @@ s390x-linux-gnu |
| 4433 | 5 | 4769 | 5 |
| 4434 | 5 | 4770 | 5 |
| 4435 | 20 | 4771 | 20 |
| 4772 | |||
| 4773 | |||
| 4436 | 20 | 4774 | 20 |
| 4775 | |||
| 4776 | |||
| 4437 | 5 | 4777 | 5 |
| 4438 | 5 | 4778 | 5 |
| 4439 | 19 | 4779 | 19 |
| ... | @@ -4449,6 +4789,7 @@ s390x-linux-gnu | ... | @@ -4449,6 +4789,7 @@ s390x-linux-gnu |
| 4449 | 27 | 4789 | 27 |
| 4450 | 4790 | ||
| 4451 | 27 | 4791 | 27 |
| 4792 | |||
| 4452 | 27 | 4793 | 27 |
| 4453 | 4794 | ||
| 4454 | 28 | 4795 | 28 |
| ... | @@ -4456,7 +4797,10 @@ s390x-linux-gnu | ... | @@ -4456,7 +4797,10 @@ s390x-linux-gnu |
| 4456 | 16 | 4797 | 16 |
| 4457 | 16 | 4798 | 16 |
| 4458 | 15 16 | 4799 | 15 16 |
| 4800 | |||
| 4459 | 5 16 | 4801 | 5 16 |
| 4802 | |||
| 4803 | |||
| 4460 | 5 | 4804 | 5 |
| 4461 | 5 | 4805 | 5 |
| 4462 | 5 | 4806 | 5 |
| ... | @@ -4487,6 +4831,11 @@ s390x-linux-gnu | ... | @@ -4487,6 +4831,11 @@ s390x-linux-gnu |
| 4487 | 14 | 4831 | 14 |
| 4488 | 16 | 4832 | 16 |
| 4489 | 5 | 4833 | 5 |
| 4834 | |||
| 4835 | |||
| 4836 | |||
| 4837 | |||
| 4838 | |||
| 4490 | 5 | 4839 | 5 |
| 4491 | 5 | 4840 | 5 |
| 4492 | 5 | 4841 | 5 |
| ... | @@ -4505,12 +4854,17 @@ s390x-linux-gnu | ... | @@ -4505,12 +4854,17 @@ s390x-linux-gnu |
| 4505 | 27 | 4854 | 27 |
| 4506 | 4855 | ||
| 4507 | 27 | 4856 | 27 |
| 4857 | |||
| 4508 | 27 | 4858 | 27 |
| 4859 | |||
| 4509 | 5 | 4860 | 5 |
| 4510 | 5 | 4861 | 5 |
| 4511 | 5 | 4862 | 5 |
| 4512 | 5 | 4863 | 5 |
| 4513 | 5 | 4864 | 5 |
| 4865 | |||
| 4866 | |||
| 4867 | |||
| 4514 | 8 | 4868 | 8 |
| 4515 | 8 | 4869 | 8 |
| 4516 | 8 | 4870 | 8 |
| ... | @@ -4518,7 +4872,11 @@ s390x-linux-gnu | ... | @@ -4518,7 +4872,11 @@ s390x-linux-gnu |
| 4518 | 5 | 4872 | 5 |
| 4519 | 27 | 4873 | 27 |
| 4520 | 27 | 4874 | 27 |
| 4875 | |||
| 4521 | 27 | 4876 | 27 |
| 4877 | |||
| 4878 | |||
| 4879 | |||
| 4522 | 19 | 4880 | 19 |
| 4523 | 18 | 4881 | 18 |
| 4524 | 19 | 4882 | 19 |
| ... | @@ -4532,6 +4890,8 @@ s390x-linux-gnu | ... | @@ -4532,6 +4890,8 @@ s390x-linux-gnu |
| 4532 | 5 | 4890 | 5 |
| 4533 | 5 | 4891 | 5 |
| 4534 | 5 | 4892 | 5 |
| 4893 | |||
| 4894 | |||
| 4535 | 5 | 4895 | 5 |
| 4536 | 5 | 4896 | 5 |
| 4537 | 5 | 4897 | 5 |
| ... | @@ -4542,24 +4902,34 @@ s390x-linux-gnu | ... | @@ -4542,24 +4902,34 @@ s390x-linux-gnu |
| 4542 | 4902 | ||
| 4543 | 16 | 4903 | 16 |
| 4544 | 33 | 4904 | 33 |
| 4905 | |||
| 4545 | 5 | 4906 | 5 |
| 4546 | 31 5 | 4907 | 31 5 |
| 4547 | 5 | 4908 | 5 |
| 4548 | 4909 | ||
| 4549 | 4910 | ||
| 4550 | 4911 | ||
| 4912 | |||
| 4551 | 27 | 4913 | 27 |
| 4552 | 4914 | ||
| 4553 | 27 | 4915 | 27 |
| 4916 | |||
| 4554 | 27 | 4917 | 27 |
| 4918 | |||
| 4555 | 15 16 | 4919 | 15 16 |
| 4920 | |||
| 4921 | |||
| 4556 | 15 16 | 4922 | 15 16 |
| 4923 | |||
| 4924 | |||
| 4557 | 27 | 4925 | 27 |
| 4558 | 4926 | ||
| 4559 | 4927 | ||
| 4560 | 27 | 4928 | 27 |
| 4929 | |||
| 4561 | 27 | 4930 | 27 |
| 4562 | 4931 | ||
| 4932 | |||
| 4563 | 16 | 4933 | 16 |
| 4564 | 4934 | ||
| 4565 | 5 | 4935 | 5 |
| ... | @@ -4592,6 +4962,9 @@ s390x-linux-gnu | ... | @@ -4592,6 +4962,9 @@ s390x-linux-gnu |
| 4592 | 5 | 4962 | 5 |
| 4593 | 5 | 4963 | 5 |
| 4594 | 5 16 | 4964 | 5 16 |
| 4965 | |||
| 4966 | |||
| 4967 | |||
| 4595 | 12 | 4968 | 12 |
| 4596 | 4969 | ||
| 4597 | 5 | 4970 | 5 |
| ... | @@ -4626,6 +4999,8 @@ s390x-linux-gnu | ... | @@ -4626,6 +4999,8 @@ s390x-linux-gnu |
| 4626 | 4999 | ||
| 4627 | 5 | 5000 | 5 |
| 4628 | 5 | 5001 | 5 |
| 5002 | |||
| 5003 | |||
| 4629 | 5 | 5004 | 5 |
| 4630 | 5 | 5005 | 5 |
| 4631 | 5 | 5006 | 5 |
| ... | @@ -4645,48 +5020,93 @@ s390x-linux-gnu | ... | @@ -4645,48 +5020,93 @@ s390x-linux-gnu |
| 4645 | 5020 | ||
| 4646 | 5021 | ||
| 4647 | 16 | 5022 | 16 |
| 5023 | |||
| 5024 | |||
| 5025 | |||
| 4648 | 5 | 5026 | 5 |
| 4649 | 5 | 5027 | 5 |
| 4650 | 16 | 5028 | 16 |
| 5029 | |||
| 5030 | |||
| 4651 | 5 | 5031 | 5 |
| 5032 | |||
| 5033 | |||
| 5034 | |||
| 4652 | 5 | 5035 | 5 |
| 4653 | 5036 | ||
| 4654 | 5037 | ||
| 4655 | 12 | 5038 | 12 |
| 4656 | 5 | 5039 | 5 |
| 4657 | 5 | 5040 | 5 |
| 5041 | |||
| 5042 | |||
| 4658 | 5 | 5043 | 5 |
| 4659 | 5 | 5044 | 5 |
| 4660 | 5 | 5045 | 5 |
| 4661 | 5 | 5046 | 5 |
| 4662 | 5 | 5047 | 5 |
| 4663 | 5048 | ||
| 5049 | |||
| 4664 | 16 | 5050 | 16 |
| 4665 | 5 | 5051 | 5 |
| 4666 | 5052 | ||
| 4667 | 5053 | ||
| 4668 | 5 | 5054 | 5 |
| 4669 | 5055 | ||
| 5056 | |||
| 5057 | |||
| 4670 | 5 | 5058 | 5 |
| 4671 | 5059 | ||
| 4672 | 5060 | ||
| 4673 | 12 | 5061 | 12 |
| 4674 | 20 | 5062 | 20 |
| 5063 | |||
| 5064 | |||
| 4675 | 20 | 5065 | 20 |
| 5066 | |||
| 5067 | |||
| 5068 | |||
| 5069 | |||
| 4676 | 5 | 5070 | 5 |
| 4677 | 15 16 | 5071 | 15 16 |
| 5072 | |||
| 5073 | |||
| 4678 | 5 16 | 5074 | 5 16 |
| 5075 | |||
| 4679 | 16 | 5076 | 16 |
| 5077 | |||
| 5078 | |||
| 5079 | |||
| 4680 | 15 16 | 5080 | 15 16 |
| 5081 | |||
| 5082 | |||
| 5083 | |||
| 4681 | 5 16 | 5084 | 5 16 |
| 4682 | 15 16 | 5085 | 15 16 |
| 5086 | |||
| 5087 | |||
| 4683 | 15 16 | 5088 | 15 16 |
| 5089 | |||
| 5090 | |||
| 4684 | 5 16 | 5091 | 5 16 |
| 5092 | |||
| 4685 | 16 | 5093 | 16 |
| 5094 | |||
| 5095 | |||
| 5096 | |||
| 4686 | 16 | 5097 | 16 |
| 5098 | |||
| 5099 | |||
| 5100 | |||
| 5101 | |||
| 4687 | 16 | 5102 | 16 |
| 5103 | |||
| 5104 | |||
| 5105 | |||
| 4688 | 5 | 5106 | 5 |
| 4689 | 5 | 5107 | 5 |
| 5108 | |||
| 5109 | |||
| 4690 | 16 | 5110 | 16 |
| 4691 | 16 | 5111 | 16 |
| 4692 | 16 | 5112 | 16 |
| ... | @@ -4705,6 +5125,8 @@ s390x-linux-gnu | ... | @@ -4705,6 +5125,8 @@ s390x-linux-gnu |
| 4705 | 5125 | ||
| 4706 | 5 | 5126 | 5 |
| 4707 | 5 | 5127 | 5 |
| 5128 | |||
| 5129 | |||
| 4708 | 5 | 5130 | 5 |
| 4709 | 5 | 5131 | 5 |
| 4710 | 5 16 | 5132 | 5 16 |
| ... | @@ -4726,7 +5148,10 @@ s390x-linux-gnu | ... | @@ -4726,7 +5148,10 @@ s390x-linux-gnu |
| 4726 | 16 | 5148 | 16 |
| 4727 | 5 | 5149 | 5 |
| 4728 | 16 | 5150 | 16 |
| 5151 | |||
| 5152 | |||
| 4729 | 5 | 5153 | 5 |
| 5154 | |||
| 4730 | 5 | 5155 | 5 |
| 4731 | 5 | 5156 | 5 |
| 4732 | 5 | 5157 | 5 |
| ... | @@ -4739,14 +5164,17 @@ s390x-linux-gnu | ... | @@ -4739,14 +5164,17 @@ s390x-linux-gnu |
| 4739 | 27 | 5164 | 27 |
| 4740 | 5165 | ||
| 4741 | 27 | 5166 | 27 |
| 5167 | |||
| 4742 | 27 | 5168 | 27 |
| 4743 | 27 | 5169 | 27 |
| 4744 | 5170 | ||
| 4745 | 27 | 5171 | 27 |
| 5172 | |||
| 4746 | 27 | 5173 | 27 |
| 4747 | 27 | 5174 | 27 |
| 4748 | 5175 | ||
| 4749 | 27 | 5176 | 27 |
| 5177 | |||
| 4750 | 27 | 5178 | 27 |
| 4751 | 5 | 5179 | 5 |
| 4752 | 5 | 5180 | 5 |
| ... | @@ -5344,7 +5772,7 @@ s390x-linux-gnu | ... | @@ -5344,7 +5772,7 @@ s390x-linux-gnu |
| 5344 | 5 | 5772 | 5 |
| 5345 | 5 39 | 5773 | 5 39 |
| 5346 | 5 | 5774 | 5 |
| 5347 | 5 | 5775 | 5 42 |
| 5348 | 37 | 5776 | 37 |
| 5349 | 37 | 5777 | 37 |
| 5350 | 37 | 5778 | 37 |
| ... | @@ -6470,17 +6898,19 @@ s390x-linux-gnu | ... | @@ -6470,17 +6898,19 @@ s390x-linux-gnu |
| 6470 | 5 | 6898 | 5 |
| 6471 | 5 | 6899 | 5 |
| 6472 | 5 | 6900 | 5 |
| 6901 | 42 | ||
| 6473 | 5 | 6902 | 5 |
| 6474 | 5 | 6903 | 5 |
| 6475 | 5 | 6904 | 5 |
| 6476 | 5 | 6905 | 5 |
| 6477 | 14 15 | 6906 | 14 15 42 |
| 6478 | 5 | 6907 | 5 |
| 6479 | 5 | 6908 | 5 |
| 6480 | 5 | 6909 | 5 |
| 6481 | 5 | 6910 | 5 |
| 6482 | 5 | 6911 | 5 |
| 6483 | 5 | 6912 | 5 |
| 6913 | 42 | ||
| 6484 | 5 | 6914 | 5 |
| 6485 | 5 | 6915 | 5 |
| 6486 | 5 | 6916 | 5 |
| ... | @@ -6510,9 +6940,9 @@ s390x-linux-gnu | ... | @@ -6510,9 +6940,9 @@ s390x-linux-gnu |
| 6510 | 5 | 6940 | 5 |
| 6511 | 5 | 6941 | 5 |
| 6512 | 5 | 6942 | 5 |
| 6513 | 14 15 | 6943 | 14 15 42 |
| 6514 | 30 | 6944 | 30 |
| 6515 | 8 | 6945 | 8 42 |
| 6516 | 5 | 6946 | 5 |
| 6517 | 5 | 6947 | 5 |
| 6518 | 24 | 6948 | 24 |
| ... | @@ -6578,7 +7008,7 @@ s390x-linux-gnu | ... | @@ -6578,7 +7008,7 @@ s390x-linux-gnu |
| 6578 | 5 | 7008 | 5 |
| 6579 | 15 | 7009 | 15 |
| 6580 | 5 | 7010 | 5 |
| 6581 | 5 | 7011 | 5 42 |
| 6582 | 23 | 7012 | 23 |
| 6583 | 5 | 7013 | 5 |
| 6584 | 5 | 7014 | 5 |
| ... | @@ -6883,12 +7313,14 @@ s390x-linux-gnu | ... | @@ -6883,12 +7313,14 @@ s390x-linux-gnu |
| 6883 | 5 | 7313 | 5 |
| 6884 | 5 | 7314 | 5 |
| 6885 | 5 | 7315 | 5 |
| 7316 | 42 | ||
| 6886 | 5 | 7317 | 5 |
| 6887 | 5 | 7318 | 5 |
| 6888 | 5 | 7319 | 5 |
| 6889 | 5 | 7320 | 5 |
| 6890 | 5 | 7321 | 5 |
| 6891 | 5 | 7322 | 5 |
| 7323 | 42 | ||
| 6892 | 5 | 7324 | 5 |
| 6893 | 5 | 7325 | 5 |
| 6894 | 5 | 7326 | 5 |
| ... | @@ -6994,6 +7426,8 @@ s390x-linux-gnu | ... | @@ -6994,6 +7426,8 @@ s390x-linux-gnu |
| 6994 | 5 | 7426 | 5 |
| 6995 | 18 | 7427 | 18 |
| 6996 | 5 | 7428 | 5 |
| 7429 | 42 | ||
| 7430 | 42 | ||
| 6997 | 5 16 | 7431 | 5 16 |
| 6998 | 12 16 | 7432 | 12 16 |
| 6999 | 35 | 7433 | 35 |
| ... | @@ -7688,6 +8122,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7688,6 +8122,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7688 | 8122 | ||
| 7689 | 8123 | ||
| 7690 | 8124 | ||
| 8125 | |||
| 8126 | |||
| 7691 | 16 | 8127 | 16 |
| 7692 | 16 | 8128 | 16 |
| 7693 | 16 | 8129 | 16 |
| ... | @@ -7713,6 +8149,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7713,6 +8149,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7713 | 8149 | ||
| 7714 | 8150 | ||
| 7715 | 8151 | ||
| 8152 | |||
| 8153 | |||
| 7716 | 16 | 8154 | 16 |
| 7717 | 16 | 8155 | 16 |
| 7718 | 16 | 8156 | 16 |
| ... | @@ -7722,8 +8160,12 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7722,8 +8160,12 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7722 | 8160 | ||
| 7723 | 27 | 8161 | 27 |
| 7724 | 8162 | ||
| 8163 | |||
| 8164 | |||
| 7725 | 16 | 8165 | 16 |
| 7726 | 20 | 8166 | 20 |
| 8167 | |||
| 8168 | |||
| 7727 | 16 | 8169 | 16 |
| 7728 | 16 | 8170 | 16 |
| 7729 | 16 | 8171 | 16 |
| ... | @@ -7731,6 +8173,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7731,6 +8173,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7731 | 8173 | ||
| 7732 | 27 | 8174 | 27 |
| 7733 | 8175 | ||
| 8176 | |||
| 7734 | 27 | 8177 | 27 |
| 7735 | 8178 | ||
| 7736 | 27 | 8179 | 27 |
| ... | @@ -7738,22 +8181,43 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7738,22 +8181,43 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7738 | 8181 | ||
| 7739 | 8182 | ||
| 7740 | 8183 | ||
| 8184 | |||
| 8185 | |||
| 7741 | 16 | 8186 | 16 |
| 7742 | 16 | 8187 | 16 |
| 7743 | 16 | 8188 | 16 |
| 7744 | 16 | 8189 | 16 |
| 7745 | 16 | 8190 | 16 |
| 8191 | |||
| 8192 | |||
| 8193 | |||
| 8194 | |||
| 8195 | |||
| 8196 | |||
| 8197 | |||
| 8198 | |||
| 8199 | |||
| 8200 | |||
| 8201 | |||
| 8202 | |||
| 8203 | |||
| 8204 | |||
| 7746 | 16 | 8205 | 16 |
| 7747 | 16 | 8206 | 16 |
| 8207 | |||
| 7748 | 16 | 8208 | 16 |
| 7749 | 16 | 8209 | 16 |
| 8210 | |||
| 7750 | 16 | 8211 | 16 |
| 8212 | |||
| 7751 | 16 | 8213 | 16 |
| 7752 | 16 | 8214 | 16 |
| 7753 | 8215 | ||
| 7754 | 16 | 8216 | 16 |
| 7755 | 16 | 8217 | 16 |
| 8218 | |||
| 7756 | 16 | 8219 | 16 |
| 8220 | |||
| 7757 | 27 | 8221 | 27 |
| 7758 | 8222 | ||
| 7759 | 27 | 8223 | 27 |
| ... | @@ -7762,6 +8226,16 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7762,6 +8226,16 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7762 | 8226 | ||
| 7763 | 8227 | ||
| 7764 | 8228 | ||
| 8229 | |||
| 8230 | |||
| 8231 | |||
| 8232 | |||
| 8233 | |||
| 8234 | |||
| 8235 | |||
| 8236 | |||
| 8237 | |||
| 8238 | |||
| 7765 | 16 | 8239 | 16 |
| 7766 | 16 | 8240 | 16 |
| 7767 | 8241 | ||
| ... | @@ -7785,29 +8259,50 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7785,29 +8259,50 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7785 | 8259 | ||
| 7786 | 8260 | ||
| 7787 | 20 | 8261 | 20 |
| 8262 | |||
| 8263 | |||
| 7788 | 16 | 8264 | 16 |
| 7789 | 16 | 8265 | 16 |
| 7790 | 16 | 8266 | 16 |
| 7791 | 16 | 8267 | 16 |
| 7792 | 8268 | ||
| 7793 | 8269 | ||
| 8270 | |||
| 8271 | |||
| 8272 | |||
| 7794 | 16 | 8273 | 16 |
| 8274 | |||
| 8275 | |||
| 8276 | |||
| 7795 | 27 | 8277 | 27 |
| 7796 | 8278 | ||
| 7797 | 27 | 8279 | 27 |
| 7798 | 8280 | ||
| 8281 | |||
| 7799 | 27 | 8282 | 27 |
| 7800 | 8283 | ||
| 7801 | 27 | 8284 | 27 |
| 7802 | 8285 | ||
| 8286 | |||
| 7803 | 27 | 8287 | 27 |
| 7804 | 8288 | ||
| 7805 | 27 | 8289 | 27 |
| 7806 | 8290 | ||
| 7807 | 8291 | ||
| 8292 | |||
| 7808 | 35 | 8293 | 35 |
| 7809 | 8294 | ||
| 7810 | 8295 | ||
| 8296 | |||
| 8297 | |||
| 8298 | |||
| 8299 | |||
| 8300 | |||
| 8301 | |||
| 8302 | |||
| 8303 | |||
| 8304 | |||
| 8305 | |||
| 7811 | 16 | 8306 | 16 |
| 7812 | 16 | 8307 | 16 |
| 7813 | 27 | 8308 | 27 |
| ... | @@ -7818,6 +8313,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7818,6 +8313,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7818 | 8313 | ||
| 7819 | 8314 | ||
| 7820 | 8315 | ||
| 8316 | |||
| 7821 | 16 | 8317 | 16 |
| 7822 | 16 | 8318 | 16 |
| 7823 | 16 | 8319 | 16 |
| ... | @@ -7845,10 +8341,17 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7845,10 +8341,17 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7845 | 8341 | ||
| 7846 | 8342 | ||
| 7847 | 8343 | ||
| 8344 | |||
| 8345 | |||
| 8346 | |||
| 8347 | |||
| 8348 | |||
| 8349 | |||
| 7848 | 27 | 8350 | 27 |
| 7849 | 8351 | ||
| 7850 | 27 | 8352 | 27 |
| 7851 | 8353 | ||
| 8354 | |||
| 7852 | 16 | 8355 | 16 |
| 7853 | 16 | 8356 | 16 |
| 7854 | 16 | 8357 | 16 |
| ... | @@ -7856,6 +8359,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7856,6 +8359,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7856 | 8359 | ||
| 7857 | 16 | 8360 | 16 |
| 7858 | 16 | 8361 | 16 |
| 8362 | |||
| 8363 | |||
| 7859 | 16 | 8364 | 16 |
| 7860 | 16 | 8365 | 16 |
| 7861 | 8366 | ||
| ... | @@ -7865,10 +8370,17 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7865,10 +8370,17 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7865 | 16 | 8370 | 16 |
| 7866 | 16 | 8371 | 16 |
| 7867 | 16 | 8372 | 16 |
| 8373 | |||
| 8374 | |||
| 8375 | |||
| 8376 | |||
| 7868 | 16 | 8377 | 16 |
| 7869 | 16 | 8378 | 16 |
| 8379 | |||
| 8380 | |||
| 7870 | 16 | 8381 | 16 |
| 7871 | 16 | 8382 | 16 |
| 8383 | |||
| 7872 | 16 | 8384 | 16 |
| 7873 | 16 | 8385 | 16 |
| 7874 | 16 | 8386 | 16 |
| ... | @@ -7888,6 +8400,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7888,6 +8400,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7888 | 16 | 8400 | 16 |
| 7889 | 16 | 8401 | 16 |
| 7890 | 16 | 8402 | 16 |
| 8403 | |||
| 7891 | 16 | 8404 | 16 |
| 7892 | 16 | 8405 | 16 |
| 7893 | 16 | 8406 | 16 |
| ... | @@ -7904,6 +8417,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7904,6 +8417,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7904 | 8417 | ||
| 7905 | 27 | 8418 | 27 |
| 7906 | 8419 | ||
| 8420 | |||
| 8421 | |||
| 7907 | 16 | 8422 | 16 |
| 7908 | 16 | 8423 | 16 |
| 7909 | 16 | 8424 | 16 |
| ... | @@ -7927,17 +8442,29 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7927,17 +8442,29 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7927 | 8442 | ||
| 7928 | 16 | 8443 | 16 |
| 7929 | 19 | 8444 | 19 |
| 8445 | |||
| 7930 | 19 | 8446 | 19 |
| 8447 | |||
| 7931 | 19 | 8448 | 19 |
| 8449 | |||
| 7932 | 19 | 8450 | 19 |
| 8451 | |||
| 7933 | 19 | 8452 | 19 |
| 8453 | |||
| 7934 | 19 | 8454 | 19 |
| 8455 | |||
| 7935 | 19 | 8456 | 19 |
| 8457 | |||
| 7936 | 19 | 8458 | 19 |
| 8459 | |||
| 7937 | 19 | 8460 | 19 |
| 8461 | |||
| 7938 | 19 | 8462 | 19 |
| 8463 | |||
| 7939 | 19 | 8464 | 19 |
| 8465 | |||
| 7940 | 19 | 8466 | 19 |
| 8467 | |||
| 7941 | 16 | 8468 | 16 |
| 7942 | 16 | 8469 | 16 |
| 7943 | 30 | 8470 | 30 |
| ... | @@ -7966,23 +8493,29 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7966,23 +8493,29 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7966 | 8493 | ||
| 7967 | 27 | 8494 | 27 |
| 7968 | 8495 | ||
| 8496 | |||
| 7969 | 27 | 8497 | 27 |
| 7970 | 8498 | ||
| 7971 | 27 | 8499 | 27 |
| 7972 | 8500 | ||
| 8501 | |||
| 7973 | 27 | 8502 | 27 |
| 7974 | 8503 | ||
| 7975 | 27 | 8504 | 27 |
| 7976 | 8505 | ||
| 8506 | |||
| 7977 | 16 | 8507 | 16 |
| 7978 | 16 | 8508 | 16 |
| 7979 | 16 | 8509 | 16 |
| 7980 | 8510 | ||
| 7981 | 8511 | ||
| 8512 | |||
| 7982 | 27 | 8513 | 27 |
| 7983 | 8514 | ||
| 7984 | 27 | 8515 | 27 |
| 7985 | 8516 | ||
| 8517 | |||
| 8518 | |||
| 7986 | 16 | 8519 | 16 |
| 7987 | 16 | 8520 | 16 |
| 7988 | 16 | 8521 | 16 |
| ... | @@ -7997,23 +8530,34 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -7997,23 +8530,34 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7997 | 16 | 8530 | 16 |
| 7998 | 16 | 8531 | 16 |
| 7999 | 16 | 8532 | 16 |
| 8533 | 42 | ||
| 8000 | 16 | 8534 | 16 |
| 8001 | 16 | 8535 | 16 |
| 8002 | 16 | 8536 | 16 |
| 8003 | 8537 | ||
| 8538 | |||
| 8539 | |||
| 8540 | |||
| 8004 | 27 | 8541 | 27 |
| 8005 | 8542 | ||
| 8006 | 27 | 8543 | 27 |
| 8007 | 8544 | ||
| 8545 | |||
| 8546 | |||
| 8008 | 27 | 8547 | 27 |
| 8009 | 8548 | ||
| 8010 | 27 | 8549 | 27 |
| 8011 | 8550 | ||
| 8551 | |||
| 8012 | 27 | 8552 | 27 |
| 8013 | 8553 | ||
| 8554 | |||
| 8014 | 27 | 8555 | 27 |
| 8015 | 8556 | ||
| 8557 | |||
| 8016 | 23 | 8558 | 23 |
| 8559 | |||
| 8560 | |||
| 8017 | 16 | 8561 | 16 |
| 8018 | 8562 | ||
| 8019 | 8563 | ||
| ... | @@ -8052,17 +8596,26 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8052,17 +8596,26 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8052 | 8596 | ||
| 8053 | 8597 | ||
| 8054 | 8598 | ||
| 8599 | |||
| 8055 | 16 | 8600 | 16 |
| 8056 | 16 | 8601 | 16 |
| 8057 | 19 | 8602 | 19 |
| 8058 | 8603 | ||
| 8059 | 8604 | ||
| 8605 | |||
| 8060 | 16 | 8606 | 16 |
| 8061 | 8607 | ||
| 8062 | 8608 | ||
| 8063 | 8609 | ||
| 8064 | 8610 | ||
| 8611 | |||
| 8065 | 16 | 8612 | 16 |
| 8613 | |||
| 8614 | |||
| 8615 | |||
| 8616 | |||
| 8617 | |||
| 8618 | |||
| 8066 | 16 | 8619 | 16 |
| 8067 | 8620 | ||
| 8068 | 8621 | ||
| ... | @@ -8175,7 +8728,11 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8175,7 +8728,11 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8175 | 16 | 8728 | 16 |
| 8176 | 16 | 8729 | 16 |
| 8177 | 20 | 8730 | 20 |
| 8731 | |||
| 8732 | |||
| 8178 | 20 | 8733 | 20 |
| 8734 | |||
| 8735 | |||
| 8179 | 16 | 8736 | 16 |
| 8180 | 16 | 8737 | 16 |
| 8181 | 19 | 8738 | 19 |
| ... | @@ -8193,12 +8750,16 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8193,12 +8750,16 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8193 | 27 | 8750 | 27 |
| 8194 | 8751 | ||
| 8195 | 8752 | ||
| 8753 | |||
| 8196 | 28 | 8754 | 28 |
| 8197 | 16 | 8755 | 16 |
| 8198 | 16 | 8756 | 16 |
| 8199 | 16 | 8757 | 16 |
| 8200 | 16 | 8758 | 16 |
| 8759 | |||
| 8201 | 16 | 8760 | 16 |
| 8761 | |||
| 8762 | |||
| 8202 | 16 | 8763 | 16 |
| 8203 | 16 | 8764 | 16 |
| 8204 | 16 | 8765 | 16 |
| ... | @@ -8229,6 +8790,11 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8229,6 +8790,11 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8229 | 16 | 8790 | 16 |
| 8230 | 16 | 8791 | 16 |
| 8231 | 16 | 8792 | 16 |
| 8793 | |||
| 8794 | |||
| 8795 | |||
| 8796 | |||
| 8797 | |||
| 8232 | 16 | 8798 | 16 |
| 8233 | 16 | 8799 | 16 |
| 8234 | 16 | 8800 | 16 |
| ... | @@ -8248,11 +8814,16 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8248,11 +8814,16 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8248 | 8814 | ||
| 8249 | 27 | 8815 | 27 |
| 8250 | 8816 | ||
| 8817 | |||
| 8818 | |||
| 8251 | 16 | 8819 | 16 |
| 8252 | 16 | 8820 | 16 |
| 8253 | 16 | 8821 | 16 |
| 8254 | 16 | 8822 | 16 |
| 8255 | 16 | 8823 | 16 |
| 8824 | |||
| 8825 | |||
| 8826 | |||
| 8256 | 16 | 8827 | 16 |
| 8257 | 16 | 8828 | 16 |
| 8258 | 16 | 8829 | 16 |
| ... | @@ -8261,6 +8832,10 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8261,6 +8832,10 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8261 | 27 | 8832 | 27 |
| 8262 | 27 | 8833 | 27 |
| 8263 | 8834 | ||
| 8835 | |||
| 8836 | |||
| 8837 | |||
| 8838 | |||
| 8264 | 19 | 8839 | 19 |
| 8265 | 18 | 8840 | 18 |
| 8266 | 19 | 8841 | 19 |
| ... | @@ -8274,6 +8849,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8274,6 +8849,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8274 | 16 | 8849 | 16 |
| 8275 | 16 | 8850 | 16 |
| 8276 | 16 | 8851 | 16 |
| 8852 | |||
| 8853 | |||
| 8277 | 16 | 8854 | 16 |
| 8278 | 16 | 8855 | 16 |
| 8279 | 16 | 8856 | 16 |
| ... | @@ -8284,24 +8861,34 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8284,24 +8861,34 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8284 | 8861 | ||
| 8285 | 8862 | ||
| 8286 | 33 | 8863 | 33 |
| 8864 | |||
| 8287 | 16 | 8865 | 16 |
| 8288 | 16 | 8866 | 16 |
| 8289 | 16 | 8867 | 16 |
| 8290 | 8868 | ||
| 8291 | 8869 | ||
| 8292 | 8870 | ||
| 8871 | |||
| 8293 | 27 | 8872 | 27 |
| 8294 | 8873 | ||
| 8295 | 27 | 8874 | 27 |
| 8296 | 8875 | ||
| 8876 | |||
| 8877 | |||
| 8297 | 16 | 8878 | 16 |
| 8879 | |||
| 8880 | |||
| 8298 | 16 | 8881 | 16 |
| 8882 | |||
| 8883 | |||
| 8299 | 27 | 8884 | 27 |
| 8300 | 8885 | ||
| 8301 | 8886 | ||
| 8302 | 27 | 8887 | 27 |
| 8303 | 8888 | ||
| 8304 | 8889 | ||
| 8890 | |||
| 8891 | |||
| 8305 | 16 | 8892 | 16 |
| 8306 | 16 | 8893 | 16 |
| 8307 | 16 | 8894 | 16 |
| ... | @@ -8334,6 +8921,9 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8334,6 +8921,9 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8334 | 16 | 8921 | 16 |
| 8335 | 16 | 8922 | 16 |
| 8336 | 16 | 8923 | 16 |
| 8924 | |||
| 8925 | |||
| 8926 | |||
| 8337 | 16 | 8927 | 16 |
| 8338 | 8928 | ||
| 8339 | 16 | 8929 | 16 |
| ... | @@ -8368,6 +8958,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8368,6 +8958,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8368 | 8958 | ||
| 8369 | 16 | 8959 | 16 |
| 8370 | 16 | 8960 | 16 |
| 8961 | |||
| 8962 | |||
| 8371 | 16 | 8963 | 16 |
| 8372 | 16 | 8964 | 16 |
| 8373 | 16 | 8965 | 16 |
| ... | @@ -8387,48 +8979,93 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8387,48 +8979,93 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8387 | 8979 | ||
| 8388 | 8980 | ||
| 8389 | 16 | 8981 | 16 |
| 8982 | |||
| 8983 | |||
| 8984 | |||
| 8390 | 16 | 8985 | 16 |
| 8391 | 16 | 8986 | 16 |
| 8392 | 16 | 8987 | 16 |
| 8988 | |||
| 8989 | |||
| 8393 | 16 | 8990 | 16 |
| 8991 | |||
| 8992 | |||
| 8993 | |||
| 8394 | 16 | 8994 | 16 |
| 8395 | 16 | 8995 | 16 |
| 8396 | 8996 | ||
| 8397 | 8997 | ||
| 8398 | 16 | 8998 | 16 |
| 8399 | 16 | 8999 | 16 |
| 9000 | |||
| 9001 | |||
| 8400 | 16 | 9002 | 16 |
| 8401 | 16 | 9003 | 16 |
| 8402 | 16 | 9004 | 16 |
| 8403 | 16 | 9005 | 16 |
| 8404 | 16 | 9006 | 16 |
| 8405 | 9007 | ||
| 9008 | |||
| 8406 | 16 | 9009 | 16 |
| 8407 | 16 | 9010 | 16 |
| 8408 | 9011 | ||
| 8409 | 9012 | ||
| 8410 | 16 | 9013 | 16 |
| 8411 | 9014 | ||
| 9015 | |||
| 9016 | |||
| 8412 | 16 | 9017 | 16 |
| 8413 | 9018 | ||
| 8414 | 9019 | ||
| 8415 | 16 | 9020 | 16 |
| 8416 | 20 | 9021 | 20 |
| 9022 | |||
| 9023 | |||
| 8417 | 20 | 9024 | 20 |
| 9025 | |||
| 9026 | |||
| 9027 | |||
| 9028 | |||
| 8418 | 16 | 9029 | 16 |
| 8419 | 16 | 9030 | 16 |
| 9031 | |||
| 9032 | |||
| 8420 | 16 | 9033 | 16 |
| 9034 | |||
| 8421 | 16 | 9035 | 16 |
| 9036 | |||
| 9037 | |||
| 9038 | |||
| 8422 | 16 | 9039 | 16 |
| 9040 | |||
| 9041 | |||
| 9042 | |||
| 8423 | 16 | 9043 | 16 |
| 8424 | 16 | 9044 | 16 |
| 9045 | |||
| 9046 | |||
| 8425 | 16 | 9047 | 16 |
| 9048 | |||
| 9049 | |||
| 8426 | 16 | 9050 | 16 |
| 9051 | |||
| 8427 | 16 | 9052 | 16 |
| 9053 | |||
| 9054 | |||
| 9055 | |||
| 8428 | 16 | 9056 | 16 |
| 9057 | |||
| 9058 | |||
| 9059 | |||
| 9060 | |||
| 8429 | 16 | 9061 | 16 |
| 9062 | |||
| 9063 | |||
| 9064 | |||
| 8430 | 16 | 9065 | 16 |
| 8431 | 16 | 9066 | 16 |
| 9067 | |||
| 9068 | |||
| 8432 | 16 | 9069 | 16 |
| 8433 | 16 | 9070 | 16 |
| 8434 | 16 | 9071 | 16 |
| ... | @@ -8447,6 +9084,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8447,6 +9084,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8447 | 9084 | ||
| 8448 | 16 | 9085 | 16 |
| 8449 | 16 | 9086 | 16 |
| 9087 | |||
| 9088 | |||
| 8450 | 16 | 9089 | 16 |
| 8451 | 16 | 9090 | 16 |
| 8452 | 16 | 9091 | 16 |
| ... | @@ -8468,7 +9107,10 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8468,7 +9107,10 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8468 | 16 | 9107 | 16 |
| 8469 | 16 | 9108 | 16 |
| 8470 | 16 | 9109 | 16 |
| 9110 | |||
| 9111 | |||
| 8471 | 16 | 9112 | 16 |
| 9113 | |||
| 8472 | 16 | 9114 | 16 |
| 8473 | 16 | 9115 | 16 |
| 8474 | 16 | 9116 | 16 |
| ... | @@ -8482,14 +9124,17 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -8482,14 +9124,17 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8482 | 9124 | ||
| 8483 | 27 | 9125 | 27 |
| 8484 | 9126 | ||
| 9127 | |||
| 8485 | 27 | 9128 | 27 |
| 8486 | 9129 | ||
| 8487 | 27 | 9130 | 27 |
| 8488 | 9131 | ||
| 9132 | |||
| 8489 | 27 | 9133 | 27 |
| 8490 | 9134 | ||
| 8491 | 27 | 9135 | 27 |
| 8492 | 9136 | ||
| 9137 | |||
| 8493 | 16 | 9138 | 16 |
| 8494 | 16 | 9139 | 16 |
| 8495 | 16 | 9140 | 16 |
| ... | @@ -9086,7 +9731,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -9086,7 +9731,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 9086 | 16 | 9731 | 16 |
| 9087 | 39 16 | 9732 | 39 16 |
| 9088 | 16 | 9733 | 16 |
| 9089 | 16 | 9734 | 42 16 |
| 9090 | 9735 | ||
| 9091 | 37 | 9736 | 37 |
| 9092 | 37 | 9737 | 37 |
| ... | @@ -10212,17 +10857,19 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -10212,17 +10857,19 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 10212 | 16 | 10857 | 16 |
| 10213 | 16 | 10858 | 16 |
| 10214 | 16 | 10859 | 16 |
| 10860 | 42 | ||
| 10215 | 16 | 10861 | 16 |
| 10216 | 16 | 10862 | 16 |
| 10217 | 16 | 10863 | 16 |
| 10218 | 16 | 10864 | 16 |
| 10865 | 42 16 | ||
| 10219 | 16 | 10866 | 16 |
| 10220 | 16 | 10867 | 16 |
| 10221 | 16 | 10868 | 16 |
| 10222 | 16 | 10869 | 16 |
| 10223 | 16 | 10870 | 16 |
| 10224 | 16 | 10871 | 16 |
| 10225 | 16 | 10872 | 42 |
| 10226 | 16 | 10873 | 16 |
| 10227 | 16 | 10874 | 16 |
| 10228 | 16 | 10875 | 16 |
| ... | @@ -10252,9 +10899,9 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -10252,9 +10899,9 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 10252 | 16 | 10899 | 16 |
| 10253 | 16 | 10900 | 16 |
| 10254 | 16 | 10901 | 16 |
| 10255 | 16 | 10902 | 42 16 |
| 10256 | 30 | 10903 | 30 |
| 10257 | 16 | 10904 | 42 16 |
| 10258 | 16 | 10905 | 16 |
| 10259 | 16 | 10906 | 16 |
| 10260 | 24 | 10907 | 24 |
| ... | @@ -10320,7 +10967,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -10320,7 +10967,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 10320 | 16 | 10967 | 16 |
| 10321 | 16 | 10968 | 16 |
| 10322 | 16 | 10969 | 16 |
| 10323 | 16 | 10970 | 42 16 |
| 10324 | 23 | 10971 | 23 |
| 10325 | 16 | 10972 | 16 |
| 10326 | 16 | 10973 | 16 |
| ... | @@ -10625,12 +11272,14 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -10625,12 +11272,14 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 10625 | 16 | 11272 | 16 |
| 10626 | 16 | 11273 | 16 |
| 10627 | 16 | 11274 | 16 |
| 11275 | 42 | ||
| 10628 | 16 | 11276 | 16 |
| 10629 | 16 | 11277 | 16 |
| 10630 | 16 | 11278 | 16 |
| 10631 | 16 | 11279 | 16 |
| 10632 | 16 | 11280 | 16 |
| 10633 | 16 | 11281 | 16 |
| 11282 | 42 | ||
| 10634 | 16 | 11283 | 16 |
| 10635 | 16 | 11284 | 16 |
| 10636 | 16 | 11285 | 16 |
| ... | @@ -10736,6 +11385,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf | ... | @@ -10736,6 +11385,8 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 10736 | 16 | 11385 | 16 |
| 10737 | 18 | 11386 | 18 |
| 10738 | 16 | 11387 | 16 |
| 11388 | 42 | ||
| 11389 | 42 | ||
| 10739 | 16 | 11390 | 16 |
| 10740 | 16 | 11391 | 16 |
| 10741 | 35 | 11392 | 35 |
| ... | @@ -11426,7 +12077,9 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11426,7 +12077,9 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11426 | 27 | 12077 | 27 |
| 11427 | 12078 | ||
| 11428 | 27 | 12079 | 27 |
| 12080 | |||
| 11429 | 27 | 12081 | 27 |
| 12082 | |||
| 11430 | 27 | 12083 | 27 |
| 11431 | 12084 | ||
| 11432 | 12085 | ||
| ... | @@ -11455,6 +12108,8 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11455,6 +12108,8 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11455 | 12108 | ||
| 11456 | 12109 | ||
| 11457 | 12110 | ||
| 12111 | |||
| 12112 | |||
| 11458 | 0 | 12113 | 0 |
| 11459 | 0 | 12114 | 0 |
| 11460 | 0 | 12115 | 0 |
| ... | @@ -11463,43 +12118,79 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11463,43 +12118,79 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11463 | 27 | 12118 | 27 |
| 11464 | 12119 | ||
| 11465 | 27 | 12120 | 27 |
| 12121 | |||
| 12122 | |||
| 11466 | 27 | 12123 | 27 |
| 11467 | 1 16 | 12124 | 1 16 |
| 11468 | 20 | 12125 | 20 |
| 12126 | |||
| 12127 | |||
| 11469 | 5 | 12128 | 5 |
| 11470 | 0 | 12129 | 0 |
| 11471 | 0 | 12130 | 0 |
| 11472 | 27 | 12131 | 27 |
| 11473 | 12132 | ||
| 11474 | 27 | 12133 | 27 |
| 12134 | |||
| 11475 | 27 | 12135 | 27 |
| 11476 | 27 | 12136 | 27 |
| 11477 | 12137 | ||
| 11478 | 27 | 12138 | 27 |
| 12139 | |||
| 11479 | 27 | 12140 | 27 |
| 11480 | 12141 | ||
| 11481 | 12142 | ||
| 11482 | 12143 | ||
| 12144 | |||
| 11483 | 1 | 12145 | 1 |
| 11484 | 1 | 12146 | 1 |
| 11485 | 1 | 12147 | 1 |
| 11486 | 0 | 12148 | 0 |
| 11487 | 0 | 12149 | 0 |
| 12150 | |||
| 12151 | |||
| 12152 | |||
| 12153 | |||
| 12154 | |||
| 12155 | |||
| 12156 | |||
| 12157 | |||
| 12158 | |||
| 12159 | |||
| 12160 | |||
| 12161 | |||
| 12162 | |||
| 12163 | |||
| 11488 | 0 | 12164 | 0 |
| 11489 | 15 | 12165 | 15 |
| 12166 | |||
| 11490 | 1 | 12167 | 1 |
| 11491 | 1 | 12168 | 1 |
| 12169 | |||
| 11492 | 1 16 | 12170 | 1 16 |
| 12171 | |||
| 11493 | 0 | 12172 | 0 |
| 11494 | 0 | 12173 | 0 |
| 11495 | 12174 | ||
| 11496 | 0 | 12175 | 0 |
| 11497 | 16 | 12176 | 16 |
| 12177 | |||
| 11498 | 0 | 12178 | 0 |
| 12179 | |||
| 11499 | 27 | 12180 | 27 |
| 11500 | 12181 | ||
| 11501 | 27 | 12182 | 27 |
| 12183 | |||
| 11502 | 27 | 12184 | 27 |
| 12185 | |||
| 12186 | |||
| 12187 | |||
| 12188 | |||
| 12189 | |||
| 12190 | |||
| 12191 | |||
| 12192 | |||
| 12193 | |||
| 11503 | 0 | 12194 | 0 |
| 11504 | 5 | 12195 | 5 |
| 11505 | 5 | 12196 | 5 |
| ... | @@ -11527,29 +12218,50 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11527,29 +12218,50 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11527 | 12218 | ||
| 11528 | 12219 | ||
| 11529 | 20 | 12220 | 20 |
| 12221 | |||
| 12222 | |||
| 11530 | 0 | 12223 | 0 |
| 11531 | 1 | 12224 | 1 |
| 11532 | 5 | 12225 | 5 |
| 11533 | 0 | 12226 | 0 |
| 11534 | 12227 | ||
| 11535 | 12228 | ||
| 12229 | |||
| 12230 | |||
| 12231 | |||
| 11536 | 0 | 12232 | 0 |
| 12233 | |||
| 12234 | |||
| 12235 | |||
| 11537 | 27 | 12236 | 27 |
| 11538 | 12237 | ||
| 11539 | 27 | 12238 | 27 |
| 12239 | |||
| 11540 | 27 | 12240 | 27 |
| 11541 | 27 | 12241 | 27 |
| 11542 | 12242 | ||
| 11543 | 27 | 12243 | 27 |
| 12244 | |||
| 11544 | 27 | 12245 | 27 |
| 11545 | 27 | 12246 | 27 |
| 11546 | 12247 | ||
| 11547 | 27 | 12248 | 27 |
| 11548 | 12249 | ||
| 12250 | |||
| 11549 | 27 | 12251 | 27 |
| 11550 | 35 | 12252 | 35 |
| 11551 | 12253 | ||
| 11552 | 12254 | ||
| 12255 | |||
| 12256 | |||
| 12257 | |||
| 12258 | |||
| 12259 | |||
| 12260 | |||
| 12261 | |||
| 12262 | |||
| 12263 | |||
| 12264 | |||
| 11553 | 5 | 12265 | 5 |
| 11554 | 0 | 12266 | 0 |
| 11555 | 27 | 12267 | 27 |
| ... | @@ -11560,6 +12272,7 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11560,6 +12272,7 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11560 | 12272 | ||
| 11561 | 12273 | ||
| 11562 | 12274 | ||
| 12275 | |||
| 11563 | 0 | 12276 | 0 |
| 11564 | 16 | 12277 | 16 |
| 11565 | 16 | 12278 | 16 |
| ... | @@ -11587,9 +12300,16 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11587,9 +12300,16 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11587 | 12300 | ||
| 11588 | 12301 | ||
| 11589 | 12302 | ||
| 12303 | |||
| 12304 | |||
| 12305 | |||
| 12306 | |||
| 12307 | |||
| 12308 | |||
| 11590 | 27 | 12309 | 27 |
| 11591 | 12310 | ||
| 11592 | 27 | 12311 | 27 |
| 12312 | |||
| 11593 | 27 | 12313 | 27 |
| 11594 | 0 | 12314 | 0 |
| 11595 | 1 | 12315 | 1 |
| ... | @@ -11598,6 +12318,8 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11598,6 +12318,8 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11598 | 16 | 12318 | 16 |
| 11599 | 5 | 12319 | 5 |
| 11600 | 15 16 | 12320 | 15 16 |
| 12321 | |||
| 12322 | |||
| 11601 | 0 | 12323 | 0 |
| 11602 | 5 | 12324 | 5 |
| 11603 | 0 | 12325 | 0 |
| ... | @@ -11607,10 +12329,17 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11607,10 +12329,17 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11607 | 5 | 12329 | 5 |
| 11608 | 0 | 12330 | 0 |
| 11609 | 1 | 12331 | 1 |
| 12332 | |||
| 12333 | |||
| 12334 | |||
| 12335 | |||
| 11610 | 5 | 12336 | 5 |
| 11611 | 16 | 12337 | 16 |
| 12338 | |||
| 12339 | |||
| 11612 | 5 | 12340 | 5 |
| 11613 | 5 | 12341 | 5 |
| 12342 | |||
| 11614 | 0 | 12343 | 0 |
| 11615 | 1 5 | 12344 | 1 5 |
| 11616 | 16 | 12345 | 16 |
| ... | @@ -11630,6 +12359,7 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11630,6 +12359,7 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11630 | 16 | 12359 | 16 |
| 11631 | 5 | 12360 | 5 |
| 11632 | 0 | 12361 | 0 |
| 12362 | |||
| 11633 | 0 | 12363 | 0 |
| 11634 | 0 | 12364 | 0 |
| 11635 | 15 | 12365 | 15 |
| ... | @@ -11645,7 +12375,9 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11645,7 +12375,9 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11645 | 27 | 12375 | 27 |
| 11646 | 12376 | ||
| 11647 | 27 | 12377 | 27 |
| 12378 | |||
| 11648 | 27 | 12379 | 27 |
| 12380 | |||
| 11649 | 1 | 12381 | 1 |
| 11650 | 1 | 12382 | 1 |
| 11651 | 1 | 12383 | 1 |
| ... | @@ -11669,17 +12401,29 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11669,17 +12401,29 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11669 | 12401 | ||
| 11670 | 0 16 | 12402 | 0 16 |
| 11671 | 19 | 12403 | 19 |
| 12404 | |||
| 11672 | 19 | 12405 | 19 |
| 12406 | |||
| 11673 | 19 | 12407 | 19 |
| 12408 | |||
| 11674 | 19 | 12409 | 19 |
| 12410 | |||
| 11675 | 19 | 12411 | 19 |
| 12412 | |||
| 11676 | 19 | 12413 | 19 |
| 12414 | |||
| 11677 | 19 | 12415 | 19 |
| 12416 | |||
| 11678 | 19 | 12417 | 19 |
| 12418 | |||
| 11679 | 19 | 12419 | 19 |
| 12420 | |||
| 11680 | 19 | 12421 | 19 |
| 12422 | |||
| 11681 | 19 | 12423 | 19 |
| 12424 | |||
| 11682 | 19 | 12425 | 19 |
| 12426 | |||
| 11683 | 1 | 12427 | 1 |
| 11684 | 1 | 12428 | 1 |
| 11685 | 30 | 12429 | 30 |
| ... | @@ -11707,23 +12451,29 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11707,23 +12451,29 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11707 | 27 | 12451 | 27 |
| 11708 | 12452 | ||
| 11709 | 27 | 12453 | 27 |
| 12454 | |||
| 11710 | 27 | 12455 | 27 |
| 11711 | 27 | 12456 | 27 |
| 11712 | 12457 | ||
| 11713 | 27 | 12458 | 27 |
| 12459 | |||
| 11714 | 27 | 12460 | 27 |
| 11715 | 27 | 12461 | 27 |
| 11716 | 12462 | ||
| 11717 | 27 | 12463 | 27 |
| 12464 | |||
| 11718 | 27 | 12465 | 27 |
| 11719 | 1 | 12466 | 1 |
| 11720 | 1 | 12467 | 1 |
| 11721 | 1 | 12468 | 1 |
| 11722 | 12469 | ||
| 11723 | 12470 | ||
| 12471 | |||
| 11724 | 27 | 12472 | 27 |
| 11725 | 12473 | ||
| 11726 | 27 | 12474 | 27 |
| 12475 | |||
| 12476 | |||
| 11727 | 27 | 12477 | 27 |
| 11728 | 1 | 12478 | 1 |
| 11729 | 0 | 12479 | 0 |
| ... | @@ -11739,23 +12489,34 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11739,23 +12489,34 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11739 | 0 | 12489 | 0 |
| 11740 | 0 | 12490 | 0 |
| 11741 | 1 | 12491 | 1 |
| 12492 | 42 | ||
| 11742 | 1 | 12493 | 1 |
| 11743 | 0 | 12494 | 0 |
| 11744 | 0 | 12495 | 0 |
| 11745 | 3 11 | 12496 | 3 8 11 |
| 12497 | |||
| 12498 | |||
| 12499 | |||
| 11746 | 27 | 12500 | 27 |
| 11747 | 12501 | ||
| 11748 | 27 | 12502 | 27 |
| 12503 | |||
| 11749 | 27 | 12504 | 27 |
| 12505 | |||
| 11750 | 27 | 12506 | 27 |
| 11751 | 12507 | ||
| 11752 | 27 | 12508 | 27 |
| 12509 | |||
| 11753 | 27 | 12510 | 27 |
| 11754 | 27 | 12511 | 27 |
| 11755 | 12512 | ||
| 12513 | |||
| 11756 | 27 | 12514 | 27 |
| 12515 | |||
| 11757 | 27 | 12516 | 27 |
| 11758 | 23 | 12517 | 23 |
| 12518 | |||
| 12519 | |||
| 11759 | 0 | 12520 | 0 |
| 11760 | 12521 | ||
| 11761 | 12522 | ||
| ... | @@ -11794,17 +12555,26 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11794,17 +12555,26 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11794 | 12555 | ||
| 11795 | 12556 | ||
| 11796 | 12557 | ||
| 12558 | |||
| 11797 | 0 | 12559 | 0 |
| 11798 | 0 | 12560 | 0 |
| 11799 | 19 | 12561 | 19 |
| 11800 | 12562 | ||
| 11801 | 12563 | ||
| 12564 | |||
| 11802 | 11 | 12565 | 11 |
| 11803 | 12566 | ||
| 11804 | 12567 | ||
| 11805 | 12568 | ||
| 11806 | 12569 | ||
| 12570 | |||
| 11807 | 1 | 12571 | 1 |
| 12572 | |||
| 12573 | |||
| 12574 | |||
| 12575 | |||
| 12576 | |||
| 12577 | |||
| 11808 | 5 | 12578 | 5 |
| 11809 | 16 | 12579 | 16 |
| 11810 | 16 | 12580 | 16 |
| ... | @@ -11917,7 +12687,11 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11917,7 +12687,11 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11917 | 0 | 12687 | 0 |
| 11918 | 0 | 12688 | 0 |
| 11919 | 20 | 12689 | 20 |
| 12690 | |||
| 12691 | |||
| 11920 | 20 | 12692 | 20 |
| 12693 | |||
| 12694 | |||
| 11921 | 0 | 12695 | 0 |
| 11922 | 5 | 12696 | 5 |
| 11923 | 19 | 12697 | 19 |
| ... | @@ -11933,6 +12707,7 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11933,6 +12707,7 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11933 | 27 | 12707 | 27 |
| 11934 | 12708 | ||
| 11935 | 27 | 12709 | 27 |
| 12710 | |||
| 11936 | 27 | 12711 | 27 |
| 11937 | 12712 | ||
| 11938 | 28 | 12713 | 28 |
| ... | @@ -11940,7 +12715,10 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11940,7 +12715,10 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11940 | 16 | 12715 | 16 |
| 11941 | 16 | 12716 | 16 |
| 11942 | 15 16 | 12717 | 15 16 |
| 12718 | |||
| 11943 | 0 16 | 12719 | 0 16 |
| 12720 | |||
| 12721 | |||
| 11944 | 0 | 12722 | 0 |
| 11945 | 0 | 12723 | 0 |
| 11946 | 0 | 12724 | 0 |
| ... | @@ -11971,6 +12749,11 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11971,6 +12749,11 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11971 | 14 | 12749 | 14 |
| 11972 | 16 | 12750 | 16 |
| 11973 | 1 5 | 12751 | 1 5 |
| 12752 | |||
| 12753 | |||
| 12754 | |||
| 12755 | |||
| 12756 | |||
| 11974 | 1 | 12757 | 1 |
| 11975 | 0 | 12758 | 0 |
| 11976 | 0 | 12759 | 0 |
| ... | @@ -11989,12 +12772,17 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -11989,12 +12772,17 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11989 | 27 | 12772 | 27 |
| 11990 | 12773 | ||
| 11991 | 27 | 12774 | 27 |
| 12775 | |||
| 11992 | 27 | 12776 | 27 |
| 12777 | |||
| 11993 | 5 | 12778 | 5 |
| 11994 | 5 | 12779 | 5 |
| 11995 | 5 | 12780 | 5 |
| 11996 | 0 | 12781 | 0 |
| 11997 | 5 | 12782 | 5 |
| 12783 | |||
| 12784 | |||
| 12785 | |||
| 11998 | 8 | 12786 | 8 |
| 11999 | 8 | 12787 | 8 |
| 12000 | 8 | 12788 | 8 |
| ... | @@ -12002,7 +12790,11 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -12002,7 +12790,11 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12002 | 0 | 12790 | 0 |
| 12003 | 27 | 12791 | 27 |
| 12004 | 27 | 12792 | 27 |
| 12793 | |||
| 12005 | 27 | 12794 | 27 |
| 12795 | |||
| 12796 | |||
| 12797 | |||
| 12006 | 19 | 12798 | 19 |
| 12007 | 18 | 12799 | 18 |
| 12008 | 19 | 12800 | 19 |
| ... | @@ -12016,6 +12808,8 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -12016,6 +12808,8 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12016 | 0 | 12808 | 0 |
| 12017 | 0 | 12809 | 0 |
| 12018 | 5 | 12810 | 5 |
| 12811 | |||
| 12812 | |||
| 12019 | 0 | 12813 | 0 |
| 12020 | 0 | 12814 | 0 |
| 12021 | 0 | 12815 | 0 |
| ... | @@ -12026,24 +12820,34 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -12026,24 +12820,34 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12026 | 12820 | ||
| 12027 | 16 | 12821 | 16 |
| 12028 | 33 | 12822 | 33 |
| 12823 | |||
| 12029 | 0 | 12824 | 0 |
| 12030 | 0 | 12825 | 0 |
| 12031 | 4 | 12826 | 4 |
| 12032 | 12827 | ||
| 12033 | 12828 | ||
| 12034 | 12829 | ||
| 12830 | |||
| 12035 | 27 | 12831 | 27 |
| 12036 | 12832 | ||
| 12037 | 27 | 12833 | 27 |
| 12834 | |||
| 12038 | 27 | 12835 | 27 |
| 12836 | |||
| 12039 | 15 16 | 12837 | 15 16 |
| 12838 | |||
| 12839 | |||
| 12040 | 15 16 | 12840 | 15 16 |
| 12841 | |||
| 12842 | |||
| 12041 | 27 | 12843 | 27 |
| 12042 | 12844 | ||
| 12043 | 12845 | ||
| 12044 | 27 | 12846 | 27 |
| 12847 | |||
| 12045 | 33 | 12848 | 33 |
| 12046 | 12849 | ||
| 12850 | |||
| 12047 | 16 | 12851 | 16 |
| 12048 | 12852 | ||
| 12049 | 5 | 12853 | 5 |
| ... | @@ -12076,6 +12880,9 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -12076,6 +12880,9 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12076 | 0 | 12880 | 0 |
| 12077 | 0 | 12881 | 0 |
| 12078 | 1 16 | 12882 | 1 16 |
| 12883 | |||
| 12884 | |||
| 12885 | |||
| 12079 | 12 | 12886 | 12 |
| 12080 | 12887 | ||
| 12081 | 1 | 12888 | 1 |
| ... | @@ -12110,6 +12917,8 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -12110,6 +12917,8 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12110 | 12917 | ||
| 12111 | 0 | 12918 | 0 |
| 12112 | 1 | 12919 | 1 |
| 12920 | |||
| 12921 | |||
| 12113 | 0 | 12922 | 0 |
| 12114 | 2 | 12923 | 2 |
| 12115 | 0 | 12924 | 0 |
| ... | @@ -12129,48 +12938,93 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -12129,48 +12938,93 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12129 | 12938 | ||
| 12130 | 12939 | ||
| 12131 | 16 | 12940 | 16 |
| 12941 | |||
| 12942 | |||
| 12943 | |||
| 12132 | 5 | 12944 | 5 |
| 12133 | 5 | 12945 | 5 |
| 12134 | 16 | 12946 | 16 |
| 12947 | |||
| 12948 | |||
| 12135 | 0 | 12949 | 0 |
| 12950 | |||
| 12951 | |||
| 12952 | |||
| 12136 | 0 | 12953 | 0 |
| 12137 | 12 | 12954 | 12 |
| 12138 | 12955 | ||
| 12139 | 12956 | ||
| 12140 | 1 | 12957 | 1 |
| 12141 | 1 | 12958 | 1 |
| 12959 | |||
| 12960 | |||
| 12142 | 1 | 12961 | 1 |
| 12143 | 1 | 12962 | 1 |
| 12144 | 1 | 12963 | 1 |
| 12145 | 1 | 12964 | 1 |
| 12146 | 1 | 12965 | 1 |
| 12147 | 12966 | ||
| 12967 | |||
| 12148 | 16 | 12968 | 16 |
| 12149 | 0 | 12969 | 0 |
| 12150 | 12970 | ||
| 12151 | 12971 | ||
| 12152 | 0 | 12972 | 0 |
| 12153 | 12973 | ||
| 12974 | |||
| 12975 | |||
| 12154 | 0 | 12976 | 0 |
| 12155 | 12977 | ||
| 12156 | 12978 | ||
| 12157 | 12 | 12979 | 12 |
| 12158 | 20 | 12980 | 20 |
| 12981 | |||
| 12982 | |||
| 12159 | 20 | 12983 | 20 |
| 12984 | |||
| 12985 | |||
| 12986 | |||
| 12987 | |||
| 12160 | 3 | 12988 | 3 |
| 12161 | 15 16 | 12989 | 15 16 |
| 12990 | |||
| 12991 | |||
| 12162 | 0 16 | 12992 | 0 16 |
| 12993 | |||
| 12163 | 16 | 12994 | 16 |
| 12995 | |||
| 12996 | |||
| 12997 | |||
| 12164 | 15 16 | 12998 | 15 16 |
| 12999 | |||
| 13000 | |||
| 13001 | |||
| 12165 | 0 16 | 13002 | 0 16 |
| 12166 | 15 16 | 13003 | 15 16 |
| 13004 | |||
| 13005 | |||
| 12167 | 15 16 | 13006 | 15 16 |
| 13007 | |||
| 13008 | |||
| 12168 | 0 16 | 13009 | 0 16 |
| 13010 | |||
| 12169 | 16 | 13011 | 16 |
| 13012 | |||
| 13013 | |||
| 13014 | |||
| 12170 | 16 | 13015 | 16 |
| 13016 | |||
| 13017 | |||
| 13018 | |||
| 13019 | |||
| 12171 | 16 | 13020 | 16 |
| 13021 | |||
| 13022 | |||
| 13023 | |||
| 12172 | 0 | 13024 | 0 |
| 12173 | 0 | 13025 | 0 |
| 13026 | |||
| 13027 | |||
| 12174 | 16 | 13028 | 16 |
| 12175 | 16 | 13029 | 16 |
| 12176 | 16 | 13030 | 16 |
| ... | @@ -12189,6 +13043,8 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -12189,6 +13043,8 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12189 | 13043 | ||
| 12190 | 0 | 13044 | 0 |
| 12191 | 1 | 13045 | 1 |
| 13046 | |||
| 13047 | |||
| 12192 | 0 | 13048 | 0 |
| 12193 | 1 | 13049 | 1 |
| 12194 | 0 16 | 13050 | 0 16 |
| ... | @@ -12210,7 +13066,10 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -12210,7 +13066,10 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12210 | 16 | 13066 | 16 |
| 12211 | 5 | 13067 | 5 |
| 12212 | 16 | 13068 | 16 |
| 13069 | |||
| 13070 | |||
| 12213 | 0 | 13071 | 0 |
| 13072 | |||
| 12214 | 5 | 13073 | 5 |
| 12215 | 5 | 13074 | 5 |
| 12216 | 0 | 13075 | 0 |
| ... | @@ -12223,14 +13082,17 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -12223,14 +13082,17 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12223 | 27 | 13082 | 27 |
| 12224 | 13083 | ||
| 12225 | 27 | 13084 | 27 |
| 13085 | |||
| 12226 | 27 | 13086 | 27 |
| 12227 | 27 | 13087 | 27 |
| 12228 | 13088 | ||
| 12229 | 27 | 13089 | 27 |
| 13090 | |||
| 12230 | 27 | 13091 | 27 |
| 12231 | 27 | 13092 | 27 |
| 12232 | 13093 | ||
| 12233 | 27 | 13094 | 27 |
| 13095 | |||
| 12234 | 27 | 13096 | 27 |
| 12235 | 1 | 13097 | 1 |
| 12236 | 1 | 13098 | 1 |
| ... | @@ -12828,7 +13690,7 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -12828,7 +13690,7 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12828 | 0 | 13690 | 0 |
| 12829 | 0 39 | 13691 | 0 39 |
| 12830 | 1 | 13692 | 1 |
| 12831 | 1 | 13693 | 1 42 |
| 12832 | 37 | 13694 | 37 |
| 12833 | 37 | 13695 | 37 |
| 12834 | 37 | 13696 | 37 |
| ... | @@ -13954,17 +14816,19 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -13954,17 +14816,19 @@ sparc-linux-gnu sparcel-linux-gnu |
| 13954 | 0 | 14816 | 0 |
| 13955 | 0 | 14817 | 0 |
| 13956 | 0 | 14818 | 0 |
| 14819 | 42 | ||
| 13957 | 5 | 14820 | 5 |
| 13958 | 1 | 14821 | 1 |
| 13959 | 1 | 14822 | 1 |
| 13960 | 0 1 | 14823 | 0 1 |
| 13961 | 14 15 | 14824 | 14 15 42 |
| 13962 | 0 | 14825 | 0 |
| 13963 | 1 | 14826 | 1 |
| 13964 | 0 | 14827 | 0 |
| 13965 | 0 | 14828 | 0 |
| 13966 | 0 | 14829 | 0 |
| 13967 | 0 | 14830 | 0 |
| 14831 | 42 | ||
| 13968 | 5 14 | 14832 | 5 14 |
| 13969 | 1 | 14833 | 1 |
| 13970 | 1 14 | 14834 | 1 14 |
| ... | @@ -13994,9 +14858,9 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -13994,9 +14858,9 @@ sparc-linux-gnu sparcel-linux-gnu |
| 13994 | 0 | 14858 | 0 |
| 13995 | 0 | 14859 | 0 |
| 13996 | 0 | 14860 | 0 |
| 13997 | 14 15 | 14861 | 14 15 42 |
| 13998 | 30 | 14862 | 30 |
| 13999 | 8 | 14863 | 8 42 |
| 14000 | 1 | 14864 | 1 |
| 14001 | 5 | 14865 | 5 |
| 14002 | 24 | 14866 | 24 |
| ... | @@ -14062,7 +14926,7 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -14062,7 +14926,7 @@ sparc-linux-gnu sparcel-linux-gnu |
| 14062 | 0 | 14926 | 0 |
| 14063 | 15 | 14927 | 15 |
| 14064 | 0 | 14928 | 0 |
| 14065 | 0 | 14929 | 0 42 |
| 14066 | 23 | 14930 | 23 |
| 14067 | 5 | 14931 | 5 |
| 14068 | 5 | 14932 | 5 |
| ... | @@ -14367,12 +15231,14 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -14367,12 +15231,14 @@ sparc-linux-gnu sparcel-linux-gnu |
| 14367 | 0 | 15231 | 0 |
| 14368 | 0 | 15232 | 0 |
| 14369 | 0 | 15233 | 0 |
| 15234 | 42 | ||
| 14370 | 0 | 15235 | 0 |
| 14371 | 0 | 15236 | 0 |
| 14372 | 0 | 15237 | 0 |
| 14373 | 0 | 15238 | 0 |
| 14374 | 0 | 15239 | 0 |
| 14375 | 0 | 15240 | 0 |
| 15241 | 42 | ||
| 14376 | 0 | 15242 | 0 |
| 14377 | 0 | 15243 | 0 |
| 14378 | 0 | 15244 | 0 |
| ... | @@ -14478,6 +15344,8 @@ sparc-linux-gnu sparcel-linux-gnu | ... | @@ -14478,6 +15344,8 @@ sparc-linux-gnu sparcel-linux-gnu |
| 14478 | 0 | 15344 | 0 |
| 14479 | 18 | 15345 | 18 |
| 14480 | 0 | 15346 | 0 |
| 15347 | 42 | ||
| 15348 | 42 | ||
| 14481 | 0 16 | 15349 | 0 16 |
| 14482 | 12 16 | 15350 | 12 16 |
| 14483 | 35 | 15351 | 35 |
| ... | @@ -15168,7 +16036,9 @@ sparcv9-linux-gnu | ... | @@ -15168,7 +16036,9 @@ sparcv9-linux-gnu |
| 15168 | 27 | 16036 | 27 |
| 15169 | 16037 | ||
| 15170 | 27 | 16038 | 27 |
| 16039 | |||
| 15171 | 27 | 16040 | 27 |
| 16041 | |||
| 15172 | 27 | 16042 | 27 |
| 15173 | 16043 | ||
| 15174 | 16044 | ||
| ... | @@ -15197,6 +16067,8 @@ sparcv9-linux-gnu | ... | @@ -15197,6 +16067,8 @@ sparcv9-linux-gnu |
| 15197 | 5 | 16067 | 5 |
| 15198 | 5 | 16068 | 5 |
| 15199 | 16069 | ||
| 16070 | |||
| 16071 | |||
| 15200 | 5 | 16072 | 5 |
| 15201 | 5 | 16073 | 5 |
| 15202 | 5 | 16074 | 5 |
| ... | @@ -15205,43 +16077,79 @@ sparcv9-linux-gnu | ... | @@ -15205,43 +16077,79 @@ sparcv9-linux-gnu |
| 15205 | 27 | 16077 | 27 |
| 15206 | 16078 | ||
| 15207 | 27 | 16079 | 27 |
| 16080 | |||
| 16081 | |||
| 15208 | 27 | 16082 | 27 |
| 15209 | 5 | 16083 | 5 |
| 15210 | 20 | 16084 | 20 |
| 16085 | |||
| 16086 | |||
| 15211 | 5 | 16087 | 5 |
| 15212 | 5 | 16088 | 5 |
| 15213 | 5 | 16089 | 5 |
| 15214 | 27 | 16090 | 27 |
| 15215 | 16091 | ||
| 15216 | 27 | 16092 | 27 |
| 16093 | |||
| 15217 | 27 | 16094 | 27 |
| 15218 | 27 | 16095 | 27 |
| 15219 | 16096 | ||
| 15220 | 27 | 16097 | 27 |
| 16098 | |||
| 15221 | 27 | 16099 | 27 |
| 15222 | 16100 | ||
| 15223 | 16101 | ||
| 15224 | 16102 | ||
| 16103 | |||
| 15225 | 5 | 16104 | 5 |
| 15226 | 5 | 16105 | 5 |
| 15227 | 5 | 16106 | 5 |
| 15228 | 5 | 16107 | 5 |
| 15229 | 5 | 16108 | 5 |
| 16109 | |||
| 16110 | |||
| 16111 | |||
| 16112 | |||
| 16113 | |||
| 16114 | |||
| 16115 | |||
| 16116 | |||
| 16117 | |||
| 16118 | |||
| 16119 | |||
| 16120 | |||
| 16121 | |||
| 16122 | |||
| 15230 | 5 | 16123 | 5 |
| 15231 | 15 | 16124 | 15 |
| 16125 | |||
| 15232 | 5 | 16126 | 5 |
| 15233 | 5 | 16127 | 5 |
| 16128 | |||
| 15234 | 5 | 16129 | 5 |
| 16130 | |||
| 15235 | 5 | 16131 | 5 |
| 15236 | 5 | 16132 | 5 |
| 15237 | 16133 | ||
| 15238 | 5 | 16134 | 5 |
| 15239 | 16 | 16135 | 16 |
| 16136 | |||
| 15240 | 5 | 16137 | 5 |
| 16138 | |||
| 15241 | 27 | 16139 | 27 |
| 15242 | 16140 | ||
| 15243 | 27 | 16141 | 27 |
| 16142 | |||
| 15244 | 27 | 16143 | 27 |
| 16144 | |||
| 16145 | |||
| 16146 | |||
| 16147 | |||
| 16148 | |||
| 16149 | |||
| 16150 | |||
| 16151 | |||
| 16152 | |||
| 15245 | 5 | 16153 | 5 |
| 15246 | 5 | 16154 | 5 |
| 15247 | 5 | 16155 | 5 |
| ... | @@ -15269,29 +16177,50 @@ sparcv9-linux-gnu | ... | @@ -15269,29 +16177,50 @@ sparcv9-linux-gnu |
| 15269 | 16177 | ||
| 15270 | 16178 | ||
| 15271 | 20 | 16179 | 20 |
| 16180 | |||
| 16181 | |||
| 15272 | 5 | 16182 | 5 |
| 15273 | 5 | 16183 | 5 |
| 15274 | 5 | 16184 | 5 |
| 15275 | 5 | 16185 | 5 |
| 15276 | 16186 | ||
| 15277 | 16187 | ||
| 16188 | |||
| 16189 | |||
| 16190 | |||
| 15278 | 5 | 16191 | 5 |
| 16192 | |||
| 16193 | |||
| 16194 | |||
| 15279 | 27 | 16195 | 27 |
| 15280 | 16196 | ||
| 15281 | 27 | 16197 | 27 |
| 16198 | |||
| 15282 | 27 | 16199 | 27 |
| 15283 | 27 | 16200 | 27 |
| 15284 | 16201 | ||
| 15285 | 27 | 16202 | 27 |
| 16203 | |||
| 15286 | 27 | 16204 | 27 |
| 15287 | 27 | 16205 | 27 |
| 15288 | 16206 | ||
| 15289 | 27 | 16207 | 27 |
| 15290 | 16208 | ||
| 16209 | |||
| 15291 | 27 | 16210 | 27 |
| 15292 | 35 | 16211 | 35 |
| 15293 | 16212 | ||
| 15294 | 16213 | ||
| 16214 | |||
| 16215 | |||
| 16216 | |||
| 16217 | |||
| 16218 | |||
| 16219 | |||
| 16220 | |||
| 16221 | |||
| 16222 | |||
| 16223 | |||
| 15295 | 5 | 16224 | 5 |
| 15296 | 5 | 16225 | 5 |
| 15297 | 27 | 16226 | 27 |
| ... | @@ -15302,6 +16231,7 @@ sparcv9-linux-gnu | ... | @@ -15302,6 +16231,7 @@ sparcv9-linux-gnu |
| 15302 | 16231 | ||
| 15303 | 16232 | ||
| 15304 | 16233 | ||
| 16234 | |||
| 15305 | 5 | 16235 | 5 |
| 15306 | 16 | 16236 | 16 |
| 15307 | 16 | 16237 | 16 |
| ... | @@ -15329,9 +16259,16 @@ sparcv9-linux-gnu | ... | @@ -15329,9 +16259,16 @@ sparcv9-linux-gnu |
| 15329 | 16259 | ||
| 15330 | 16260 | ||
| 15331 | 16261 | ||
| 16262 | |||
| 16263 | |||
| 16264 | |||
| 16265 | |||
| 16266 | |||
| 16267 | |||
| 15332 | 27 | 16268 | 27 |
| 15333 | 16269 | ||
| 15334 | 27 | 16270 | 27 |
| 16271 | |||
| 15335 | 27 | 16272 | 27 |
| 15336 | 5 | 16273 | 5 |
| 15337 | 5 | 16274 | 5 |
| ... | @@ -15340,6 +16277,8 @@ sparcv9-linux-gnu | ... | @@ -15340,6 +16277,8 @@ sparcv9-linux-gnu |
| 15340 | 5 | 16277 | 5 |
| 15341 | 5 | 16278 | 5 |
| 15342 | 15 | 16279 | 15 |
| 16280 | |||
| 16281 | |||
| 15343 | 5 | 16282 | 5 |
| 15344 | 5 | 16283 | 5 |
| 15345 | 5 | 16284 | 5 |
| ... | @@ -15349,10 +16288,17 @@ sparcv9-linux-gnu | ... | @@ -15349,10 +16288,17 @@ sparcv9-linux-gnu |
| 15349 | 5 | 16288 | 5 |
| 15350 | 5 | 16289 | 5 |
| 15351 | 5 | 16290 | 5 |
| 16291 | |||
| 16292 | |||
| 16293 | |||
| 16294 | |||
| 15352 | 5 | 16295 | 5 |
| 15353 | 16 | 16296 | 16 |
| 16297 | |||
| 16298 | |||
| 15354 | 5 | 16299 | 5 |
| 15355 | 5 | 16300 | 5 |
| 16301 | |||
| 15356 | 5 | 16302 | 5 |
| 15357 | 5 | 16303 | 5 |
| 15358 | 16 | 16304 | 16 |
| ... | @@ -15372,6 +16318,7 @@ sparcv9-linux-gnu | ... | @@ -15372,6 +16318,7 @@ sparcv9-linux-gnu |
| 15372 | 16 | 16318 | 16 |
| 15373 | 5 | 16319 | 5 |
| 15374 | 5 | 16320 | 5 |
| 16321 | |||
| 15375 | 5 | 16322 | 5 |
| 15376 | 5 | 16323 | 5 |
| 15377 | 15 | 16324 | 15 |
| ... | @@ -15387,7 +16334,9 @@ sparcv9-linux-gnu | ... | @@ -15387,7 +16334,9 @@ sparcv9-linux-gnu |
| 15387 | 27 | 16334 | 27 |
| 15388 | 16335 | ||
| 15389 | 27 | 16336 | 27 |
| 16337 | |||
| 15390 | 27 | 16338 | 27 |
| 16339 | |||
| 15391 | 5 | 16340 | 5 |
| 15392 | 5 | 16341 | 5 |
| 15393 | 5 | 16342 | 5 |
| ... | @@ -15411,17 +16360,29 @@ sparcv9-linux-gnu | ... | @@ -15411,17 +16360,29 @@ sparcv9-linux-gnu |
| 15411 | 16360 | ||
| 15412 | 5 | 16361 | 5 |
| 15413 | 19 | 16362 | 19 |
| 16363 | |||
| 15414 | 19 | 16364 | 19 |
| 16365 | |||
| 15415 | 19 | 16366 | 19 |
| 16367 | |||
| 15416 | 19 | 16368 | 19 |
| 16369 | |||
| 15417 | 19 | 16370 | 19 |
| 16371 | |||
| 15418 | 19 | 16372 | 19 |
| 16373 | |||
| 15419 | 19 | 16374 | 19 |
| 16375 | |||
| 15420 | 19 | 16376 | 19 |
| 16377 | |||
| 15421 | 19 | 16378 | 19 |
| 16379 | |||
| 15422 | 19 | 16380 | 19 |
| 16381 | |||
| 15423 | 19 | 16382 | 19 |
| 16383 | |||
| 15424 | 19 | 16384 | 19 |
| 16385 | |||
| 15425 | 5 | 16386 | 5 |
| 15426 | 5 | 16387 | 5 |
| 15427 | 30 | 16388 | 30 |
| ... | @@ -15449,23 +16410,29 @@ sparcv9-linux-gnu | ... | @@ -15449,23 +16410,29 @@ sparcv9-linux-gnu |
| 15449 | 27 | 16410 | 27 |
| 15450 | 16411 | ||
| 15451 | 27 | 16412 | 27 |
| 16413 | |||
| 15452 | 27 | 16414 | 27 |
| 15453 | 27 | 16415 | 27 |
| 15454 | 16416 | ||
| 15455 | 27 | 16417 | 27 |
| 16418 | |||
| 15456 | 27 | 16419 | 27 |
| 15457 | 27 | 16420 | 27 |
| 15458 | 16421 | ||
| 15459 | 27 | 16422 | 27 |
| 16423 | |||
| 15460 | 27 | 16424 | 27 |
| 15461 | 5 | 16425 | 5 |
| 15462 | 5 | 16426 | 5 |
| 15463 | 5 | 16427 | 5 |
| 15464 | 16428 | ||
| 15465 | 16429 | ||
| 16430 | |||
| 15466 | 27 | 16431 | 27 |
| 15467 | 16432 | ||
| 15468 | 27 | 16433 | 27 |
| 16434 | |||
| 16435 | |||
| 15469 | 27 | 16436 | 27 |
| 15470 | 5 | 16437 | 5 |
| 15471 | 5 | 16438 | 5 |
| ... | @@ -15481,23 +16448,34 @@ sparcv9-linux-gnu | ... | @@ -15481,23 +16448,34 @@ sparcv9-linux-gnu |
| 15481 | 5 | 16448 | 5 |
| 15482 | 5 | 16449 | 5 |
| 15483 | 5 | 16450 | 5 |
| 16451 | 42 | ||
| 15484 | 5 | 16452 | 5 |
| 15485 | 5 | 16453 | 5 |
| 15486 | 5 | 16454 | 5 |
| 15487 | 11 | 16455 | 8 11 |
| 16456 | |||
| 16457 | |||
| 16458 | |||
| 15488 | 27 | 16459 | 27 |
| 15489 | 16460 | ||
| 15490 | 27 | 16461 | 27 |
| 16462 | |||
| 15491 | 27 | 16463 | 27 |
| 16464 | |||
| 15492 | 27 | 16465 | 27 |
| 15493 | 16466 | ||
| 15494 | 27 | 16467 | 27 |
| 16468 | |||
| 15495 | 27 | 16469 | 27 |
| 15496 | 27 | 16470 | 27 |
| 15497 | 16471 | ||
| 16472 | |||
| 15498 | 27 | 16473 | 27 |
| 16474 | |||
| 15499 | 27 | 16475 | 27 |
| 15500 | 23 | 16476 | 23 |
| 16477 | |||
| 16478 | |||
| 15501 | 5 | 16479 | 5 |
| 15502 | 16480 | ||
| 15503 | 16481 | ||
| ... | @@ -15536,17 +16514,26 @@ sparcv9-linux-gnu | ... | @@ -15536,17 +16514,26 @@ sparcv9-linux-gnu |
| 15536 | 16514 | ||
| 15537 | 16515 | ||
| 15538 | 16516 | ||
| 16517 | |||
| 15539 | 5 | 16518 | 5 |
| 15540 | 5 | 16519 | 5 |
| 15541 | 19 | 16520 | 19 |
| 15542 | 16521 | ||
| 15543 | 16522 | ||
| 16523 | |||
| 15544 | 11 | 16524 | 11 |
| 15545 | 16525 | ||
| 15546 | 16526 | ||
| 15547 | 16527 | ||
| 15548 | 16528 | ||
| 16529 | |||
| 15549 | 5 | 16530 | 5 |
| 16531 | |||
| 16532 | |||
| 16533 | |||
| 16534 | |||
| 16535 | |||
| 16536 | |||
| 15550 | 5 | 16537 | 5 |
| 15551 | 16538 | ||
| 15552 | 16539 | ||
| ... | @@ -15659,7 +16646,11 @@ sparcv9-linux-gnu | ... | @@ -15659,7 +16646,11 @@ sparcv9-linux-gnu |
| 15659 | 5 | 16646 | 5 |
| 15660 | 5 | 16647 | 5 |
| 15661 | 20 | 16648 | 20 |
| 16649 | |||
| 16650 | |||
| 15662 | 20 | 16651 | 20 |
| 16652 | |||
| 16653 | |||
| 15663 | 5 | 16654 | 5 |
| 15664 | 5 | 16655 | 5 |
| 15665 | 19 | 16656 | 19 |
| ... | @@ -15675,6 +16666,7 @@ sparcv9-linux-gnu | ... | @@ -15675,6 +16666,7 @@ sparcv9-linux-gnu |
| 15675 | 27 | 16666 | 27 |
| 15676 | 16667 | ||
| 15677 | 27 | 16668 | 27 |
| 16669 | |||
| 15678 | 27 | 16670 | 27 |
| 15679 | 16671 | ||
| 15680 | 28 | 16672 | 28 |
| ... | @@ -15682,7 +16674,10 @@ sparcv9-linux-gnu | ... | @@ -15682,7 +16674,10 @@ sparcv9-linux-gnu |
| 15682 | 16 | 16674 | 16 |
| 15683 | 16 | 16675 | 16 |
| 15684 | 15 | 16676 | 15 |
| 16677 | |||
| 15685 | 5 | 16678 | 5 |
| 16679 | |||
| 16680 | |||
| 15686 | 5 | 16681 | 5 |
| 15687 | 5 | 16682 | 5 |
| 15688 | 5 | 16683 | 5 |
| ... | @@ -15713,6 +16708,11 @@ sparcv9-linux-gnu | ... | @@ -15713,6 +16708,11 @@ sparcv9-linux-gnu |
| 15713 | 14 | 16708 | 14 |
| 15714 | 16 | 16709 | 16 |
| 15715 | 5 | 16710 | 5 |
| 16711 | |||
| 16712 | |||
| 16713 | |||
| 16714 | |||
| 16715 | |||
| 15716 | 5 | 16716 | 5 |
| 15717 | 5 | 16717 | 5 |
| 15718 | 5 | 16718 | 5 |
| ... | @@ -15731,12 +16731,17 @@ sparcv9-linux-gnu | ... | @@ -15731,12 +16731,17 @@ sparcv9-linux-gnu |
| 15731 | 27 | 16731 | 27 |
| 15732 | 16732 | ||
| 15733 | 27 | 16733 | 27 |
| 16734 | |||
| 15734 | 27 | 16735 | 27 |
| 16736 | |||
| 15735 | 5 | 16737 | 5 |
| 15736 | 5 | 16738 | 5 |
| 15737 | 5 | 16739 | 5 |
| 15738 | 5 | 16740 | 5 |
| 15739 | 5 | 16741 | 5 |
| 16742 | |||
| 16743 | |||
| 16744 | |||
| 15740 | 8 | 16745 | 8 |
| 15741 | 8 | 16746 | 8 |
| 15742 | 8 | 16747 | 8 |
| ... | @@ -15744,7 +16749,11 @@ sparcv9-linux-gnu | ... | @@ -15744,7 +16749,11 @@ sparcv9-linux-gnu |
| 15744 | 5 | 16749 | 5 |
| 15745 | 27 | 16750 | 27 |
| 15746 | 27 | 16751 | 27 |
| 16752 | |||
| 15747 | 27 | 16753 | 27 |
| 16754 | |||
| 16755 | |||
| 16756 | |||
| 15748 | 19 | 16757 | 19 |
| 15749 | 18 | 16758 | 18 |
| 15750 | 19 | 16759 | 19 |
| ... | @@ -15758,6 +16767,8 @@ sparcv9-linux-gnu | ... | @@ -15758,6 +16767,8 @@ sparcv9-linux-gnu |
| 15758 | 5 | 16767 | 5 |
| 15759 | 5 | 16768 | 5 |
| 15760 | 5 | 16769 | 5 |
| 16770 | |||
| 16771 | |||
| 15761 | 5 | 16772 | 5 |
| 15762 | 5 | 16773 | 5 |
| 15763 | 5 | 16774 | 5 |
| ... | @@ -15768,24 +16779,34 @@ sparcv9-linux-gnu | ... | @@ -15768,24 +16779,34 @@ sparcv9-linux-gnu |
| 15768 | 16779 | ||
| 15769 | 5 | 16780 | 5 |
| 15770 | 33 | 16781 | 33 |
| 16782 | |||
| 15771 | 5 | 16783 | 5 |
| 15772 | 5 | 16784 | 5 |
| 15773 | 5 | 16785 | 5 |
| 15774 | 16786 | ||
| 15775 | 16787 | ||
| 15776 | 16788 | ||
| 16789 | |||
| 15777 | 27 | 16790 | 27 |
| 15778 | 16791 | ||
| 15779 | 27 | 16792 | 27 |
| 16793 | |||
| 15780 | 27 | 16794 | 27 |
| 16795 | |||
| 15781 | 15 | 16796 | 15 |
| 16797 | |||
| 16798 | |||
| 15782 | 15 | 16799 | 15 |
| 16800 | |||
| 16801 | |||
| 15783 | 27 | 16802 | 27 |
| 15784 | 16803 | ||
| 15785 | 16804 | ||
| 15786 | 27 | 16805 | 27 |
| 16806 | |||
| 15787 | 27 | 16807 | 27 |
| 15788 | 16808 | ||
| 16809 | |||
| 15789 | 16 | 16810 | 16 |
| 15790 | 16811 | ||
| 15791 | 5 | 16812 | 5 |
| ... | @@ -15818,6 +16839,9 @@ sparcv9-linux-gnu | ... | @@ -15818,6 +16839,9 @@ sparcv9-linux-gnu |
| 15818 | 5 | 16839 | 5 |
| 15819 | 5 | 16840 | 5 |
| 15820 | 5 | 16841 | 5 |
| 16842 | |||
| 16843 | |||
| 16844 | |||
| 15821 | 12 | 16845 | 12 |
| 15822 | 16846 | ||
| 15823 | 5 | 16847 | 5 |
| ... | @@ -15852,6 +16876,8 @@ sparcv9-linux-gnu | ... | @@ -15852,6 +16876,8 @@ sparcv9-linux-gnu |
| 15852 | 16876 | ||
| 15853 | 5 | 16877 | 5 |
| 15854 | 5 | 16878 | 5 |
| 16879 | |||
| 16880 | |||
| 15855 | 5 | 16881 | 5 |
| 15856 | 5 | 16882 | 5 |
| 15857 | 5 | 16883 | 5 |
| ... | @@ -15871,48 +16897,93 @@ sparcv9-linux-gnu | ... | @@ -15871,48 +16897,93 @@ sparcv9-linux-gnu |
| 15871 | 16897 | ||
| 15872 | 16898 | ||
| 15873 | 16 | 16899 | 16 |
| 16900 | |||
| 16901 | |||
| 16902 | |||
| 15874 | 5 | 16903 | 5 |
| 15875 | 5 | 16904 | 5 |
| 15876 | 16 | 16905 | 16 |
| 16906 | |||
| 16907 | |||
| 15877 | 5 | 16908 | 5 |
| 16909 | |||
| 16910 | |||
| 16911 | |||
| 15878 | 5 | 16912 | 5 |
| 15879 | 12 | 16913 | 12 |
| 15880 | 16914 | ||
| 15881 | 16915 | ||
| 15882 | 5 | 16916 | 5 |
| 15883 | 5 | 16917 | 5 |
| 16918 | |||
| 16919 | |||
| 15884 | 5 | 16920 | 5 |
| 15885 | 5 | 16921 | 5 |
| 15886 | 5 | 16922 | 5 |
| 15887 | 5 | 16923 | 5 |
| 15888 | 5 | 16924 | 5 |
| 15889 | 16925 | ||
| 16926 | |||
| 15890 | 16 | 16927 | 16 |
| 15891 | 5 | 16928 | 5 |
| 15892 | 16929 | ||
| 15893 | 16930 | ||
| 15894 | 5 | 16931 | 5 |
| 15895 | 16932 | ||
| 16933 | |||
| 16934 | |||
| 15896 | 5 | 16935 | 5 |
| 15897 | 16936 | ||
| 15898 | 16937 | ||
| 15899 | 12 | 16938 | 12 |
| 15900 | 20 | 16939 | 20 |
| 16940 | |||
| 16941 | |||
| 15901 | 20 | 16942 | 20 |
| 16943 | |||
| 16944 | |||
| 16945 | |||
| 16946 | |||
| 15902 | 5 | 16947 | 5 |
| 15903 | 15 | 16948 | 15 |
| 16949 | |||
| 16950 | |||
| 15904 | 5 | 16951 | 5 |
| 16952 | |||
| 15905 | 16 | 16953 | 16 |
| 16954 | |||
| 16955 | |||
| 16956 | |||
| 15906 | 15 | 16957 | 15 |
| 16958 | |||
| 16959 | |||
| 16960 | |||
| 15907 | 5 | 16961 | 5 |
| 15908 | 15 | 16962 | 15 |
| 16963 | |||
| 16964 | |||
| 15909 | 15 | 16965 | 15 |
| 16966 | |||
| 16967 | |||
| 15910 | 5 | 16968 | 5 |
| 16969 | |||
| 15911 | 16 | 16970 | 16 |
| 16971 | |||
| 16972 | |||
| 16973 | |||
| 15912 | 16 | 16974 | 16 |
| 16975 | |||
| 16976 | |||
| 16977 | |||
| 16978 | |||
| 15913 | 16 | 16979 | 16 |
| 16980 | |||
| 16981 | |||
| 16982 | |||
| 15914 | 5 | 16983 | 5 |
| 15915 | 5 | 16984 | 5 |
| 16985 | |||
| 16986 | |||
| 15916 | 16 | 16987 | 16 |
| 15917 | 16 | 16988 | 16 |
| 15918 | 16 | 16989 | 16 |
| ... | @@ -15931,6 +17002,8 @@ sparcv9-linux-gnu | ... | @@ -15931,6 +17002,8 @@ sparcv9-linux-gnu |
| 15931 | 17002 | ||
| 15932 | 5 | 17003 | 5 |
| 15933 | 5 | 17004 | 5 |
| 17005 | |||
| 17006 | |||
| 15934 | 5 | 17007 | 5 |
| 15935 | 5 | 17008 | 5 |
| 15936 | 5 | 17009 | 5 |
| ... | @@ -15952,7 +17025,10 @@ sparcv9-linux-gnu | ... | @@ -15952,7 +17025,10 @@ sparcv9-linux-gnu |
| 15952 | 16 | 17025 | 16 |
| 15953 | 5 | 17026 | 5 |
| 15954 | 16 | 17027 | 16 |
| 17028 | |||
| 17029 | |||
| 15955 | 5 | 17030 | 5 |
| 17031 | |||
| 15956 | 5 | 17032 | 5 |
| 15957 | 5 | 17033 | 5 |
| 15958 | 5 | 17034 | 5 |
| ... | @@ -15965,14 +17041,17 @@ sparcv9-linux-gnu | ... | @@ -15965,14 +17041,17 @@ sparcv9-linux-gnu |
| 15965 | 27 | 17041 | 27 |
| 15966 | 17042 | ||
| 15967 | 27 | 17043 | 27 |
| 17044 | |||
| 15968 | 27 | 17045 | 27 |
| 15969 | 27 | 17046 | 27 |
| 15970 | 17047 | ||
| 15971 | 27 | 17048 | 27 |
| 17049 | |||
| 15972 | 27 | 17050 | 27 |
| 15973 | 27 | 17051 | 27 |
| 15974 | 17052 | ||
| 15975 | 27 | 17053 | 27 |
| 17054 | |||
| 15976 | 27 | 17055 | 27 |
| 15977 | 5 | 17056 | 5 |
| 15978 | 5 | 17057 | 5 |
| ... | @@ -16570,7 +17649,7 @@ sparcv9-linux-gnu | ... | @@ -16570,7 +17649,7 @@ sparcv9-linux-gnu |
| 16570 | 5 | 17649 | 5 |
| 16571 | 5 39 | 17650 | 5 39 |
| 16572 | 5 | 17651 | 5 |
| 16573 | 5 | 17652 | 5 42 |
| 16574 | 37 | 17653 | 37 |
| 16575 | 37 | 17654 | 37 |
| 16576 | 37 | 17655 | 37 |
| ... | @@ -17696,17 +18775,19 @@ sparcv9-linux-gnu | ... | @@ -17696,17 +18775,19 @@ sparcv9-linux-gnu |
| 17696 | 5 | 18775 | 5 |
| 17697 | 5 | 18776 | 5 |
| 17698 | 5 | 18777 | 5 |
| 18778 | 42 | ||
| 17699 | 5 | 18779 | 5 |
| 17700 | 5 | 18780 | 5 |
| 17701 | 5 | 18781 | 5 |
| 17702 | 5 | 18782 | 5 |
| 17703 | 14 15 | 18783 | 14 15 42 |
| 17704 | 5 | 18784 | 5 |
| 17705 | 5 | 18785 | 5 |
| 17706 | 5 | 18786 | 5 |
| 17707 | 5 | 18787 | 5 |
| 17708 | 5 | 18788 | 5 |
| 17709 | 5 | 18789 | 5 |
| 18790 | 42 | ||
| 17710 | 5 14 | 18791 | 5 14 |
| 17711 | 5 | 18792 | 5 |
| 17712 | 5 14 | 18793 | 5 14 |
| ... | @@ -17736,9 +18817,9 @@ sparcv9-linux-gnu | ... | @@ -17736,9 +18817,9 @@ sparcv9-linux-gnu |
| 17736 | 5 | 18817 | 5 |
| 17737 | 5 | 18818 | 5 |
| 17738 | 5 | 18819 | 5 |
| 17739 | 14 15 | 18820 | 14 15 42 |
| 17740 | 30 | 18821 | 30 |
| 17741 | 8 | 18822 | 8 42 |
| 17742 | 5 | 18823 | 5 |
| 17743 | 5 | 18824 | 5 |
| 17744 | 24 | 18825 | 24 |
| ... | @@ -17804,7 +18885,7 @@ sparcv9-linux-gnu | ... | @@ -17804,7 +18885,7 @@ sparcv9-linux-gnu |
| 17804 | 5 | 18885 | 5 |
| 17805 | 15 | 18886 | 15 |
| 17806 | 5 | 18887 | 5 |
| 17807 | 5 | 18888 | 5 42 |
| 17808 | 23 | 18889 | 23 |
| 17809 | 5 | 18890 | 5 |
| 17810 | 5 | 18891 | 5 |
| ... | @@ -18109,12 +19190,14 @@ sparcv9-linux-gnu | ... | @@ -18109,12 +19190,14 @@ sparcv9-linux-gnu |
| 18109 | 5 | 19190 | 5 |
| 18110 | 5 | 19191 | 5 |
| 18111 | 5 | 19192 | 5 |
| 19193 | 42 | ||
| 18112 | 5 | 19194 | 5 |
| 18113 | 5 | 19195 | 5 |
| 18114 | 5 | 19196 | 5 |
| 18115 | 5 | 19197 | 5 |
| 18116 | 5 | 19198 | 5 |
| 18117 | 5 | 19199 | 5 |
| 19200 | 42 | ||
| 18118 | 5 | 19201 | 5 |
| 18119 | 5 | 19202 | 5 |
| 18120 | 5 | 19203 | 5 |
| ... | @@ -18220,6 +19303,8 @@ sparcv9-linux-gnu | ... | @@ -18220,6 +19303,8 @@ sparcv9-linux-gnu |
| 18220 | 5 | 19303 | 5 |
| 18221 | 18 | 19304 | 18 |
| 18222 | 5 | 19305 | 5 |
| 19306 | 42 | ||
| 19307 | 42 | ||
| 18223 | 5 | 19308 | 5 |
| 18224 | 12 | 19309 | 12 |
| 18225 | 35 | 19310 | 35 |
| ... | @@ -18910,7 +19995,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -18910,7 +19995,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 18910 | 27 | 19995 | 27 |
| 18911 | 19996 | ||
| 18912 | 27 | 19997 | 27 |
| 19998 | |||
| 18913 | 27 | 19999 | 27 |
| 20000 | |||
| 18914 | 27 | 20001 | 27 |
| 18915 | 20002 | ||
| 18916 | 20003 | ||
| ... | @@ -18939,6 +20026,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -18939,6 +20026,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 18939 | 20026 | ||
| 18940 | 20027 | ||
| 18941 | 20028 | ||
| 20029 | |||
| 20030 | |||
| 18942 | 0 | 20031 | 0 |
| 18943 | 0 | 20032 | 0 |
| 18944 | 0 | 20033 | 0 |
| ... | @@ -18947,43 +20036,79 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -18947,43 +20036,79 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 18947 | 27 | 20036 | 27 |
| 18948 | 20037 | ||
| 18949 | 27 | 20038 | 27 |
| 20039 | |||
| 20040 | |||
| 18950 | 27 | 20041 | 27 |
| 18951 | 5 | 20042 | 5 |
| 18952 | 20 | 20043 | 20 |
| 20044 | |||
| 20045 | |||
| 18953 | 5 | 20046 | 5 |
| 18954 | 0 | 20047 | 0 |
| 18955 | 0 | 20048 | 0 |
| 18956 | 27 | 20049 | 27 |
| 18957 | 20050 | ||
| 18958 | 27 | 20051 | 27 |
| 20052 | |||
| 18959 | 27 | 20053 | 27 |
| 18960 | 27 | 20054 | 27 |
| 18961 | 20055 | ||
| 18962 | 27 | 20056 | 27 |
| 20057 | |||
| 18963 | 27 | 20058 | 27 |
| 18964 | 20059 | ||
| 18965 | 20060 | ||
| 18966 | 20061 | ||
| 20062 | |||
| 18967 | 5 | 20063 | 5 |
| 18968 | 5 | 20064 | 5 |
| 18969 | 5 | 20065 | 5 |
| 18970 | 0 | 20066 | 0 |
| 18971 | 0 | 20067 | 0 |
| 20068 | |||
| 20069 | |||
| 20070 | |||
| 20071 | |||
| 20072 | |||
| 20073 | |||
| 20074 | |||
| 20075 | |||
| 20076 | |||
| 20077 | |||
| 20078 | |||
| 20079 | |||
| 20080 | |||
| 20081 | |||
| 18972 | 0 | 20082 | 0 |
| 18973 | 15 | 20083 | 15 |
| 20084 | |||
| 18974 | 5 | 20085 | 5 |
| 18975 | 5 | 20086 | 5 |
| 20087 | |||
| 18976 | 5 | 20088 | 5 |
| 20089 | |||
| 18977 | 0 | 20090 | 0 |
| 18978 | 0 | 20091 | 0 |
| 18979 | 20092 | ||
| 18980 | 0 | 20093 | 0 |
| 18981 | 16 | 20094 | 16 |
| 20095 | |||
| 18982 | 0 | 20096 | 0 |
| 20097 | |||
| 18983 | 27 | 20098 | 27 |
| 18984 | 20099 | ||
| 18985 | 27 | 20100 | 27 |
| 20101 | |||
| 18986 | 27 | 20102 | 27 |
| 20103 | |||
| 20104 | |||
| 20105 | |||
| 20106 | |||
| 20107 | |||
| 20108 | |||
| 20109 | |||
| 20110 | |||
| 20111 | |||
| 18987 | 0 | 20112 | 0 |
| 18988 | 5 | 20113 | 5 |
| 18989 | 5 | 20114 | 5 |
| ... | @@ -19011,29 +20136,50 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19011,29 +20136,50 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19011 | 20136 | ||
| 19012 | 20137 | ||
| 19013 | 20 | 20138 | 20 |
| 20139 | |||
| 20140 | |||
| 19014 | 0 | 20141 | 0 |
| 19015 | 5 | 20142 | 5 |
| 19016 | 5 | 20143 | 5 |
| 19017 | 0 | 20144 | 0 |
| 19018 | 20145 | ||
| 19019 | 20146 | ||
| 20147 | |||
| 20148 | |||
| 20149 | |||
| 19020 | 0 | 20150 | 0 |
| 20151 | |||
| 20152 | |||
| 20153 | |||
| 19021 | 27 | 20154 | 27 |
| 19022 | 20155 | ||
| 19023 | 27 | 20156 | 27 |
| 20157 | |||
| 19024 | 27 | 20158 | 27 |
| 19025 | 27 | 20159 | 27 |
| 19026 | 20160 | ||
| 19027 | 27 | 20161 | 27 |
| 20162 | |||
| 19028 | 27 | 20163 | 27 |
| 19029 | 27 | 20164 | 27 |
| 19030 | 20165 | ||
| 19031 | 27 | 20166 | 27 |
| 19032 | 20167 | ||
| 20168 | |||
| 19033 | 27 | 20169 | 27 |
| 19034 | 35 | 20170 | 35 |
| 19035 | 20171 | ||
| 19036 | 20172 | ||
| 20173 | |||
| 20174 | |||
| 20175 | |||
| 20176 | |||
| 20177 | |||
| 20178 | |||
| 20179 | |||
| 20180 | |||
| 20181 | |||
| 20182 | |||
| 19037 | 5 | 20183 | 5 |
| 19038 | 0 | 20184 | 0 |
| 19039 | 27 | 20185 | 27 |
| ... | @@ -19044,6 +20190,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19044,6 +20190,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19044 | 20190 | ||
| 19045 | 20191 | ||
| 19046 | 20192 | ||
| 20193 | |||
| 19047 | 0 | 20194 | 0 |
| 19048 | 16 | 20195 | 16 |
| 19049 | 16 | 20196 | 16 |
| ... | @@ -19071,9 +20218,16 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19071,9 +20218,16 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19071 | 20218 | ||
| 19072 | 20219 | ||
| 19073 | 20220 | ||
| 20221 | |||
| 20222 | |||
| 20223 | |||
| 20224 | |||
| 20225 | |||
| 20226 | |||
| 19074 | 27 | 20227 | 27 |
| 19075 | 20228 | ||
| 19076 | 27 | 20229 | 27 |
| 20230 | |||
| 19077 | 27 | 20231 | 27 |
| 19078 | 0 | 20232 | 0 |
| 19079 | 5 | 20233 | 5 |
| ... | @@ -19082,6 +20236,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19082,6 +20236,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19082 | 5 | 20236 | 5 |
| 19083 | 5 | 20237 | 5 |
| 19084 | 15 | 20238 | 15 |
| 20239 | |||
| 20240 | |||
| 19085 | 0 | 20241 | 0 |
| 19086 | 5 | 20242 | 5 |
| 19087 | 0 | 20243 | 0 |
| ... | @@ -19091,10 +20247,17 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19091,10 +20247,17 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19091 | 5 | 20247 | 5 |
| 19092 | 0 | 20248 | 0 |
| 19093 | 5 | 20249 | 5 |
| 20250 | |||
| 20251 | |||
| 20252 | |||
| 20253 | |||
| 19094 | 5 | 20254 | 5 |
| 19095 | 16 | 20255 | 16 |
| 20256 | |||
| 20257 | |||
| 19096 | 5 | 20258 | 5 |
| 19097 | 5 | 20259 | 5 |
| 20260 | |||
| 19098 | 0 | 20261 | 0 |
| 19099 | 5 | 20262 | 5 |
| 19100 | 16 | 20263 | 16 |
| ... | @@ -19114,6 +20277,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19114,6 +20277,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19114 | 16 | 20277 | 16 |
| 19115 | 5 | 20278 | 5 |
| 19116 | 0 | 20279 | 0 |
| 20280 | |||
| 19117 | 0 | 20281 | 0 |
| 19118 | 0 | 20282 | 0 |
| 19119 | 15 | 20283 | 15 |
| ... | @@ -19129,7 +20293,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19129,7 +20293,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19129 | 27 | 20293 | 27 |
| 19130 | 20294 | ||
| 19131 | 27 | 20295 | 27 |
| 20296 | |||
| 19132 | 27 | 20297 | 27 |
| 20298 | |||
| 19133 | 5 | 20299 | 5 |
| 19134 | 5 | 20300 | 5 |
| 19135 | 5 | 20301 | 5 |
| ... | @@ -19153,17 +20319,29 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19153,17 +20319,29 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19153 | 20319 | ||
| 19154 | 0 | 20320 | 0 |
| 19155 | 19 | 20321 | 19 |
| 20322 | |||
| 19156 | 19 | 20323 | 19 |
| 20324 | |||
| 19157 | 19 | 20325 | 19 |
| 20326 | |||
| 19158 | 19 | 20327 | 19 |
| 20328 | |||
| 19159 | 19 | 20329 | 19 |
| 20330 | |||
| 19160 | 19 | 20331 | 19 |
| 20332 | |||
| 19161 | 19 | 20333 | 19 |
| 20334 | |||
| 19162 | 19 | 20335 | 19 |
| 20336 | |||
| 19163 | 19 | 20337 | 19 |
| 20338 | |||
| 19164 | 19 | 20339 | 19 |
| 20340 | |||
| 19165 | 19 | 20341 | 19 |
| 20342 | |||
| 19166 | 19 | 20343 | 19 |
| 20344 | |||
| 19167 | 5 | 20345 | 5 |
| 19168 | 5 | 20346 | 5 |
| 19169 | 30 | 20347 | 30 |
| ... | @@ -19191,23 +20369,29 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19191,23 +20369,29 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19191 | 27 | 20369 | 27 |
| 19192 | 20370 | ||
| 19193 | 27 | 20371 | 27 |
| 20372 | |||
| 19194 | 27 | 20373 | 27 |
| 19195 | 27 | 20374 | 27 |
| 19196 | 20375 | ||
| 19197 | 27 | 20376 | 27 |
| 20377 | |||
| 19198 | 27 | 20378 | 27 |
| 19199 | 27 | 20379 | 27 |
| 19200 | 20380 | ||
| 19201 | 27 | 20381 | 27 |
| 20382 | |||
| 19202 | 27 | 20383 | 27 |
| 19203 | 5 | 20384 | 5 |
| 19204 | 5 | 20385 | 5 |
| 19205 | 5 | 20386 | 5 |
| 19206 | 20387 | ||
| 19207 | 20388 | ||
| 20389 | |||
| 19208 | 27 | 20390 | 27 |
| 19209 | 20391 | ||
| 19210 | 27 | 20392 | 27 |
| 20393 | |||
| 20394 | |||
| 19211 | 27 | 20395 | 27 |
| 19212 | 5 | 20396 | 5 |
| 19213 | 0 | 20397 | 0 |
| ... | @@ -19223,23 +20407,34 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19223,23 +20407,34 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19223 | 0 | 20407 | 0 |
| 19224 | 0 | 20408 | 0 |
| 19225 | 5 | 20409 | 5 |
| 20410 | 42 | ||
| 19226 | 5 | 20411 | 5 |
| 19227 | 0 | 20412 | 0 |
| 19228 | 0 | 20413 | 0 |
| 19229 | 11 | 20414 | 8 11 |
| 20415 | |||
| 20416 | |||
| 20417 | |||
| 19230 | 27 | 20418 | 27 |
| 19231 | 20419 | ||
| 19232 | 27 | 20420 | 27 |
| 20421 | |||
| 19233 | 27 | 20422 | 27 |
| 20423 | |||
| 19234 | 27 | 20424 | 27 |
| 19235 | 20425 | ||
| 19236 | 27 | 20426 | 27 |
| 20427 | |||
| 19237 | 27 | 20428 | 27 |
| 19238 | 27 | 20429 | 27 |
| 19239 | 20430 | ||
| 20431 | |||
| 19240 | 27 | 20432 | 27 |
| 20433 | |||
| 19241 | 27 | 20434 | 27 |
| 19242 | 23 | 20435 | 23 |
| 20436 | |||
| 20437 | |||
| 19243 | 0 | 20438 | 0 |
| 19244 | 20439 | ||
| 19245 | 20440 | ||
| ... | @@ -19278,17 +20473,26 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19278,17 +20473,26 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19278 | 20473 | ||
| 19279 | 20474 | ||
| 19280 | 20475 | ||
| 20476 | |||
| 19281 | 0 | 20477 | 0 |
| 19282 | 0 | 20478 | 0 |
| 19283 | 19 | 20479 | 19 |
| 19284 | 20480 | ||
| 19285 | 20481 | ||
| 20482 | |||
| 19286 | 11 | 20483 | 11 |
| 19287 | 20484 | ||
| 19288 | 20485 | ||
| 19289 | 20486 | ||
| 19290 | 20487 | ||
| 20488 | |||
| 19291 | 5 | 20489 | 5 |
| 20490 | |||
| 20491 | |||
| 20492 | |||
| 20493 | |||
| 20494 | |||
| 20495 | |||
| 19292 | 5 | 20496 | 5 |
| 19293 | 20497 | ||
| 19294 | 20498 | ||
| ... | @@ -19401,7 +20605,11 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19401,7 +20605,11 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19401 | 0 | 20605 | 0 |
| 19402 | 0 | 20606 | 0 |
| 19403 | 20 | 20607 | 20 |
| 20608 | |||
| 20609 | |||
| 19404 | 20 | 20610 | 20 |
| 20611 | |||
| 20612 | |||
| 19405 | 0 | 20613 | 0 |
| 19406 | 5 | 20614 | 5 |
| 19407 | 19 | 20615 | 19 |
| ... | @@ -19417,6 +20625,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19417,6 +20625,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19417 | 27 | 20625 | 27 |
| 19418 | 20626 | ||
| 19419 | 27 | 20627 | 27 |
| 20628 | |||
| 19420 | 27 | 20629 | 27 |
| 19421 | 20630 | ||
| 19422 | 28 | 20631 | 28 |
| ... | @@ -19424,7 +20633,10 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19424,7 +20633,10 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19424 | 16 | 20633 | 16 |
| 19425 | 16 | 20634 | 16 |
| 19426 | 15 | 20635 | 15 |
| 20636 | |||
| 19427 | 0 | 20637 | 0 |
| 20638 | |||
| 20639 | |||
| 19428 | 0 | 20640 | 0 |
| 19429 | 0 | 20641 | 0 |
| 19430 | 0 | 20642 | 0 |
| ... | @@ -19455,6 +20667,11 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19455,6 +20667,11 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19455 | 14 | 20667 | 14 |
| 19456 | 16 | 20668 | 16 |
| 19457 | 5 | 20669 | 5 |
| 20670 | |||
| 20671 | |||
| 20672 | |||
| 20673 | |||
| 20674 | |||
| 19458 | 5 | 20675 | 5 |
| 19459 | 0 | 20676 | 0 |
| 19460 | 0 | 20677 | 0 |
| ... | @@ -19473,12 +20690,17 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19473,12 +20690,17 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19473 | 27 | 20690 | 27 |
| 19474 | 20691 | ||
| 19475 | 27 | 20692 | 27 |
| 20693 | |||
| 19476 | 27 | 20694 | 27 |
| 20695 | |||
| 19477 | 5 | 20696 | 5 |
| 19478 | 5 | 20697 | 5 |
| 19479 | 5 | 20698 | 5 |
| 19480 | 0 | 20699 | 0 |
| 19481 | 5 | 20700 | 5 |
| 20701 | |||
| 20702 | |||
| 20703 | |||
| 19482 | 8 | 20704 | 8 |
| 19483 | 8 | 20705 | 8 |
| 19484 | 8 | 20706 | 8 |
| ... | @@ -19486,7 +20708,11 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19486,7 +20708,11 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19486 | 0 | 20708 | 0 |
| 19487 | 27 | 20709 | 27 |
| 19488 | 27 | 20710 | 27 |
| 20711 | |||
| 19489 | 27 | 20712 | 27 |
| 20713 | |||
| 20714 | |||
| 20715 | |||
| 19490 | 19 | 20716 | 19 |
| 19491 | 18 | 20717 | 18 |
| 19492 | 19 | 20718 | 19 |
| ... | @@ -19500,6 +20726,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19500,6 +20726,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19500 | 0 | 20726 | 0 |
| 19501 | 0 | 20727 | 0 |
| 19502 | 5 | 20728 | 5 |
| 20729 | |||
| 20730 | |||
| 19503 | 0 | 20731 | 0 |
| 19504 | 0 | 20732 | 0 |
| 19505 | 0 | 20733 | 0 |
| ... | @@ -19510,24 +20738,34 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19510,24 +20738,34 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19510 | 20738 | ||
| 19511 | 5 | 20739 | 5 |
| 19512 | 33 | 20740 | 33 |
| 20741 | |||
| 19513 | 0 | 20742 | 0 |
| 19514 | 0 | 20743 | 0 |
| 19515 | 5 | 20744 | 5 |
| 19516 | 20745 | ||
| 19517 | 20746 | ||
| 19518 | 20747 | ||
| 20748 | |||
| 19519 | 27 | 20749 | 27 |
| 19520 | 20750 | ||
| 19521 | 27 | 20751 | 27 |
| 20752 | |||
| 19522 | 27 | 20753 | 27 |
| 20754 | |||
| 19523 | 15 | 20755 | 15 |
| 20756 | |||
| 20757 | |||
| 19524 | 15 | 20758 | 15 |
| 20759 | |||
| 20760 | |||
| 19525 | 27 | 20761 | 27 |
| 19526 | 20762 | ||
| 19527 | 20763 | ||
| 19528 | 27 | 20764 | 27 |
| 20765 | |||
| 19529 | 27 | 20766 | 27 |
| 19530 | 20767 | ||
| 20768 | |||
| 19531 | 16 | 20769 | 16 |
| 19532 | 16 | 20770 | 16 |
| 19533 | 5 | 20771 | 5 |
| ... | @@ -19560,6 +20798,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19560,6 +20798,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19560 | 0 | 20798 | 0 |
| 19561 | 0 | 20799 | 0 |
| 19562 | 5 | 20800 | 5 |
| 20801 | |||
| 20802 | |||
| 20803 | |||
| 19563 | 12 | 20804 | 12 |
| 19564 | 20805 | ||
| 19565 | 5 | 20806 | 5 |
| ... | @@ -19594,6 +20835,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19594,6 +20835,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19594 | 20835 | ||
| 19595 | 0 | 20836 | 0 |
| 19596 | 5 | 20837 | 5 |
| 20838 | |||
| 20839 | |||
| 19597 | 0 | 20840 | 0 |
| 19598 | 5 | 20841 | 5 |
| 19599 | 0 | 20842 | 0 |
| ... | @@ -19613,48 +20856,93 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19613,48 +20856,93 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19613 | 20856 | ||
| 19614 | 20857 | ||
| 19615 | 16 | 20858 | 16 |
| 20859 | |||
| 20860 | |||
| 20861 | |||
| 19616 | 5 | 20862 | 5 |
| 19617 | 5 | 20863 | 5 |
| 19618 | 16 | 20864 | 16 |
| 20865 | |||
| 20866 | |||
| 19619 | 0 | 20867 | 0 |
| 20868 | |||
| 20869 | |||
| 20870 | |||
| 19620 | 0 | 20871 | 0 |
| 19621 | 12 | 20872 | 12 |
| 19622 | 20873 | ||
| 19623 | 20874 | ||
| 19624 | 5 | 20875 | 5 |
| 19625 | 5 | 20876 | 5 |
| 20877 | |||
| 20878 | |||
| 19626 | 5 | 20879 | 5 |
| 19627 | 5 | 20880 | 5 |
| 19628 | 5 | 20881 | 5 |
| 19629 | 5 | 20882 | 5 |
| 19630 | 5 | 20883 | 5 |
| 19631 | 20884 | ||
| 20885 | |||
| 19632 | 16 | 20886 | 16 |
| 19633 | 0 | 20887 | 0 |
| 19634 | 20888 | ||
| 19635 | 20889 | ||
| 19636 | 0 | 20890 | 0 |
| 19637 | 20891 | ||
| 20892 | |||
| 20893 | |||
| 19638 | 0 | 20894 | 0 |
| 19639 | 20895 | ||
| 19640 | 20896 | ||
| 19641 | 12 | 20897 | 12 |
| 19642 | 20 | 20898 | 20 |
| 20899 | |||
| 20900 | |||
| 19643 | 20 | 20901 | 20 |
| 20902 | |||
| 20903 | |||
| 20904 | |||
| 20905 | |||
| 19644 | 5 | 20906 | 5 |
| 19645 | 15 | 20907 | 15 |
| 20908 | |||
| 20909 | |||
| 19646 | 0 | 20910 | 0 |
| 20911 | |||
| 19647 | 16 | 20912 | 16 |
| 20913 | |||
| 20914 | |||
| 20915 | |||
| 19648 | 15 | 20916 | 15 |
| 20917 | |||
| 20918 | |||
| 20919 | |||
| 19649 | 0 | 20920 | 0 |
| 19650 | 15 | 20921 | 15 |
| 20922 | |||
| 20923 | |||
| 19651 | 15 | 20924 | 15 |
| 20925 | |||
| 20926 | |||
| 19652 | 0 | 20927 | 0 |
| 20928 | |||
| 19653 | 16 | 20929 | 16 |
| 20930 | |||
| 20931 | |||
| 20932 | |||
| 19654 | 16 | 20933 | 16 |
| 20934 | |||
| 20935 | |||
| 20936 | |||
| 20937 | |||
| 19655 | 16 | 20938 | 16 |
| 20939 | |||
| 20940 | |||
| 20941 | |||
| 19656 | 0 | 20942 | 0 |
| 19657 | 0 | 20943 | 0 |
| 20944 | |||
| 20945 | |||
| 19658 | 16 | 20946 | 16 |
| 19659 | 16 | 20947 | 16 |
| 19660 | 16 | 20948 | 16 |
| ... | @@ -19673,6 +20961,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19673,6 +20961,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19673 | 20961 | ||
| 19674 | 0 | 20962 | 0 |
| 19675 | 5 | 20963 | 5 |
| 20964 | |||
| 20965 | |||
| 19676 | 0 | 20966 | 0 |
| 19677 | 5 | 20967 | 5 |
| 19678 | 0 | 20968 | 0 |
| ... | @@ -19694,7 +20984,10 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19694,7 +20984,10 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19694 | 16 | 20984 | 16 |
| 19695 | 5 | 20985 | 5 |
| 19696 | 16 | 20986 | 16 |
| 20987 | |||
| 20988 | |||
| 19697 | 0 | 20989 | 0 |
| 20990 | |||
| 19698 | 5 | 20991 | 5 |
| 19699 | 5 | 20992 | 5 |
| 19700 | 0 | 20993 | 0 |
| ... | @@ -19707,14 +21000,17 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -19707,14 +21000,17 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19707 | 27 | 21000 | 27 |
| 19708 | 21001 | ||
| 19709 | 27 | 21002 | 27 |
| 21003 | |||
| 19710 | 27 | 21004 | 27 |
| 19711 | 27 | 21005 | 27 |
| 19712 | 21006 | ||
| 19713 | 27 | 21007 | 27 |
| 21008 | |||
| 19714 | 27 | 21009 | 27 |
| 19715 | 27 | 21010 | 27 |
| 19716 | 21011 | ||
| 19717 | 27 | 21012 | 27 |
| 21013 | |||
| 19718 | 27 | 21014 | 27 |
| 19719 | 5 | 21015 | 5 |
| 19720 | 5 | 21016 | 5 |
| ... | @@ -20312,7 +21608,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -20312,7 +21608,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 20312 | 0 | 21608 | 0 |
| 20313 | 0 39 | 21609 | 0 39 |
| 20314 | 5 | 21610 | 5 |
| 20315 | 5 | 21611 | 5 42 |
| 20316 | 37 | 21612 | 37 |
| 20317 | 37 | 21613 | 37 |
| 20318 | 37 | 21614 | 37 |
| ... | @@ -21438,17 +22734,19 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -21438,17 +22734,19 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 21438 | 0 | 22734 | 0 |
| 21439 | 0 | 22735 | 0 |
| 21440 | 0 | 22736 | 0 |
| 22737 | 42 | ||
| 21441 | 5 | 22738 | 5 |
| 21442 | 5 | 22739 | 5 |
| 21443 | 5 | 22740 | 5 |
| 21444 | 0 5 | 22741 | 0 5 |
| 21445 | 14 15 | 22742 | 14 15 42 |
| 21446 | 0 | 22743 | 0 |
| 21447 | 5 | 22744 | 5 |
| 21448 | 0 | 22745 | 0 |
| 21449 | 0 | 22746 | 0 |
| 21450 | 0 | 22747 | 0 |
| 21451 | 0 | 22748 | 0 |
| 22749 | 42 | ||
| 21452 | 5 14 | 22750 | 5 14 |
| 21453 | 5 | 22751 | 5 |
| 21454 | 5 14 | 22752 | 5 14 |
| ... | @@ -21478,9 +22776,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -21478,9 +22776,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 21478 | 0 | 22776 | 0 |
| 21479 | 0 | 22777 | 0 |
| 21480 | 0 | 22778 | 0 |
| 21481 | 14 15 | 22779 | 14 15 42 |
| 21482 | 30 | 22780 | 30 |
| 21483 | 8 | 22781 | 8 42 |
| 21484 | 5 | 22782 | 5 |
| 21485 | 5 | 22783 | 5 |
| 21486 | 24 | 22784 | 24 |
| ... | @@ -21546,7 +22844,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -21546,7 +22844,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 21546 | 0 | 22844 | 0 |
| 21547 | 15 | 22845 | 15 |
| 21548 | 0 | 22846 | 0 |
| 21549 | 0 | 22847 | 0 42 |
| 21550 | 23 | 22848 | 23 |
| 21551 | 5 | 22849 | 5 |
| 21552 | 5 | 22850 | 5 |
| ... | @@ -21851,12 +23149,14 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -21851,12 +23149,14 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 21851 | 0 | 23149 | 0 |
| 21852 | 0 | 23150 | 0 |
| 21853 | 0 | 23151 | 0 |
| 23152 | 42 | ||
| 21854 | 0 | 23153 | 0 |
| 21855 | 0 | 23154 | 0 |
| 21856 | 0 | 23155 | 0 |
| 21857 | 0 | 23156 | 0 |
| 21858 | 0 | 23157 | 0 |
| 21859 | 0 | 23158 | 0 |
| 23159 | 42 | ||
| 21860 | 0 | 23160 | 0 |
| 21861 | 0 | 23161 | 0 |
| 21862 | 0 | 23162 | 0 |
| ... | @@ -21962,6 +23262,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 | ... | @@ -21962,6 +23262,8 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 21962 | 0 | 23262 | 0 |
| 21963 | 18 | 23263 | 18 |
| 21964 | 0 | 23264 | 0 |
| 23265 | 42 | ||
| 23266 | 42 | ||
| 21965 | 0 | 23267 | 0 |
| 21966 | 12 | 23268 | 12 |
| 21967 | 35 | 23269 | 35 |
| ... | @@ -22652,7 +23954,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22652,7 +23954,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22652 | 27 | 23954 | 27 |
| 22653 | 23955 | ||
| 22654 | 27 | 23956 | 27 |
| 23957 | |||
| 22655 | 27 | 23958 | 27 |
| 23959 | |||
| 22656 | 27 | 23960 | 27 |
| 22657 | 23961 | ||
| 22658 | 23962 | ||
| ... | @@ -22681,6 +23985,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22681,6 +23985,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22681 | 23985 | ||
| 22682 | 23986 | ||
| 22683 | 23987 | ||
| 23988 | |||
| 23989 | |||
| 22684 | 0 | 23990 | 0 |
| 22685 | 0 | 23991 | 0 |
| 22686 | 0 | 23992 | 0 |
| ... | @@ -22689,43 +23995,79 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22689,43 +23995,79 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22689 | 27 | 23995 | 27 |
| 22690 | 23996 | ||
| 22691 | 27 | 23997 | 27 |
| 23998 | |||
| 23999 | |||
| 22692 | 27 | 24000 | 27 |
| 22693 | 5 | 24001 | 5 |
| 22694 | 20 | 24002 | 20 |
| 24003 | |||
| 24004 | |||
| 22695 | 5 | 24005 | 5 |
| 22696 | 0 | 24006 | 0 |
| 22697 | 0 | 24007 | 0 |
| 22698 | 27 | 24008 | 27 |
| 22699 | 24009 | ||
| 22700 | 27 | 24010 | 27 |
| 24011 | |||
| 22701 | 27 | 24012 | 27 |
| 22702 | 27 | 24013 | 27 |
| 22703 | 24014 | ||
| 22704 | 27 | 24015 | 27 |
| 24016 | |||
| 22705 | 27 | 24017 | 27 |
| 22706 | 24018 | ||
| 22707 | 24019 | ||
| 22708 | 24020 | ||
| 24021 | |||
| 22709 | 5 | 24022 | 5 |
| 22710 | 5 | 24023 | 5 |
| 22711 | 5 | 24024 | 5 |
| 22712 | 0 | 24025 | 0 |
| 22713 | 0 | 24026 | 0 |
| 24027 | |||
| 24028 | |||
| 24029 | |||
| 24030 | |||
| 24031 | |||
| 24032 | |||
| 24033 | |||
| 24034 | |||
| 24035 | |||
| 24036 | |||
| 24037 | |||
| 24038 | |||
| 24039 | |||
| 24040 | |||
| 22714 | 0 | 24041 | 0 |
| 22715 | 15 | 24042 | 15 |
| 24043 | |||
| 22716 | 5 | 24044 | 5 |
| 22717 | 5 | 24045 | 5 |
| 24046 | |||
| 22718 | 5 | 24047 | 5 |
| 24048 | |||
| 22719 | 0 | 24049 | 0 |
| 22720 | 0 | 24050 | 0 |
| 22721 | 24051 | ||
| 22722 | 0 | 24052 | 0 |
| 22723 | 16 | 24053 | 16 |
| 24054 | |||
| 22724 | 0 | 24055 | 0 |
| 24056 | |||
| 22725 | 27 | 24057 | 27 |
| 22726 | 24058 | ||
| 22727 | 27 | 24059 | 27 |
| 24060 | |||
| 22728 | 27 | 24061 | 27 |
| 24062 | |||
| 24063 | |||
| 24064 | |||
| 24065 | |||
| 24066 | |||
| 24067 | |||
| 24068 | |||
| 24069 | |||
| 24070 | |||
| 22729 | 0 | 24071 | 0 |
| 22730 | 5 | 24072 | 5 |
| 22731 | 5 | 24073 | 5 |
| ... | @@ -22753,29 +24095,50 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22753,29 +24095,50 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22753 | 24095 | ||
| 22754 | 24096 | ||
| 22755 | 20 | 24097 | 20 |
| 24098 | |||
| 24099 | |||
| 22756 | 0 | 24100 | 0 |
| 22757 | 5 | 24101 | 5 |
| 22758 | 5 | 24102 | 5 |
| 22759 | 0 | 24103 | 0 |
| 22760 | 24104 | ||
| 22761 | 24105 | ||
| 24106 | |||
| 24107 | |||
| 24108 | |||
| 22762 | 0 | 24109 | 0 |
| 24110 | |||
| 24111 | |||
| 24112 | |||
| 22763 | 27 | 24113 | 27 |
| 22764 | 24114 | ||
| 22765 | 27 | 24115 | 27 |
| 24116 | |||
| 22766 | 27 | 24117 | 27 |
| 22767 | 27 | 24118 | 27 |
| 22768 | 24119 | ||
| 22769 | 27 | 24120 | 27 |
| 24121 | |||
| 22770 | 27 | 24122 | 27 |
| 22771 | 27 | 24123 | 27 |
| 22772 | 24124 | ||
| 22773 | 27 | 24125 | 27 |
| 22774 | 24126 | ||
| 24127 | |||
| 22775 | 27 | 24128 | 27 |
| 22776 | 35 | 24129 | 35 |
| 22777 | 24130 | ||
| 22778 | 24131 | ||
| 24132 | |||
| 24133 | |||
| 24134 | |||
| 24135 | |||
| 24136 | |||
| 24137 | |||
| 24138 | |||
| 24139 | |||
| 24140 | |||
| 24141 | |||
| 22779 | 5 | 24142 | 5 |
| 22780 | 0 | 24143 | 0 |
| 22781 | 27 | 24144 | 27 |
| ... | @@ -22786,6 +24149,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22786,6 +24149,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22786 | 24149 | ||
| 22787 | 24150 | ||
| 22788 | 24151 | ||
| 24152 | |||
| 22789 | 0 | 24153 | 0 |
| 22790 | 16 | 24154 | 16 |
| 22791 | 16 | 24155 | 16 |
| ... | @@ -22813,9 +24177,16 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22813,9 +24177,16 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22813 | 24177 | ||
| 22814 | 24178 | ||
| 22815 | 24179 | ||
| 24180 | |||
| 24181 | |||
| 24182 | |||
| 24183 | |||
| 24184 | |||
| 24185 | |||
| 22816 | 27 | 24186 | 27 |
| 22817 | 24187 | ||
| 22818 | 27 | 24188 | 27 |
| 24189 | |||
| 22819 | 27 | 24190 | 27 |
| 22820 | 0 | 24191 | 0 |
| 22821 | 5 | 24192 | 5 |
| ... | @@ -22824,6 +24195,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22824,6 +24195,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22824 | 5 | 24195 | 5 |
| 22825 | 5 | 24196 | 5 |
| 22826 | 15 | 24197 | 15 |
| 24198 | |||
| 24199 | |||
| 22827 | 0 | 24200 | 0 |
| 22828 | 5 | 24201 | 5 |
| 22829 | 0 | 24202 | 0 |
| ... | @@ -22833,10 +24206,17 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22833,10 +24206,17 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22833 | 5 | 24206 | 5 |
| 22834 | 0 | 24207 | 0 |
| 22835 | 5 | 24208 | 5 |
| 24209 | |||
| 24210 | |||
| 24211 | |||
| 24212 | |||
| 22836 | 5 | 24213 | 5 |
| 22837 | 16 | 24214 | 16 |
| 24215 | |||
| 24216 | |||
| 22838 | 5 | 24217 | 5 |
| 22839 | 5 | 24218 | 5 |
| 24219 | |||
| 22840 | 0 | 24220 | 0 |
| 22841 | 5 | 24221 | 5 |
| 22842 | 16 | 24222 | 16 |
| ... | @@ -22856,6 +24236,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22856,6 +24236,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22856 | 16 | 24236 | 16 |
| 22857 | 5 | 24237 | 5 |
| 22858 | 0 | 24238 | 0 |
| 24239 | |||
| 22859 | 0 | 24240 | 0 |
| 22860 | 0 | 24241 | 0 |
| 22861 | 15 | 24242 | 15 |
| ... | @@ -22871,7 +24252,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22871,7 +24252,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22871 | 27 | 24252 | 27 |
| 22872 | 24253 | ||
| 22873 | 27 | 24254 | 27 |
| 24255 | |||
| 22874 | 27 | 24256 | 27 |
| 24257 | |||
| 22875 | 5 | 24258 | 5 |
| 22876 | 5 | 24259 | 5 |
| 22877 | 5 | 24260 | 5 |
| ... | @@ -22895,17 +24278,29 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22895,17 +24278,29 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22895 | 24278 | ||
| 22896 | 0 | 24279 | 0 |
| 22897 | 19 | 24280 | 19 |
| 24281 | |||
| 22898 | 19 | 24282 | 19 |
| 24283 | |||
| 22899 | 19 | 24284 | 19 |
| 24285 | |||
| 22900 | 19 | 24286 | 19 |
| 24287 | |||
| 22901 | 19 | 24288 | 19 |
| 24289 | |||
| 22902 | 19 | 24290 | 19 |
| 24291 | |||
| 22903 | 19 | 24292 | 19 |
| 24293 | |||
| 22904 | 19 | 24294 | 19 |
| 24295 | |||
| 22905 | 19 | 24296 | 19 |
| 24297 | |||
| 22906 | 19 | 24298 | 19 |
| 24299 | |||
| 22907 | 19 | 24300 | 19 |
| 24301 | |||
| 22908 | 19 | 24302 | 19 |
| 24303 | |||
| 22909 | 5 | 24304 | 5 |
| 22910 | 5 | 24305 | 5 |
| 22911 | 30 | 24306 | 30 |
| ... | @@ -22933,23 +24328,29 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22933,23 +24328,29 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22933 | 27 | 24328 | 27 |
| 22934 | 24329 | ||
| 22935 | 27 | 24330 | 27 |
| 24331 | |||
| 22936 | 27 | 24332 | 27 |
| 22937 | 27 | 24333 | 27 |
| 22938 | 24334 | ||
| 22939 | 27 | 24335 | 27 |
| 24336 | |||
| 22940 | 27 | 24337 | 27 |
| 22941 | 27 | 24338 | 27 |
| 22942 | 24339 | ||
| 22943 | 27 | 24340 | 27 |
| 24341 | |||
| 22944 | 27 | 24342 | 27 |
| 22945 | 5 | 24343 | 5 |
| 22946 | 5 | 24344 | 5 |
| 22947 | 5 | 24345 | 5 |
| 22948 | 24346 | ||
| 22949 | 24347 | ||
| 24348 | |||
| 22950 | 27 | 24349 | 27 |
| 22951 | 24350 | ||
| 22952 | 27 | 24351 | 27 |
| 24352 | |||
| 24353 | |||
| 22953 | 27 | 24354 | 27 |
| 22954 | 5 | 24355 | 5 |
| 22955 | 0 | 24356 | 0 |
| ... | @@ -22965,23 +24366,34 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -22965,23 +24366,34 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22965 | 0 | 24366 | 0 |
| 22966 | 0 | 24367 | 0 |
| 22967 | 5 | 24368 | 5 |
| 24369 | 42 | ||
| 22968 | 5 | 24370 | 5 |
| 22969 | 0 | 24371 | 0 |
| 22970 | 0 | 24372 | 0 |
| 22971 | 11 | 24373 | 8 11 |
| 24374 | |||
| 24375 | |||
| 24376 | |||
| 22972 | 27 | 24377 | 27 |
| 22973 | 24378 | ||
| 22974 | 27 | 24379 | 27 |
| 24380 | |||
| 22975 | 27 | 24381 | 27 |
| 24382 | |||
| 22976 | 27 | 24383 | 27 |
| 22977 | 24384 | ||
| 22978 | 27 | 24385 | 27 |
| 24386 | |||
| 22979 | 27 | 24387 | 27 |
| 22980 | 27 | 24388 | 27 |
| 22981 | 24389 | ||
| 24390 | |||
| 22982 | 27 | 24391 | 27 |
| 24392 | |||
| 22983 | 27 | 24393 | 27 |
| 22984 | 23 | 24394 | 23 |
| 24395 | |||
| 24396 | |||
| 22985 | 0 | 24397 | 0 |
| 22986 | 24398 | ||
| 22987 | 24399 | ||
| ... | @@ -23020,17 +24432,26 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23020,17 +24432,26 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23020 | 24432 | ||
| 23021 | 24433 | ||
| 23022 | 24434 | ||
| 24435 | |||
| 23023 | 0 | 24436 | 0 |
| 23024 | 0 | 24437 | 0 |
| 23025 | 19 | 24438 | 19 |
| 23026 | 24439 | ||
| 23027 | 24440 | ||
| 24441 | |||
| 23028 | 11 | 24442 | 11 |
| 23029 | 24443 | ||
| 23030 | 24444 | ||
| 23031 | 24445 | ||
| 23032 | 24446 | ||
| 24447 | |||
| 23033 | 5 | 24448 | 5 |
| 24449 | |||
| 24450 | |||
| 24451 | |||
| 24452 | |||
| 24453 | |||
| 24454 | |||
| 23034 | 5 | 24455 | 5 |
| 23035 | 24456 | ||
| 23036 | 24457 | ||
| ... | @@ -23143,7 +24564,11 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23143,7 +24564,11 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23143 | 0 | 24564 | 0 |
| 23144 | 0 | 24565 | 0 |
| 23145 | 20 | 24566 | 20 |
| 24567 | |||
| 24568 | |||
| 23146 | 20 | 24569 | 20 |
| 24570 | |||
| 24571 | |||
| 23147 | 0 | 24572 | 0 |
| 23148 | 5 | 24573 | 5 |
| 23149 | 19 | 24574 | 19 |
| ... | @@ -23159,6 +24584,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23159,6 +24584,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23159 | 27 | 24584 | 27 |
| 23160 | 24585 | ||
| 23161 | 27 | 24586 | 27 |
| 24587 | |||
| 23162 | 27 | 24588 | 27 |
| 23163 | 24589 | ||
| 23164 | 28 | 24590 | 28 |
| ... | @@ -23166,7 +24592,10 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23166,7 +24592,10 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23166 | 16 | 24592 | 16 |
| 23167 | 16 | 24593 | 16 |
| 23168 | 15 | 24594 | 15 |
| 24595 | |||
| 23169 | 0 | 24596 | 0 |
| 24597 | |||
| 24598 | |||
| 23170 | 0 | 24599 | 0 |
| 23171 | 0 | 24600 | 0 |
| 23172 | 0 | 24601 | 0 |
| ... | @@ -23197,6 +24626,11 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23197,6 +24626,11 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23197 | 14 | 24626 | 14 |
| 23198 | 16 | 24627 | 16 |
| 23199 | 5 | 24628 | 5 |
| 24629 | |||
| 24630 | |||
| 24631 | |||
| 24632 | |||
| 24633 | |||
| 23200 | 5 | 24634 | 5 |
| 23201 | 0 | 24635 | 0 |
| 23202 | 0 | 24636 | 0 |
| ... | @@ -23215,12 +24649,17 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23215,12 +24649,17 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23215 | 27 | 24649 | 27 |
| 23216 | 24650 | ||
| 23217 | 27 | 24651 | 27 |
| 24652 | |||
| 23218 | 27 | 24653 | 27 |
| 24654 | |||
| 23219 | 5 | 24655 | 5 |
| 23220 | 5 | 24656 | 5 |
| 23221 | 5 | 24657 | 5 |
| 23222 | 0 | 24658 | 0 |
| 23223 | 5 | 24659 | 5 |
| 24660 | |||
| 24661 | |||
| 24662 | |||
| 23224 | 8 | 24663 | 8 |
| 23225 | 8 | 24664 | 8 |
| 23226 | 8 | 24665 | 8 |
| ... | @@ -23228,7 +24667,11 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23228,7 +24667,11 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23228 | 0 | 24667 | 0 |
| 23229 | 27 | 24668 | 27 |
| 23230 | 27 | 24669 | 27 |
| 24670 | |||
| 23231 | 27 | 24671 | 27 |
| 24672 | |||
| 24673 | |||
| 24674 | |||
| 23232 | 19 | 24675 | 19 |
| 23233 | 18 | 24676 | 18 |
| 23234 | 19 | 24677 | 19 |
| ... | @@ -23242,6 +24685,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23242,6 +24685,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23242 | 0 | 24685 | 0 |
| 23243 | 0 | 24686 | 0 |
| 23244 | 5 | 24687 | 5 |
| 24688 | |||
| 24689 | |||
| 23245 | 0 | 24690 | 0 |
| 23246 | 0 | 24691 | 0 |
| 23247 | 0 | 24692 | 0 |
| ... | @@ -23252,24 +24697,34 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23252,24 +24697,34 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23252 | 24697 | ||
| 23253 | 5 | 24698 | 5 |
| 23254 | 33 | 24699 | 33 |
| 24700 | |||
| 23255 | 0 | 24701 | 0 |
| 23256 | 0 | 24702 | 0 |
| 23257 | 5 | 24703 | 5 |
| 23258 | 24704 | ||
| 23259 | 24705 | ||
| 23260 | 24706 | ||
| 24707 | |||
| 23261 | 27 | 24708 | 27 |
| 23262 | 24709 | ||
| 23263 | 27 | 24710 | 27 |
| 24711 | |||
| 23264 | 27 | 24712 | 27 |
| 24713 | |||
| 23265 | 15 | 24714 | 15 |
| 24715 | |||
| 24716 | |||
| 23266 | 15 | 24717 | 15 |
| 24718 | |||
| 24719 | |||
| 23267 | 27 | 24720 | 27 |
| 23268 | 24721 | ||
| 23269 | 24722 | ||
| 23270 | 27 | 24723 | 27 |
| 24724 | |||
| 23271 | 27 | 24725 | 27 |
| 23272 | 24726 | ||
| 24727 | |||
| 23273 | 16 | 24728 | 16 |
| 23274 | 16 | 24729 | 16 |
| 23275 | 5 | 24730 | 5 |
| ... | @@ -23302,6 +24757,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23302,6 +24757,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23302 | 0 | 24757 | 0 |
| 23303 | 0 | 24758 | 0 |
| 23304 | 5 | 24759 | 5 |
| 24760 | |||
| 24761 | |||
| 24762 | |||
| 23305 | 12 | 24763 | 12 |
| 23306 | 24764 | ||
| 23307 | 5 | 24765 | 5 |
| ... | @@ -23336,6 +24794,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23336,6 +24794,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23336 | 24794 | ||
| 23337 | 0 | 24795 | 0 |
| 23338 | 5 | 24796 | 5 |
| 24797 | |||
| 24798 | |||
| 23339 | 0 | 24799 | 0 |
| 23340 | 5 | 24800 | 5 |
| 23341 | 0 | 24801 | 0 |
| ... | @@ -23355,48 +24815,93 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23355,48 +24815,93 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23355 | 24815 | ||
| 23356 | 24816 | ||
| 23357 | 16 | 24817 | 16 |
| 24818 | |||
| 24819 | |||
| 24820 | |||
| 23358 | 5 | 24821 | 5 |
| 23359 | 5 | 24822 | 5 |
| 23360 | 16 | 24823 | 16 |
| 24824 | |||
| 24825 | |||
| 23361 | 0 | 24826 | 0 |
| 24827 | |||
| 24828 | |||
| 24829 | |||
| 23362 | 0 | 24830 | 0 |
| 23363 | 12 | 24831 | 12 |
| 23364 | 24832 | ||
| 23365 | 24833 | ||
| 23366 | 5 | 24834 | 5 |
| 23367 | 5 | 24835 | 5 |
| 24836 | |||
| 24837 | |||
| 23368 | 5 | 24838 | 5 |
| 23369 | 5 | 24839 | 5 |
| 23370 | 5 | 24840 | 5 |
| 23371 | 5 | 24841 | 5 |
| 23372 | 5 | 24842 | 5 |
| 23373 | 24843 | ||
| 24844 | |||
| 23374 | 16 | 24845 | 16 |
| 23375 | 0 | 24846 | 0 |
| 23376 | 24847 | ||
| 23377 | 24848 | ||
| 23378 | 0 | 24849 | 0 |
| 23379 | 24850 | ||
| 24851 | |||
| 24852 | |||
| 23380 | 0 | 24853 | 0 |
| 23381 | 24854 | ||
| 23382 | 24855 | ||
| 23383 | 12 | 24856 | 12 |
| 23384 | 20 | 24857 | 20 |
| 24858 | |||
| 24859 | |||
| 23385 | 20 | 24860 | 20 |
| 24861 | |||
| 24862 | |||
| 24863 | |||
| 24864 | |||
| 23386 | 5 | 24865 | 5 |
| 23387 | 15 | 24866 | 15 |
| 24867 | |||
| 24868 | |||
| 23388 | 0 | 24869 | 0 |
| 24870 | |||
| 23389 | 16 | 24871 | 16 |
| 24872 | |||
| 24873 | |||
| 24874 | |||
| 23390 | 15 | 24875 | 15 |
| 24876 | |||
| 24877 | |||
| 24878 | |||
| 23391 | 0 | 24879 | 0 |
| 23392 | 15 | 24880 | 15 |
| 24881 | |||
| 24882 | |||
| 23393 | 15 | 24883 | 15 |
| 24884 | |||
| 24885 | |||
| 23394 | 0 | 24886 | 0 |
| 24887 | |||
| 23395 | 16 | 24888 | 16 |
| 24889 | |||
| 24890 | |||
| 24891 | |||
| 23396 | 16 | 24892 | 16 |
| 24893 | |||
| 24894 | |||
| 24895 | |||
| 24896 | |||
| 23397 | 16 | 24897 | 16 |
| 24898 | |||
| 24899 | |||
| 24900 | |||
| 23398 | 0 | 24901 | 0 |
| 23399 | 0 | 24902 | 0 |
| 24903 | |||
| 24904 | |||
| 23400 | 16 | 24905 | 16 |
| 23401 | 16 | 24906 | 16 |
| 23402 | 16 | 24907 | 16 |
| ... | @@ -23415,6 +24920,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23415,6 +24920,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23415 | 24920 | ||
| 23416 | 0 | 24921 | 0 |
| 23417 | 5 | 24922 | 5 |
| 24923 | |||
| 24924 | |||
| 23418 | 0 | 24925 | 0 |
| 23419 | 5 | 24926 | 5 |
| 23420 | 0 | 24927 | 0 |
| ... | @@ -23436,7 +24943,10 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23436,7 +24943,10 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23436 | 16 | 24943 | 16 |
| 23437 | 5 | 24944 | 5 |
| 23438 | 16 | 24945 | 16 |
| 24946 | |||
| 24947 | |||
| 23439 | 0 | 24948 | 0 |
| 24949 | |||
| 23440 | 5 | 24950 | 5 |
| 23441 | 5 | 24951 | 5 |
| 23442 | 0 | 24952 | 0 |
| ... | @@ -23449,14 +24959,17 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -23449,14 +24959,17 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23449 | 27 | 24959 | 27 |
| 23450 | 24960 | ||
| 23451 | 27 | 24961 | 27 |
| 24962 | |||
| 23452 | 27 | 24963 | 27 |
| 23453 | 27 | 24964 | 27 |
| 23454 | 24965 | ||
| 23455 | 27 | 24966 | 27 |
| 24967 | |||
| 23456 | 27 | 24968 | 27 |
| 23457 | 27 | 24969 | 27 |
| 23458 | 24970 | ||
| 23459 | 27 | 24971 | 27 |
| 24972 | |||
| 23460 | 27 | 24973 | 27 |
| 23461 | 5 | 24974 | 5 |
| 23462 | 5 | 24975 | 5 |
| ... | @@ -24054,7 +25567,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -24054,7 +25567,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 24054 | 0 | 25567 | 0 |
| 24055 | 0 39 | 25568 | 0 39 |
| 24056 | 5 | 25569 | 5 |
| 24057 | 5 | 25570 | 5 42 |
| 24058 | 37 | 25571 | 37 |
| 24059 | 37 | 25572 | 37 |
| 24060 | 37 | 25573 | 37 |
| ... | @@ -25180,17 +26693,19 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -25180,17 +26693,19 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 25180 | 0 | 26693 | 0 |
| 25181 | 0 | 26694 | 0 |
| 25182 | 0 | 26695 | 0 |
| 26696 | 42 | ||
| 25183 | 5 | 26697 | 5 |
| 25184 | 5 | 26698 | 5 |
| 25185 | 5 | 26699 | 5 |
| 25186 | 0 5 | 26700 | 0 5 |
| 25187 | 14 15 | 26701 | 14 15 42 |
| 25188 | 0 | 26702 | 0 |
| 25189 | 5 | 26703 | 5 |
| 25190 | 0 | 26704 | 0 |
| 25191 | 0 | 26705 | 0 |
| 25192 | 0 | 26706 | 0 |
| 25193 | 0 | 26707 | 0 |
| 26708 | 42 | ||
| 25194 | 5 14 | 26709 | 5 14 |
| 25195 | 5 | 26710 | 5 |
| 25196 | 5 14 | 26711 | 5 14 |
| ... | @@ -25220,9 +26735,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -25220,9 +26735,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 25220 | 0 | 26735 | 0 |
| 25221 | 0 | 26736 | 0 |
| 25222 | 0 | 26737 | 0 |
| 25223 | 14 15 | 26738 | 14 15 42 |
| 25224 | 30 | 26739 | 30 |
| 25225 | 8 | 26740 | 8 42 |
| 25226 | 5 | 26741 | 5 |
| 25227 | 5 | 26742 | 5 |
| 25228 | 24 | 26743 | 24 |
| ... | @@ -25288,7 +26803,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -25288,7 +26803,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 25288 | 0 | 26803 | 0 |
| 25289 | 15 | 26804 | 15 |
| 25290 | 0 | 26805 | 0 |
| 25291 | 0 | 26806 | 0 42 |
| 25292 | 23 | 26807 | 23 |
| 25293 | 5 | 26808 | 5 |
| 25294 | 5 | 26809 | 5 |
| ... | @@ -25593,12 +27108,14 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -25593,12 +27108,14 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 25593 | 0 | 27108 | 0 |
| 25594 | 0 | 27109 | 0 |
| 25595 | 0 | 27110 | 0 |
| 27111 | 42 | ||
| 25596 | 0 | 27112 | 0 |
| 25597 | 0 | 27113 | 0 |
| 25598 | 0 | 27114 | 0 |
| 25599 | 0 | 27115 | 0 |
| 25600 | 0 | 27116 | 0 |
| 25601 | 0 | 27117 | 0 |
| 27118 | 42 | ||
| 25602 | 0 | 27119 | 0 |
| 25603 | 0 | 27120 | 0 |
| 25604 | 0 | 27121 | 0 |
| ... | @@ -25704,6 +27221,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 | ... | @@ -25704,6 +27221,8 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 25704 | 0 | 27221 | 0 |
| 25705 | 18 | 27222 | 18 |
| 25706 | 0 | 27223 | 0 |
| 27224 | 42 | ||
| 27225 | 42 | ||
| 25707 | 0 | 27226 | 0 |
| 25708 | 12 | 27227 | 12 |
| 25709 | 35 | 27228 | 35 |
| ... | @@ -26398,6 +27917,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26398,6 +27917,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26398 | 27917 | ||
| 26399 | 27918 | ||
| 26400 | 27919 | ||
| 27920 | |||
| 27921 | |||
| 26401 | 0 | 27922 | 0 |
| 26402 | 27923 | ||
| 26403 | 27924 | ||
| ... | @@ -26423,6 +27944,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26423,6 +27944,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26423 | 27944 | ||
| 26424 | 27945 | ||
| 26425 | 27946 | ||
| 27947 | |||
| 27948 | |||
| 26426 | 0 | 27949 | 0 |
| 26427 | 0 | 27950 | 0 |
| 26428 | 0 | 27951 | 0 |
| ... | @@ -26432,8 +27955,12 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26432,8 +27955,12 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26432 | 27955 | ||
| 26433 | 27 | 27956 | 27 |
| 26434 | 27957 | ||
| 27958 | |||
| 27959 | |||
| 26435 | 5 | 27960 | 5 |
| 26436 | 20 | 27961 | 20 |
| 27962 | |||
| 27963 | |||
| 26437 | 5 | 27964 | 5 |
| 26438 | 0 | 27965 | 0 |
| 26439 | 0 | 27966 | 0 |
| ... | @@ -26441,6 +27968,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26441,6 +27968,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26441 | 27968 | ||
| 26442 | 27 | 27969 | 27 |
| 26443 | 27970 | ||
| 27971 | |||
| 26444 | 27 | 27972 | 27 |
| 26445 | 27973 | ||
| 26446 | 27 | 27974 | 27 |
| ... | @@ -26448,26 +27976,57 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26448,26 +27976,57 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26448 | 27976 | ||
| 26449 | 27977 | ||
| 26450 | 27978 | ||
| 27979 | |||
| 27980 | |||
| 26451 | 5 | 27981 | 5 |
| 26452 | 5 | 27982 | 5 |
| 26453 | 5 | 27983 | 5 |
| 26454 | 0 | 27984 | 0 |
| 26455 | 0 | 27985 | 0 |
| 27986 | |||
| 27987 | |||
| 27988 | |||
| 27989 | |||
| 27990 | |||
| 27991 | |||
| 27992 | |||
| 27993 | |||
| 27994 | |||
| 27995 | |||
| 27996 | |||
| 27997 | |||
| 27998 | |||
| 27999 | |||
| 26456 | 0 | 28000 | 0 |
| 26457 | 15 | 28001 | 15 |
| 28002 | |||
| 26458 | 5 | 28003 | 5 |
| 26459 | 5 | 28004 | 5 |
| 28005 | |||
| 26460 | 5 | 28006 | 5 |
| 28007 | |||
| 26461 | 0 | 28008 | 0 |
| 26462 | 0 | 28009 | 0 |
| 26463 | 28010 | ||
| 26464 | 0 | 28011 | 0 |
| 26465 | 16 | 28012 | 16 |
| 28013 | |||
| 26466 | 0 | 28014 | 0 |
| 28015 | |||
| 26467 | 27 | 28016 | 27 |
| 26468 | 28017 | ||
| 26469 | 27 | 28018 | 27 |
| 26470 | 28019 | ||
| 28020 | |||
| 28021 | |||
| 28022 | |||
| 28023 | |||
| 28024 | |||
| 28025 | |||
| 28026 | |||
| 28027 | |||
| 28028 | |||
| 28029 | |||
| 26471 | 0 | 28030 | 0 |
| 26472 | 5 | 28031 | 5 |
| 26473 | 5 | 28032 | 5 |
| ... | @@ -26495,29 +28054,50 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26495,29 +28054,50 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26495 | 28054 | ||
| 26496 | 28055 | ||
| 26497 | 20 | 28056 | 20 |
| 28057 | |||
| 28058 | |||
| 26498 | 0 | 28059 | 0 |
| 26499 | 5 | 28060 | 5 |
| 26500 | 5 | 28061 | 5 |
| 26501 | 0 | 28062 | 0 |
| 26502 | 28063 | ||
| 26503 | 28064 | ||
| 28065 | |||
| 28066 | |||
| 28067 | |||
| 26504 | 0 | 28068 | 0 |
| 28069 | |||
| 28070 | |||
| 28071 | |||
| 26505 | 27 | 28072 | 27 |
| 26506 | 28073 | ||
| 26507 | 27 | 28074 | 27 |
| 26508 | 28075 | ||
| 28076 | |||
| 26509 | 27 | 28077 | 27 |
| 26510 | 28078 | ||
| 26511 | 27 | 28079 | 27 |
| 26512 | 28080 | ||
| 28081 | |||
| 26513 | 27 | 28082 | 27 |
| 26514 | 28083 | ||
| 26515 | 27 | 28084 | 27 |
| 26516 | 28085 | ||
| 26517 | 28086 | ||
| 28087 | |||
| 26518 | 35 | 28088 | 35 |
| 26519 | 28089 | ||
| 26520 | 28090 | ||
| 28091 | |||
| 28092 | |||
| 28093 | |||
| 28094 | |||
| 28095 | |||
| 28096 | |||
| 28097 | |||
| 28098 | |||
| 28099 | |||
| 28100 | |||
| 26521 | 5 | 28101 | 5 |
| 26522 | 0 | 28102 | 0 |
| 26523 | 27 | 28103 | 27 |
| ... | @@ -26528,6 +28108,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26528,6 +28108,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26528 | 28108 | ||
| 26529 | 28109 | ||
| 26530 | 28110 | ||
| 28111 | |||
| 26531 | 0 | 28112 | 0 |
| 26532 | 16 | 28113 | 16 |
| 26533 | 16 | 28114 | 16 |
| ... | @@ -26555,10 +28136,17 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26555,10 +28136,17 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26555 | 28136 | ||
| 26556 | 28137 | ||
| 26557 | 28138 | ||
| 28139 | |||
| 28140 | |||
| 28141 | |||
| 28142 | |||
| 28143 | |||
| 28144 | |||
| 26558 | 27 | 28145 | 27 |
| 26559 | 28146 | ||
| 26560 | 27 | 28147 | 27 |
| 26561 | 28148 | ||
| 28149 | |||
| 26562 | 0 | 28150 | 0 |
| 26563 | 5 | 28151 | 5 |
| 26564 | 5 | 28152 | 5 |
| ... | @@ -26566,6 +28154,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26566,6 +28154,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26566 | 28154 | ||
| 26567 | 5 | 28155 | 5 |
| 26568 | 15 | 28156 | 15 |
| 28157 | |||
| 28158 | |||
| 26569 | 0 | 28159 | 0 |
| 26570 | 5 | 28160 | 5 |
| 26571 | 0 | 28161 | 0 |
| ... | @@ -26575,10 +28165,17 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26575,10 +28165,17 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26575 | 5 | 28165 | 5 |
| 26576 | 0 | 28166 | 0 |
| 26577 | 5 | 28167 | 5 |
| 28168 | |||
| 28169 | |||
| 28170 | |||
| 28171 | |||
| 26578 | 5 | 28172 | 5 |
| 26579 | 16 | 28173 | 16 |
| 28174 | |||
| 28175 | |||
| 26580 | 5 | 28176 | 5 |
| 26581 | 5 | 28177 | 5 |
| 28178 | |||
| 26582 | 0 | 28179 | 0 |
| 26583 | 5 | 28180 | 5 |
| 26584 | 16 | 28181 | 16 |
| ... | @@ -26598,6 +28195,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26598,6 +28195,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26598 | 16 | 28195 | 16 |
| 26599 | 5 | 28196 | 5 |
| 26600 | 0 | 28197 | 0 |
| 28198 | |||
| 26601 | 0 | 28199 | 0 |
| 26602 | 0 | 28200 | 0 |
| 26603 | 15 | 28201 | 15 |
| ... | @@ -26614,6 +28212,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26614,6 +28212,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26614 | 28212 | ||
| 26615 | 27 | 28213 | 27 |
| 26616 | 28214 | ||
| 28215 | |||
| 28216 | |||
| 26617 | 5 | 28217 | 5 |
| 26618 | 5 | 28218 | 5 |
| 26619 | 5 | 28219 | 5 |
| ... | @@ -26637,17 +28237,29 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26637,17 +28237,29 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26637 | 28237 | ||
| 26638 | 0 | 28238 | 0 |
| 26639 | 19 | 28239 | 19 |
| 28240 | |||
| 26640 | 19 | 28241 | 19 |
| 28242 | |||
| 26641 | 19 | 28243 | 19 |
| 28244 | |||
| 26642 | 19 | 28245 | 19 |
| 28246 | |||
| 26643 | 19 | 28247 | 19 |
| 28248 | |||
| 26644 | 19 | 28249 | 19 |
| 28250 | |||
| 26645 | 19 | 28251 | 19 |
| 28252 | |||
| 26646 | 19 | 28253 | 19 |
| 28254 | |||
| 26647 | 19 | 28255 | 19 |
| 28256 | |||
| 26648 | 19 | 28257 | 19 |
| 28258 | |||
| 26649 | 19 | 28259 | 19 |
| 28260 | |||
| 26650 | 19 | 28261 | 19 |
| 28262 | |||
| 26651 | 5 | 28263 | 5 |
| 26652 | 5 | 28264 | 5 |
| 26653 | 30 | 28265 | 30 |
| ... | @@ -26676,23 +28288,29 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26676,23 +28288,29 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26676 | 28288 | ||
| 26677 | 27 | 28289 | 27 |
| 26678 | 28290 | ||
| 28291 | |||
| 26679 | 27 | 28292 | 27 |
| 26680 | 28293 | ||
| 26681 | 27 | 28294 | 27 |
| 26682 | 28295 | ||
| 28296 | |||
| 26683 | 27 | 28297 | 27 |
| 26684 | 28298 | ||
| 26685 | 27 | 28299 | 27 |
| 26686 | 28300 | ||
| 28301 | |||
| 26687 | 5 | 28302 | 5 |
| 26688 | 5 | 28303 | 5 |
| 26689 | 5 | 28304 | 5 |
| 26690 | 28305 | ||
| 26691 | 28306 | ||
| 28307 | |||
| 26692 | 27 | 28308 | 27 |
| 26693 | 28309 | ||
| 26694 | 27 | 28310 | 27 |
| 26695 | 28311 | ||
| 28312 | |||
| 28313 | |||
| 26696 | 5 | 28314 | 5 |
| 26697 | 0 | 28315 | 0 |
| 26698 | 5 | 28316 | 5 |
| ... | @@ -26707,23 +28325,34 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26707,23 +28325,34 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26707 | 0 | 28325 | 0 |
| 26708 | 0 | 28326 | 0 |
| 26709 | 5 | 28327 | 5 |
| 28328 | 42 | ||
| 26710 | 5 | 28329 | 5 |
| 26711 | 0 | 28330 | 0 |
| 26712 | 0 | 28331 | 0 |
| 26713 | 11 | 28332 | 8 11 |
| 28333 | |||
| 28334 | |||
| 28335 | |||
| 26714 | 27 | 28336 | 27 |
| 26715 | 28337 | ||
| 26716 | 27 | 28338 | 27 |
| 26717 | 28339 | ||
| 28340 | |||
| 28341 | |||
| 26718 | 27 | 28342 | 27 |
| 26719 | 28343 | ||
| 26720 | 27 | 28344 | 27 |
| 26721 | 28345 | ||
| 28346 | |||
| 26722 | 27 | 28347 | 27 |
| 26723 | 28348 | ||
| 28349 | |||
| 26724 | 27 | 28350 | 27 |
| 26725 | 28351 | ||
| 28352 | |||
| 26726 | 23 | 28353 | 23 |
| 28354 | |||
| 28355 | |||
| 26727 | 0 | 28356 | 0 |
| 26728 | 28357 | ||
| 26729 | 28358 | ||
| ... | @@ -26762,17 +28391,26 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26762,17 +28391,26 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26762 | 30 | 28391 | 30 |
| 26763 | 30 | 28392 | 30 |
| 26764 | 28393 | ||
| 28394 | |||
| 26765 | 0 | 28395 | 0 |
| 26766 | 0 | 28396 | 0 |
| 26767 | 19 | 28397 | 19 |
| 26768 | 28398 | ||
| 26769 | 28399 | ||
| 28400 | |||
| 26770 | 11 | 28401 | 11 |
| 26771 | 28402 | ||
| 26772 | 28403 | ||
| 26773 | 28404 | ||
| 26774 | 28405 | ||
| 28406 | |||
| 26775 | 5 | 28407 | 5 |
| 28408 | |||
| 28409 | |||
| 28410 | |||
| 28411 | |||
| 28412 | |||
| 28413 | |||
| 26776 | 5 | 28414 | 5 |
| 26777 | 28415 | ||
| 26778 | 28416 | ||
| ... | @@ -26885,7 +28523,11 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26885,7 +28523,11 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26885 | 0 | 28523 | 0 |
| 26886 | 0 | 28524 | 0 |
| 26887 | 20 | 28525 | 20 |
| 28526 | |||
| 28527 | |||
| 26888 | 20 | 28528 | 20 |
| 28529 | |||
| 28530 | |||
| 26889 | 0 | 28531 | 0 |
| 26890 | 5 | 28532 | 5 |
| 26891 | 19 | 28533 | 19 |
| ... | @@ -26903,12 +28545,16 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26903,12 +28545,16 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26903 | 27 | 28545 | 27 |
| 26904 | 28546 | ||
| 26905 | 28547 | ||
| 28548 | |||
| 26906 | 28 | 28549 | 28 |
| 26907 | 5 | 28550 | 5 |
| 26908 | 16 | 28551 | 16 |
| 26909 | 16 | 28552 | 16 |
| 26910 | 15 | 28553 | 15 |
| 28554 | |||
| 26911 | 0 | 28555 | 0 |
| 28556 | |||
| 28557 | |||
| 26912 | 0 | 28558 | 0 |
| 26913 | 0 | 28559 | 0 |
| 26914 | 0 | 28560 | 0 |
| ... | @@ -26939,6 +28585,11 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26939,6 +28585,11 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26939 | 14 | 28585 | 14 |
| 26940 | 16 | 28586 | 16 |
| 26941 | 5 | 28587 | 5 |
| 28588 | |||
| 28589 | |||
| 28590 | |||
| 28591 | |||
| 28592 | |||
| 26942 | 5 | 28593 | 5 |
| 26943 | 0 | 28594 | 0 |
| 26944 | 0 | 28595 | 0 |
| ... | @@ -26958,11 +28609,16 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26958,11 +28609,16 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26958 | 28609 | ||
| 26959 | 27 | 28610 | 27 |
| 26960 | 28611 | ||
| 28612 | |||
| 28613 | |||
| 26961 | 5 | 28614 | 5 |
| 26962 | 5 | 28615 | 5 |
| 26963 | 5 | 28616 | 5 |
| 26964 | 0 | 28617 | 0 |
| 26965 | 5 | 28618 | 5 |
| 28619 | |||
| 28620 | |||
| 28621 | |||
| 26966 | 8 | 28622 | 8 |
| 26967 | 8 | 28623 | 8 |
| 26968 | 8 | 28624 | 8 |
| ... | @@ -26971,6 +28627,10 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26971,6 +28627,10 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26971 | 27 | 28627 | 27 |
| 26972 | 27 | 28628 | 27 |
| 26973 | 28629 | ||
| 28630 | |||
| 28631 | |||
| 28632 | |||
| 28633 | |||
| 26974 | 19 | 28634 | 19 |
| 26975 | 18 | 28635 | 18 |
| 26976 | 19 | 28636 | 19 |
| ... | @@ -26984,6 +28644,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26984,6 +28644,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26984 | 0 | 28644 | 0 |
| 26985 | 0 | 28645 | 0 |
| 26986 | 5 | 28646 | 5 |
| 28647 | |||
| 28648 | |||
| 26987 | 0 | 28649 | 0 |
| 26988 | 0 | 28650 | 0 |
| 26989 | 0 | 28651 | 0 |
| ... | @@ -26994,24 +28656,34 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -26994,24 +28656,34 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26994 | 28656 | ||
| 26995 | 28657 | ||
| 26996 | 33 | 28658 | 33 |
| 28659 | |||
| 26997 | 0 | 28660 | 0 |
| 26998 | 0 | 28661 | 0 |
| 26999 | 5 | 28662 | 5 |
| 27000 | 28663 | ||
| 27001 | 28664 | ||
| 27002 | 28665 | ||
| 28666 | |||
| 27003 | 27 | 28667 | 27 |
| 27004 | 28668 | ||
| 27005 | 27 | 28669 | 27 |
| 27006 | 28670 | ||
| 28671 | |||
| 28672 | |||
| 27007 | 15 | 28673 | 15 |
| 28674 | |||
| 28675 | |||
| 27008 | 15 | 28676 | 15 |
| 28677 | |||
| 28678 | |||
| 27009 | 27 | 28679 | 27 |
| 27010 | 28680 | ||
| 27011 | 28681 | ||
| 27012 | 27 | 28682 | 27 |
| 27013 | 28683 | ||
| 27014 | 28684 | ||
| 28685 | |||
| 28686 | |||
| 27015 | 16 | 28687 | 16 |
| 27016 | 16 | 28688 | 16 |
| 27017 | 5 | 28689 | 5 |
| ... | @@ -27044,6 +28716,9 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -27044,6 +28716,9 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 27044 | 0 | 28716 | 0 |
| 27045 | 0 | 28717 | 0 |
| 27046 | 5 | 28718 | 5 |
| 28719 | |||
| 28720 | |||
| 28721 | |||
| 27047 | 12 | 28722 | 12 |
| 27048 | 28723 | ||
| 27049 | 5 | 28724 | 5 |
| ... | @@ -27078,6 +28753,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -27078,6 +28753,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 27078 | 28753 | ||
| 27079 | 0 | 28754 | 0 |
| 27080 | 5 | 28755 | 5 |
| 28756 | |||
| 28757 | |||
| 27081 | 0 | 28758 | 0 |
| 27082 | 5 | 28759 | 5 |
| 27083 | 0 | 28760 | 0 |
| ... | @@ -27097,48 +28774,93 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -27097,48 +28774,93 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 27097 | 28774 | ||
| 27098 | 28775 | ||
| 27099 | 16 | 28776 | 16 |
| 28777 | |||
| 28778 | |||
| 28779 | |||
| 27100 | 5 | 28780 | 5 |
| 27101 | 5 | 28781 | 5 |
| 27102 | 16 | 28782 | 16 |
| 28783 | |||
| 28784 | |||
| 27103 | 0 | 28785 | 0 |
| 28786 | |||
| 28787 | |||
| 28788 | |||
| 27104 | 0 | 28789 | 0 |
| 27105 | 12 | 28790 | 12 |
| 27106 | 28791 | ||
| 27107 | 28792 | ||
| 27108 | 5 | 28793 | 5 |
| 27109 | 5 | 28794 | 5 |
| 28795 | |||
| 28796 | |||
| 27110 | 5 | 28797 | 5 |
| 27111 | 5 | 28798 | 5 |
| 27112 | 5 | 28799 | 5 |
| 27113 | 5 | 28800 | 5 |
| 27114 | 5 | 28801 | 5 |
| 27115 | 28802 | ||
| 28803 | |||
| 27116 | 16 | 28804 | 16 |
| 27117 | 0 | 28805 | 0 |
| 27118 | 28806 | ||
| 27119 | 28807 | ||
| 27120 | 0 | 28808 | 0 |
| 27121 | 28809 | ||
| 28810 | |||
| 28811 | |||
| 27122 | 0 | 28812 | 0 |
| 27123 | 28813 | ||
| 27124 | 28814 | ||
| 27125 | 12 | 28815 | 12 |
| 27126 | 20 | 28816 | 20 |
| 28817 | |||
| 28818 | |||
| 27127 | 20 | 28819 | 20 |
| 28820 | |||
| 28821 | |||
| 28822 | |||
| 28823 | |||
| 27128 | 5 | 28824 | 5 |
| 27129 | 15 | 28825 | 15 |
| 28826 | |||
| 28827 | |||
| 27130 | 0 | 28828 | 0 |
| 28829 | |||
| 27131 | 16 | 28830 | 16 |
| 28831 | |||
| 28832 | |||
| 28833 | |||
| 27132 | 15 | 28834 | 15 |
| 28835 | |||
| 28836 | |||
| 28837 | |||
| 27133 | 0 | 28838 | 0 |
| 27134 | 15 | 28839 | 15 |
| 28840 | |||
| 28841 | |||
| 27135 | 15 | 28842 | 15 |
| 28843 | |||
| 28844 | |||
| 27136 | 0 | 28845 | 0 |
| 28846 | |||
| 27137 | 16 | 28847 | 16 |
| 28848 | |||
| 28849 | |||
| 28850 | |||
| 27138 | 16 | 28851 | 16 |
| 28852 | |||
| 28853 | |||
| 28854 | |||
| 28855 | |||
| 27139 | 16 | 28856 | 16 |
| 28857 | |||
| 28858 | |||
| 28859 | |||
| 27140 | 0 | 28860 | 0 |
| 27141 | 0 | 28861 | 0 |
| 28862 | |||
| 28863 | |||
| 27142 | 16 | 28864 | 16 |
| 27143 | 16 | 28865 | 16 |
| 27144 | 16 | 28866 | 16 |
| ... | @@ -27157,6 +28879,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -27157,6 +28879,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 27157 | 28879 | ||
| 27158 | 0 | 28880 | 0 |
| 27159 | 5 | 28881 | 5 |
| 28882 | |||
| 28883 | |||
| 27160 | 0 | 28884 | 0 |
| 27161 | 5 | 28885 | 5 |
| 27162 | 0 | 28886 | 0 |
| ... | @@ -27178,7 +28902,10 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -27178,7 +28902,10 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 27178 | 16 | 28902 | 16 |
| 27179 | 5 | 28903 | 5 |
| 27180 | 16 | 28904 | 16 |
| 28905 | |||
| 28906 | |||
| 27181 | 0 | 28907 | 0 |
| 28908 | |||
| 27182 | 5 | 28909 | 5 |
| 27183 | 5 | 28910 | 5 |
| 27184 | 0 | 28911 | 0 |
| ... | @@ -27192,14 +28919,17 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -27192,14 +28919,17 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 27192 | 28919 | ||
| 27193 | 27 | 28920 | 27 |
| 27194 | 28921 | ||
| 28922 | |||
| 27195 | 27 | 28923 | 27 |
| 27196 | 28924 | ||
| 27197 | 27 | 28925 | 27 |
| 27198 | 28926 | ||
| 28927 | |||
| 27199 | 27 | 28928 | 27 |
| 27200 | 28929 | ||
| 27201 | 27 | 28930 | 27 |
| 27202 | 28931 | ||
| 28932 | |||
| 27203 | 5 | 28933 | 5 |
| 27204 | 5 | 28934 | 5 |
| 27205 | 5 | 28935 | 5 |
| ... | @@ -27796,7 +29526,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -27796,7 +29526,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 27796 | 0 | 29526 | 0 |
| 27797 | 0 39 | 29527 | 0 39 |
| 27798 | 5 | 29528 | 5 |
| 27799 | 5 | 29529 | 5 42 |
| 27800 | 29530 | ||
| 27801 | 37 | 29531 | 37 |
| 27802 | 37 | 29532 | 37 |
| ... | @@ -28922,17 +30652,19 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -28922,17 +30652,19 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 28922 | 0 | 30652 | 0 |
| 28923 | 0 | 30653 | 0 |
| 28924 | 0 | 30654 | 0 |
| 30655 | 42 | ||
| 28925 | 5 | 30656 | 5 |
| 28926 | 5 | 30657 | 5 |
| 28927 | 5 | 30658 | 5 |
| 28928 | 0 5 | 30659 | 0 5 |
| 28929 | 14 15 | 30660 | 14 15 42 |
| 28930 | 0 | 30661 | 0 |
| 28931 | 5 | 30662 | 5 |
| 28932 | 0 | 30663 | 0 |
| 28933 | 0 | 30664 | 0 |
| 28934 | 0 | 30665 | 0 |
| 28935 | 0 | 30666 | 0 |
| 30667 | 42 | ||
| 28936 | 5 14 | 30668 | 5 14 |
| 28937 | 5 | 30669 | 5 |
| 28938 | 5 14 | 30670 | 5 14 |
| ... | @@ -28962,9 +30694,9 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -28962,9 +30694,9 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 28962 | 0 | 30694 | 0 |
| 28963 | 0 | 30695 | 0 |
| 28964 | 0 | 30696 | 0 |
| 28965 | 14 15 | 30697 | 14 15 42 |
| 28966 | 30 | 30698 | 30 |
| 28967 | 8 | 30699 | 8 42 |
| 28968 | 5 | 30700 | 5 |
| 28969 | 5 | 30701 | 5 |
| 28970 | 24 | 30702 | 24 |
| ... | @@ -29030,7 +30762,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -29030,7 +30762,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 29030 | 0 | 30762 | 0 |
| 29031 | 15 | 30763 | 15 |
| 29032 | 0 | 30764 | 0 |
| 29033 | 0 | 30765 | 0 42 |
| 29034 | 23 | 30766 | 23 |
| 29035 | 5 | 30767 | 5 |
| 29036 | 5 | 30768 | 5 |
| ... | @@ -29335,12 +31067,14 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -29335,12 +31067,14 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 29335 | 0 | 31067 | 0 |
| 29336 | 0 | 31068 | 0 |
| 29337 | 0 | 31069 | 0 |
| 31070 | 42 | ||
| 29338 | 0 | 31071 | 0 |
| 29339 | 0 | 31072 | 0 |
| 29340 | 0 | 31073 | 0 |
| 29341 | 0 | 31074 | 0 |
| 29342 | 0 | 31075 | 0 |
| 29343 | 0 | 31076 | 0 |
| 31077 | 42 | ||
| 29344 | 0 | 31078 | 0 |
| 29345 | 0 | 31079 | 0 |
| 29346 | 0 | 31080 | 0 |
| ... | @@ -29446,6 +31180,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf | ... | @@ -29446,6 +31180,8 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 29446 | 0 | 31180 | 0 |
| 29447 | 18 | 31181 | 18 |
| 29448 | 0 | 31182 | 0 |
| 31183 | 42 | ||
| 31184 | 42 | ||
| 29449 | 0 | 31185 | 0 |
| 29450 | 12 | 31186 | 12 |
| 29451 | 35 | 31187 | 35 |
| ... | @@ -30140,6 +31876,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30140,6 +31876,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30140 | 31876 | ||
| 30141 | 31877 | ||
| 30142 | 31878 | ||
| 31879 | |||
| 31880 | |||
| 30143 | 0 | 31881 | 0 |
| 30144 | 31882 | ||
| 30145 | 31883 | ||
| ... | @@ -30165,6 +31903,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30165,6 +31903,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30165 | 31903 | ||
| 30166 | 31904 | ||
| 30167 | 31905 | ||
| 31906 | |||
| 31907 | |||
| 30168 | 0 | 31908 | 0 |
| 30169 | 0 | 31909 | 0 |
| 30170 | 0 | 31910 | 0 |
| ... | @@ -30174,8 +31914,12 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30174,8 +31914,12 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30174 | 31914 | ||
| 30175 | 27 | 31915 | 27 |
| 30176 | 31916 | ||
| 31917 | |||
| 31918 | |||
| 30177 | 5 | 31919 | 5 |
| 30178 | 20 | 31920 | 20 |
| 31921 | |||
| 31922 | |||
| 30179 | 5 | 31923 | 5 |
| 30180 | 0 | 31924 | 0 |
| 30181 | 0 | 31925 | 0 |
| ... | @@ -30183,6 +31927,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30183,6 +31927,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30183 | 31927 | ||
| 30184 | 27 | 31928 | 27 |
| 30185 | 31929 | ||
| 31930 | |||
| 30186 | 27 | 31931 | 27 |
| 30187 | 31932 | ||
| 30188 | 27 | 31933 | 27 |
| ... | @@ -30190,26 +31935,57 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30190,26 +31935,57 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30190 | 31935 | ||
| 30191 | 31936 | ||
| 30192 | 31937 | ||
| 31938 | |||
| 31939 | |||
| 30193 | 5 | 31940 | 5 |
| 30194 | 5 | 31941 | 5 |
| 30195 | 5 | 31942 | 5 |
| 30196 | 0 | 31943 | 0 |
| 30197 | 0 | 31944 | 0 |
| 31945 | |||
| 31946 | |||
| 31947 | |||
| 31948 | |||
| 31949 | |||
| 31950 | |||
| 31951 | |||
| 31952 | |||
| 31953 | |||
| 31954 | |||
| 31955 | |||
| 31956 | |||
| 31957 | |||
| 31958 | |||
| 30198 | 0 | 31959 | 0 |
| 30199 | 15 | 31960 | 15 |
| 31961 | |||
| 30200 | 5 | 31962 | 5 |
| 30201 | 5 | 31963 | 5 |
| 31964 | |||
| 30202 | 5 | 31965 | 5 |
| 31966 | |||
| 30203 | 0 | 31967 | 0 |
| 30204 | 0 | 31968 | 0 |
| 30205 | 31969 | ||
| 30206 | 0 | 31970 | 0 |
| 30207 | 16 | 31971 | 16 |
| 31972 | |||
| 30208 | 0 | 31973 | 0 |
| 31974 | |||
| 30209 | 27 | 31975 | 27 |
| 30210 | 31976 | ||
| 30211 | 27 | 31977 | 27 |
| 30212 | 31978 | ||
| 31979 | |||
| 31980 | |||
| 31981 | |||
| 31982 | |||
| 31983 | |||
| 31984 | |||
| 31985 | |||
| 31986 | |||
| 31987 | |||
| 31988 | |||
| 30213 | 0 | 31989 | 0 |
| 30214 | 5 | 31990 | 5 |
| 30215 | 5 | 31991 | 5 |
| ... | @@ -30237,29 +32013,50 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30237,29 +32013,50 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30237 | 32013 | ||
| 30238 | 32014 | ||
| 30239 | 20 | 32015 | 20 |
| 32016 | |||
| 32017 | |||
| 30240 | 0 | 32018 | 0 |
| 30241 | 5 | 32019 | 5 |
| 30242 | 5 | 32020 | 5 |
| 30243 | 0 | 32021 | 0 |
| 30244 | 32022 | ||
| 30245 | 32023 | ||
| 32024 | |||
| 32025 | |||
| 32026 | |||
| 30246 | 0 | 32027 | 0 |
| 32028 | |||
| 32029 | |||
| 32030 | |||
| 30247 | 27 | 32031 | 27 |
| 30248 | 32032 | ||
| 30249 | 27 | 32033 | 27 |
| 30250 | 32034 | ||
| 32035 | |||
| 30251 | 27 | 32036 | 27 |
| 30252 | 32037 | ||
| 30253 | 27 | 32038 | 27 |
| 30254 | 32039 | ||
| 32040 | |||
| 30255 | 27 | 32041 | 27 |
| 30256 | 32042 | ||
| 30257 | 27 | 32043 | 27 |
| 30258 | 32044 | ||
| 30259 | 32045 | ||
| 32046 | |||
| 30260 | 35 | 32047 | 35 |
| 30261 | 32048 | ||
| 30262 | 32049 | ||
| 32050 | |||
| 32051 | |||
| 32052 | |||
| 32053 | |||
| 32054 | |||
| 32055 | |||
| 32056 | |||
| 32057 | |||
| 32058 | |||
| 32059 | |||
| 30263 | 5 | 32060 | 5 |
| 30264 | 0 | 32061 | 0 |
| 30265 | 27 | 32062 | 27 |
| ... | @@ -30270,6 +32067,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30270,6 +32067,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30270 | 32067 | ||
| 30271 | 32068 | ||
| 30272 | 32069 | ||
| 32070 | |||
| 30273 | 0 | 32071 | 0 |
| 30274 | 16 | 32072 | 16 |
| 30275 | 16 | 32073 | 16 |
| ... | @@ -30297,10 +32095,17 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30297,10 +32095,17 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30297 | 32095 | ||
| 30298 | 32096 | ||
| 30299 | 32097 | ||
| 32098 | |||
| 32099 | |||
| 32100 | |||
| 32101 | |||
| 32102 | |||
| 32103 | |||
| 30300 | 27 | 32104 | 27 |
| 30301 | 32105 | ||
| 30302 | 27 | 32106 | 27 |
| 30303 | 32107 | ||
| 32108 | |||
| 30304 | 0 | 32109 | 0 |
| 30305 | 5 | 32110 | 5 |
| 30306 | 5 | 32111 | 5 |
| ... | @@ -30308,6 +32113,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30308,6 +32113,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30308 | 32113 | ||
| 30309 | 5 | 32114 | 5 |
| 30310 | 15 | 32115 | 15 |
| 32116 | |||
| 32117 | |||
| 30311 | 0 | 32118 | 0 |
| 30312 | 5 | 32119 | 5 |
| 30313 | 0 | 32120 | 0 |
| ... | @@ -30317,10 +32124,17 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30317,10 +32124,17 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30317 | 5 | 32124 | 5 |
| 30318 | 0 | 32125 | 0 |
| 30319 | 5 | 32126 | 5 |
| 32127 | |||
| 32128 | |||
| 32129 | |||
| 32130 | |||
| 30320 | 5 | 32131 | 5 |
| 30321 | 16 | 32132 | 16 |
| 32133 | |||
| 32134 | |||
| 30322 | 5 | 32135 | 5 |
| 30323 | 5 | 32136 | 5 |
| 32137 | |||
| 30324 | 0 | 32138 | 0 |
| 30325 | 5 | 32139 | 5 |
| 30326 | 16 | 32140 | 16 |
| ... | @@ -30340,6 +32154,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30340,6 +32154,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30340 | 16 | 32154 | 16 |
| 30341 | 5 | 32155 | 5 |
| 30342 | 0 | 32156 | 0 |
| 32157 | |||
| 30343 | 0 | 32158 | 0 |
| 30344 | 0 | 32159 | 0 |
| 30345 | 15 | 32160 | 15 |
| ... | @@ -30356,6 +32171,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30356,6 +32171,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30356 | 32171 | ||
| 30357 | 27 | 32172 | 27 |
| 30358 | 32173 | ||
| 32174 | |||
| 32175 | |||
| 30359 | 5 | 32176 | 5 |
| 30360 | 5 | 32177 | 5 |
| 30361 | 5 | 32178 | 5 |
| ... | @@ -30379,17 +32196,29 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30379,17 +32196,29 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30379 | 32196 | ||
| 30380 | 0 | 32197 | 0 |
| 30381 | 19 | 32198 | 19 |
| 32199 | |||
| 30382 | 19 | 32200 | 19 |
| 32201 | |||
| 30383 | 19 | 32202 | 19 |
| 32203 | |||
| 30384 | 19 | 32204 | 19 |
| 32205 | |||
| 30385 | 19 | 32206 | 19 |
| 32207 | |||
| 30386 | 19 | 32208 | 19 |
| 32209 | |||
| 30387 | 19 | 32210 | 19 |
| 32211 | |||
| 30388 | 19 | 32212 | 19 |
| 32213 | |||
| 30389 | 19 | 32214 | 19 |
| 32215 | |||
| 30390 | 19 | 32216 | 19 |
| 32217 | |||
| 30391 | 19 | 32218 | 19 |
| 32219 | |||
| 30392 | 19 | 32220 | 19 |
| 32221 | |||
| 30393 | 5 | 32222 | 5 |
| 30394 | 5 | 32223 | 5 |
| 30395 | 30 | 32224 | 30 |
| ... | @@ -30418,23 +32247,29 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30418,23 +32247,29 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30418 | 32247 | ||
| 30419 | 27 | 32248 | 27 |
| 30420 | 32249 | ||
| 32250 | |||
| 30421 | 27 | 32251 | 27 |
| 30422 | 32252 | ||
| 30423 | 27 | 32253 | 27 |
| 30424 | 32254 | ||
| 32255 | |||
| 30425 | 27 | 32256 | 27 |
| 30426 | 32257 | ||
| 30427 | 27 | 32258 | 27 |
| 30428 | 32259 | ||
| 32260 | |||
| 30429 | 5 | 32261 | 5 |
| 30430 | 5 | 32262 | 5 |
| 30431 | 5 | 32263 | 5 |
| 30432 | 32264 | ||
| 30433 | 32265 | ||
| 32266 | |||
| 30434 | 27 | 32267 | 27 |
| 30435 | 32268 | ||
| 30436 | 27 | 32269 | 27 |
| 30437 | 32270 | ||
| 32271 | |||
| 32272 | |||
| 30438 | 5 | 32273 | 5 |
| 30439 | 0 | 32274 | 0 |
| 30440 | 5 | 32275 | 5 |
| ... | @@ -30449,23 +32284,34 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30449,23 +32284,34 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30449 | 0 | 32284 | 0 |
| 30450 | 0 | 32285 | 0 |
| 30451 | 5 | 32286 | 5 |
| 32287 | 42 | ||
| 30452 | 5 | 32288 | 5 |
| 30453 | 0 | 32289 | 0 |
| 30454 | 0 | 32290 | 0 |
| 30455 | 11 | 32291 | 8 11 |
| 32292 | |||
| 32293 | |||
| 32294 | |||
| 30456 | 27 | 32295 | 27 |
| 30457 | 32296 | ||
| 30458 | 27 | 32297 | 27 |
| 30459 | 32298 | ||
| 32299 | |||
| 32300 | |||
| 30460 | 27 | 32301 | 27 |
| 30461 | 32302 | ||
| 30462 | 27 | 32303 | 27 |
| 30463 | 32304 | ||
| 32305 | |||
| 30464 | 27 | 32306 | 27 |
| 30465 | 32307 | ||
| 32308 | |||
| 30466 | 27 | 32309 | 27 |
| 30467 | 32310 | ||
| 32311 | |||
| 30468 | 23 | 32312 | 23 |
| 32313 | |||
| 32314 | |||
| 30469 | 0 | 32315 | 0 |
| 30470 | 32316 | ||
| 30471 | 32317 | ||
| ... | @@ -30504,17 +32350,26 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30504,17 +32350,26 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30504 | 32350 | ||
| 30505 | 32351 | ||
| 30506 | 32352 | ||
| 32353 | |||
| 30507 | 0 | 32354 | 0 |
| 30508 | 0 | 32355 | 0 |
| 30509 | 19 | 32356 | 19 |
| 30510 | 32357 | ||
| 30511 | 32358 | ||
| 32359 | |||
| 30512 | 11 | 32360 | 11 |
| 30513 | 32361 | ||
| 30514 | 32362 | ||
| 30515 | 32363 | ||
| 30516 | 32364 | ||
| 32365 | |||
| 30517 | 5 | 32366 | 5 |
| 32367 | |||
| 32368 | |||
| 32369 | |||
| 32370 | |||
| 32371 | |||
| 32372 | |||
| 30518 | 5 | 32373 | 5 |
| 30519 | 32374 | ||
| 30520 | 32375 | ||
| ... | @@ -30627,7 +32482,11 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30627,7 +32482,11 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30627 | 0 | 32482 | 0 |
| 30628 | 0 | 32483 | 0 |
| 30629 | 20 | 32484 | 20 |
| 32485 | |||
| 32486 | |||
| 30630 | 20 | 32487 | 20 |
| 32488 | |||
| 32489 | |||
| 30631 | 0 | 32490 | 0 |
| 30632 | 5 | 32491 | 5 |
| 30633 | 19 | 32492 | 19 |
| ... | @@ -30645,12 +32504,16 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30645,12 +32504,16 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30645 | 27 | 32504 | 27 |
| 30646 | 32505 | ||
| 30647 | 32506 | ||
| 32507 | |||
| 30648 | 28 | 32508 | 28 |
| 30649 | 5 | 32509 | 5 |
| 30650 | 16 | 32510 | 16 |
| 30651 | 16 | 32511 | 16 |
| 30652 | 15 | 32512 | 15 |
| 32513 | |||
| 30653 | 0 | 32514 | 0 |
| 32515 | |||
| 32516 | |||
| 30654 | 0 | 32517 | 0 |
| 30655 | 0 | 32518 | 0 |
| 30656 | 0 | 32519 | 0 |
| ... | @@ -30681,6 +32544,11 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30681,6 +32544,11 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30681 | 14 | 32544 | 14 |
| 30682 | 16 | 32545 | 16 |
| 30683 | 5 | 32546 | 5 |
| 32547 | |||
| 32548 | |||
| 32549 | |||
| 32550 | |||
| 32551 | |||
| 30684 | 5 | 32552 | 5 |
| 30685 | 0 | 32553 | 0 |
| 30686 | 0 | 32554 | 0 |
| ... | @@ -30700,11 +32568,16 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30700,11 +32568,16 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30700 | 32568 | ||
| 30701 | 27 | 32569 | 27 |
| 30702 | 32570 | ||
| 32571 | |||
| 32572 | |||
| 30703 | 5 | 32573 | 5 |
| 30704 | 5 | 32574 | 5 |
| 30705 | 5 | 32575 | 5 |
| 30706 | 0 | 32576 | 0 |
| 30707 | 5 | 32577 | 5 |
| 32578 | |||
| 32579 | |||
| 32580 | |||
| 30708 | 8 | 32581 | 8 |
| 30709 | 8 | 32582 | 8 |
| 30710 | 8 | 32583 | 8 |
| ... | @@ -30713,6 +32586,10 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30713,6 +32586,10 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30713 | 27 | 32586 | 27 |
| 30714 | 27 | 32587 | 27 |
| 30715 | 32588 | ||
| 32589 | |||
| 32590 | |||
| 32591 | |||
| 32592 | |||
| 30716 | 19 | 32593 | 19 |
| 30717 | 18 | 32594 | 18 |
| 30718 | 19 | 32595 | 19 |
| ... | @@ -30726,6 +32603,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30726,6 +32603,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30726 | 0 | 32603 | 0 |
| 30727 | 0 | 32604 | 0 |
| 30728 | 5 | 32605 | 5 |
| 32606 | |||
| 32607 | |||
| 30729 | 0 | 32608 | 0 |
| 30730 | 0 | 32609 | 0 |
| 30731 | 0 | 32610 | 0 |
| ... | @@ -30736,24 +32615,34 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30736,24 +32615,34 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30736 | 32615 | ||
| 30737 | 32616 | ||
| 30738 | 33 | 32617 | 33 |
| 32618 | |||
| 30739 | 0 | 32619 | 0 |
| 30740 | 0 | 32620 | 0 |
| 30741 | 5 | 32621 | 5 |
| 30742 | 32622 | ||
| 30743 | 32623 | ||
| 30744 | 32624 | ||
| 32625 | |||
| 30745 | 27 | 32626 | 27 |
| 30746 | 32627 | ||
| 30747 | 27 | 32628 | 27 |
| 30748 | 32629 | ||
| 32630 | |||
| 32631 | |||
| 30749 | 15 | 32632 | 15 |
| 32633 | |||
| 32634 | |||
| 30750 | 15 | 32635 | 15 |
| 32636 | |||
| 32637 | |||
| 30751 | 27 | 32638 | 27 |
| 30752 | 32639 | ||
| 30753 | 32640 | ||
| 30754 | 27 | 32641 | 27 |
| 30755 | 32642 | ||
| 30756 | 32643 | ||
| 32644 | |||
| 32645 | |||
| 30757 | 16 | 32646 | 16 |
| 30758 | 16 | 32647 | 16 |
| 30759 | 5 | 32648 | 5 |
| ... | @@ -30786,6 +32675,9 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30786,6 +32675,9 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30786 | 0 | 32675 | 0 |
| 30787 | 0 | 32676 | 0 |
| 30788 | 5 | 32677 | 5 |
| 32678 | |||
| 32679 | |||
| 32680 | |||
| 30789 | 12 | 32681 | 12 |
| 30790 | 32682 | ||
| 30791 | 5 | 32683 | 5 |
| ... | @@ -30820,6 +32712,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30820,6 +32712,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30820 | 32712 | ||
| 30821 | 0 | 32713 | 0 |
| 30822 | 5 | 32714 | 5 |
| 32715 | |||
| 32716 | |||
| 30823 | 0 | 32717 | 0 |
| 30824 | 5 | 32718 | 5 |
| 30825 | 0 | 32719 | 0 |
| ... | @@ -30839,48 +32733,93 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30839,48 +32733,93 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30839 | 32733 | ||
| 30840 | 32734 | ||
| 30841 | 16 | 32735 | 16 |
| 32736 | |||
| 32737 | |||
| 32738 | |||
| 30842 | 5 | 32739 | 5 |
| 30843 | 5 | 32740 | 5 |
| 30844 | 16 | 32741 | 16 |
| 32742 | |||
| 32743 | |||
| 30845 | 0 | 32744 | 0 |
| 32745 | |||
| 32746 | |||
| 32747 | |||
| 30846 | 0 | 32748 | 0 |
| 30847 | 12 | 32749 | 12 |
| 30848 | 32750 | ||
| 30849 | 32751 | ||
| 30850 | 5 | 32752 | 5 |
| 30851 | 5 | 32753 | 5 |
| 32754 | |||
| 32755 | |||
| 30852 | 5 | 32756 | 5 |
| 30853 | 5 | 32757 | 5 |
| 30854 | 5 | 32758 | 5 |
| 30855 | 5 | 32759 | 5 |
| 30856 | 5 | 32760 | 5 |
| 30857 | 32761 | ||
| 32762 | |||
| 30858 | 16 | 32763 | 16 |
| 30859 | 0 | 32764 | 0 |
| 30860 | 32765 | ||
| 30861 | 32766 | ||
| 30862 | 0 | 32767 | 0 |
| 30863 | 32768 | ||
| 32769 | |||
| 32770 | |||
| 30864 | 0 | 32771 | 0 |
| 30865 | 32772 | ||
| 30866 | 32773 | ||
| 30867 | 12 | 32774 | 12 |
| 30868 | 20 | 32775 | 20 |
| 32776 | |||
| 32777 | |||
| 30869 | 20 | 32778 | 20 |
| 32779 | |||
| 32780 | |||
| 32781 | |||
| 32782 | |||
| 30870 | 5 | 32783 | 5 |
| 30871 | 15 | 32784 | 15 |
| 32785 | |||
| 32786 | |||
| 30872 | 0 | 32787 | 0 |
| 32788 | |||
| 30873 | 16 | 32789 | 16 |
| 32790 | |||
| 32791 | |||
| 32792 | |||
| 30874 | 15 | 32793 | 15 |
| 32794 | |||
| 32795 | |||
| 32796 | |||
| 30875 | 0 | 32797 | 0 |
| 30876 | 15 | 32798 | 15 |
| 32799 | |||
| 32800 | |||
| 30877 | 15 | 32801 | 15 |
| 32802 | |||
| 32803 | |||
| 30878 | 0 | 32804 | 0 |
| 32805 | |||
| 30879 | 16 | 32806 | 16 |
| 32807 | |||
| 32808 | |||
| 32809 | |||
| 30880 | 16 | 32810 | 16 |
| 32811 | |||
| 32812 | |||
| 32813 | |||
| 32814 | |||
| 30881 | 16 | 32815 | 16 |
| 32816 | |||
| 32817 | |||
| 32818 | |||
| 30882 | 0 | 32819 | 0 |
| 30883 | 0 | 32820 | 0 |
| 32821 | |||
| 32822 | |||
| 30884 | 16 | 32823 | 16 |
| 30885 | 16 | 32824 | 16 |
| 30886 | 16 | 32825 | 16 |
| ... | @@ -30899,6 +32838,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30899,6 +32838,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30899 | 32838 | ||
| 30900 | 0 | 32839 | 0 |
| 30901 | 5 | 32840 | 5 |
| 32841 | |||
| 32842 | |||
| 30902 | 0 | 32843 | 0 |
| 30903 | 5 | 32844 | 5 |
| 30904 | 0 | 32845 | 0 |
| ... | @@ -30920,7 +32861,10 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30920,7 +32861,10 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30920 | 16 | 32861 | 16 |
| 30921 | 5 | 32862 | 5 |
| 30922 | 16 | 32863 | 16 |
| 32864 | |||
| 32865 | |||
| 30923 | 0 | 32866 | 0 |
| 32867 | |||
| 30924 | 5 | 32868 | 5 |
| 30925 | 5 | 32869 | 5 |
| 30926 | 0 | 32870 | 0 |
| ... | @@ -30934,14 +32878,17 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -30934,14 +32878,17 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30934 | 32878 | ||
| 30935 | 27 | 32879 | 27 |
| 30936 | 32880 | ||
| 32881 | |||
| 30937 | 27 | 32882 | 27 |
| 30938 | 32883 | ||
| 30939 | 27 | 32884 | 27 |
| 30940 | 32885 | ||
| 32886 | |||
| 30941 | 27 | 32887 | 27 |
| 30942 | 32888 | ||
| 30943 | 27 | 32889 | 27 |
| 30944 | 32890 | ||
| 32891 | |||
| 30945 | 5 | 32892 | 5 |
| 30946 | 5 | 32893 | 5 |
| 30947 | 5 | 32894 | 5 |
| ... | @@ -31538,7 +33485,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -31538,7 +33485,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 31538 | 0 | 33485 | 0 |
| 31539 | 0 39 | 33486 | 0 39 |
| 31540 | 5 | 33487 | 5 |
| 31541 | 5 | 33488 | 5 42 |
| 31542 | 33489 | ||
| 31543 | 37 | 33490 | 37 |
| 31544 | 37 | 33491 | 37 |
| ... | @@ -32664,17 +34611,19 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -32664,17 +34611,19 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 32664 | 0 | 34611 | 0 |
| 32665 | 0 | 34612 | 0 |
| 32666 | 0 | 34613 | 0 |
| 34614 | 42 | ||
| 32667 | 5 | 34615 | 5 |
| 32668 | 5 | 34616 | 5 |
| 32669 | 5 | 34617 | 5 |
| 32670 | 0 5 | 34618 | 0 5 |
| 32671 | 14 15 | 34619 | 14 15 42 |
| 32672 | 0 | 34620 | 0 |
| 32673 | 5 | 34621 | 5 |
| 32674 | 0 | 34622 | 0 |
| 32675 | 0 | 34623 | 0 |
| 32676 | 0 | 34624 | 0 |
| 32677 | 0 | 34625 | 0 |
| 34626 | 42 | ||
| 32678 | 5 14 | 34627 | 5 14 |
| 32679 | 5 | 34628 | 5 |
| 32680 | 5 14 | 34629 | 5 14 |
| ... | @@ -32704,9 +34653,9 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -32704,9 +34653,9 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 32704 | 0 | 34653 | 0 |
| 32705 | 0 | 34654 | 0 |
| 32706 | 0 | 34655 | 0 |
| 32707 | 14 15 | 34656 | 14 15 42 |
| 32708 | 30 | 34657 | 30 |
| 32709 | 8 | 34658 | 8 42 |
| 32710 | 5 | 34659 | 5 |
| 32711 | 5 | 34660 | 5 |
| 32712 | 24 | 34661 | 24 |
| ... | @@ -32772,7 +34721,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -32772,7 +34721,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 32772 | 0 | 34721 | 0 |
| 32773 | 15 | 34722 | 15 |
| 32774 | 0 | 34723 | 0 |
| 32775 | 0 | 34724 | 0 42 |
| 32776 | 23 | 34725 | 23 |
| 32777 | 5 | 34726 | 5 |
| 32778 | 5 | 34727 | 5 |
| ... | @@ -33077,12 +35026,14 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -33077,12 +35026,14 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 33077 | 0 | 35026 | 0 |
| 33078 | 0 | 35027 | 0 |
| 33079 | 0 | 35028 | 0 |
| 35029 | 42 | ||
| 33080 | 0 | 35030 | 0 |
| 33081 | 0 | 35031 | 0 |
| 33082 | 0 | 35032 | 0 |
| 33083 | 0 | 35033 | 0 |
| 33084 | 0 | 35034 | 0 |
| 33085 | 0 | 35035 | 0 |
| 35036 | 42 | ||
| 33086 | 0 | 35037 | 0 |
| 33087 | 0 | 35038 | 0 |
| 33088 | 0 | 35039 | 0 |
| ... | @@ -33188,6 +35139,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi | ... | @@ -33188,6 +35139,8 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 33188 | 0 | 35139 | 0 |
| 33189 | 18 | 35140 | 18 |
| 33190 | 0 | 35141 | 0 |
| 35142 | 42 | ||
| 35143 | 42 | ||
| 33191 | 0 | 35144 | 0 |
| 33192 | 12 | 35145 | 12 |
| 33193 | 35 | 35146 | 35 |
| ... | @@ -33878,7 +35831,9 @@ x86_64-linux-gnu | ... | @@ -33878,7 +35831,9 @@ x86_64-linux-gnu |
| 33878 | 27 | 35831 | 27 |
| 33879 | 36 | 35832 | 36 |
| 33880 | 27 | 35833 | 27 |
| 35834 | |||
| 33881 | 27 | 35835 | 27 |
| 35836 | |||
| 33882 | 27 | 35837 | 27 |
| 33883 | 35838 | ||
| 33884 | 35839 | ||
| ... | @@ -33907,6 +35862,8 @@ x86_64-linux-gnu | ... | @@ -33907,6 +35862,8 @@ x86_64-linux-gnu |
| 33907 | 35862 | ||
| 33908 | 35863 | ||
| 33909 | 10 | 35864 | 10 |
| 35865 | |||
| 35866 | |||
| 33910 | 10 | 35867 | 10 |
| 33911 | 10 | 35868 | 10 |
| 33912 | 10 | 35869 | 10 |
| ... | @@ -33915,43 +35872,79 @@ x86_64-linux-gnu | ... | @@ -33915,43 +35872,79 @@ x86_64-linux-gnu |
| 33915 | 27 | 35872 | 27 |
| 33916 | 36 | 35873 | 36 |
| 33917 | 27 | 35874 | 27 |
| 35875 | |||
| 35876 | |||
| 33918 | 27 | 35877 | 27 |
| 33919 | 10 | 35878 | 10 |
| 33920 | 20 | 35879 | 20 |
| 35880 | |||
| 35881 | |||
| 33921 | 10 | 35882 | 10 |
| 33922 | 10 | 35883 | 10 |
| 33923 | 10 | 35884 | 10 |
| 33924 | 27 | 35885 | 27 |
| 33925 | 36 | 35886 | 36 |
| 33926 | 27 | 35887 | 27 |
| 35888 | |||
| 33927 | 27 | 35889 | 27 |
| 33928 | 27 | 35890 | 27 |
| 33929 | 36 | 35891 | 36 |
| 33930 | 27 | 35892 | 27 |
| 35893 | |||
| 33931 | 27 | 35894 | 27 |
| 33932 | 35895 | ||
| 33933 | 35896 | ||
| 33934 | 35897 | ||
| 35898 | |||
| 33935 | 10 | 35899 | 10 |
| 33936 | 10 | 35900 | 10 |
| 33937 | 10 | 35901 | 10 |
| 33938 | 10 | 35902 | 10 |
| 33939 | 10 | 35903 | 10 |
| 35904 | |||
| 35905 | |||
| 35906 | |||
| 35907 | |||
| 35908 | |||
| 35909 | |||
| 35910 | |||
| 35911 | |||
| 35912 | |||
| 35913 | |||
| 35914 | |||
| 35915 | |||
| 35916 | |||
| 35917 | |||
| 33940 | 10 | 35918 | 10 |
| 33941 | 15 | 35919 | 15 |
| 35920 | |||
| 33942 | 10 | 35921 | 10 |
| 33943 | 10 | 35922 | 10 |
| 35923 | |||
| 33944 | 10 | 35924 | 10 |
| 35925 | |||
| 33945 | 10 | 35926 | 10 |
| 33946 | 10 | 35927 | 10 |
| 33947 | 35928 | ||
| 33948 | 10 | 35929 | 10 |
| 33949 | 16 | 35930 | 16 |
| 35931 | |||
| 33950 | 10 | 35932 | 10 |
| 35933 | |||
| 33951 | 27 | 35934 | 27 |
| 33952 | 36 | 35935 | 36 |
| 33953 | 27 | 35936 | 27 |
| 35937 | |||
| 33954 | 27 | 35938 | 27 |
| 35939 | |||
| 35940 | |||
| 35941 | |||
| 35942 | |||
| 35943 | |||
| 35944 | |||
| 35945 | |||
| 35946 | |||
| 35947 | |||
| 33955 | 10 | 35948 | 10 |
| 33956 | 10 | 35949 | 10 |
| 33957 | 10 | 35950 | 10 |
| ... | @@ -33979,29 +35972,50 @@ x86_64-linux-gnu | ... | @@ -33979,29 +35972,50 @@ x86_64-linux-gnu |
| 33979 | 35972 | ||
| 33980 | 35973 | ||
| 33981 | 20 | 35974 | 20 |
| 35975 | |||
| 35976 | |||
| 33982 | 10 | 35977 | 10 |
| 33983 | 10 | 35978 | 10 |
| 33984 | 10 | 35979 | 10 |
| 33985 | 10 | 35980 | 10 |
| 33986 | 35981 | ||
| 33987 | 35982 | ||
| 35983 | |||
| 35984 | |||
| 35985 | |||
| 33988 | 10 | 35986 | 10 |
| 35987 | |||
| 35988 | |||
| 35989 | |||
| 33989 | 27 | 35990 | 27 |
| 33990 | 36 | 35991 | 36 |
| 33991 | 27 | 35992 | 27 |
| 35993 | |||
| 33992 | 27 | 35994 | 27 |
| 33993 | 27 | 35995 | 27 |
| 33994 | 36 | 35996 | 36 |
| 33995 | 27 | 35997 | 27 |
| 35998 | |||
| 33996 | 27 | 35999 | 27 |
| 33997 | 27 | 36000 | 27 |
| 33998 | 36 | 36001 | 36 |
| 33999 | 27 | 36002 | 27 |
| 34000 | 36003 | ||
| 36004 | |||
| 34001 | 27 | 36005 | 27 |
| 34002 | 35 | 36006 | 35 |
| 34003 | 36007 | ||
| 34004 | 36008 | ||
| 36009 | |||
| 36010 | |||
| 36011 | |||
| 36012 | |||
| 36013 | |||
| 36014 | |||
| 36015 | |||
| 36016 | |||
| 36017 | |||
| 36018 | |||
| 34005 | 10 | 36019 | 10 |
| 34006 | 10 | 36020 | 10 |
| 34007 | 27 | 36021 | 27 |
| ... | @@ -34011,6 +36025,7 @@ x86_64-linux-gnu | ... | @@ -34011,6 +36025,7 @@ x86_64-linux-gnu |
| 34011 | 36025 | ||
| 34012 | 36026 | ||
| 34013 | 36027 | ||
| 36028 | |||
| 34014 | 25 | 36029 | 25 |
| 34015 | 10 | 36030 | 10 |
| 34016 | 16 | 36031 | 16 |
| ... | @@ -34039,9 +36054,16 @@ x86_64-linux-gnu | ... | @@ -34039,9 +36054,16 @@ x86_64-linux-gnu |
| 34039 | 36054 | ||
| 34040 | 36055 | ||
| 34041 | 36056 | ||
| 36057 | |||
| 36058 | |||
| 36059 | |||
| 36060 | |||
| 36061 | |||
| 36062 | |||
| 34042 | 27 | 36063 | 27 |
| 34043 | 36 | 36064 | 36 |
| 34044 | 27 | 36065 | 27 |
| 36066 | |||
| 34045 | 27 | 36067 | 27 |
| 34046 | 10 | 36068 | 10 |
| 34047 | 10 | 36069 | 10 |
| ... | @@ -34050,6 +36072,8 @@ x86_64-linux-gnu | ... | @@ -34050,6 +36072,8 @@ x86_64-linux-gnu |
| 34050 | 10 | 36072 | 10 |
| 34051 | 10 | 36073 | 10 |
| 34052 | 15 | 36074 | 15 |
| 36075 | |||
| 36076 | |||
| 34053 | 10 | 36077 | 10 |
| 34054 | 10 | 36078 | 10 |
| 34055 | 36079 | ||
| ... | @@ -34059,10 +36083,17 @@ x86_64-linux-gnu | ... | @@ -34059,10 +36083,17 @@ x86_64-linux-gnu |
| 34059 | 10 | 36083 | 10 |
| 34060 | 10 | 36084 | 10 |
| 34061 | 10 | 36085 | 10 |
| 36086 | |||
| 36087 | |||
| 36088 | |||
| 36089 | |||
| 34062 | 10 | 36090 | 10 |
| 34063 | 16 | 36091 | 16 |
| 36092 | |||
| 36093 | |||
| 34064 | 10 | 36094 | 10 |
| 34065 | 10 | 36095 | 10 |
| 36096 | |||
| 34066 | 10 | 36097 | 10 |
| 34067 | 10 | 36098 | 10 |
| 34068 | 16 | 36099 | 16 |
| ... | @@ -34082,6 +36113,7 @@ x86_64-linux-gnu | ... | @@ -34082,6 +36113,7 @@ x86_64-linux-gnu |
| 34082 | 16 | 36113 | 16 |
| 34083 | 10 | 36114 | 10 |
| 34084 | 10 | 36115 | 10 |
| 36116 | |||
| 34085 | 10 | 36117 | 10 |
| 34086 | 10 | 36118 | 10 |
| 34087 | 15 | 36119 | 15 |
| ... | @@ -34097,7 +36129,9 @@ x86_64-linux-gnu | ... | @@ -34097,7 +36129,9 @@ x86_64-linux-gnu |
| 34097 | 27 | 36129 | 27 |
| 34098 | 36 | 36130 | 36 |
| 34099 | 27 | 36131 | 27 |
| 36132 | |||
| 34100 | 27 | 36133 | 27 |
| 36134 | |||
| 34101 | 10 | 36135 | 10 |
| 34102 | 10 | 36136 | 10 |
| 34103 | 10 | 36137 | 10 |
| ... | @@ -34121,17 +36155,29 @@ x86_64-linux-gnu | ... | @@ -34121,17 +36155,29 @@ x86_64-linux-gnu |
| 34121 | 36 | 36155 | 36 |
| 34122 | 10 | 36156 | 10 |
| 34123 | 19 | 36157 | 19 |
| 36158 | |||
| 34124 | 19 | 36159 | 19 |
| 36160 | |||
| 34125 | 19 | 36161 | 19 |
| 36162 | |||
| 34126 | 19 | 36163 | 19 |
| 36164 | |||
| 34127 | 19 | 36165 | 19 |
| 36166 | |||
| 34128 | 19 | 36167 | 19 |
| 36168 | |||
| 34129 | 19 | 36169 | 19 |
| 36170 | |||
| 34130 | 19 | 36171 | 19 |
| 36172 | |||
| 34131 | 19 | 36173 | 19 |
| 36174 | |||
| 34132 | 19 | 36175 | 19 |
| 36176 | |||
| 34133 | 19 | 36177 | 19 |
| 36178 | |||
| 34134 | 19 | 36179 | 19 |
| 36180 | |||
| 34135 | 10 | 36181 | 10 |
| 34136 | 10 | 36182 | 10 |
| 34137 | 30 | 36183 | 30 |
| ... | @@ -34159,23 +36205,29 @@ x86_64-linux-gnu | ... | @@ -34159,23 +36205,29 @@ x86_64-linux-gnu |
| 34159 | 27 | 36205 | 27 |
| 34160 | 36 | 36206 | 36 |
| 34161 | 27 | 36207 | 27 |
| 36208 | |||
| 34162 | 27 | 36209 | 27 |
| 34163 | 27 | 36210 | 27 |
| 34164 | 36 | 36211 | 36 |
| 34165 | 27 | 36212 | 27 |
| 36213 | |||
| 34166 | 27 | 36214 | 27 |
| 34167 | 27 | 36215 | 27 |
| 34168 | 36 | 36216 | 36 |
| 34169 | 27 | 36217 | 27 |
| 36218 | |||
| 34170 | 27 | 36219 | 27 |
| 34171 | 10 | 36220 | 10 |
| 34172 | 10 | 36221 | 10 |
| 34173 | 10 | 36222 | 10 |
| 34174 | 36223 | ||
| 34175 | 36224 | ||
| 36225 | |||
| 34176 | 27 | 36226 | 27 |
| 34177 | 36 | 36227 | 36 |
| 34178 | 27 | 36228 | 27 |
| 36229 | |||
| 36230 | |||
| 34179 | 27 | 36231 | 27 |
| 34180 | 10 | 36232 | 10 |
| 34181 | 10 | 36233 | 10 |
| ... | @@ -34191,23 +36243,34 @@ x86_64-linux-gnu | ... | @@ -34191,23 +36243,34 @@ x86_64-linux-gnu |
| 34191 | 10 | 36243 | 10 |
| 34192 | 10 | 36244 | 10 |
| 34193 | 10 | 36245 | 10 |
| 36246 | 42 | ||
| 34194 | 10 | 36247 | 10 |
| 34195 | 10 | 36248 | 10 |
| 34196 | 10 | 36249 | 10 |
| 34197 | 11 | 36250 | 11 |
| 36251 | |||
| 36252 | |||
| 36253 | |||
| 34198 | 27 | 36254 | 27 |
| 34199 | 36 | 36255 | 36 |
| 34200 | 27 | 36256 | 27 |
| 36257 | |||
| 34201 | 27 | 36258 | 27 |
| 36259 | |||
| 34202 | 27 | 36260 | 27 |
| 34203 | 36 | 36261 | 36 |
| 34204 | 27 | 36262 | 27 |
| 36263 | |||
| 34205 | 27 | 36264 | 27 |
| 34206 | 27 | 36265 | 27 |
| 36266 | |||
| 34207 | 36 | 36267 | 36 |
| 34208 | 27 | 36268 | 27 |
| 36269 | |||
| 34209 | 27 | 36270 | 27 |
| 34210 | 23 | 36271 | 23 |
| 36272 | |||
| 36273 | |||
| 34211 | 10 | 36274 | 10 |
| 34212 | 36275 | ||
| 34213 | 36276 | ||
| ... | @@ -34246,17 +36309,26 @@ x86_64-linux-gnu | ... | @@ -34246,17 +36309,26 @@ x86_64-linux-gnu |
| 34246 | 36309 | ||
| 34247 | 36310 | ||
| 34248 | 36311 | ||
| 36312 | |||
| 34249 | 10 | 36313 | 10 |
| 34250 | 10 | 36314 | 10 |
| 34251 | 19 | 36315 | 19 |
| 34252 | 36316 | ||
| 34253 | 36317 | ||
| 36318 | |||
| 34254 | 11 | 36319 | 11 |
| 34255 | 36320 | ||
| 34256 | 36321 | ||
| 34257 | 36322 | ||
| 34258 | 36323 | ||
| 36324 | |||
| 34259 | 10 | 36325 | 10 |
| 36326 | |||
| 36327 | |||
| 36328 | |||
| 36329 | |||
| 36330 | |||
| 36331 | |||
| 34260 | 10 | 36332 | 10 |
| 34261 | 36333 | ||
| 34262 | 36334 | ||
| ... | @@ -34369,7 +36441,11 @@ x86_64-linux-gnu | ... | @@ -34369,7 +36441,11 @@ x86_64-linux-gnu |
| 34369 | 10 | 36441 | 10 |
| 34370 | 10 | 36442 | 10 |
| 34371 | 20 | 36443 | 20 |
| 36444 | |||
| 36445 | |||
| 34372 | 20 | 36446 | 20 |
| 36447 | |||
| 36448 | |||
| 34373 | 10 | 36449 | 10 |
| 34374 | 10 | 36450 | 10 |
| 34375 | 19 | 36451 | 19 |
| ... | @@ -34385,6 +36461,7 @@ x86_64-linux-gnu | ... | @@ -34385,6 +36461,7 @@ x86_64-linux-gnu |
| 34385 | 27 | 36461 | 27 |
| 34386 | 36 | 36462 | 36 |
| 34387 | 27 | 36463 | 27 |
| 36464 | |||
| 34388 | 27 | 36465 | 27 |
| 34389 | 36466 | ||
| 34390 | 28 | 36467 | 28 |
| ... | @@ -34392,7 +36469,10 @@ x86_64-linux-gnu | ... | @@ -34392,7 +36469,10 @@ x86_64-linux-gnu |
| 34392 | 16 | 36469 | 16 |
| 34393 | 16 | 36470 | 16 |
| 34394 | 15 | 36471 | 15 |
| 36472 | |||
| 34395 | 10 | 36473 | 10 |
| 36474 | |||
| 36475 | |||
| 34396 | 10 | 36476 | 10 |
| 34397 | 10 | 36477 | 10 |
| 34398 | 10 | 36478 | 10 |
| ... | @@ -34423,6 +36503,11 @@ x86_64-linux-gnu | ... | @@ -34423,6 +36503,11 @@ x86_64-linux-gnu |
| 34423 | 14 | 36503 | 14 |
| 34424 | 16 | 36504 | 16 |
| 34425 | 10 | 36505 | 10 |
| 36506 | |||
| 36507 | |||
| 36508 | |||
| 36509 | |||
| 36510 | |||
| 34426 | 10 | 36511 | 10 |
| 34427 | 10 | 36512 | 10 |
| 34428 | 10 | 36513 | 10 |
| ... | @@ -34441,12 +36526,17 @@ x86_64-linux-gnu | ... | @@ -34441,12 +36526,17 @@ x86_64-linux-gnu |
| 34441 | 27 | 36526 | 27 |
| 34442 | 36 | 36527 | 36 |
| 34443 | 27 | 36528 | 27 |
| 36529 | |||
| 34444 | 27 | 36530 | 27 |
| 36531 | |||
| 34445 | 10 | 36532 | 10 |
| 34446 | 10 | 36533 | 10 |
| 34447 | 10 | 36534 | 10 |
| 34448 | 10 | 36535 | 10 |
| 34449 | 10 | 36536 | 10 |
| 36537 | |||
| 36538 | |||
| 36539 | |||
| 34450 | 10 | 36540 | 10 |
| 34451 | 10 | 36541 | 10 |
| 34452 | 10 | 36542 | 10 |
| ... | @@ -34454,7 +36544,11 @@ x86_64-linux-gnu | ... | @@ -34454,7 +36544,11 @@ x86_64-linux-gnu |
| 34454 | 10 | 36544 | 10 |
| 34455 | 27 | 36545 | 27 |
| 34456 | 27 | 36546 | 27 |
| 36547 | |||
| 34457 | 27 | 36548 | 27 |
| 36549 | |||
| 36550 | |||
| 36551 | |||
| 34458 | 19 | 36552 | 19 |
| 34459 | 18 | 36553 | 18 |
| 34460 | 19 | 36554 | 19 |
| ... | @@ -34468,6 +36562,8 @@ x86_64-linux-gnu | ... | @@ -34468,6 +36562,8 @@ x86_64-linux-gnu |
| 34468 | 10 | 36562 | 10 |
| 34469 | 10 | 36563 | 10 |
| 34470 | 10 | 36564 | 10 |
| 36565 | |||
| 36566 | |||
| 34471 | 10 | 36567 | 10 |
| 34472 | 10 | 36568 | 10 |
| 34473 | 10 | 36569 | 10 |
| ... | @@ -34478,24 +36574,34 @@ x86_64-linux-gnu | ... | @@ -34478,24 +36574,34 @@ x86_64-linux-gnu |
| 34478 | 36 | 36574 | 36 |
| 34479 | 10 | 36575 | 10 |
| 34480 | 33 | 36576 | 33 |
| 36577 | |||
| 34481 | 10 | 36578 | 10 |
| 34482 | 10 | 36579 | 10 |
| 34483 | 10 | 36580 | 10 |
| 34484 | 36581 | ||
| 34485 | 36582 | ||
| 34486 | 36583 | ||
| 36584 | |||
| 34487 | 27 | 36585 | 27 |
| 34488 | 36 | 36586 | 36 |
| 34489 | 27 | 36587 | 27 |
| 36588 | |||
| 34490 | 27 | 36589 | 27 |
| 36590 | |||
| 34491 | 15 | 36591 | 15 |
| 36592 | |||
| 36593 | |||
| 34492 | 15 | 36594 | 15 |
| 36595 | |||
| 36596 | |||
| 34493 | 27 | 36597 | 27 |
| 34494 | 36598 | ||
| 34495 | 36 | 36599 | 36 |
| 34496 | 27 | 36600 | 27 |
| 36601 | |||
| 34497 | 27 | 36602 | 27 |
| 34498 | 36603 | ||
| 36604 | |||
| 34499 | 16 | 36605 | 16 |
| 34500 | 36606 | ||
| 34501 | 10 | 36607 | 10 |
| ... | @@ -34528,6 +36634,9 @@ x86_64-linux-gnu | ... | @@ -34528,6 +36634,9 @@ x86_64-linux-gnu |
| 34528 | 10 | 36634 | 10 |
| 34529 | 10 | 36635 | 10 |
| 34530 | 10 | 36636 | 10 |
| 36637 | |||
| 36638 | |||
| 36639 | |||
| 34531 | 12 | 36640 | 12 |
| 34532 | 36641 | ||
| 34533 | 10 | 36642 | 10 |
| ... | @@ -34562,6 +36671,8 @@ x86_64-linux-gnu | ... | @@ -34562,6 +36671,8 @@ x86_64-linux-gnu |
| 34562 | 36 | 36671 | 36 |
| 34563 | 10 | 36672 | 10 |
| 34564 | 10 | 36673 | 10 |
| 36674 | |||
| 36675 | |||
| 34565 | 10 | 36676 | 10 |
| 34566 | 10 | 36677 | 10 |
| 34567 | 10 | 36678 | 10 |
| ... | @@ -34581,48 +36692,93 @@ x86_64-linux-gnu | ... | @@ -34581,48 +36692,93 @@ x86_64-linux-gnu |
| 34581 | 36692 | ||
| 34582 | 36693 | ||
| 34583 | 16 | 36694 | 16 |
| 36695 | |||
| 36696 | |||
| 36697 | |||
| 34584 | 10 | 36698 | 10 |
| 34585 | 10 | 36699 | 10 |
| 34586 | 16 | 36700 | 16 |
| 36701 | |||
| 36702 | |||
| 34587 | 10 | 36703 | 10 |
| 36704 | |||
| 36705 | |||
| 36706 | |||
| 34588 | 10 | 36707 | 10 |
| 34589 | 12 | 36708 | 12 |
| 34590 | 36709 | ||
| 34591 | 36710 | ||
| 34592 | 10 | 36711 | 10 |
| 34593 | 10 | 36712 | 10 |
| 36713 | |||
| 36714 | |||
| 34594 | 10 | 36715 | 10 |
| 34595 | 10 | 36716 | 10 |
| 34596 | 10 | 36717 | 10 |
| 34597 | 10 | 36718 | 10 |
| 34598 | 10 | 36719 | 10 |
| 34599 | 36720 | ||
| 36721 | |||
| 34600 | 16 | 36722 | 16 |
| 34601 | 10 | 36723 | 10 |
| 34602 | 36724 | ||
| 34603 | 36725 | ||
| 34604 | 10 | 36726 | 10 |
| 34605 | 36727 | ||
| 36728 | |||
| 36729 | |||
| 34606 | 10 | 36730 | 10 |
| 34607 | 36731 | ||
| 34608 | 36732 | ||
| 34609 | 12 | 36733 | 12 |
| 34610 | 20 | 36734 | 20 |
| 36735 | |||
| 36736 | |||
| 34611 | 20 | 36737 | 20 |
| 36738 | |||
| 36739 | |||
| 36740 | |||
| 36741 | |||
| 34612 | 10 | 36742 | 10 |
| 34613 | 15 | 36743 | 15 |
| 36744 | |||
| 36745 | |||
| 34614 | 10 | 36746 | 10 |
| 36747 | |||
| 34615 | 16 | 36748 | 16 |
| 36749 | |||
| 36750 | |||
| 36751 | |||
| 34616 | 15 | 36752 | 15 |
| 36753 | |||
| 36754 | |||
| 36755 | |||
| 34617 | 10 | 36756 | 10 |
| 34618 | 15 | 36757 | 15 |
| 36758 | |||
| 36759 | |||
| 34619 | 15 | 36760 | 15 |
| 36761 | |||
| 36762 | |||
| 34620 | 10 | 36763 | 10 |
| 36764 | |||
| 34621 | 16 | 36765 | 16 |
| 36766 | |||
| 36767 | |||
| 36768 | |||
| 34622 | 16 | 36769 | 16 |
| 36770 | |||
| 36771 | |||
| 36772 | |||
| 36773 | |||
| 34623 | 16 | 36774 | 16 |
| 36775 | |||
| 36776 | |||
| 36777 | |||
| 34624 | 10 | 36778 | 10 |
| 34625 | 10 | 36779 | 10 |
| 36780 | |||
| 36781 | |||
| 34626 | 16 | 36782 | 16 |
| 34627 | 16 | 36783 | 16 |
| 34628 | 16 | 36784 | 16 |
| ... | @@ -34641,6 +36797,8 @@ x86_64-linux-gnu | ... | @@ -34641,6 +36797,8 @@ x86_64-linux-gnu |
| 34641 | 36 | 36797 | 36 |
| 34642 | 10 | 36798 | 10 |
| 34643 | 10 | 36799 | 10 |
| 36800 | |||
| 36801 | |||
| 34644 | 10 | 36802 | 10 |
| 34645 | 10 | 36803 | 10 |
| 34646 | 10 | 36804 | 10 |
| ... | @@ -34662,7 +36820,10 @@ x86_64-linux-gnu | ... | @@ -34662,7 +36820,10 @@ x86_64-linux-gnu |
| 34662 | 16 | 36820 | 16 |
| 34663 | 10 | 36821 | 10 |
| 34664 | 16 | 36822 | 16 |
| 36823 | |||
| 36824 | |||
| 34665 | 10 | 36825 | 10 |
| 36826 | |||
| 34666 | 10 | 36827 | 10 |
| 34667 | 10 | 36828 | 10 |
| 34668 | 10 | 36829 | 10 |
| ... | @@ -34675,14 +36836,17 @@ x86_64-linux-gnu | ... | @@ -34675,14 +36836,17 @@ x86_64-linux-gnu |
| 34675 | 27 | 36836 | 27 |
| 34676 | 36 | 36837 | 36 |
| 34677 | 27 | 36838 | 27 |
| 36839 | |||
| 34678 | 27 | 36840 | 27 |
| 34679 | 27 | 36841 | 27 |
| 34680 | 36 | 36842 | 36 |
| 34681 | 27 | 36843 | 27 |
| 36844 | |||
| 34682 | 27 | 36845 | 27 |
| 34683 | 27 | 36846 | 27 |
| 34684 | 36 | 36847 | 36 |
| 34685 | 27 | 36848 | 27 |
| 36849 | |||
| 34686 | 27 | 36850 | 27 |
| 34687 | 10 | 36851 | 10 |
| 34688 | 10 | 36852 | 10 |
| ... | @@ -35280,7 +37444,7 @@ x86_64-linux-gnu | ... | @@ -35280,7 +37444,7 @@ x86_64-linux-gnu |
| 35280 | 10 | 37444 | 10 |
| 35281 | 10 39 | 37445 | 10 39 |
| 35282 | 10 | 37446 | 10 |
| 35283 | 10 | 37447 | 10 42 |
| 35284 | 36 | 37448 | 36 |
| 35285 | 37 | 37449 | 37 |
| 35286 | 37 | 37450 | 37 |
| ... | @@ -36406,17 +38570,19 @@ x86_64-linux-gnu | ... | @@ -36406,17 +38570,19 @@ x86_64-linux-gnu |
| 36406 | 10 | 38570 | 10 |
| 36407 | 10 | 38571 | 10 |
| 36408 | 10 | 38572 | 10 |
| 38573 | 42 | ||
| 36409 | 10 | 38574 | 10 |
| 36410 | 10 | 38575 | 10 |
| 36411 | 10 | 38576 | 10 |
| 36412 | 10 | 38577 | 10 |
| 36413 | 14 15 | 38578 | 14 15 42 |
| 36414 | 10 | 38579 | 10 |
| 36415 | 10 | 38580 | 10 |
| 36416 | 10 | 38581 | 10 |
| 36417 | 10 | 38582 | 10 |
| 36418 | 10 | 38583 | 10 |
| 36419 | 10 | 38584 | 10 |
| 38585 | 42 | ||
| 36420 | 10 | 38586 | 10 |
| 36421 | 10 | 38587 | 10 |
| 36422 | 10 | 38588 | 10 |
| ... | @@ -36446,9 +38612,9 @@ x86_64-linux-gnu | ... | @@ -36446,9 +38612,9 @@ x86_64-linux-gnu |
| 36446 | 10 | 38612 | 10 |
| 36447 | 10 | 38613 | 10 |
| 36448 | 10 | 38614 | 10 |
| 36449 | 14 15 | 38615 | 14 15 42 |
| 36450 | 30 | 38616 | 30 |
| 36451 | 10 | 38617 | 10 42 |
| 36452 | 10 | 38618 | 10 |
| 36453 | 10 | 38619 | 10 |
| 36454 | 24 | 38620 | 24 |
| ... | @@ -36514,7 +38680,7 @@ x86_64-linux-gnu | ... | @@ -36514,7 +38680,7 @@ x86_64-linux-gnu |
| 36514 | 10 | 38680 | 10 |
| 36515 | 15 | 38681 | 15 |
| 36516 | 10 | 38682 | 10 |
| 36517 | 10 | 38683 | 10 42 |
| 36518 | 23 | 38684 | 23 |
| 36519 | 10 | 38685 | 10 |
| 36520 | 10 | 38686 | 10 |
| ... | @@ -36819,12 +38985,14 @@ x86_64-linux-gnu | ... | @@ -36819,12 +38985,14 @@ x86_64-linux-gnu |
| 36819 | 10 | 38985 | 10 |
| 36820 | 10 | 38986 | 10 |
| 36821 | 10 | 38987 | 10 |
| 38988 | 42 | ||
| 36822 | 10 | 38989 | 10 |
| 36823 | 10 | 38990 | 10 |
| 36824 | 10 | 38991 | 10 |
| 36825 | 10 | 38992 | 10 |
| 36826 | 10 | 38993 | 10 |
| 36827 | 10 | 38994 | 10 |
| 38995 | 42 | ||
| 36828 | 10 | 38996 | 10 |
| 36829 | 10 | 38997 | 10 |
| 36830 | 10 | 38998 | 10 |
| ... | @@ -36930,6 +39098,8 @@ x86_64-linux-gnu | ... | @@ -36930,6 +39098,8 @@ x86_64-linux-gnu |
| 36930 | 10 | 39098 | 10 |
| 36931 | 18 | 39099 | 18 |
| 36932 | 10 | 39100 | 10 |
| 39101 | 42 | ||
| 39102 | 42 | ||
| 36933 | 10 | 39103 | 10 |
| 36934 | 12 | 39104 | 12 |
| 36935 | 35 | 39105 | 35 |
| ... | @@ -37620,7 +39790,9 @@ x86_64-linux-gnux32 | ... | @@ -37620,7 +39790,9 @@ x86_64-linux-gnux32 |
| 37620 | 28 | 39790 | 28 |
| 37621 | 36 | 39791 | 36 |
| 37622 | 28 | 39792 | 28 |
| 39793 | |||
| 37623 | 28 | 39794 | 28 |
| 39795 | |||
| 37624 | 28 | 39796 | 28 |
| 37625 | 39797 | ||
| 37626 | 39798 | ||
| ... | @@ -37649,6 +39821,8 @@ x86_64-linux-gnux32 | ... | @@ -37649,6 +39821,8 @@ x86_64-linux-gnux32 |
| 37649 | 39821 | ||
| 37650 | 39822 | ||
| 37651 | 28 | 39823 | 28 |
| 39824 | |||
| 39825 | |||
| 37652 | 28 | 39826 | 28 |
| 37653 | 28 | 39827 | 28 |
| 37654 | 28 | 39828 | 28 |
| ... | @@ -37657,47 +39831,83 @@ x86_64-linux-gnux32 | ... | @@ -37657,47 +39831,83 @@ x86_64-linux-gnux32 |
| 37657 | 28 | 39831 | 28 |
| 37658 | 36 | 39832 | 36 |
| 37659 | 28 | 39833 | 28 |
| 39834 | |||
| 39835 | |||
| 37660 | 28 | 39836 | 28 |
| 37661 | 28 | 39837 | 28 |
| 37662 | 28 | 39838 | 28 |
| 39839 | |||
| 39840 | |||
| 37663 | 28 | 39841 | 28 |
| 37664 | 28 | 39842 | 28 |
| 37665 | 28 | 39843 | 28 |
| 37666 | 28 | 39844 | 28 |
| 37667 | 36 | 39845 | 36 |
| 37668 | 28 | 39846 | 28 |
| 39847 | |||
| 37669 | 28 | 39848 | 28 |
| 37670 | 28 | 39849 | 28 |
| 37671 | 36 | 39850 | 36 |
| 37672 | 28 | 39851 | 28 |
| 39852 | |||
| 37673 | 28 | 39853 | 28 |
| 37674 | 39854 | ||
| 37675 | 39855 | ||
| 37676 | 39856 | ||
| 39857 | |||
| 37677 | 28 | 39858 | 28 |
| 37678 | 28 | 39859 | 28 |
| 37679 | 28 | 39860 | 28 |
| 37680 | 28 | 39861 | 28 |
| 37681 | 28 | 39862 | 28 |
| 39863 | |||
| 39864 | |||
| 39865 | |||
| 39866 | |||
| 39867 | |||
| 39868 | |||
| 39869 | |||
| 39870 | |||
| 39871 | |||
| 39872 | |||
| 39873 | |||
| 39874 | |||
| 39875 | |||
| 39876 | |||
| 37682 | 28 | 39877 | 28 |
| 37683 | 28 | 39878 | 28 |
| 39879 | |||
| 37684 | 28 | 39880 | 28 |
| 37685 | 28 | 39881 | 28 |
| 39882 | |||
| 37686 | 28 | 39883 | 28 |
| 39884 | |||
| 37687 | 28 | 39885 | 28 |
| 37688 | 28 | 39886 | 28 |
| 37689 | 39887 | ||
| 37690 | 28 | 39888 | 28 |
| 37691 | 28 | 39889 | 28 |
| 39890 | |||
| 37692 | 28 | 39891 | 28 |
| 39892 | |||
| 37693 | 28 | 39893 | 28 |
| 37694 | 36 | 39894 | 36 |
| 37695 | 28 | 39895 | 28 |
| 39896 | |||
| 37696 | 28 | 39897 | 28 |
| 37697 | 39898 | ||
| 37698 | 39899 | ||
| 37699 | 39900 | ||
| 37700 | 39901 | ||
| 39902 | |||
| 39903 | |||
| 39904 | |||
| 39905 | |||
| 39906 | |||
| 39907 | |||
| 39908 | |||
| 39909 | |||
| 39910 | |||
| 37701 | 28 | 39911 | 28 |
| 37702 | 28 | 39912 | 28 |
| 37703 | 39913 | ||
| ... | @@ -37721,29 +39931,50 @@ x86_64-linux-gnux32 | ... | @@ -37721,29 +39931,50 @@ x86_64-linux-gnux32 |
| 37721 | 39931 | ||
| 37722 | 39932 | ||
| 37723 | 28 | 39933 | 28 |
| 39934 | |||
| 39935 | |||
| 37724 | 28 | 39936 | 28 |
| 37725 | 28 | 39937 | 28 |
| 37726 | 28 | 39938 | 28 |
| 37727 | 28 | 39939 | 28 |
| 37728 | 39940 | ||
| 37729 | 39941 | ||
| 39942 | |||
| 39943 | |||
| 39944 | |||
| 37730 | 28 | 39945 | 28 |
| 39946 | |||
| 39947 | |||
| 39948 | |||
| 37731 | 28 | 39949 | 28 |
| 37732 | 36 | 39950 | 36 |
| 37733 | 28 | 39951 | 28 |
| 39952 | |||
| 37734 | 28 | 39953 | 28 |
| 37735 | 28 | 39954 | 28 |
| 37736 | 36 | 39955 | 36 |
| 37737 | 28 | 39956 | 28 |
| 39957 | |||
| 37738 | 28 | 39958 | 28 |
| 37739 | 28 | 39959 | 28 |
| 37740 | 36 | 39960 | 36 |
| 37741 | 28 | 39961 | 28 |
| 37742 | 39962 | ||
| 39963 | |||
| 37743 | 28 | 39964 | 28 |
| 37744 | 35 | 39965 | 35 |
| 37745 | 39966 | ||
| 37746 | 39967 | ||
| 39968 | |||
| 39969 | |||
| 39970 | |||
| 39971 | |||
| 39972 | |||
| 39973 | |||
| 39974 | |||
| 39975 | |||
| 39976 | |||
| 39977 | |||
| 37747 | 28 | 39978 | 28 |
| 37748 | 28 | 39979 | 28 |
| 37749 | 28 | 39980 | 28 |
| ... | @@ -37753,6 +39984,7 @@ x86_64-linux-gnux32 | ... | @@ -37753,6 +39984,7 @@ x86_64-linux-gnux32 |
| 37753 | 39984 | ||
| 37754 | 39985 | ||
| 37755 | 39986 | ||
| 39987 | |||
| 37756 | 28 | 39988 | 28 |
| 37757 | 28 | 39989 | 28 |
| 37758 | 28 | 39990 | 28 |
| ... | @@ -37781,9 +40013,16 @@ x86_64-linux-gnux32 | ... | @@ -37781,9 +40013,16 @@ x86_64-linux-gnux32 |
| 37781 | 40013 | ||
| 37782 | 40014 | ||
| 37783 | 40015 | ||
| 40016 | |||
| 40017 | |||
| 40018 | |||
| 40019 | |||
| 40020 | |||
| 40021 | |||
| 37784 | 28 | 40022 | 28 |
| 37785 | 36 | 40023 | 36 |
| 37786 | 28 | 40024 | 28 |
| 40025 | |||
| 37787 | 28 | 40026 | 28 |
| 37788 | 28 | 40027 | 28 |
| 37789 | 28 | 40028 | 28 |
| ... | @@ -37792,6 +40031,8 @@ x86_64-linux-gnux32 | ... | @@ -37792,6 +40031,8 @@ x86_64-linux-gnux32 |
| 37792 | 28 | 40031 | 28 |
| 37793 | 28 | 40032 | 28 |
| 37794 | 28 | 40033 | 28 |
| 40034 | |||
| 40035 | |||
| 37795 | 28 | 40036 | 28 |
| 37796 | 28 | 40037 | 28 |
| 37797 | 40038 | ||
| ... | @@ -37801,10 +40042,17 @@ x86_64-linux-gnux32 | ... | @@ -37801,10 +40042,17 @@ x86_64-linux-gnux32 |
| 37801 | 28 | 40042 | 28 |
| 37802 | 28 | 40043 | 28 |
| 37803 | 28 | 40044 | 28 |
| 40045 | |||
| 40046 | |||
| 40047 | |||
| 40048 | |||
| 37804 | 28 | 40049 | 28 |
| 37805 | 28 | 40050 | 28 |
| 40051 | |||
| 40052 | |||
| 37806 | 28 | 40053 | 28 |
| 37807 | 28 | 40054 | 28 |
| 40055 | |||
| 37808 | 28 | 40056 | 28 |
| 37809 | 28 | 40057 | 28 |
| 37810 | 28 | 40058 | 28 |
| ... | @@ -37824,6 +40072,7 @@ x86_64-linux-gnux32 | ... | @@ -37824,6 +40072,7 @@ x86_64-linux-gnux32 |
| 37824 | 28 | 40072 | 28 |
| 37825 | 28 | 40073 | 28 |
| 37826 | 28 | 40074 | 28 |
| 40075 | |||
| 37827 | 28 | 40076 | 28 |
| 37828 | 28 | 40077 | 28 |
| 37829 | 28 | 40078 | 28 |
| ... | @@ -37839,7 +40088,9 @@ x86_64-linux-gnux32 | ... | @@ -37839,7 +40088,9 @@ x86_64-linux-gnux32 |
| 37839 | 28 | 40088 | 28 |
| 37840 | 36 | 40089 | 36 |
| 37841 | 28 | 40090 | 28 |
| 40091 | |||
| 37842 | 28 | 40092 | 28 |
| 40093 | |||
| 37843 | 28 | 40094 | 28 |
| 37844 | 28 | 40095 | 28 |
| 37845 | 28 | 40096 | 28 |
| ... | @@ -37863,17 +40114,29 @@ x86_64-linux-gnux32 | ... | @@ -37863,17 +40114,29 @@ x86_64-linux-gnux32 |
| 37863 | 36 | 40114 | 36 |
| 37864 | 28 | 40115 | 28 |
| 37865 | 28 | 40116 | 28 |
| 40117 | |||
| 37866 | 28 | 40118 | 28 |
| 40119 | |||
| 37867 | 28 | 40120 | 28 |
| 40121 | |||
| 37868 | 28 | 40122 | 28 |
| 40123 | |||
| 37869 | 28 | 40124 | 28 |
| 40125 | |||
| 37870 | 28 | 40126 | 28 |
| 40127 | |||
| 37871 | 28 | 40128 | 28 |
| 40129 | |||
| 37872 | 28 | 40130 | 28 |
| 40131 | |||
| 37873 | 28 | 40132 | 28 |
| 40133 | |||
| 37874 | 28 | 40134 | 28 |
| 40135 | |||
| 37875 | 28 | 40136 | 28 |
| 40137 | |||
| 37876 | 28 | 40138 | 28 |
| 40139 | |||
| 37877 | 28 | 40140 | 28 |
| 37878 | 28 | 40141 | 28 |
| 37879 | 30 | 40142 | 30 |
| ... | @@ -37901,23 +40164,29 @@ x86_64-linux-gnux32 | ... | @@ -37901,23 +40164,29 @@ x86_64-linux-gnux32 |
| 37901 | 28 | 40164 | 28 |
| 37902 | 36 | 40165 | 36 |
| 37903 | 28 | 40166 | 28 |
| 40167 | |||
| 37904 | 28 | 40168 | 28 |
| 37905 | 28 | 40169 | 28 |
| 37906 | 36 | 40170 | 36 |
| 37907 | 28 | 40171 | 28 |
| 40172 | |||
| 37908 | 28 | 40173 | 28 |
| 37909 | 28 | 40174 | 28 |
| 37910 | 36 | 40175 | 36 |
| 37911 | 28 | 40176 | 28 |
| 40177 | |||
| 37912 | 28 | 40178 | 28 |
| 37913 | 28 | 40179 | 28 |
| 37914 | 28 | 40180 | 28 |
| 37915 | 28 | 40181 | 28 |
| 37916 | 40182 | ||
| 37917 | 40183 | ||
| 40184 | |||
| 37918 | 28 | 40185 | 28 |
| 37919 | 36 | 40186 | 36 |
| 37920 | 28 | 40187 | 28 |
| 40188 | |||
| 40189 | |||
| 37921 | 28 | 40190 | 28 |
| 37922 | 28 | 40191 | 28 |
| 37923 | 28 | 40192 | 28 |
| ... | @@ -37933,23 +40202,34 @@ x86_64-linux-gnux32 | ... | @@ -37933,23 +40202,34 @@ x86_64-linux-gnux32 |
| 37933 | 28 | 40202 | 28 |
| 37934 | 28 | 40203 | 28 |
| 37935 | 28 | 40204 | 28 |
| 40205 | 42 | ||
| 37936 | 28 | 40206 | 28 |
| 37937 | 28 | 40207 | 28 |
| 37938 | 28 | 40208 | 28 |
| 37939 | 40209 | ||
| 40210 | |||
| 40211 | |||
| 40212 | |||
| 37940 | 28 | 40213 | 28 |
| 37941 | 36 | 40214 | 36 |
| 37942 | 28 | 40215 | 28 |
| 40216 | |||
| 37943 | 28 | 40217 | 28 |
| 40218 | |||
| 37944 | 28 | 40219 | 28 |
| 37945 | 36 | 40220 | 36 |
| 37946 | 28 | 40221 | 28 |
| 40222 | |||
| 37947 | 28 | 40223 | 28 |
| 37948 | 28 | 40224 | 28 |
| 40225 | |||
| 37949 | 36 | 40226 | 36 |
| 37950 | 28 | 40227 | 28 |
| 40228 | |||
| 37951 | 28 | 40229 | 28 |
| 37952 | 28 | 40230 | 28 |
| 40231 | |||
| 40232 | |||
| 37953 | 28 | 40233 | 28 |
| 37954 | 40234 | ||
| 37955 | 40235 | ||
| ... | @@ -37988,17 +40268,26 @@ x86_64-linux-gnux32 | ... | @@ -37988,17 +40268,26 @@ x86_64-linux-gnux32 |
| 37988 | 40268 | ||
| 37989 | 40269 | ||
| 37990 | 40270 | ||
| 40271 | |||
| 37991 | 28 | 40272 | 28 |
| 37992 | 28 | 40273 | 28 |
| 37993 | 28 | 40274 | 28 |
| 37994 | 40275 | ||
| 37995 | 40276 | ||
| 40277 | |||
| 37996 | 28 | 40278 | 28 |
| 37997 | 40279 | ||
| 37998 | 40280 | ||
| 37999 | 40281 | ||
| 38000 | 40282 | ||
| 40283 | |||
| 38001 | 28 | 40284 | 28 |
| 40285 | |||
| 40286 | |||
| 40287 | |||
| 40288 | |||
| 40289 | |||
| 40290 | |||
| 38002 | 28 | 40291 | 28 |
| 38003 | 40292 | ||
| 38004 | 40293 | ||
| ... | @@ -38111,7 +40400,11 @@ x86_64-linux-gnux32 | ... | @@ -38111,7 +40400,11 @@ x86_64-linux-gnux32 |
| 38111 | 28 | 40400 | 28 |
| 38112 | 28 | 40401 | 28 |
| 38113 | 28 | 40402 | 28 |
| 40403 | |||
| 40404 | |||
| 38114 | 28 | 40405 | 28 |
| 40406 | |||
| 40407 | |||
| 38115 | 28 | 40408 | 28 |
| 38116 | 28 | 40409 | 28 |
| 38117 | 28 | 40410 | 28 |
| ... | @@ -38127,6 +40420,7 @@ x86_64-linux-gnux32 | ... | @@ -38127,6 +40420,7 @@ x86_64-linux-gnux32 |
| 38127 | 28 | 40420 | 28 |
| 38128 | 36 | 40421 | 36 |
| 38129 | 28 | 40422 | 28 |
| 40423 | |||
| 38130 | 28 | 40424 | 28 |
| 38131 | 40425 | ||
| 38132 | 28 | 40426 | 28 |
| ... | @@ -38134,7 +40428,10 @@ x86_64-linux-gnux32 | ... | @@ -38134,7 +40428,10 @@ x86_64-linux-gnux32 |
| 38134 | 28 | 40428 | 28 |
| 38135 | 28 | 40429 | 28 |
| 38136 | 28 | 40430 | 28 |
| 40431 | |||
| 38137 | 28 | 40432 | 28 |
| 40433 | |||
| 40434 | |||
| 38138 | 28 | 40435 | 28 |
| 38139 | 28 | 40436 | 28 |
| 38140 | 28 | 40437 | 28 |
| ... | @@ -38165,6 +40462,11 @@ x86_64-linux-gnux32 | ... | @@ -38165,6 +40462,11 @@ x86_64-linux-gnux32 |
| 38165 | 28 | 40462 | 28 |
| 38166 | 28 | 40463 | 28 |
| 38167 | 28 | 40464 | 28 |
| 40465 | |||
| 40466 | |||
| 40467 | |||
| 40468 | |||
| 40469 | |||
| 38168 | 28 | 40470 | 28 |
| 38169 | 28 | 40471 | 28 |
| 38170 | 28 | 40472 | 28 |
| ... | @@ -38183,12 +40485,17 @@ x86_64-linux-gnux32 | ... | @@ -38183,12 +40485,17 @@ x86_64-linux-gnux32 |
| 38183 | 28 | 40485 | 28 |
| 38184 | 36 | 40486 | 36 |
| 38185 | 28 | 40487 | 28 |
| 40488 | |||
| 38186 | 28 | 40489 | 28 |
| 40490 | |||
| 38187 | 28 | 40491 | 28 |
| 38188 | 28 | 40492 | 28 |
| 38189 | 28 | 40493 | 28 |
| 38190 | 28 | 40494 | 28 |
| 38191 | 28 | 40495 | 28 |
| 40496 | |||
| 40497 | |||
| 40498 | |||
| 38192 | 28 | 40499 | 28 |
| 38193 | 28 | 40500 | 28 |
| 38194 | 28 | 40501 | 28 |
| ... | @@ -38196,7 +40503,11 @@ x86_64-linux-gnux32 | ... | @@ -38196,7 +40503,11 @@ x86_64-linux-gnux32 |
| 38196 | 28 | 40503 | 28 |
| 38197 | 28 | 40504 | 28 |
| 38198 | 28 | 40505 | 28 |
| 40506 | |||
| 38199 | 28 | 40507 | 28 |
| 40508 | |||
| 40509 | |||
| 40510 | |||
| 38200 | 28 | 40511 | 28 |
| 38201 | 28 | 40512 | 28 |
| 38202 | 28 | 40513 | 28 |
| ... | @@ -38210,6 +40521,8 @@ x86_64-linux-gnux32 | ... | @@ -38210,6 +40521,8 @@ x86_64-linux-gnux32 |
| 38210 | 28 | 40521 | 28 |
| 38211 | 28 | 40522 | 28 |
| 38212 | 28 | 40523 | 28 |
| 40524 | |||
| 40525 | |||
| 38213 | 28 | 40526 | 28 |
| 38214 | 28 | 40527 | 28 |
| 38215 | 28 | 40528 | 28 |
| ... | @@ -38220,24 +40533,34 @@ x86_64-linux-gnux32 | ... | @@ -38220,24 +40533,34 @@ x86_64-linux-gnux32 |
| 38220 | 36 | 40533 | 36 |
| 38221 | 28 | 40534 | 28 |
| 38222 | 33 | 40535 | 33 |
| 40536 | |||
| 38223 | 28 | 40537 | 28 |
| 38224 | 28 | 40538 | 28 |
| 38225 | 28 | 40539 | 28 |
| 38226 | 40540 | ||
| 38227 | 40541 | ||
| 38228 | 40542 | ||
| 40543 | |||
| 38229 | 28 | 40544 | 28 |
| 38230 | 36 | 40545 | 36 |
| 38231 | 28 | 40546 | 28 |
| 40547 | |||
| 38232 | 28 | 40548 | 28 |
| 40549 | |||
| 38233 | 28 | 40550 | 28 |
| 40551 | |||
| 40552 | |||
| 38234 | 28 | 40553 | 28 |
| 40554 | |||
| 40555 | |||
| 38235 | 28 | 40556 | 28 |
| 38236 | 40557 | ||
| 38237 | 36 | 40558 | 36 |
| 38238 | 28 | 40559 | 28 |
| 40560 | |||
| 38239 | 28 | 40561 | 28 |
| 38240 | 40562 | ||
| 40563 | |||
| 38241 | 28 | 40564 | 28 |
| 38242 | 40565 | ||
| 38243 | 28 | 40566 | 28 |
| ... | @@ -38270,6 +40593,9 @@ x86_64-linux-gnux32 | ... | @@ -38270,6 +40593,9 @@ x86_64-linux-gnux32 |
| 38270 | 28 | 40593 | 28 |
| 38271 | 28 | 40594 | 28 |
| 38272 | 28 | 40595 | 28 |
| 40596 | |||
| 40597 | |||
| 40598 | |||
| 38273 | 28 | 40599 | 28 |
| 38274 | 40600 | ||
| 38275 | 28 | 40601 | 28 |
| ... | @@ -38304,6 +40630,8 @@ x86_64-linux-gnux32 | ... | @@ -38304,6 +40630,8 @@ x86_64-linux-gnux32 |
| 38304 | 36 | 40630 | 36 |
| 38305 | 28 | 40631 | 28 |
| 38306 | 28 | 40632 | 28 |
| 40633 | |||
| 40634 | |||
| 38307 | 28 | 40635 | 28 |
| 38308 | 28 | 40636 | 28 |
| 38309 | 28 | 40637 | 28 |
| ... | @@ -38323,48 +40651,93 @@ x86_64-linux-gnux32 | ... | @@ -38323,48 +40651,93 @@ x86_64-linux-gnux32 |
| 38323 | 40651 | ||
| 38324 | 40652 | ||
| 38325 | 28 | 40653 | 28 |
| 40654 | |||
| 40655 | |||
| 40656 | |||
| 38326 | 28 | 40657 | 28 |
| 38327 | 40658 | ||
| 38328 | 28 | 40659 | 28 |
| 40660 | |||
| 40661 | |||
| 38329 | 28 | 40662 | 28 |
| 40663 | |||
| 40664 | |||
| 40665 | |||
| 38330 | 28 | 40666 | 28 |
| 38331 | 28 | 40667 | 28 |
| 38332 | 40668 | ||
| 38333 | 40669 | ||
| 38334 | 28 | 40670 | 28 |
| 38335 | 28 | 40671 | 28 |
| 40672 | |||
| 40673 | |||
| 38336 | 28 | 40674 | 28 |
| 38337 | 28 | 40675 | 28 |
| 38338 | 28 | 40676 | 28 |
| 38339 | 28 | 40677 | 28 |
| 38340 | 28 | 40678 | 28 |
| 38341 | 40679 | ||
| 40680 | |||
| 38342 | 28 | 40681 | 28 |
| 38343 | 28 | 40682 | 28 |
| 38344 | 40683 | ||
| 38345 | 40684 | ||
| 38346 | 28 | 40685 | 28 |
| 38347 | 40686 | ||
| 40687 | |||
| 40688 | |||
| 38348 | 28 | 40689 | 28 |
| 38349 | 40690 | ||
| 38350 | 40691 | ||
| 38351 | 28 | 40692 | 28 |
| 38352 | 28 | 40693 | 28 |
| 40694 | |||
| 40695 | |||
| 38353 | 28 | 40696 | 28 |
| 40697 | |||
| 40698 | |||
| 40699 | |||
| 40700 | |||
| 38354 | 28 | 40701 | 28 |
| 38355 | 28 | 40702 | 28 |
| 40703 | |||
| 40704 | |||
| 38356 | 28 | 40705 | 28 |
| 40706 | |||
| 38357 | 28 | 40707 | 28 |
| 40708 | |||
| 40709 | |||
| 40710 | |||
| 38358 | 28 | 40711 | 28 |
| 40712 | |||
| 40713 | |||
| 40714 | |||
| 38359 | 28 | 40715 | 28 |
| 38360 | 28 | 40716 | 28 |
| 40717 | |||
| 40718 | |||
| 38361 | 28 | 40719 | 28 |
| 40720 | |||
| 40721 | |||
| 38362 | 28 | 40722 | 28 |
| 40723 | |||
| 38363 | 28 | 40724 | 28 |
| 40725 | |||
| 40726 | |||
| 40727 | |||
| 38364 | 28 | 40728 | 28 |
| 40729 | |||
| 40730 | |||
| 40731 | |||
| 40732 | |||
| 38365 | 28 | 40733 | 28 |
| 40734 | |||
| 40735 | |||
| 40736 | |||
| 38366 | 28 | 40737 | 28 |
| 38367 | 28 | 40738 | 28 |
| 40739 | |||
| 40740 | |||
| 38368 | 28 | 40741 | 28 |
| 38369 | 28 | 40742 | 28 |
| 38370 | 28 | 40743 | 28 |
| ... | @@ -38383,6 +40756,8 @@ x86_64-linux-gnux32 | ... | @@ -38383,6 +40756,8 @@ x86_64-linux-gnux32 |
| 38383 | 36 | 40756 | 36 |
| 38384 | 28 | 40757 | 28 |
| 38385 | 28 | 40758 | 28 |
| 40759 | |||
| 40760 | |||
| 38386 | 28 | 40761 | 28 |
| 38387 | 28 | 40762 | 28 |
| 38388 | 28 | 40763 | 28 |
| ... | @@ -38404,7 +40779,10 @@ x86_64-linux-gnux32 | ... | @@ -38404,7 +40779,10 @@ x86_64-linux-gnux32 |
| 38404 | 28 | 40779 | 28 |
| 38405 | 28 | 40780 | 28 |
| 38406 | 28 | 40781 | 28 |
| 40782 | |||
| 40783 | |||
| 38407 | 28 | 40784 | 28 |
| 40785 | |||
| 38408 | 28 | 40786 | 28 |
| 38409 | 28 | 40787 | 28 |
| 38410 | 28 | 40788 | 28 |
| ... | @@ -38417,14 +40795,17 @@ x86_64-linux-gnux32 | ... | @@ -38417,14 +40795,17 @@ x86_64-linux-gnux32 |
| 38417 | 28 | 40795 | 28 |
| 38418 | 36 | 40796 | 36 |
| 38419 | 28 | 40797 | 28 |
| 40798 | |||
| 38420 | 28 | 40799 | 28 |
| 38421 | 28 | 40800 | 28 |
| 38422 | 36 | 40801 | 36 |
| 38423 | 28 | 40802 | 28 |
| 40803 | |||
| 38424 | 28 | 40804 | 28 |
| 38425 | 28 | 40805 | 28 |
| 38426 | 36 | 40806 | 36 |
| 38427 | 28 | 40807 | 28 |
| 40808 | |||
| 38428 | 28 | 40809 | 28 |
| 38429 | 28 | 40810 | 28 |
| 38430 | 28 | 40811 | 28 |
| ... | @@ -39022,7 +41403,7 @@ x86_64-linux-gnux32 | ... | @@ -39022,7 +41403,7 @@ x86_64-linux-gnux32 |
| 39022 | 28 | 41403 | 28 |
| 39023 | 28 39 | 41404 | 28 39 |
| 39024 | 28 | 41405 | 28 |
| 39025 | 28 | 41406 | 28 42 |
| 39026 | 36 | 41407 | 36 |
| 39027 | 37 | 41408 | 37 |
| 39028 | 37 | 41409 | 37 |
| ... | @@ -40148,17 +42529,19 @@ x86_64-linux-gnux32 | ... | @@ -40148,17 +42529,19 @@ x86_64-linux-gnux32 |
| 40148 | 28 | 42529 | 28 |
| 40149 | 28 | 42530 | 28 |
| 40150 | 28 | 42531 | 28 |
| 42532 | 42 | ||
| 40151 | 28 | 42533 | 28 |
| 40152 | 28 | 42534 | 28 |
| 40153 | 28 | 42535 | 28 |
| 40154 | 28 | 42536 | 28 |
| 42537 | 28 42 | ||
| 40155 | 28 | 42538 | 28 |
| 40156 | 28 | 42539 | 28 |
| 40157 | 28 | 42540 | 28 |
| 40158 | 28 | 42541 | 28 |
| 40159 | 28 | 42542 | 28 |
| 40160 | 28 | 42543 | 28 |
| 40161 | 28 | 42544 | 42 |
| 40162 | 28 | 42545 | 28 |
| 40163 | 28 | 42546 | 28 |
| 40164 | 28 | 42547 | 28 |
| ... | @@ -40188,9 +42571,9 @@ x86_64-linux-gnux32 | ... | @@ -40188,9 +42571,9 @@ x86_64-linux-gnux32 |
| 40188 | 28 | 42571 | 28 |
| 40189 | 28 | 42572 | 28 |
| 40190 | 28 | 42573 | 28 |
| 40191 | 28 | 42574 | 28 42 |
| 40192 | 30 | 42575 | 30 |
| 40193 | 28 | 42576 | 28 42 |
| 40194 | 28 | 42577 | 28 |
| 40195 | 28 | 42578 | 28 |
| 40196 | 28 | 42579 | 28 |
| ... | @@ -40256,7 +42639,7 @@ x86_64-linux-gnux32 | ... | @@ -40256,7 +42639,7 @@ x86_64-linux-gnux32 |
| 40256 | 28 | 42639 | 28 |
| 40257 | 28 | 42640 | 28 |
| 40258 | 28 | 42641 | 28 |
| 40259 | 28 | 42642 | 28 42 |
| 40260 | 28 | 42643 | 28 |
| 40261 | 28 | 42644 | 28 |
| 40262 | 28 | 42645 | 28 |
| ... | @@ -40561,12 +42944,14 @@ x86_64-linux-gnux32 | ... | @@ -40561,12 +42944,14 @@ x86_64-linux-gnux32 |
| 40561 | 28 | 42944 | 28 |
| 40562 | 28 | 42945 | 28 |
| 40563 | 28 | 42946 | 28 |
| 42947 | 42 | ||
| 40564 | 28 | 42948 | 28 |
| 40565 | 28 | 42949 | 28 |
| 40566 | 28 | 42950 | 28 |
| 40567 | 28 | 42951 | 28 |
| 40568 | 28 | 42952 | 28 |
| 40569 | 28 | 42953 | 28 |
| 42954 | 42 | ||
| 40570 | 28 | 42955 | 28 |
| 40571 | 28 | 42956 | 28 |
| 40572 | 28 | 42957 | 28 |
| ... | @@ -40672,6 +43057,8 @@ x86_64-linux-gnux32 | ... | @@ -40672,6 +43057,8 @@ x86_64-linux-gnux32 |
| 40672 | 28 | 43057 | 28 |
| 40673 | 28 | 43058 | 28 |
| 40674 | 28 | 43059 | 28 |
| 43060 | 42 | ||
| 43061 | 42 | ||
| 40675 | 28 | 43062 | 28 |
| 40676 | 28 | 43063 | 28 |
| 40677 | 35 | 43064 | 35 |
| ... | @@ -41362,7 +43749,9 @@ i386-linux-gnu | ... | @@ -41362,7 +43749,9 @@ i386-linux-gnu |
| 41362 | 27 | 43749 | 27 |
| 41363 | 36 | 43750 | 36 |
| 41364 | 27 | 43751 | 27 |
| 43752 | |||
| 41365 | 27 | 43753 | 27 |
| 43754 | |||
| 41366 | 27 | 43755 | 27 |
| 41367 | 43756 | ||
| 41368 | 43757 | ||
| ... | @@ -41391,6 +43780,8 @@ i386-linux-gnu | ... | @@ -41391,6 +43780,8 @@ i386-linux-gnu |
| 41391 | 43780 | ||
| 41392 | 43781 | ||
| 41393 | 43782 | ||
| 43783 | |||
| 43784 | |||
| 41394 | 0 | 43785 | 0 |
| 41395 | 0 | 43786 | 0 |
| 41396 | 0 | 43787 | 0 |
| ... | @@ -41399,43 +43790,79 @@ i386-linux-gnu | ... | @@ -41399,43 +43790,79 @@ i386-linux-gnu |
| 41399 | 27 | 43790 | 27 |
| 41400 | 36 | 43791 | 36 |
| 41401 | 27 | 43792 | 27 |
| 43793 | |||
| 43794 | |||
| 41402 | 27 | 43795 | 27 |
| 41403 | 1 | 43796 | 1 |
| 41404 | 20 | 43797 | 20 |
| 43798 | |||
| 43799 | |||
| 41405 | 5 | 43800 | 5 |
| 41406 | 0 | 43801 | 0 |
| 41407 | 0 | 43802 | 0 |
| 41408 | 27 | 43803 | 27 |
| 41409 | 36 | 43804 | 36 |
| 41410 | 27 | 43805 | 27 |
| 43806 | |||
| 41411 | 27 | 43807 | 27 |
| 41412 | 27 | 43808 | 27 |
| 41413 | 36 | 43809 | 36 |
| 41414 | 27 | 43810 | 27 |
| 43811 | |||
| 41415 | 27 | 43812 | 27 |
| 41416 | 43813 | ||
| 41417 | 43814 | ||
| 41418 | 43815 | ||
| 43816 | |||
| 41419 | 1 | 43817 | 1 |
| 41420 | 1 | 43818 | 1 |
| 41421 | 1 | 43819 | 1 |
| 41422 | 0 | 43820 | 0 |
| 41423 | 0 | 43821 | 0 |
| 43822 | |||
| 43823 | |||
| 43824 | |||
| 43825 | |||
| 43826 | |||
| 43827 | |||
| 43828 | |||
| 43829 | |||
| 43830 | |||
| 43831 | |||
| 43832 | |||
| 43833 | |||
| 43834 | |||
| 43835 | |||
| 41424 | 0 | 43836 | 0 |
| 41425 | 15 | 43837 | 15 |
| 43838 | |||
| 41426 | 1 | 43839 | 1 |
| 41427 | 1 | 43840 | 1 |
| 43841 | |||
| 41428 | 1 | 43842 | 1 |
| 43843 | |||
| 41429 | 0 | 43844 | 0 |
| 41430 | 0 | 43845 | 0 |
| 41431 | 43846 | ||
| 41432 | 0 | 43847 | 0 |
| 41433 | 16 | 43848 | 16 |
| 43849 | |||
| 41434 | 0 | 43850 | 0 |
| 43851 | |||
| 41435 | 27 | 43852 | 27 |
| 41436 | 36 | 43853 | 36 |
| 41437 | 27 | 43854 | 27 |
| 43855 | |||
| 41438 | 27 | 43856 | 27 |
| 43857 | |||
| 43858 | |||
| 43859 | |||
| 43860 | |||
| 43861 | |||
| 43862 | |||
| 43863 | |||
| 43864 | |||
| 43865 | |||
| 41439 | 0 | 43866 | 0 |
| 41440 | 5 | 43867 | 5 |
| 41441 | 5 | 43868 | 5 |
| ... | @@ -41463,29 +43890,50 @@ i386-linux-gnu | ... | @@ -41463,29 +43890,50 @@ i386-linux-gnu |
| 41463 | 0 | 43890 | 0 |
| 41464 | 43891 | ||
| 41465 | 20 | 43892 | 20 |
| 43893 | |||
| 43894 | |||
| 41466 | 0 | 43895 | 0 |
| 41467 | 1 | 43896 | 1 |
| 41468 | 5 | 43897 | 5 |
| 41469 | 0 | 43898 | 0 |
| 41470 | 43899 | ||
| 41471 | 43900 | ||
| 43901 | |||
| 43902 | |||
| 43903 | |||
| 41472 | 0 | 43904 | 0 |
| 43905 | |||
| 43906 | |||
| 43907 | |||
| 41473 | 27 | 43908 | 27 |
| 41474 | 36 | 43909 | 36 |
| 41475 | 27 | 43910 | 27 |
| 43911 | |||
| 41476 | 27 | 43912 | 27 |
| 41477 | 27 | 43913 | 27 |
| 41478 | 36 | 43914 | 36 |
| 41479 | 27 | 43915 | 27 |
| 43916 | |||
| 41480 | 27 | 43917 | 27 |
| 41481 | 27 | 43918 | 27 |
| 41482 | 36 | 43919 | 36 |
| 41483 | 27 | 43920 | 27 |
| 43921 | |||
| 41484 | 5 | 43922 | 5 |
| 41485 | 27 | 43923 | 27 |
| 41486 | 35 | 43924 | 35 |
| 43925 | |||
| 41487 | 5 | 43926 | 5 |
| 41488 | 43927 | ||
| 43928 | |||
| 43929 | |||
| 43930 | |||
| 43931 | |||
| 43932 | |||
| 43933 | |||
| 43934 | |||
| 43935 | |||
| 43936 | |||
| 41489 | 5 | 43937 | 5 |
| 41490 | 0 | 43938 | 0 |
| 41491 | 27 | 43939 | 27 |
| ... | @@ -41495,6 +43943,7 @@ i386-linux-gnu | ... | @@ -41495,6 +43943,7 @@ i386-linux-gnu |
| 41495 | 43943 | ||
| 41496 | 43944 | ||
| 41497 | 43945 | ||
| 43946 | |||
| 41498 | 25 | 43947 | 25 |
| 41499 | 0 | 43948 | 0 |
| 41500 | 16 | 43949 | 16 |
| ... | @@ -41523,9 +43972,16 @@ i386-linux-gnu | ... | @@ -41523,9 +43972,16 @@ i386-linux-gnu |
| 41523 | 43972 | ||
| 41524 | 43973 | ||
| 41525 | 43974 | ||
| 43975 | |||
| 43976 | |||
| 43977 | |||
| 43978 | |||
| 43979 | |||
| 43980 | |||
| 41526 | 27 | 43981 | 27 |
| 41527 | 36 | 43982 | 36 |
| 41528 | 27 | 43983 | 27 |
| 43984 | |||
| 41529 | 27 | 43985 | 27 |
| 41530 | 0 | 43986 | 0 |
| 41531 | 1 | 43987 | 1 |
| ... | @@ -41534,6 +43990,8 @@ i386-linux-gnu | ... | @@ -41534,6 +43990,8 @@ i386-linux-gnu |
| 41534 | 1 | 43990 | 1 |
| 41535 | 5 | 43991 | 5 |
| 41536 | 15 | 43992 | 15 |
| 43993 | |||
| 43994 | |||
| 41537 | 0 | 43995 | 0 |
| 41538 | 5 | 43996 | 5 |
| 41539 | 0 | 43997 | 0 |
| ... | @@ -41543,10 +44001,17 @@ i386-linux-gnu | ... | @@ -41543,10 +44001,17 @@ i386-linux-gnu |
| 41543 | 5 | 44001 | 5 |
| 41544 | 0 | 44002 | 0 |
| 41545 | 1 | 44003 | 1 |
| 44004 | |||
| 44005 | |||
| 44006 | |||
| 44007 | |||
| 41546 | 5 | 44008 | 5 |
| 41547 | 16 | 44009 | 16 |
| 44010 | |||
| 44011 | |||
| 41548 | 5 | 44012 | 5 |
| 41549 | 5 | 44013 | 5 |
| 44014 | |||
| 41550 | 0 | 44015 | 0 |
| 41551 | 1 5 | 44016 | 1 5 |
| 41552 | 16 | 44017 | 16 |
| ... | @@ -41566,6 +44031,7 @@ i386-linux-gnu | ... | @@ -41566,6 +44031,7 @@ i386-linux-gnu |
| 41566 | 16 | 44031 | 16 |
| 41567 | 5 | 44032 | 5 |
| 41568 | 0 | 44033 | 0 |
| 44034 | |||
| 41569 | 0 | 44035 | 0 |
| 41570 | 0 | 44036 | 0 |
| 41571 | 15 | 44037 | 15 |
| ... | @@ -41581,7 +44047,9 @@ i386-linux-gnu | ... | @@ -41581,7 +44047,9 @@ i386-linux-gnu |
| 41581 | 27 | 44047 | 27 |
| 41582 | 36 | 44048 | 36 |
| 41583 | 27 | 44049 | 27 |
| 44050 | |||
| 41584 | 27 | 44051 | 27 |
| 44052 | |||
| 41585 | 1 | 44053 | 1 |
| 41586 | 1 | 44054 | 1 |
| 41587 | 1 | 44055 | 1 |
| ... | @@ -41605,17 +44073,29 @@ i386-linux-gnu | ... | @@ -41605,17 +44073,29 @@ i386-linux-gnu |
| 41605 | 36 | 44073 | 36 |
| 41606 | 0 | 44074 | 0 |
| 41607 | 19 | 44075 | 19 |
| 44076 | |||
| 41608 | 19 | 44077 | 19 |
| 44078 | |||
| 41609 | 19 | 44079 | 19 |
| 44080 | |||
| 41610 | 19 | 44081 | 19 |
| 44082 | |||
| 41611 | 19 | 44083 | 19 |
| 44084 | |||
| 41612 | 19 | 44085 | 19 |
| 44086 | |||
| 41613 | 19 | 44087 | 19 |
| 44088 | |||
| 41614 | 19 | 44089 | 19 |
| 44090 | |||
| 41615 | 19 | 44091 | 19 |
| 44092 | |||
| 41616 | 19 | 44093 | 19 |
| 44094 | |||
| 41617 | 19 | 44095 | 19 |
| 44096 | |||
| 41618 | 19 | 44097 | 19 |
| 44098 | |||
| 41619 | 1 | 44099 | 1 |
| 41620 | 1 | 44100 | 1 |
| 41621 | 30 | 44101 | 30 |
| ... | @@ -41643,23 +44123,29 @@ i386-linux-gnu | ... | @@ -41643,23 +44123,29 @@ i386-linux-gnu |
| 41643 | 27 | 44123 | 27 |
| 41644 | 36 | 44124 | 36 |
| 41645 | 27 | 44125 | 27 |
| 44126 | |||
| 41646 | 27 | 44127 | 27 |
| 41647 | 27 | 44128 | 27 |
| 41648 | 36 | 44129 | 36 |
| 41649 | 27 | 44130 | 27 |
| 44131 | |||
| 41650 | 27 | 44132 | 27 |
| 41651 | 27 | 44133 | 27 |
| 41652 | 36 | 44134 | 36 |
| 41653 | 27 | 44135 | 27 |
| 44136 | |||
| 41654 | 27 | 44137 | 27 |
| 41655 | 1 | 44138 | 1 |
| 41656 | 1 | 44139 | 1 |
| 41657 | 1 | 44140 | 1 |
| 41658 | 44141 | ||
| 41659 | 44142 | ||
| 44143 | |||
| 41660 | 27 | 44144 | 27 |
| 41661 | 36 | 44145 | 36 |
| 41662 | 27 | 44146 | 27 |
| 44147 | |||
| 44148 | |||
| 41663 | 27 | 44149 | 27 |
| 41664 | 1 | 44150 | 1 |
| 41665 | 0 | 44151 | 0 |
| ... | @@ -41675,23 +44161,34 @@ i386-linux-gnu | ... | @@ -41675,23 +44161,34 @@ i386-linux-gnu |
| 41675 | 0 | 44161 | 0 |
| 41676 | 0 | 44162 | 0 |
| 41677 | 1 | 44163 | 1 |
| 44164 | 42 | ||
| 41678 | 1 | 44165 | 1 |
| 41679 | 0 | 44166 | 0 |
| 41680 | 0 | 44167 | 0 |
| 41681 | 3 11 | 44168 | 3 8 11 |
| 44169 | |||
| 44170 | |||
| 44171 | |||
| 41682 | 27 | 44172 | 27 |
| 41683 | 36 | 44173 | 36 |
| 41684 | 27 | 44174 | 27 |
| 44175 | |||
| 41685 | 27 | 44176 | 27 |
| 44177 | |||
| 41686 | 27 | 44178 | 27 |
| 41687 | 36 | 44179 | 36 |
| 41688 | 27 | 44180 | 27 |
| 44181 | |||
| 41689 | 27 | 44182 | 27 |
| 41690 | 27 | 44183 | 27 |
| 44184 | |||
| 41691 | 36 | 44185 | 36 |
| 41692 | 27 | 44186 | 27 |
| 44187 | |||
| 41693 | 27 | 44188 | 27 |
| 41694 | 23 | 44189 | 23 |
| 44190 | |||
| 44191 | |||
| 41695 | 0 | 44192 | 0 |
| 41696 | 44193 | ||
| 41697 | 44194 | ||
| ... | @@ -41730,17 +44227,26 @@ i386-linux-gnu | ... | @@ -41730,17 +44227,26 @@ i386-linux-gnu |
| 41730 | 44227 | ||
| 41731 | 44228 | ||
| 41732 | 0 | 44229 | 0 |
| 44230 | |||
| 41733 | 0 | 44231 | 0 |
| 41734 | 0 | 44232 | 0 |
| 41735 | 19 | 44233 | 19 |
| 41736 | 44234 | ||
| 41737 | 44235 | ||
| 44236 | |||
| 41738 | 11 | 44237 | 11 |
| 41739 | 44238 | ||
| 41740 | 44239 | ||
| 41741 | 44240 | ||
| 41742 | 44241 | ||
| 44242 | |||
| 41743 | 1 | 44243 | 1 |
| 44244 | |||
| 44245 | |||
| 44246 | |||
| 44247 | |||
| 44248 | |||
| 44249 | |||
| 41744 | 5 | 44250 | 5 |
| 41745 | 44251 | ||
| 41746 | 44252 | ||
| ... | @@ -41853,7 +44359,11 @@ i386-linux-gnu | ... | @@ -41853,7 +44359,11 @@ i386-linux-gnu |
| 41853 | 0 | 44359 | 0 |
| 41854 | 0 | 44360 | 0 |
| 41855 | 20 | 44361 | 20 |
| 44362 | |||
| 44363 | |||
| 41856 | 20 | 44364 | 20 |
| 44365 | |||
| 44366 | |||
| 41857 | 0 | 44367 | 0 |
| 41858 | 5 | 44368 | 5 |
| 41859 | 19 | 44369 | 19 |
| ... | @@ -41869,6 +44379,7 @@ i386-linux-gnu | ... | @@ -41869,6 +44379,7 @@ i386-linux-gnu |
| 41869 | 27 | 44379 | 27 |
| 41870 | 36 | 44380 | 36 |
| 41871 | 27 | 44381 | 27 |
| 44382 | |||
| 41872 | 27 | 44383 | 27 |
| 41873 | 44384 | ||
| 41874 | 28 | 44385 | 28 |
| ... | @@ -41876,7 +44387,10 @@ i386-linux-gnu | ... | @@ -41876,7 +44387,10 @@ i386-linux-gnu |
| 41876 | 16 | 44387 | 16 |
| 41877 | 16 | 44388 | 16 |
| 41878 | 15 | 44389 | 15 |
| 44390 | |||
| 41879 | 0 | 44391 | 0 |
| 44392 | |||
| 44393 | |||
| 41880 | 0 | 44394 | 0 |
| 41881 | 0 | 44395 | 0 |
| 41882 | 0 | 44396 | 0 |
| ... | @@ -41907,6 +44421,11 @@ i386-linux-gnu | ... | @@ -41907,6 +44421,11 @@ i386-linux-gnu |
| 41907 | 14 | 44421 | 14 |
| 41908 | 16 | 44422 | 16 |
| 41909 | 1 5 | 44423 | 1 5 |
| 44424 | |||
| 44425 | |||
| 44426 | |||
| 44427 | |||
| 44428 | |||
| 41910 | 1 | 44429 | 1 |
| 41911 | 0 | 44430 | 0 |
| 41912 | 0 | 44431 | 0 |
| ... | @@ -41925,12 +44444,17 @@ i386-linux-gnu | ... | @@ -41925,12 +44444,17 @@ i386-linux-gnu |
| 41925 | 27 | 44444 | 27 |
| 41926 | 36 | 44445 | 36 |
| 41927 | 27 | 44446 | 27 |
| 44447 | |||
| 41928 | 27 | 44448 | 27 |
| 44449 | |||
| 41929 | 5 | 44450 | 5 |
| 41930 | 5 | 44451 | 5 |
| 41931 | 5 | 44452 | 5 |
| 41932 | 0 | 44453 | 0 |
| 41933 | 5 | 44454 | 5 |
| 44455 | |||
| 44456 | |||
| 44457 | |||
| 41934 | 8 | 44458 | 8 |
| 41935 | 8 | 44459 | 8 |
| 41936 | 8 | 44460 | 8 |
| ... | @@ -41938,7 +44462,11 @@ i386-linux-gnu | ... | @@ -41938,7 +44462,11 @@ i386-linux-gnu |
| 41938 | 0 | 44462 | 0 |
| 41939 | 27 | 44463 | 27 |
| 41940 | 27 | 44464 | 27 |
| 44465 | |||
| 41941 | 27 | 44466 | 27 |
| 44467 | |||
| 44468 | |||
| 44469 | |||
| 41942 | 19 | 44470 | 19 |
| 41943 | 18 | 44471 | 18 |
| 41944 | 19 | 44472 | 19 |
| ... | @@ -41952,6 +44480,8 @@ i386-linux-gnu | ... | @@ -41952,6 +44480,8 @@ i386-linux-gnu |
| 41952 | 0 | 44480 | 0 |
| 41953 | 0 | 44481 | 0 |
| 41954 | 5 | 44482 | 5 |
| 44483 | |||
| 44484 | |||
| 41955 | 0 | 44485 | 0 |
| 41956 | 0 | 44486 | 0 |
| 41957 | 0 | 44487 | 0 |
| ... | @@ -41962,24 +44492,34 @@ i386-linux-gnu | ... | @@ -41962,24 +44492,34 @@ i386-linux-gnu |
| 41962 | 36 | 44492 | 36 |
| 41963 | 1 | 44493 | 1 |
| 41964 | 33 | 44494 | 33 |
| 44495 | |||
| 41965 | 0 | 44496 | 0 |
| 41966 | 0 | 44497 | 0 |
| 41967 | 4 | 44498 | 4 |
| 41968 | 44499 | ||
| 41969 | 44500 | ||
| 41970 | 44501 | ||
| 44502 | |||
| 41971 | 27 | 44503 | 27 |
| 41972 | 36 | 44504 | 36 |
| 41973 | 27 | 44505 | 27 |
| 44506 | |||
| 41974 | 27 | 44507 | 27 |
| 44508 | |||
| 41975 | 15 | 44509 | 15 |
| 44510 | |||
| 44511 | |||
| 41976 | 15 | 44512 | 15 |
| 44513 | |||
| 44514 | |||
| 41977 | 27 | 44515 | 27 |
| 41978 | 44516 | ||
| 41979 | 36 | 44517 | 36 |
| 41980 | 27 | 44518 | 27 |
| 44519 | |||
| 41981 | 27 | 44520 | 27 |
| 41982 | 44521 | ||
| 44522 | |||
| 41983 | 16 | 44523 | 16 |
| 41984 | 44524 | ||
| 41985 | 5 | 44525 | 5 |
| ... | @@ -42012,6 +44552,9 @@ i386-linux-gnu | ... | @@ -42012,6 +44552,9 @@ i386-linux-gnu |
| 42012 | 0 | 44552 | 0 |
| 42013 | 0 | 44553 | 0 |
| 42014 | 1 | 44554 | 1 |
| 44555 | |||
| 44556 | |||
| 44557 | |||
| 42015 | 12 | 44558 | 12 |
| 42016 | 2 | 44559 | 2 |
| 42017 | 1 | 44560 | 1 |
| ... | @@ -42046,6 +44589,8 @@ i386-linux-gnu | ... | @@ -42046,6 +44589,8 @@ i386-linux-gnu |
| 42046 | 36 | 44589 | 36 |
| 42047 | 0 | 44590 | 0 |
| 42048 | 1 | 44591 | 1 |
| 44592 | |||
| 44593 | |||
| 42049 | 0 | 44594 | 0 |
| 42050 | 2 | 44595 | 2 |
| 42051 | 0 | 44596 | 0 |
| ... | @@ -42065,48 +44610,93 @@ i386-linux-gnu | ... | @@ -42065,48 +44610,93 @@ i386-linux-gnu |
| 42065 | 44610 | ||
| 42066 | 44611 | ||
| 42067 | 16 | 44612 | 16 |
| 44613 | |||
| 44614 | |||
| 44615 | |||
| 42068 | 5 | 44616 | 5 |
| 42069 | 5 | 44617 | 5 |
| 42070 | 16 | 44618 | 16 |
| 44619 | |||
| 44620 | |||
| 42071 | 0 | 44621 | 0 |
| 44622 | |||
| 44623 | |||
| 44624 | |||
| 42072 | 0 | 44625 | 0 |
| 42073 | 12 | 44626 | 12 |
| 42074 | 44627 | ||
| 42075 | 44628 | ||
| 42076 | 1 | 44629 | 1 |
| 42077 | 1 | 44630 | 1 |
| 44631 | |||
| 44632 | |||
| 42078 | 1 | 44633 | 1 |
| 42079 | 1 | 44634 | 1 |
| 42080 | 1 | 44635 | 1 |
| 42081 | 1 | 44636 | 1 |
| 42082 | 1 | 44637 | 1 |
| 42083 | 44638 | ||
| 44639 | |||
| 42084 | 16 | 44640 | 16 |
| 42085 | 0 | 44641 | 0 |
| 42086 | 44642 | ||
| 42087 | 0 | 44643 | 0 |
| 42088 | 0 | 44644 | 0 |
| 44645 | |||
| 44646 | |||
| 42089 | 0 | 44647 | 0 |
| 42090 | 0 | 44648 | 0 |
| 42091 | 44649 | ||
| 42092 | 44650 | ||
| 42093 | 12 | 44651 | 12 |
| 42094 | 20 | 44652 | 20 |
| 44653 | |||
| 44654 | |||
| 42095 | 20 | 44655 | 20 |
| 44656 | |||
| 44657 | |||
| 44658 | |||
| 44659 | |||
| 42096 | 3 | 44660 | 3 |
| 42097 | 15 | 44661 | 15 |
| 44662 | |||
| 44663 | |||
| 42098 | 0 | 44664 | 0 |
| 44665 | |||
| 42099 | 16 | 44666 | 16 |
| 44667 | |||
| 44668 | |||
| 44669 | |||
| 42100 | 15 | 44670 | 15 |
| 44671 | |||
| 44672 | |||
| 44673 | |||
| 42101 | 0 | 44674 | 0 |
| 42102 | 15 | 44675 | 15 |
| 44676 | |||
| 44677 | |||
| 42103 | 15 | 44678 | 15 |
| 44679 | |||
| 44680 | |||
| 42104 | 0 | 44681 | 0 |
| 44682 | |||
| 42105 | 16 | 44683 | 16 |
| 44684 | |||
| 44685 | |||
| 44686 | |||
| 42106 | 16 | 44687 | 16 |
| 44688 | |||
| 44689 | |||
| 44690 | |||
| 44691 | |||
| 42107 | 16 | 44692 | 16 |
| 44693 | |||
| 44694 | |||
| 44695 | |||
| 42108 | 0 | 44696 | 0 |
| 42109 | 0 | 44697 | 0 |
| 44698 | |||
| 44699 | |||
| 42110 | 16 | 44700 | 16 |
| 42111 | 16 | 44701 | 16 |
| 42112 | 16 | 44702 | 16 |
| ... | @@ -42125,6 +44715,8 @@ i386-linux-gnu | ... | @@ -42125,6 +44715,8 @@ i386-linux-gnu |
| 42125 | 36 | 44715 | 36 |
| 42126 | 0 | 44716 | 0 |
| 42127 | 1 | 44717 | 1 |
| 44718 | |||
| 44719 | |||
| 42128 | 0 | 44720 | 0 |
| 42129 | 1 | 44721 | 1 |
| 42130 | 0 | 44722 | 0 |
| ... | @@ -42146,7 +44738,10 @@ i386-linux-gnu | ... | @@ -42146,7 +44738,10 @@ i386-linux-gnu |
| 42146 | 16 | 44738 | 16 |
| 42147 | 5 | 44739 | 5 |
| 42148 | 16 | 44740 | 16 |
| 44741 | |||
| 44742 | |||
| 42149 | 0 | 44743 | 0 |
| 44744 | |||
| 42150 | 5 | 44745 | 5 |
| 42151 | 5 | 44746 | 5 |
| 42152 | 0 | 44747 | 0 |
| ... | @@ -42159,14 +44754,17 @@ i386-linux-gnu | ... | @@ -42159,14 +44754,17 @@ i386-linux-gnu |
| 42159 | 27 | 44754 | 27 |
| 42160 | 36 | 44755 | 36 |
| 42161 | 27 | 44756 | 27 |
| 44757 | |||
| 42162 | 27 | 44758 | 27 |
| 42163 | 27 | 44759 | 27 |
| 42164 | 36 | 44760 | 36 |
| 42165 | 27 | 44761 | 27 |
| 44762 | |||
| 42166 | 27 | 44763 | 27 |
| 42167 | 27 | 44764 | 27 |
| 42168 | 36 | 44765 | 36 |
| 42169 | 27 | 44766 | 27 |
| 44767 | |||
| 42170 | 27 | 44768 | 27 |
| 42171 | 1 | 44769 | 1 |
| 42172 | 1 | 44770 | 1 |
| ... | @@ -42764,7 +45362,7 @@ i386-linux-gnu | ... | @@ -42764,7 +45362,7 @@ i386-linux-gnu |
| 42764 | 0 | 45362 | 0 |
| 42765 | 0 39 | 45363 | 0 39 |
| 42766 | 1 | 45364 | 1 |
| 42767 | 1 | 45365 | 1 42 |
| 42768 | 36 | 45366 | 36 |
| 42769 | 37 | 45367 | 37 |
| 42770 | 37 | 45368 | 37 |
| ... | @@ -43890,17 +46488,19 @@ i386-linux-gnu | ... | @@ -43890,17 +46488,19 @@ i386-linux-gnu |
| 43890 | 0 | 46488 | 0 |
| 43891 | 0 | 46489 | 0 |
| 43892 | 0 | 46490 | 0 |
| 46491 | 42 | ||
| 43893 | 5 | 46492 | 5 |
| 43894 | 1 | 46493 | 1 |
| 43895 | 1 | 46494 | 1 |
| 43896 | 0 1 | 46495 | 0 1 |
| 43897 | 14 15 | 46496 | 14 15 42 |
| 43898 | 0 | 46497 | 0 |
| 43899 | 1 | 46498 | 1 |
| 43900 | 0 | 46499 | 0 |
| 43901 | 0 | 46500 | 0 |
| 43902 | 0 | 46501 | 0 |
| 43903 | 0 | 46502 | 0 |
| 46503 | 42 | ||
| 43904 | 5 | 46504 | 5 |
| 43905 | 1 | 46505 | 1 |
| 43906 | 1 | 46506 | 1 |
| ... | @@ -43930,9 +46530,9 @@ i386-linux-gnu | ... | @@ -43930,9 +46530,9 @@ i386-linux-gnu |
| 43930 | 0 | 46530 | 0 |
| 43931 | 0 | 46531 | 0 |
| 43932 | 0 | 46532 | 0 |
| 43933 | 14 15 | 46533 | 14 15 42 |
| 43934 | 30 | 46534 | 30 |
| 43935 | 8 | 46535 | 8 42 |
| 43936 | 1 | 46536 | 1 |
| 43937 | 5 | 46537 | 5 |
| 43938 | 24 | 46538 | 24 |
| ... | @@ -43998,7 +46598,7 @@ i386-linux-gnu | ... | @@ -43998,7 +46598,7 @@ i386-linux-gnu |
| 43998 | 0 | 46598 | 0 |
| 43999 | 15 | 46599 | 15 |
| 44000 | 0 | 46600 | 0 |
| 44001 | 0 | 46601 | 0 42 |
| 44002 | 23 | 46602 | 23 |
| 44003 | 5 | 46603 | 5 |
| 44004 | 5 | 46604 | 5 |
| ... | @@ -44303,12 +46903,14 @@ i386-linux-gnu | ... | @@ -44303,12 +46903,14 @@ i386-linux-gnu |
| 44303 | 0 | 46903 | 0 |
| 44304 | 0 | 46904 | 0 |
| 44305 | 0 | 46905 | 0 |
| 46906 | 42 | ||
| 44306 | 0 | 46907 | 0 |
| 44307 | 0 | 46908 | 0 |
| 44308 | 0 | 46909 | 0 |
| 44309 | 0 | 46910 | 0 |
| 44310 | 0 | 46911 | 0 |
| 44311 | 0 | 46912 | 0 |
| 46913 | 42 | ||
| 44312 | 0 | 46914 | 0 |
| 44313 | 0 | 46915 | 0 |
| 44314 | 0 | 46916 | 0 |
| ... | @@ -44414,6 +47016,8 @@ i386-linux-gnu | ... | @@ -44414,6 +47016,8 @@ i386-linux-gnu |
| 44414 | 0 | 47016 | 0 |
| 44415 | 18 | 47017 | 18 |
| 44416 | 0 | 47018 | 0 |
| 47019 | 42 | ||
| 47020 | 42 | ||
| 44417 | 0 | 47021 | 0 |
| 44418 | 12 | 47022 | 12 |
| 44419 | 35 | 47023 | 35 |
| ... | @@ -45104,7 +47708,9 @@ powerpc64le-linux-gnu | ... | @@ -45104,7 +47708,9 @@ powerpc64le-linux-gnu |
| 45104 | 29 | 47708 | 29 |
| 45105 | 36 | 47709 | 36 |
| 45106 | 29 | 47710 | 29 |
| 47711 | 42 | ||
| 45107 | 29 | 47712 | 29 |
| 47713 | 42 | ||
| 45108 | 29 | 47714 | 29 |
| 45109 | 47715 | ||
| 45110 | 47716 | ||
| ... | @@ -45133,6 +47739,8 @@ powerpc64le-linux-gnu | ... | @@ -45133,6 +47739,8 @@ powerpc64le-linux-gnu |
| 45133 | 47739 | ||
| 45134 | 47740 | ||
| 45135 | 47741 | ||
| 47742 | 42 | ||
| 47743 | 42 | ||
| 45136 | 29 | 47744 | 29 |
| 45137 | 29 | 47745 | 29 |
| 45138 | 29 | 47746 | 29 |
| ... | @@ -45141,20 +47749,27 @@ powerpc64le-linux-gnu | ... | @@ -45141,20 +47749,27 @@ powerpc64le-linux-gnu |
| 45141 | 29 | 47749 | 29 |
| 45142 | 36 | 47750 | 36 |
| 45143 | 29 | 47751 | 29 |
| 47752 | 42 | ||
| 47753 | 42 | ||
| 45144 | 29 | 47754 | 29 |
| 45145 | 29 | 47755 | 29 |
| 45146 | 29 | 47756 | 29 |
| 47757 | 42 | ||
| 47758 | 42 | ||
| 45147 | 29 | 47759 | 29 |
| 45148 | 29 | 47760 | 29 |
| 45149 | 29 | 47761 | 29 |
| 45150 | 29 | 47762 | 29 |
| 45151 | 36 | 47763 | 36 |
| 45152 | 29 | 47764 | 29 |
| 47765 | 42 | ||
| 45153 | 29 | 47766 | 29 |
| 45154 | 29 | 47767 | 29 |
| 45155 | 36 | 47768 | 36 |
| 45156 | 29 | 47769 | 29 |
| 47770 | 42 | ||
| 45157 | 29 | 47771 | 29 |
| 47772 | 42 | ||
| 45158 | 47773 | ||
| 45159 | 47774 | ||
| 45160 | 47775 | ||
| ... | @@ -45163,21 +47778,50 @@ powerpc64le-linux-gnu | ... | @@ -45163,21 +47778,50 @@ powerpc64le-linux-gnu |
| 45163 | 29 | 47778 | 29 |
| 45164 | 29 | 47779 | 29 |
| 45165 | 29 | 47780 | 29 |
| 47781 | 42 | ||
| 47782 | 42 | ||
| 47783 | 42 | ||
| 47784 | 42 | ||
| 47785 | 42 | ||
| 47786 | 42 | ||
| 47787 | 42 | ||
| 47788 | 42 | ||
| 47789 | 42 | ||
| 47790 | 42 | ||
| 47791 | 42 | ||
| 47792 | 42 | ||
| 47793 | 42 | ||
| 47794 | 42 | ||
| 45166 | 29 | 47795 | 29 |
| 45167 | 29 | 47796 | 29 |
| 47797 | 42 | ||
| 45168 | 29 | 47798 | 29 |
| 45169 | 29 | 47799 | 29 |
| 47800 | 42 | ||
| 45170 | 29 | 47801 | 29 |
| 47802 | 42 | ||
| 45171 | 29 | 47803 | 29 |
| 45172 | 29 | 47804 | 29 |
| 45173 | 47805 | ||
| 45174 | 29 | 47806 | 29 |
| 45175 | 29 | 47807 | 29 |
| 47808 | 42 | ||
| 45176 | 29 | 47809 | 29 |
| 47810 | 42 | ||
| 45177 | 29 | 47811 | 29 |
| 45178 | 36 | 47812 | 36 |
| 45179 | 29 | 47813 | 29 |
| 47814 | 42 | ||
| 45180 | 29 | 47815 | 29 |
| 47816 | 42 | ||
| 47817 | 42 | ||
| 47818 | 42 | ||
| 47819 | 42 | ||
| 47820 | 42 | ||
| 47821 | 42 | ||
| 47822 | 42 | ||
| 47823 | 42 | ||
| 47824 | 42 | ||
| 45181 | 47825 | ||
| 45182 | 47826 | ||
| 45183 | 47827 | ||
| ... | @@ -45205,33 +47849,55 @@ powerpc64le-linux-gnu | ... | @@ -45205,33 +47849,55 @@ powerpc64le-linux-gnu |
| 45205 | 47849 | ||
| 45206 | 47850 | ||
| 45207 | 29 | 47851 | 29 |
| 47852 | 42 | ||
| 47853 | 42 | ||
| 45208 | 29 | 47854 | 29 |
| 45209 | 29 | 47855 | 29 |
| 45210 | 29 | 47856 | 29 |
| 45211 | 29 | 47857 | 29 |
| 45212 | 47858 | ||
| 45213 | 47859 | ||
| 47860 | 42 | ||
| 47861 | 42 | ||
| 47862 | 42 | ||
| 45214 | 29 | 47863 | 29 |
| 47864 | 42 | ||
| 47865 | 42 | ||
| 47866 | 42 | ||
| 45215 | 29 | 47867 | 29 |
| 45216 | 36 | 47868 | 36 |
| 45217 | 29 | 47869 | 29 |
| 47870 | 42 | ||
| 45218 | 29 | 47871 | 29 |
| 45219 | 29 | 47872 | 29 |
| 45220 | 36 | 47873 | 36 |
| 45221 | 29 | 47874 | 29 |
| 47875 | 42 | ||
| 45222 | 29 | 47876 | 29 |
| 45223 | 29 | 47877 | 29 |
| 45224 | 36 | 47878 | 36 |
| 45225 | 29 | 47879 | 29 |
| 47880 | 42 | ||
| 45226 | 47881 | ||
| 45227 | 29 | 47882 | 29 |
| 45228 | 35 | 47883 | 35 |
| 47884 | 42 | ||
| 45229 | 47885 | ||
| 45230 | 47886 | ||
| 47887 | 42 | ||
| 47888 | 42 | ||
| 47889 | 42 | ||
| 47890 | 42 | ||
| 47891 | 42 | ||
| 47892 | 42 | ||
| 47893 | 42 | ||
| 47894 | 42 | ||
| 47895 | 42 | ||
| 45231 | 29 | 47896 | 29 |
| 45232 | 29 | 47897 | 29 |
| 45233 | 29 | 47898 | 29 |
| 45234 | 29 | 47899 | 29 |
| 47900 | 42 | ||
| 45235 | 29 | 47901 | 29 |
| 45236 | 35 | 47902 | 35 |
| 45237 | 29 | 47903 | 29 |
| ... | @@ -45264,10 +47930,17 @@ powerpc64le-linux-gnu | ... | @@ -45264,10 +47930,17 @@ powerpc64le-linux-gnu |
| 45264 | 47930 | ||
| 45265 | 47931 | ||
| 45266 | 47932 | ||
| 47933 | 42 | ||
| 45267 | 47934 | ||
| 47935 | 42 | ||
| 47936 | 42 | ||
| 47937 | 42 | ||
| 47938 | 42 | ||
| 47939 | 42 | ||
| 45268 | 29 | 47940 | 29 |
| 45269 | 36 | 47941 | 36 |
| 45270 | 29 | 47942 | 29 |
| 47943 | 42 | ||
| 45271 | 29 | 47944 | 29 |
| 45272 | 29 | 47945 | 29 |
| 45273 | 29 | 47946 | 29 |
| ... | @@ -45276,6 +47949,8 @@ powerpc64le-linux-gnu | ... | @@ -45276,6 +47949,8 @@ powerpc64le-linux-gnu |
| 45276 | 29 | 47949 | 29 |
| 45277 | 29 | 47950 | 29 |
| 45278 | 29 | 47951 | 29 |
| 47952 | 42 | ||
| 47953 | 42 | ||
| 45279 | 29 | 47954 | 29 |
| 45280 | 29 | 47955 | 29 |
| 45281 | 47956 | ||
| ... | @@ -45285,10 +47960,17 @@ powerpc64le-linux-gnu | ... | @@ -45285,10 +47960,17 @@ powerpc64le-linux-gnu |
| 45285 | 29 | 47960 | 29 |
| 45286 | 29 | 47961 | 29 |
| 45287 | 29 | 47962 | 29 |
| 47963 | 42 | ||
| 47964 | 42 | ||
| 47965 | 42 | ||
| 47966 | 42 | ||
| 45288 | 29 | 47967 | 29 |
| 45289 | 29 | 47968 | 29 |
| 47969 | 42 | ||
| 47970 | 42 | ||
| 45290 | 29 | 47971 | 29 |
| 45291 | 29 | 47972 | 29 |
| 47973 | 42 | ||
| 45292 | 29 | 47974 | 29 |
| 45293 | 29 | 47975 | 29 |
| 45294 | 29 | 47976 | 29 |
| ... | @@ -45308,6 +47990,7 @@ powerpc64le-linux-gnu | ... | @@ -45308,6 +47990,7 @@ powerpc64le-linux-gnu |
| 45308 | 29 | 47990 | 29 |
| 45309 | 29 | 47991 | 29 |
| 45310 | 29 | 47992 | 29 |
| 47993 | 42 | ||
| 45311 | 29 | 47994 | 29 |
| 45312 | 29 | 47995 | 29 |
| 45313 | 29 | 47996 | 29 |
| ... | @@ -45323,7 +48006,9 @@ powerpc64le-linux-gnu | ... | @@ -45323,7 +48006,9 @@ powerpc64le-linux-gnu |
| 45323 | 29 | 48006 | 29 |
| 45324 | 36 | 48007 | 36 |
| 45325 | 29 | 48008 | 29 |
| 48009 | 42 | ||
| 45326 | 29 | 48010 | 29 |
| 48011 | 42 | ||
| 45327 | 29 | 48012 | 29 |
| 45328 | 29 | 48013 | 29 |
| 45329 | 29 | 48014 | 29 |
| ... | @@ -45347,17 +48032,29 @@ powerpc64le-linux-gnu | ... | @@ -45347,17 +48032,29 @@ powerpc64le-linux-gnu |
| 45347 | 36 | 48032 | 36 |
| 45348 | 29 | 48033 | 29 |
| 45349 | 29 | 48034 | 29 |
| 48035 | 42 | ||
| 45350 | 29 | 48036 | 29 |
| 48037 | 42 | ||
| 45351 | 29 | 48038 | 29 |
| 48039 | 42 | ||
| 45352 | 29 | 48040 | 29 |
| 48041 | 42 | ||
| 45353 | 29 | 48042 | 29 |
| 48043 | 42 | ||
| 45354 | 29 | 48044 | 29 |
| 48045 | 42 | ||
| 45355 | 29 | 48046 | 29 |
| 48047 | 42 | ||
| 45356 | 29 | 48048 | 29 |
| 48049 | 42 | ||
| 45357 | 29 | 48050 | 29 |
| 48051 | 42 | ||
| 45358 | 29 | 48052 | 29 |
| 48053 | 42 | ||
| 45359 | 29 | 48054 | 29 |
| 48055 | 42 | ||
| 45360 | 29 | 48056 | 29 |
| 48057 | 42 | ||
| 45361 | 29 | 48058 | 29 |
| 45362 | 29 | 48059 | 29 |
| 45363 | 30 | 48060 | 30 |
| ... | @@ -45385,23 +48082,29 @@ powerpc64le-linux-gnu | ... | @@ -45385,23 +48082,29 @@ powerpc64le-linux-gnu |
| 45385 | 29 | 48082 | 29 |
| 45386 | 36 | 48083 | 36 |
| 45387 | 29 | 48084 | 29 |
| 48085 | 42 | ||
| 45388 | 29 | 48086 | 29 |
| 45389 | 29 | 48087 | 29 |
| 45390 | 36 | 48088 | 36 |
| 45391 | 29 | 48089 | 29 |
| 48090 | 42 | ||
| 45392 | 29 | 48091 | 29 |
| 45393 | 29 | 48092 | 29 |
| 45394 | 36 | 48093 | 36 |
| 45395 | 29 | 48094 | 29 |
| 48095 | 42 | ||
| 45396 | 29 | 48096 | 29 |
| 45397 | 29 | 48097 | 29 |
| 45398 | 29 | 48098 | 29 |
| 45399 | 29 | 48099 | 29 |
| 48100 | 42 | ||
| 45400 | 48101 | ||
| 45401 | 48102 | ||
| 45402 | 29 | 48103 | 29 |
| 45403 | 36 | 48104 | 36 |
| 45404 | 29 | 48105 | 29 |
| 48106 | 42 | ||
| 48107 | 42 | ||
| 45405 | 29 | 48108 | 29 |
| 45406 | 29 | 48109 | 29 |
| 45407 | 29 | 48110 | 29 |
| ... | @@ -45417,23 +48120,34 @@ powerpc64le-linux-gnu | ... | @@ -45417,23 +48120,34 @@ powerpc64le-linux-gnu |
| 45417 | 29 | 48120 | 29 |
| 45418 | 29 | 48121 | 29 |
| 45419 | 29 | 48122 | 29 |
| 48123 | 42 | ||
| 45420 | 29 | 48124 | 29 |
| 45421 | 29 | 48125 | 29 |
| 45422 | 29 | 48126 | 29 |
| 45423 | 48127 | ||
| 48128 | 42 | ||
| 48129 | 42 | ||
| 48130 | 42 | ||
| 45424 | 29 | 48131 | 29 |
| 45425 | 36 | 48132 | 36 |
| 45426 | 29 | 48133 | 29 |
| 48134 | 42 | ||
| 45427 | 29 | 48135 | 29 |
| 48136 | 42 | ||
| 45428 | 29 | 48137 | 29 |
| 45429 | 36 | 48138 | 36 |
| 45430 | 29 | 48139 | 29 |
| 48140 | 42 | ||
| 45431 | 29 | 48141 | 29 |
| 45432 | 29 | 48142 | 29 |
| 48143 | 42 | ||
| 45433 | 36 | 48144 | 36 |
| 45434 | 29 | 48145 | 29 |
| 48146 | 42 | ||
| 45435 | 29 | 48147 | 29 |
| 45436 | 29 | 48148 | 29 |
| 48149 | 42 | ||
| 48150 | 42 | ||
| 45437 | 29 | 48151 | 29 |
| 45438 | 48152 | ||
| 45439 | 48153 | ||
| ... | @@ -45472,17 +48186,26 @@ powerpc64le-linux-gnu | ... | @@ -45472,17 +48186,26 @@ powerpc64le-linux-gnu |
| 45472 | 48186 | ||
| 45473 | 48187 | ||
| 45474 | 48188 | ||
| 48189 | 42 | ||
| 45475 | 29 | 48190 | 29 |
| 45476 | 29 | 48191 | 29 |
| 45477 | 29 | 48192 | 29 |
| 45478 | 48193 | ||
| 45479 | 48194 | ||
| 48195 | 42 | ||
| 45480 | 29 | 48196 | 29 |
| 48197 | 42 | ||
| 45481 | 48198 | ||
| 45482 | 48199 | ||
| 45483 | 48200 | ||
| 45484 | 48201 | ||
| 45485 | 29 | 48202 | 29 |
| 48203 | 42 | ||
| 48204 | 42 | ||
| 48205 | 42 | ||
| 48206 | 42 | ||
| 48207 | 42 | ||
| 48208 | 42 | ||
| 45486 | 29 | 48209 | 29 |
| 45487 | 29 | 48210 | 29 |
| 45488 | 29 | 48211 | 29 |
| ... | @@ -45595,7 +48318,11 @@ powerpc64le-linux-gnu | ... | @@ -45595,7 +48318,11 @@ powerpc64le-linux-gnu |
| 45595 | 29 | 48318 | 29 |
| 45596 | 29 | 48319 | 29 |
| 45597 | 29 | 48320 | 29 |
| 48321 | 42 | ||
| 48322 | 42 | ||
| 45598 | 29 | 48323 | 29 |
| 48324 | 42 | ||
| 48325 | 42 | ||
| 45599 | 29 | 48326 | 29 |
| 45600 | 29 | 48327 | 29 |
| 45601 | 29 | 48328 | 29 |
| ... | @@ -45611,6 +48338,7 @@ powerpc64le-linux-gnu | ... | @@ -45611,6 +48338,7 @@ powerpc64le-linux-gnu |
| 45611 | 29 | 48338 | 29 |
| 45612 | 36 | 48339 | 36 |
| 45613 | 29 | 48340 | 29 |
| 48341 | 42 | ||
| 45614 | 29 | 48342 | 29 |
| 45615 | 29 | 48343 | 29 |
| 45616 | 29 | 48344 | 29 |
| ... | @@ -45618,7 +48346,10 @@ powerpc64le-linux-gnu | ... | @@ -45618,7 +48346,10 @@ powerpc64le-linux-gnu |
| 45618 | 29 | 48346 | 29 |
| 45619 | 29 | 48347 | 29 |
| 45620 | 29 | 48348 | 29 |
| 48349 | 42 | ||
| 45621 | 29 | 48350 | 29 |
| 48351 | 42 | ||
| 48352 | 42 | ||
| 45622 | 29 | 48353 | 29 |
| 45623 | 29 | 48354 | 29 |
| 45624 | 29 | 48355 | 29 |
| ... | @@ -45649,6 +48380,11 @@ powerpc64le-linux-gnu | ... | @@ -45649,6 +48380,11 @@ powerpc64le-linux-gnu |
| 45649 | 29 | 48380 | 29 |
| 45650 | 29 | 48381 | 29 |
| 45651 | 29 | 48382 | 29 |
| 48383 | 42 | ||
| 48384 | 42 | ||
| 48385 | 42 | ||
| 48386 | 42 | ||
| 48387 | 42 | ||
| 45652 | 29 | 48388 | 29 |
| 45653 | 29 | 48389 | 29 |
| 45654 | 29 | 48390 | 29 |
| ... | @@ -45667,12 +48403,17 @@ powerpc64le-linux-gnu | ... | @@ -45667,12 +48403,17 @@ powerpc64le-linux-gnu |
| 45667 | 29 | 48403 | 29 |
| 45668 | 36 | 48404 | 36 |
| 45669 | 29 | 48405 | 29 |
| 48406 | 42 | ||
| 45670 | 29 | 48407 | 29 |
| 48408 | 42 | ||
| 45671 | 29 | 48409 | 29 |
| 45672 | 29 | 48410 | 29 |
| 45673 | 29 | 48411 | 29 |
| 45674 | 29 | 48412 | 29 |
| 45675 | 29 | 48413 | 29 |
| 48414 | 42 | ||
| 48415 | 42 | ||
| 48416 | 42 | ||
| 45676 | 29 | 48417 | 29 |
| 45677 | 29 | 48418 | 29 |
| 45678 | 29 | 48419 | 29 |
| ... | @@ -45680,7 +48421,11 @@ powerpc64le-linux-gnu | ... | @@ -45680,7 +48421,11 @@ powerpc64le-linux-gnu |
| 45680 | 29 | 48421 | 29 |
| 45681 | 29 | 48422 | 29 |
| 45682 | 29 | 48423 | 29 |
| 48424 | 42 | ||
| 45683 | 29 | 48425 | 29 |
| 48426 | 42 | ||
| 48427 | 42 | ||
| 48428 | 42 | ||
| 45684 | 29 | 48429 | 29 |
| 45685 | 29 | 48430 | 29 |
| 45686 | 29 | 48431 | 29 |
| ... | @@ -45694,6 +48439,8 @@ powerpc64le-linux-gnu | ... | @@ -45694,6 +48439,8 @@ powerpc64le-linux-gnu |
| 45694 | 29 | 48439 | 29 |
| 45695 | 29 | 48440 | 29 |
| 45696 | 29 | 48441 | 29 |
| 48442 | 42 | ||
| 48443 | 42 | ||
| 45697 | 29 | 48444 | 29 |
| 45698 | 29 | 48445 | 29 |
| 45699 | 29 | 48446 | 29 |
| ... | @@ -45704,24 +48451,34 @@ powerpc64le-linux-gnu | ... | @@ -45704,24 +48451,34 @@ powerpc64le-linux-gnu |
| 45704 | 36 | 48451 | 36 |
| 45705 | 29 | 48452 | 29 |
| 45706 | 33 | 48453 | 33 |
| 48454 | 42 | ||
| 45707 | 29 | 48455 | 29 |
| 45708 | 29 | 48456 | 29 |
| 45709 | 29 | 48457 | 29 |
| 45710 | 48458 | ||
| 45711 | 48459 | ||
| 45712 | 48460 | ||
| 48461 | 42 | ||
| 45713 | 29 | 48462 | 29 |
| 45714 | 36 | 48463 | 36 |
| 45715 | 29 | 48464 | 29 |
| 48465 | 42 | ||
| 45716 | 29 | 48466 | 29 |
| 48467 | 42 | ||
| 45717 | 29 | 48468 | 29 |
| 48469 | 42 | ||
| 48470 | 42 | ||
| 45718 | 29 | 48471 | 29 |
| 48472 | 42 | ||
| 48473 | 42 | ||
| 45719 | 29 | 48474 | 29 |
| 45720 | 48475 | ||
| 45721 | 36 | 48476 | 36 |
| 45722 | 29 | 48477 | 29 |
| 48478 | 42 | ||
| 45723 | 29 | 48479 | 29 |
| 45724 | 48480 | ||
| 48481 | 42 | ||
| 45725 | 29 | 48482 | 29 |
| 45726 | 48483 | ||
| 45727 | 29 | 48484 | 29 |
| ... | @@ -45754,6 +48511,9 @@ powerpc64le-linux-gnu | ... | @@ -45754,6 +48511,9 @@ powerpc64le-linux-gnu |
| 45754 | 29 | 48511 | 29 |
| 45755 | 29 | 48512 | 29 |
| 45756 | 29 | 48513 | 29 |
| 48514 | 42 | ||
| 48515 | 42 | ||
| 48516 | 42 | ||
| 45757 | 29 | 48517 | 29 |
| 45758 | 48518 | ||
| 45759 | 29 | 48519 | 29 |
| ... | @@ -45788,6 +48548,8 @@ powerpc64le-linux-gnu | ... | @@ -45788,6 +48548,8 @@ powerpc64le-linux-gnu |
| 45788 | 36 | 48548 | 36 |
| 45789 | 29 | 48549 | 29 |
| 45790 | 29 | 48550 | 29 |
| 48551 | 42 | ||
| 48552 | 42 | ||
| 45791 | 29 | 48553 | 29 |
| 45792 | 29 | 48554 | 29 |
| 45793 | 29 | 48555 | 29 |
| ... | @@ -45807,48 +48569,93 @@ powerpc64le-linux-gnu | ... | @@ -45807,48 +48569,93 @@ powerpc64le-linux-gnu |
| 45807 | 48569 | ||
| 45808 | 48570 | ||
| 45809 | 29 | 48571 | 29 |
| 48572 | 42 | ||
| 48573 | 42 | ||
| 48574 | 42 | ||
| 45810 | 29 | 48575 | 29 |
| 45811 | 29 | 48576 | 29 |
| 45812 | 29 | 48577 | 29 |
| 48578 | 42 | ||
| 48579 | 42 | ||
| 45813 | 29 | 48580 | 29 |
| 48581 | 42 | ||
| 48582 | 42 | ||
| 48583 | 42 | ||
| 45814 | 29 | 48584 | 29 |
| 45815 | 29 | 48585 | 29 |
| 45816 | 32 | 48586 | 32 |
| 45817 | 48587 | ||
| 45818 | 29 | 48588 | 29 |
| 45819 | 29 | 48589 | 29 |
| 48590 | 42 | ||
| 48591 | 42 | ||
| 45820 | 29 | 48592 | 29 |
| 45821 | 29 | 48593 | 29 |
| 45822 | 29 | 48594 | 29 |
| 45823 | 29 | 48595 | 29 |
| 45824 | 29 | 48596 | 29 |
| 45825 | 48597 | ||
| 48598 | 42 | ||
| 45826 | 29 | 48599 | 29 |
| 45827 | 29 | 48600 | 29 |
| 45828 | 48601 | ||
| 45829 | 48602 | ||
| 45830 | 29 | 48603 | 29 |
| 48604 | 42 | ||
| 48605 | 42 | ||
| 45831 | 48606 | ||
| 45832 | 29 | 48607 | 29 |
| 45833 | 48608 | ||
| 45834 | 48609 | ||
| 45835 | 29 | 48610 | 29 |
| 45836 | 29 | 48611 | 29 |
| 48612 | 42 | ||
| 48613 | 42 | ||
| 45837 | 29 | 48614 | 29 |
| 48615 | 42 | ||
| 48616 | 42 | ||
| 48617 | 42 | ||
| 48618 | 42 | ||
| 45838 | 29 | 48619 | 29 |
| 45839 | 29 | 48620 | 29 |
| 48621 | 42 | ||
| 48622 | 42 | ||
| 45840 | 29 | 48623 | 29 |
| 48624 | 42 | ||
| 45841 | 29 | 48625 | 29 |
| 48626 | 42 | ||
| 48627 | 42 | ||
| 48628 | 42 | ||
| 45842 | 29 | 48629 | 29 |
| 48630 | 42 | ||
| 48631 | 42 | ||
| 48632 | 42 | ||
| 45843 | 29 | 48633 | 29 |
| 45844 | 29 | 48634 | 29 |
| 48635 | 42 | ||
| 48636 | 42 | ||
| 45845 | 29 | 48637 | 29 |
| 48638 | 42 | ||
| 48639 | 42 | ||
| 45846 | 29 | 48640 | 29 |
| 48641 | 42 | ||
| 45847 | 29 | 48642 | 29 |
| 48643 | 42 | ||
| 48644 | 42 | ||
| 48645 | 42 | ||
| 45848 | 29 | 48646 | 29 |
| 48647 | 42 | ||
| 48648 | 42 | ||
| 48649 | 42 | ||
| 48650 | 42 | ||
| 45849 | 29 | 48651 | 29 |
| 48652 | 42 | ||
| 48653 | 42 | ||
| 48654 | 42 | ||
| 45850 | 29 | 48655 | 29 |
| 45851 | 29 | 48656 | 29 |
| 48657 | 42 | ||
| 48658 | 42 | ||
| 45852 | 29 | 48659 | 29 |
| 45853 | 29 | 48660 | 29 |
| 45854 | 29 | 48661 | 29 |
| ... | @@ -45867,6 +48674,8 @@ powerpc64le-linux-gnu | ... | @@ -45867,6 +48674,8 @@ powerpc64le-linux-gnu |
| 45867 | 36 | 48674 | 36 |
| 45868 | 29 | 48675 | 29 |
| 45869 | 29 | 48676 | 29 |
| 48677 | 42 | ||
| 48678 | 42 | ||
| 45870 | 29 | 48679 | 29 |
| 45871 | 29 | 48680 | 29 |
| 45872 | 29 | 48681 | 29 |
| ... | @@ -45888,7 +48697,10 @@ powerpc64le-linux-gnu | ... | @@ -45888,7 +48697,10 @@ powerpc64le-linux-gnu |
| 45888 | 29 | 48697 | 29 |
| 45889 | 29 | 48698 | 29 |
| 45890 | 29 | 48699 | 29 |
| 48700 | 42 | ||
| 48701 | 42 | ||
| 45891 | 29 | 48702 | 29 |
| 48703 | 42 | ||
| 45892 | 29 | 48704 | 29 |
| 45893 | 29 | 48705 | 29 |
| 45894 | 29 | 48706 | 29 |
| ... | @@ -45901,14 +48713,17 @@ powerpc64le-linux-gnu | ... | @@ -45901,14 +48713,17 @@ powerpc64le-linux-gnu |
| 45901 | 29 | 48713 | 29 |
| 45902 | 36 | 48714 | 36 |
| 45903 | 29 | 48715 | 29 |
| 48716 | 42 | ||
| 45904 | 29 | 48717 | 29 |
| 45905 | 29 | 48718 | 29 |
| 45906 | 36 | 48719 | 36 |
| 45907 | 29 | 48720 | 29 |
| 48721 | 42 | ||
| 45908 | 29 | 48722 | 29 |
| 45909 | 29 | 48723 | 29 |
| 45910 | 36 | 48724 | 36 |
| 45911 | 29 | 48725 | 29 |
| 48726 | 42 | ||
| 45912 | 29 | 48727 | 29 |
| 45913 | 29 | 48728 | 29 |
| 45914 | 29 | 48729 | 29 |
| ... | @@ -46506,7 +49321,7 @@ powerpc64le-linux-gnu | ... | @@ -46506,7 +49321,7 @@ powerpc64le-linux-gnu |
| 46506 | 29 | 49321 | 29 |
| 46507 | 29 39 | 49322 | 29 39 |
| 46508 | 29 | 49323 | 29 |
| 46509 | 29 | 49324 | 29 42 |
| 46510 | 36 | 49325 | 36 |
| 46511 | 37 | 49326 | 37 |
| 46512 | 37 | 49327 | 37 |
| ... | @@ -47632,17 +50447,19 @@ powerpc64le-linux-gnu | ... | @@ -47632,17 +50447,19 @@ powerpc64le-linux-gnu |
| 47632 | 29 | 50447 | 29 |
| 47633 | 29 | 50448 | 29 |
| 47634 | 29 | 50449 | 29 |
| 50450 | 42 | ||
| 47635 | 29 | 50451 | 29 |
| 47636 | 29 | 50452 | 29 |
| 47637 | 29 | 50453 | 29 |
| 47638 | 29 | 50454 | 29 |
| 50455 | 29 42 | ||
| 47639 | 29 | 50456 | 29 |
| 47640 | 29 | 50457 | 29 |
| 47641 | 29 | 50458 | 29 |
| 47642 | 29 | 50459 | 29 |
| 47643 | 29 | 50460 | 29 |
| 47644 | 29 | 50461 | 29 |
| 47645 | 29 | 50462 | 42 |
| 47646 | 29 | 50463 | 29 |
| 47647 | 29 | 50464 | 29 |
| 47648 | 29 | 50465 | 29 |
| ... | @@ -47672,9 +50489,9 @@ powerpc64le-linux-gnu | ... | @@ -47672,9 +50489,9 @@ powerpc64le-linux-gnu |
| 47672 | 29 | 50489 | 29 |
| 47673 | 29 | 50490 | 29 |
| 47674 | 29 | 50491 | 29 |
| 47675 | 29 | 50492 | 29 42 |
| 47676 | 30 | 50493 | 30 |
| 47677 | 29 | 50494 | 29 42 |
| 47678 | 29 | 50495 | 29 |
| 47679 | 29 | 50496 | 29 |
| 47680 | 29 | 50497 | 29 |
| ... | @@ -47740,7 +50557,7 @@ powerpc64le-linux-gnu | ... | @@ -47740,7 +50557,7 @@ powerpc64le-linux-gnu |
| 47740 | 29 | 50557 | 29 |
| 47741 | 29 | 50558 | 29 |
| 47742 | 29 | 50559 | 29 |
| 47743 | 29 | 50560 | 29 42 |
| 47744 | 29 | 50561 | 29 |
| 47745 | 29 | 50562 | 29 |
| 47746 | 29 | 50563 | 29 |
| ... | @@ -48045,12 +50862,14 @@ powerpc64le-linux-gnu | ... | @@ -48045,12 +50862,14 @@ powerpc64le-linux-gnu |
| 48045 | 29 | 50862 | 29 |
| 48046 | 29 | 50863 | 29 |
| 48047 | 29 | 50864 | 29 |
| 50865 | 42 | ||
| 48048 | 29 | 50866 | 29 |
| 48049 | 29 | 50867 | 29 |
| 48050 | 29 | 50868 | 29 |
| 48051 | 29 | 50869 | 29 |
| 48052 | 29 | 50870 | 29 |
| 48053 | 29 | 50871 | 29 |
| 50872 | 42 | ||
| 48054 | 29 | 50873 | 29 |
| 48055 | 29 | 50874 | 29 |
| 48056 | 29 | 50875 | 29 |
| ... | @@ -48156,6 +50975,8 @@ powerpc64le-linux-gnu | ... | @@ -48156,6 +50975,8 @@ powerpc64le-linux-gnu |
| 48156 | 29 | 50975 | 29 |
| 48157 | 29 | 50976 | 29 |
| 48158 | 29 | 50977 | 29 |
| 50978 | 42 | ||
| 50979 | 42 | ||
| 48159 | 29 | 50980 | 29 |
| 48160 | 29 | 50981 | 29 |
| 48161 | 35 | 50982 | 35 |
| ... | @@ -48846,7 +51667,9 @@ powerpc64-linux-gnu | ... | @@ -48846,7 +51667,9 @@ powerpc64-linux-gnu |
| 48846 | 27 | 51667 | 27 |
| 48847 | 51668 | ||
| 48848 | 27 | 51669 | 27 |
| 51670 | |||
| 48849 | 27 | 51671 | 27 |
| 51672 | |||
| 48850 | 27 | 51673 | 27 |
| 48851 | 51674 | ||
| 48852 | 51675 | ||
| ... | @@ -48875,6 +51698,8 @@ powerpc64-linux-gnu | ... | @@ -48875,6 +51698,8 @@ powerpc64-linux-gnu |
| 48875 | 51698 | ||
| 48876 | 51699 | ||
| 48877 | 51700 | ||
| 51701 | |||
| 51702 | |||
| 48878 | 12 | 51703 | 12 |
| 48879 | 12 | 51704 | 12 |
| 48880 | 12 | 51705 | 12 |
| ... | @@ -48883,47 +51708,83 @@ powerpc64-linux-gnu | ... | @@ -48883,47 +51708,83 @@ powerpc64-linux-gnu |
| 48883 | 27 | 51708 | 27 |
| 48884 | 51709 | ||
| 48885 | 27 | 51710 | 27 |
| 51711 | |||
| 51712 | |||
| 48886 | 27 | 51713 | 27 |
| 48887 | 12 16 | 51714 | 12 16 |
| 48888 | 20 | 51715 | 20 |
| 51716 | |||
| 51717 | |||
| 48889 | 12 | 51718 | 12 |
| 48890 | 12 | 51719 | 12 |
| 48891 | 12 | 51720 | 12 |
| 48892 | 27 | 51721 | 27 |
| 48893 | 51722 | ||
| 48894 | 27 | 51723 | 27 |
| 51724 | |||
| 48895 | 27 | 51725 | 27 |
| 48896 | 27 | 51726 | 27 |
| 48897 | 51727 | ||
| 48898 | 27 | 51728 | 27 |
| 51729 | |||
| 48899 | 27 | 51730 | 27 |
| 48900 | 51731 | ||
| 48901 | 51732 | ||
| 48902 | 51733 | ||
| 51734 | |||
| 48903 | 12 | 51735 | 12 |
| 48904 | 12 | 51736 | 12 |
| 48905 | 12 | 51737 | 12 |
| 48906 | 12 | 51738 | 12 |
| 48907 | 12 | 51739 | 12 |
| 51740 | |||
| 51741 | |||
| 51742 | |||
| 51743 | |||
| 51744 | |||
| 51745 | |||
| 51746 | |||
| 51747 | |||
| 51748 | |||
| 51749 | |||
| 51750 | |||
| 51751 | |||
| 51752 | |||
| 51753 | |||
| 48908 | 12 | 51754 | 12 |
| 48909 | 15 | 51755 | 15 |
| 51756 | |||
| 48910 | 12 | 51757 | 12 |
| 48911 | 12 | 51758 | 12 |
| 51759 | |||
| 48912 | 12 16 | 51760 | 12 16 |
| 51761 | |||
| 48913 | 12 | 51762 | 12 |
| 48914 | 12 | 51763 | 12 |
| 48915 | 51764 | ||
| 48916 | 12 | 51765 | 12 |
| 48917 | 16 | 51766 | 16 |
| 51767 | |||
| 48918 | 12 | 51768 | 12 |
| 51769 | |||
| 48919 | 27 | 51770 | 27 |
| 48920 | 51771 | ||
| 48921 | 27 | 51772 | 27 |
| 51773 | |||
| 48922 | 27 | 51774 | 27 |
| 48923 | 51775 | ||
| 48924 | 51776 | ||
| 48925 | 51777 | ||
| 48926 | 51778 | ||
| 51779 | |||
| 51780 | |||
| 51781 | |||
| 51782 | |||
| 51783 | |||
| 51784 | |||
| 51785 | |||
| 51786 | |||
| 51787 | |||
| 48927 | 12 | 51788 | 12 |
| 48928 | 12 | 51789 | 12 |
| 48929 | 51790 | ||
| ... | @@ -48947,33 +51808,55 @@ powerpc64-linux-gnu | ... | @@ -48947,33 +51808,55 @@ powerpc64-linux-gnu |
| 48947 | 51808 | ||
| 48948 | 51809 | ||
| 48949 | 20 | 51810 | 20 |
| 51811 | |||
| 51812 | |||
| 48950 | 12 | 51813 | 12 |
| 48951 | 12 | 51814 | 12 |
| 48952 | 12 | 51815 | 12 |
| 48953 | 12 | 51816 | 12 |
| 48954 | 51817 | ||
| 48955 | 51818 | ||
| 51819 | |||
| 51820 | |||
| 51821 | |||
| 48956 | 12 | 51822 | 12 |
| 51823 | |||
| 51824 | |||
| 51825 | |||
| 48957 | 27 | 51826 | 27 |
| 48958 | 51827 | ||
| 48959 | 27 | 51828 | 27 |
| 51829 | |||
| 48960 | 27 | 51830 | 27 |
| 48961 | 27 | 51831 | 27 |
| 48962 | 51832 | ||
| 48963 | 27 | 51833 | 27 |
| 51834 | |||
| 48964 | 27 | 51835 | 27 |
| 48965 | 27 | 51836 | 27 |
| 48966 | 51837 | ||
| 48967 | 27 | 51838 | 27 |
| 48968 | 51839 | ||
| 51840 | |||
| 48969 | 27 | 51841 | 27 |
| 48970 | 35 | 51842 | 35 |
| 48971 | 51843 | ||
| 48972 | 51844 | ||
| 51845 | |||
| 51846 | |||
| 51847 | |||
| 51848 | |||
| 51849 | |||
| 51850 | |||
| 51851 | |||
| 51852 | |||
| 51853 | |||
| 51854 | |||
| 48973 | 12 | 51855 | 12 |
| 48974 | 12 | 51856 | 12 |
| 48975 | 27 | 51857 | 27 |
| 48976 | 27 | 51858 | 27 |
| 51859 | |||
| 48977 | 12 | 51860 | 12 |
| 48978 | 35 | 51861 | 35 |
| 48979 | 12 | 51862 | 12 |
| ... | @@ -49007,9 +51890,16 @@ powerpc64-linux-gnu | ... | @@ -49007,9 +51890,16 @@ powerpc64-linux-gnu |
| 49007 | 51890 | ||
| 49008 | 51891 | ||
| 49009 | 51892 | ||
| 51893 | |||
| 51894 | |||
| 51895 | |||
| 51896 | |||
| 51897 | |||
| 51898 | |||
| 49010 | 27 | 51899 | 27 |
| 49011 | 51900 | ||
| 49012 | 27 | 51901 | 27 |
| 51902 | |||
| 49013 | 27 | 51903 | 27 |
| 49014 | 12 | 51904 | 12 |
| 49015 | 12 | 51905 | 12 |
| ... | @@ -49018,6 +51908,8 @@ powerpc64-linux-gnu | ... | @@ -49018,6 +51908,8 @@ powerpc64-linux-gnu |
| 49018 | 16 | 51908 | 16 |
| 49019 | 12 | 51909 | 12 |
| 49020 | 15 16 | 51910 | 15 16 |
| 51911 | |||
| 51912 | |||
| 49021 | 12 | 51913 | 12 |
| 49022 | 12 | 51914 | 12 |
| 49023 | 51915 | ||
| ... | @@ -49027,10 +51919,17 @@ powerpc64-linux-gnu | ... | @@ -49027,10 +51919,17 @@ powerpc64-linux-gnu |
| 49027 | 12 | 51919 | 12 |
| 49028 | 12 | 51920 | 12 |
| 49029 | 12 | 51921 | 12 |
| 51922 | |||
| 51923 | |||
| 51924 | |||
| 51925 | |||
| 49030 | 12 | 51926 | 12 |
| 49031 | 16 | 51927 | 16 |
| 51928 | |||
| 51929 | |||
| 49032 | 12 | 51930 | 12 |
| 49033 | 12 | 51931 | 12 |
| 51932 | |||
| 49034 | 12 | 51933 | 12 |
| 49035 | 12 | 51934 | 12 |
| 49036 | 16 | 51935 | 16 |
| ... | @@ -49050,6 +51949,7 @@ powerpc64-linux-gnu | ... | @@ -49050,6 +51949,7 @@ powerpc64-linux-gnu |
| 49050 | 16 | 51949 | 16 |
| 49051 | 12 | 51950 | 12 |
| 49052 | 12 | 51951 | 12 |
| 51952 | |||
| 49053 | 12 | 51953 | 12 |
| 49054 | 12 | 51954 | 12 |
| 49055 | 15 | 51955 | 15 |
| ... | @@ -49065,7 +51965,9 @@ powerpc64-linux-gnu | ... | @@ -49065,7 +51965,9 @@ powerpc64-linux-gnu |
| 49065 | 27 | 51965 | 27 |
| 49066 | 51966 | ||
| 49067 | 27 | 51967 | 27 |
| 51968 | |||
| 49068 | 27 | 51969 | 27 |
| 51970 | |||
| 49069 | 12 | 51971 | 12 |
| 49070 | 12 | 51972 | 12 |
| 49071 | 12 | 51973 | 12 |
| ... | @@ -49089,17 +51991,29 @@ powerpc64-linux-gnu | ... | @@ -49089,17 +51991,29 @@ powerpc64-linux-gnu |
| 49089 | 51991 | ||
| 49090 | 12 16 | 51992 | 12 16 |
| 49091 | 19 | 51993 | 19 |
| 51994 | |||
| 49092 | 19 | 51995 | 19 |
| 51996 | |||
| 49093 | 19 | 51997 | 19 |
| 51998 | |||
| 49094 | 19 | 51999 | 19 |
| 52000 | |||
| 49095 | 19 | 52001 | 19 |
| 52002 | |||
| 49096 | 19 | 52003 | 19 |
| 52004 | |||
| 49097 | 19 | 52005 | 19 |
| 52006 | |||
| 49098 | 19 | 52007 | 19 |
| 52008 | |||
| 49099 | 19 | 52009 | 19 |
| 52010 | |||
| 49100 | 19 | 52011 | 19 |
| 52012 | |||
| 49101 | 19 | 52013 | 19 |
| 52014 | |||
| 49102 | 19 | 52015 | 19 |
| 52016 | |||
| 49103 | 12 | 52017 | 12 |
| 49104 | 12 | 52018 | 12 |
| 49105 | 30 | 52019 | 30 |
| ... | @@ -49127,23 +52041,29 @@ powerpc64-linux-gnu | ... | @@ -49127,23 +52041,29 @@ powerpc64-linux-gnu |
| 49127 | 27 | 52041 | 27 |
| 49128 | 52042 | ||
| 49129 | 27 | 52043 | 27 |
| 52044 | |||
| 49130 | 27 | 52045 | 27 |
| 49131 | 27 | 52046 | 27 |
| 49132 | 52047 | ||
| 49133 | 27 | 52048 | 27 |
| 52049 | |||
| 49134 | 27 | 52050 | 27 |
| 49135 | 27 | 52051 | 27 |
| 49136 | 52052 | ||
| 49137 | 27 | 52053 | 27 |
| 52054 | |||
| 49138 | 27 | 52055 | 27 |
| 49139 | 12 | 52056 | 12 |
| 49140 | 12 | 52057 | 12 |
| 49141 | 12 | 52058 | 12 |
| 49142 | 52059 | ||
| 49143 | 52060 | ||
| 52061 | |||
| 49144 | 27 | 52062 | 27 |
| 49145 | 52063 | ||
| 49146 | 27 | 52064 | 27 |
| 52065 | |||
| 52066 | |||
| 49147 | 27 | 52067 | 27 |
| 49148 | 12 | 52068 | 12 |
| 49149 | 12 | 52069 | 12 |
| ... | @@ -49159,23 +52079,34 @@ powerpc64-linux-gnu | ... | @@ -49159,23 +52079,34 @@ powerpc64-linux-gnu |
| 49159 | 12 | 52079 | 12 |
| 49160 | 12 | 52080 | 12 |
| 49161 | 12 | 52081 | 12 |
| 52082 | 42 | ||
| 49162 | 12 | 52083 | 12 |
| 49163 | 12 | 52084 | 12 |
| 49164 | 12 | 52085 | 12 |
| 49165 | 52086 | ||
| 52087 | |||
| 52088 | |||
| 52089 | |||
| 49166 | 27 | 52090 | 27 |
| 49167 | 52091 | ||
| 49168 | 27 | 52092 | 27 |
| 52093 | |||
| 49169 | 27 | 52094 | 27 |
| 52095 | |||
| 49170 | 27 | 52096 | 27 |
| 49171 | 52097 | ||
| 49172 | 27 | 52098 | 27 |
| 52099 | |||
| 49173 | 27 | 52100 | 27 |
| 49174 | 27 | 52101 | 27 |
| 49175 | 52102 | ||
| 52103 | |||
| 49176 | 27 | 52104 | 27 |
| 52105 | |||
| 49177 | 27 | 52106 | 27 |
| 49178 | 23 | 52107 | 23 |
| 52108 | |||
| 52109 | |||
| 49179 | 12 | 52110 | 12 |
| 49180 | 52111 | ||
| 49181 | 52112 | ||
| ... | @@ -49214,17 +52145,26 @@ powerpc64-linux-gnu | ... | @@ -49214,17 +52145,26 @@ powerpc64-linux-gnu |
| 49214 | 52145 | ||
| 49215 | 52146 | ||
| 49216 | 52147 | ||
| 52148 | |||
| 49217 | 12 | 52149 | 12 |
| 49218 | 12 | 52150 | 12 |
| 49219 | 19 | 52151 | 19 |
| 49220 | 52152 | ||
| 49221 | 52153 | ||
| 52154 | |||
| 49222 | 12 | 52155 | 12 |
| 49223 | 52156 | ||
| 49224 | 52157 | ||
| 49225 | 52158 | ||
| 49226 | 52159 | ||
| 52160 | |||
| 49227 | 12 | 52161 | 12 |
| 52162 | |||
| 52163 | |||
| 52164 | |||
| 52165 | |||
| 52166 | |||
| 52167 | |||
| 49228 | 12 | 52168 | 12 |
| 49229 | 16 | 52169 | 16 |
| 49230 | 16 | 52170 | 16 |
| ... | @@ -49337,7 +52277,11 @@ powerpc64-linux-gnu | ... | @@ -49337,7 +52277,11 @@ powerpc64-linux-gnu |
| 49337 | 12 | 52277 | 12 |
| 49338 | 12 | 52278 | 12 |
| 49339 | 20 | 52279 | 20 |
| 52280 | |||
| 52281 | |||
| 49340 | 20 | 52282 | 20 |
| 52283 | |||
| 52284 | |||
| 49341 | 12 | 52285 | 12 |
| 49342 | 12 | 52286 | 12 |
| 49343 | 19 | 52287 | 19 |
| ... | @@ -49353,6 +52297,7 @@ powerpc64-linux-gnu | ... | @@ -49353,6 +52297,7 @@ powerpc64-linux-gnu |
| 49353 | 27 | 52297 | 27 |
| 49354 | 52298 | ||
| 49355 | 27 | 52299 | 27 |
| 52300 | |||
| 49356 | 27 | 52301 | 27 |
| 49357 | 29 | 52302 | 29 |
| 49358 | 28 | 52303 | 28 |
| ... | @@ -49360,7 +52305,10 @@ powerpc64-linux-gnu | ... | @@ -49360,7 +52305,10 @@ powerpc64-linux-gnu |
| 49360 | 16 | 52305 | 16 |
| 49361 | 16 | 52306 | 16 |
| 49362 | 15 16 | 52307 | 15 16 |
| 52308 | |||
| 49363 | 12 16 | 52309 | 12 16 |
| 52310 | |||
| 52311 | |||
| 49364 | 12 | 52312 | 12 |
| 49365 | 12 | 52313 | 12 |
| 49366 | 12 | 52314 | 12 |
| ... | @@ -49391,6 +52339,11 @@ powerpc64-linux-gnu | ... | @@ -49391,6 +52339,11 @@ powerpc64-linux-gnu |
| 49391 | 14 | 52339 | 14 |
| 49392 | 16 | 52340 | 16 |
| 49393 | 12 | 52341 | 12 |
| 52342 | |||
| 52343 | |||
| 52344 | |||
| 52345 | |||
| 52346 | |||
| 49394 | 12 | 52347 | 12 |
| 49395 | 12 | 52348 | 12 |
| 49396 | 12 | 52349 | 12 |
| ... | @@ -49409,12 +52362,17 @@ powerpc64-linux-gnu | ... | @@ -49409,12 +52362,17 @@ powerpc64-linux-gnu |
| 49409 | 27 | 52362 | 27 |
| 49410 | 52363 | ||
| 49411 | 27 | 52364 | 27 |
| 52365 | |||
| 49412 | 27 | 52366 | 27 |
| 52367 | |||
| 49413 | 12 | 52368 | 12 |
| 49414 | 12 | 52369 | 12 |
| 49415 | 12 | 52370 | 12 |
| 49416 | 12 | 52371 | 12 |
| 49417 | 12 | 52372 | 12 |
| 52373 | |||
| 52374 | |||
| 52375 | |||
| 49418 | 12 | 52376 | 12 |
| 49419 | 12 | 52377 | 12 |
| 49420 | 12 | 52378 | 12 |
| ... | @@ -49422,7 +52380,11 @@ powerpc64-linux-gnu | ... | @@ -49422,7 +52380,11 @@ powerpc64-linux-gnu |
| 49422 | 12 | 52380 | 12 |
| 49423 | 27 | 52381 | 27 |
| 49424 | 27 | 52382 | 27 |
| 52383 | |||
| 49425 | 27 | 52384 | 27 |
| 52385 | |||
| 52386 | |||
| 52387 | |||
| 49426 | 19 | 52388 | 19 |
| 49427 | 18 | 52389 | 18 |
| 49428 | 19 | 52390 | 19 |
| ... | @@ -49436,6 +52398,8 @@ powerpc64-linux-gnu | ... | @@ -49436,6 +52398,8 @@ powerpc64-linux-gnu |
| 49436 | 12 | 52398 | 12 |
| 49437 | 12 | 52399 | 12 |
| 49438 | 12 | 52400 | 12 |
| 52401 | |||
| 52402 | |||
| 49439 | 12 | 52403 | 12 |
| 49440 | 12 | 52404 | 12 |
| 49441 | 12 | 52405 | 12 |
| ... | @@ -49446,24 +52410,34 @@ powerpc64-linux-gnu | ... | @@ -49446,24 +52410,34 @@ powerpc64-linux-gnu |
| 49446 | 52410 | ||
| 49447 | 16 | 52411 | 16 |
| 49448 | 33 | 52412 | 33 |
| 52413 | |||
| 49449 | 12 | 52414 | 12 |
| 49450 | 12 15 | 52415 | 12 15 |
| 49451 | 12 | 52416 | 12 |
| 49452 | 52417 | ||
| 49453 | 52418 | ||
| 49454 | 52419 | ||
| 52420 | |||
| 49455 | 27 | 52421 | 27 |
| 49456 | 52422 | ||
| 49457 | 27 | 52423 | 27 |
| 52424 | |||
| 49458 | 27 | 52425 | 27 |
| 52426 | |||
| 49459 | 15 16 | 52427 | 15 16 |
| 52428 | |||
| 52429 | |||
| 49460 | 15 16 | 52430 | 15 16 |
| 52431 | |||
| 52432 | |||
| 49461 | 27 | 52433 | 27 |
| 49462 | 52434 | ||
| 49463 | 52435 | ||
| 49464 | 27 | 52436 | 27 |
| 52437 | |||
| 49465 | 27 | 52438 | 27 |
| 49466 | 52439 | ||
| 52440 | |||
| 49467 | 16 | 52441 | 16 |
| 49468 | 52442 | ||
| 49469 | 12 | 52443 | 12 |
| ... | @@ -49496,6 +52470,9 @@ powerpc64-linux-gnu | ... | @@ -49496,6 +52470,9 @@ powerpc64-linux-gnu |
| 49496 | 12 | 52470 | 12 |
| 49497 | 12 | 52471 | 12 |
| 49498 | 12 16 | 52472 | 12 16 |
| 52473 | |||
| 52474 | |||
| 52475 | |||
| 49499 | 12 | 52476 | 12 |
| 49500 | 52477 | ||
| 49501 | 12 | 52478 | 12 |
| ... | @@ -49530,6 +52507,8 @@ powerpc64-linux-gnu | ... | @@ -49530,6 +52507,8 @@ powerpc64-linux-gnu |
| 49530 | 52507 | ||
| 49531 | 12 | 52508 | 12 |
| 49532 | 12 | 52509 | 12 |
| 52510 | |||
| 52511 | |||
| 49533 | 12 | 52512 | 12 |
| 49534 | 12 | 52513 | 12 |
| 49535 | 12 | 52514 | 12 |
| ... | @@ -49549,48 +52528,93 @@ powerpc64-linux-gnu | ... | @@ -49549,48 +52528,93 @@ powerpc64-linux-gnu |
| 49549 | 52528 | ||
| 49550 | 52529 | ||
| 49551 | 16 | 52530 | 16 |
| 52531 | |||
| 52532 | |||
| 52533 | |||
| 49552 | 12 | 52534 | 12 |
| 49553 | 12 | 52535 | 12 |
| 49554 | 16 | 52536 | 16 |
| 52537 | |||
| 52538 | |||
| 49555 | 12 | 52539 | 12 |
| 52540 | |||
| 52541 | |||
| 52542 | |||
| 49556 | 12 | 52543 | 12 |
| 49557 | 12 | 52544 | 12 |
| 49558 | 32 | 52545 | 32 |
| 49559 | 52546 | ||
| 49560 | 12 | 52547 | 12 |
| 49561 | 12 | 52548 | 12 |
| 52549 | |||
| 52550 | |||
| 49562 | 12 | 52551 | 12 |
| 49563 | 12 | 52552 | 12 |
| 49564 | 12 | 52553 | 12 |
| 49565 | 12 | 52554 | 12 |
| 49566 | 12 | 52555 | 12 |
| 49567 | 52556 | ||
| 52557 | |||
| 49568 | 16 | 52558 | 16 |
| 49569 | 12 | 52559 | 12 |
| 49570 | 52560 | ||
| 49571 | 52561 | ||
| 49572 | 12 | 52562 | 12 |
| 49573 | 52563 | ||
| 52564 | |||
| 52565 | |||
| 49574 | 12 | 52566 | 12 |
| 49575 | 52567 | ||
| 49576 | 52568 | ||
| 49577 | 12 | 52569 | 12 |
| 49578 | 20 | 52570 | 20 |
| 52571 | |||
| 52572 | |||
| 49579 | 20 | 52573 | 20 |
| 52574 | |||
| 52575 | |||
| 52576 | |||
| 52577 | |||
| 49580 | 12 | 52578 | 12 |
| 49581 | 15 16 | 52579 | 15 16 |
| 52580 | |||
| 52581 | |||
| 49582 | 12 16 | 52582 | 12 16 |
| 52583 | |||
| 49583 | 16 | 52584 | 16 |
| 52585 | |||
| 52586 | |||
| 52587 | |||
| 49584 | 15 16 | 52588 | 15 16 |
| 52589 | |||
| 52590 | |||
| 52591 | |||
| 49585 | 12 16 | 52592 | 12 16 |
| 49586 | 15 16 | 52593 | 15 16 |
| 52594 | |||
| 52595 | |||
| 49587 | 15 16 | 52596 | 15 16 |
| 52597 | |||
| 52598 | |||
| 49588 | 12 16 | 52599 | 12 16 |
| 52600 | |||
| 49589 | 16 | 52601 | 16 |
| 52602 | |||
| 52603 | |||
| 52604 | |||
| 49590 | 16 | 52605 | 16 |
| 52606 | |||
| 52607 | |||
| 52608 | |||
| 52609 | |||
| 49591 | 16 | 52610 | 16 |
| 52611 | |||
| 52612 | |||
| 52613 | |||
| 49592 | 12 | 52614 | 12 |
| 49593 | 12 | 52615 | 12 |
| 52616 | |||
| 52617 | |||
| 49594 | 16 | 52618 | 16 |
| 49595 | 16 | 52619 | 16 |
| 49596 | 16 | 52620 | 16 |
| ... | @@ -49609,6 +52633,8 @@ powerpc64-linux-gnu | ... | @@ -49609,6 +52633,8 @@ powerpc64-linux-gnu |
| 49609 | 52633 | ||
| 49610 | 12 | 52634 | 12 |
| 49611 | 12 | 52635 | 12 |
| 52636 | |||
| 52637 | |||
| 49612 | 12 | 52638 | 12 |
| 49613 | 12 | 52639 | 12 |
| 49614 | 12 16 | 52640 | 12 16 |
| ... | @@ -49630,7 +52656,10 @@ powerpc64-linux-gnu | ... | @@ -49630,7 +52656,10 @@ powerpc64-linux-gnu |
| 49630 | 16 | 52656 | 16 |
| 49631 | 12 | 52657 | 12 |
| 49632 | 16 | 52658 | 16 |
| 52659 | |||
| 52660 | |||
| 49633 | 12 | 52661 | 12 |
| 52662 | |||
| 49634 | 12 | 52663 | 12 |
| 49635 | 12 | 52664 | 12 |
| 49636 | 12 | 52665 | 12 |
| ... | @@ -49643,14 +52672,17 @@ powerpc64-linux-gnu | ... | @@ -49643,14 +52672,17 @@ powerpc64-linux-gnu |
| 49643 | 27 | 52672 | 27 |
| 49644 | 52673 | ||
| 49645 | 27 | 52674 | 27 |
| 52675 | |||
| 49646 | 27 | 52676 | 27 |
| 49647 | 27 | 52677 | 27 |
| 49648 | 52678 | ||
| 49649 | 27 | 52679 | 27 |
| 52680 | |||
| 49650 | 27 | 52681 | 27 |
| 49651 | 27 | 52682 | 27 |
| 49652 | 52683 | ||
| 49653 | 27 | 52684 | 27 |
| 52685 | |||
| 49654 | 27 | 52686 | 27 |
| 49655 | 12 | 52687 | 12 |
| 49656 | 12 | 52688 | 12 |
| ... | @@ -50248,7 +53280,7 @@ powerpc64-linux-gnu | ... | @@ -50248,7 +53280,7 @@ powerpc64-linux-gnu |
| 50248 | 12 | 53280 | 12 |
| 50249 | 39 12 | 53281 | 39 12 |
| 50250 | 12 | 53282 | 12 |
| 50251 | 12 | 53283 | 12 42 |
| 50252 | 53284 | ||
| 50253 | 37 | 53285 | 37 |
| 50254 | 37 | 53286 | 37 |
| ... | @@ -51374,17 +54406,19 @@ powerpc64-linux-gnu | ... | @@ -51374,17 +54406,19 @@ powerpc64-linux-gnu |
| 51374 | 12 | 54406 | 12 |
| 51375 | 12 | 54407 | 12 |
| 51376 | 12 | 54408 | 12 |
| 54409 | 42 | ||
| 51377 | 12 | 54410 | 12 |
| 51378 | 12 | 54411 | 12 |
| 51379 | 12 | 54412 | 12 |
| 51380 | 12 | 54413 | 12 |
| 51381 | 14 15 | 54414 | 14 15 42 |
| 51382 | 12 | 54415 | 12 |
| 51383 | 12 | 54416 | 12 |
| 51384 | 12 | 54417 | 12 |
| 51385 | 12 | 54418 | 12 |
| 51386 | 12 | 54419 | 12 |
| 51387 | 12 | 54420 | 12 |
| 54421 | 42 | ||
| 51388 | 12 18 | 54422 | 12 18 |
| 51389 | 12 | 54423 | 12 |
| 51390 | 12 18 | 54424 | 12 18 |
| ... | @@ -51414,9 +54448,9 @@ powerpc64-linux-gnu | ... | @@ -51414,9 +54448,9 @@ powerpc64-linux-gnu |
| 51414 | 12 | 54448 | 12 |
| 51415 | 12 | 54449 | 12 |
| 51416 | 12 | 54450 | 12 |
| 51417 | 14 15 | 54451 | 14 15 42 |
| 51418 | 30 | 54452 | 30 |
| 51419 | 12 | 54453 | 12 42 |
| 51420 | 12 | 54454 | 12 |
| 51421 | 12 | 54455 | 12 |
| 51422 | 24 | 54456 | 24 |
| ... | @@ -51482,7 +54516,7 @@ powerpc64-linux-gnu | ... | @@ -51482,7 +54516,7 @@ powerpc64-linux-gnu |
| 51482 | 12 | 54516 | 12 |
| 51483 | 15 | 54517 | 15 |
| 51484 | 12 | 54518 | 12 |
| 51485 | 12 | 54519 | 12 42 |
| 51486 | 23 | 54520 | 23 |
| 51487 | 12 | 54521 | 12 |
| 51488 | 12 | 54522 | 12 |
| ... | @@ -51787,12 +54821,14 @@ powerpc64-linux-gnu | ... | @@ -51787,12 +54821,14 @@ powerpc64-linux-gnu |
| 51787 | 12 | 54821 | 12 |
| 51788 | 12 | 54822 | 12 |
| 51789 | 12 | 54823 | 12 |
| 54824 | 42 | ||
| 51790 | 12 | 54825 | 12 |
| 51791 | 12 | 54826 | 12 |
| 51792 | 12 | 54827 | 12 |
| 51793 | 12 | 54828 | 12 |
| 51794 | 12 | 54829 | 12 |
| 51795 | 12 | 54830 | 12 |
| 54831 | 42 | ||
| 51796 | 12 | 54832 | 12 |
| 51797 | 12 | 54833 | 12 |
| 51798 | 12 | 54834 | 12 |
| ... | @@ -51898,6 +54934,8 @@ powerpc64-linux-gnu | ... | @@ -51898,6 +54934,8 @@ powerpc64-linux-gnu |
| 51898 | 12 | 54934 | 12 |
| 51899 | 18 | 54935 | 18 |
| 51900 | 12 | 54936 | 12 |
| 54937 | 42 | ||
| 54938 | 42 | ||
| 51901 | 12 16 | 54939 | 12 16 |
| 51902 | 12 16 | 54940 | 12 16 |
| 51903 | 35 | 54941 | 35 |
| ... | @@ -52588,7 +55626,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52588,7 +55626,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52588 | 27 | 55626 | 27 |
| 52589 | 55627 | ||
| 52590 | 27 | 55628 | 27 |
| 55629 | |||
| 52591 | 27 | 55630 | 27 |
| 55631 | |||
| 52592 | 27 | 55632 | 27 |
| 52593 | 13 | 55633 | 13 |
| 52594 | 13 | 55634 | 13 |
| ... | @@ -52617,6 +55657,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52617,6 +55657,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52617 | 55657 | ||
| 52618 | 55658 | ||
| 52619 | 55659 | ||
| 55660 | |||
| 55661 | |||
| 52620 | 0 | 55662 | 0 |
| 52621 | 0 | 55663 | 0 |
| 52622 | 0 | 55664 | 0 |
| ... | @@ -52625,20 +55667,27 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52625,20 +55667,27 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52625 | 27 | 55667 | 27 |
| 52626 | 55668 | ||
| 52627 | 27 | 55669 | 27 |
| 55670 | |||
| 55671 | |||
| 52628 | 27 | 55672 | 27 |
| 52629 | 1 16 | 55673 | 1 16 |
| 52630 | 20 | 55674 | 20 |
| 55675 | |||
| 55676 | |||
| 52631 | 5 | 55677 | 5 |
| 52632 | 0 | 55678 | 0 |
| 52633 | 0 | 55679 | 0 |
| 52634 | 27 | 55680 | 27 |
| 52635 | 55681 | ||
| 52636 | 27 | 55682 | 27 |
| 55683 | |||
| 52637 | 27 | 55684 | 27 |
| 52638 | 27 | 55685 | 27 |
| 52639 | 55686 | ||
| 52640 | 27 | 55687 | 27 |
| 55688 | |||
| 52641 | 27 | 55689 | 27 |
| 55690 | |||
| 52642 | 31 | 55691 | 31 |
| 52643 | 31 | 55692 | 31 |
| 52644 | 31 | 55693 | 31 |
| ... | @@ -52647,21 +55696,50 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52647,21 +55696,50 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52647 | 1 | 55696 | 1 |
| 52648 | 0 | 55697 | 0 |
| 52649 | 0 | 55698 | 0 |
| 55699 | |||
| 55700 | |||
| 55701 | |||
| 55702 | |||
| 55703 | |||
| 55704 | |||
| 55705 | |||
| 55706 | |||
| 55707 | |||
| 55708 | |||
| 55709 | |||
| 55710 | |||
| 55711 | |||
| 55712 | |||
| 52650 | 0 | 55713 | 0 |
| 52651 | 15 | 55714 | 15 |
| 55715 | |||
| 52652 | 1 | 55716 | 1 |
| 52653 | 1 | 55717 | 1 |
| 55718 | |||
| 52654 | 1 16 | 55719 | 1 16 |
| 55720 | |||
| 52655 | 0 | 55721 | 0 |
| 52656 | 0 | 55722 | 0 |
| 52657 | 0 | 55723 | 0 |
| 52658 | 0 | 55724 | 0 |
| 52659 | 16 | 55725 | 16 |
| 55726 | |||
| 52660 | 0 | 55727 | 0 |
| 55728 | |||
| 52661 | 27 | 55729 | 27 |
| 52662 | 55730 | ||
| 52663 | 27 | 55731 | 27 |
| 55732 | |||
| 52664 | 27 | 55733 | 27 |
| 55734 | |||
| 55735 | |||
| 55736 | |||
| 55737 | |||
| 55738 | |||
| 55739 | |||
| 55740 | |||
| 55741 | |||
| 55742 | |||
| 52665 | 0 | 55743 | 0 |
| 52666 | 5 | 55744 | 5 |
| 52667 | 5 | 55745 | 5 |
| ... | @@ -52689,33 +55767,55 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52689,33 +55767,55 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52689 | 0 | 55767 | 0 |
| 52690 | 13 | 55768 | 13 |
| 52691 | 20 | 55769 | 20 |
| 55770 | |||
| 55771 | |||
| 52692 | 0 | 55772 | 0 |
| 52693 | 1 | 55773 | 1 |
| 52694 | 5 | 55774 | 5 |
| 52695 | 0 | 55775 | 0 |
| 52696 | 13 | 55776 | 13 |
| 52697 | 13 | 55777 | 13 |
| 55778 | |||
| 55779 | |||
| 55780 | |||
| 52698 | 0 | 55781 | 0 |
| 55782 | |||
| 55783 | |||
| 55784 | |||
| 52699 | 27 | 55785 | 27 |
| 52700 | 55786 | ||
| 52701 | 27 | 55787 | 27 |
| 55788 | |||
| 52702 | 27 | 55789 | 27 |
| 52703 | 27 | 55790 | 27 |
| 52704 | 55791 | ||
| 52705 | 27 | 55792 | 27 |
| 55793 | |||
| 52706 | 27 | 55794 | 27 |
| 52707 | 27 | 55795 | 27 |
| 52708 | 55796 | ||
| 52709 | 27 | 55797 | 27 |
| 52710 | 55798 | ||
| 55799 | |||
| 52711 | 27 | 55800 | 27 |
| 52712 | 35 | 55801 | 35 |
| 52713 | 55802 | ||
| 55803 | |||
| 52714 | 13 | 55804 | 13 |
| 55805 | |||
| 55806 | |||
| 55807 | |||
| 55808 | |||
| 55809 | |||
| 55810 | |||
| 55811 | |||
| 55812 | |||
| 55813 | |||
| 52715 | 5 | 55814 | 5 |
| 52716 | 0 | 55815 | 0 |
| 52717 | 27 | 55816 | 27 |
| 52718 | 27 | 55817 | 27 |
| 55818 | |||
| 52719 | 1 | 55819 | 1 |
| 52720 | 35 | 55820 | 35 |
| 52721 | 1 | 55821 | 1 |
| ... | @@ -52748,10 +55848,17 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52748,10 +55848,17 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52748 | 16 | 55848 | 16 |
| 52749 | 16 | 55849 | 16 |
| 52750 | 16 | 55850 | 16 |
| 55851 | |||
| 52751 | 31 | 55852 | 31 |
| 55853 | |||
| 55854 | |||
| 55855 | |||
| 55856 | |||
| 55857 | |||
| 52752 | 27 | 55858 | 27 |
| 52753 | 55859 | ||
| 52754 | 27 | 55860 | 27 |
| 55861 | |||
| 52755 | 27 | 55862 | 27 |
| 52756 | 0 | 55863 | 0 |
| 52757 | 1 | 55864 | 1 |
| ... | @@ -52760,6 +55867,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52760,6 +55867,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52760 | 16 | 55867 | 16 |
| 52761 | 5 | 55868 | 5 |
| 52762 | 15 16 | 55869 | 15 16 |
| 55870 | |||
| 55871 | |||
| 52763 | 0 | 55872 | 0 |
| 52764 | 5 | 55873 | 5 |
| 52765 | 0 | 55874 | 0 |
| ... | @@ -52769,10 +55878,17 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52769,10 +55878,17 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52769 | 5 | 55878 | 5 |
| 52770 | 0 | 55879 | 0 |
| 52771 | 1 | 55880 | 1 |
| 55881 | |||
| 55882 | |||
| 55883 | |||
| 55884 | |||
| 52772 | 5 | 55885 | 5 |
| 52773 | 16 | 55886 | 16 |
| 55887 | |||
| 55888 | |||
| 52774 | 5 | 55889 | 5 |
| 52775 | 5 | 55890 | 5 |
| 55891 | |||
| 52776 | 0 | 55892 | 0 |
| 52777 | 1 5 | 55893 | 1 5 |
| 52778 | 16 | 55894 | 16 |
| ... | @@ -52792,6 +55908,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52792,6 +55908,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52792 | 16 | 55908 | 16 |
| 52793 | 5 | 55909 | 5 |
| 52794 | 0 | 55910 | 0 |
| 55911 | |||
| 52795 | 0 | 55912 | 0 |
| 52796 | 0 | 55913 | 0 |
| 52797 | 15 | 55914 | 15 |
| ... | @@ -52807,7 +55924,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52807,7 +55924,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52807 | 27 | 55924 | 27 |
| 52808 | 55925 | ||
| 52809 | 27 | 55926 | 27 |
| 55927 | |||
| 52810 | 27 | 55928 | 27 |
| 55929 | |||
| 52811 | 1 | 55930 | 1 |
| 52812 | 1 | 55931 | 1 |
| 52813 | 1 | 55932 | 1 |
| ... | @@ -52831,17 +55950,29 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52831,17 +55950,29 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52831 | 55950 | ||
| 52832 | 0 16 | 55951 | 0 16 |
| 52833 | 19 | 55952 | 19 |
| 55953 | |||
| 52834 | 19 | 55954 | 19 |
| 55955 | |||
| 52835 | 19 | 55956 | 19 |
| 55957 | |||
| 52836 | 19 | 55958 | 19 |
| 55959 | |||
| 52837 | 19 | 55960 | 19 |
| 55961 | |||
| 52838 | 19 | 55962 | 19 |
| 55963 | |||
| 52839 | 19 | 55964 | 19 |
| 55965 | |||
| 52840 | 19 | 55966 | 19 |
| 55967 | |||
| 52841 | 19 | 55968 | 19 |
| 55969 | |||
| 52842 | 19 | 55970 | 19 |
| 55971 | |||
| 52843 | 19 | 55972 | 19 |
| 55973 | |||
| 52844 | 19 | 55974 | 19 |
| 55975 | |||
| 52845 | 1 | 55976 | 1 |
| 52846 | 1 | 55977 | 1 |
| 52847 | 30 | 55978 | 30 |
| ... | @@ -52869,23 +56000,29 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52869,23 +56000,29 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52869 | 27 | 56000 | 27 |
| 52870 | 56001 | ||
| 52871 | 27 | 56002 | 27 |
| 56003 | |||
| 52872 | 27 | 56004 | 27 |
| 52873 | 27 | 56005 | 27 |
| 52874 | 56006 | ||
| 52875 | 27 | 56007 | 27 |
| 56008 | |||
| 52876 | 27 | 56009 | 27 |
| 52877 | 27 | 56010 | 27 |
| 52878 | 56011 | ||
| 52879 | 27 | 56012 | 27 |
| 56013 | |||
| 52880 | 27 | 56014 | 27 |
| 52881 | 1 | 56015 | 1 |
| 52882 | 1 | 56016 | 1 |
| 52883 | 1 | 56017 | 1 |
| 56018 | |||
| 52884 | 13 | 56019 | 13 |
| 52885 | 13 | 56020 | 13 |
| 52886 | 27 | 56021 | 27 |
| 52887 | 56022 | ||
| 52888 | 27 | 56023 | 27 |
| 56024 | |||
| 56025 | |||
| 52889 | 27 | 56026 | 27 |
| 52890 | 1 | 56027 | 1 |
| 52891 | 0 | 56028 | 0 |
| ... | @@ -52901,23 +56038,34 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52901,23 +56038,34 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52901 | 0 | 56038 | 0 |
| 52902 | 0 | 56039 | 0 |
| 52903 | 1 | 56040 | 1 |
| 56041 | 42 | ||
| 52904 | 1 | 56042 | 1 |
| 52905 | 0 | 56043 | 0 |
| 52906 | 0 | 56044 | 0 |
| 52907 | 3 11 | 56045 | 3 8 11 |
| 56046 | |||
| 56047 | |||
| 56048 | |||
| 52908 | 27 | 56049 | 27 |
| 52909 | 56050 | ||
| 52910 | 27 | 56051 | 27 |
| 56052 | |||
| 52911 | 27 | 56053 | 27 |
| 56054 | |||
| 52912 | 27 | 56055 | 27 |
| 52913 | 56056 | ||
| 52914 | 27 | 56057 | 27 |
| 56058 | |||
| 52915 | 27 | 56059 | 27 |
| 52916 | 27 | 56060 | 27 |
| 52917 | 56061 | ||
| 56062 | |||
| 52918 | 27 | 56063 | 27 |
| 56064 | |||
| 52919 | 27 | 56065 | 27 |
| 52920 | 23 | 56066 | 23 |
| 56067 | |||
| 56068 | |||
| 52921 | 0 | 56069 | 0 |
| 52922 | 0 | 56070 | 0 |
| 52923 | 16 | 56071 | 16 |
| ... | @@ -52956,17 +56104,26 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -52956,17 +56104,26 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52956 | 56104 | ||
| 52957 | 56105 | ||
| 52958 | 0 | 56106 | 0 |
| 56107 | |||
| 52959 | 0 | 56108 | 0 |
| 52960 | 0 | 56109 | 0 |
| 52961 | 19 | 56110 | 19 |
| 52962 | 13 | 56111 | 13 |
| 52963 | 13 | 56112 | 13 |
| 56113 | |||
| 52964 | 11 | 56114 | 11 |
| 56115 | |||
| 52965 | 16 | 56116 | 16 |
| 52966 | 13 | 56117 | 13 |
| 52967 | 13 | 56118 | 13 |
| 52968 | 16 | 56119 | 16 |
| 52969 | 1 | 56120 | 1 |
| 56121 | |||
| 56122 | |||
| 56123 | |||
| 56124 | |||
| 56125 | |||
| 56126 | |||
| 52970 | 5 | 56127 | 5 |
| 52971 | 16 | 56128 | 16 |
| 52972 | 16 | 56129 | 16 |
| ... | @@ -53079,7 +56236,11 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53079,7 +56236,11 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53079 | 0 | 56236 | 0 |
| 53080 | 0 | 56237 | 0 |
| 53081 | 20 | 56238 | 20 |
| 56239 | |||
| 56240 | |||
| 53082 | 20 | 56241 | 20 |
| 56242 | |||
| 56243 | |||
| 53083 | 0 | 56244 | 0 |
| 53084 | 5 | 56245 | 5 |
| 53085 | 19 | 56246 | 19 |
| ... | @@ -53095,6 +56256,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53095,6 +56256,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53095 | 27 | 56256 | 27 |
| 53096 | 56257 | ||
| 53097 | 27 | 56258 | 27 |
| 56259 | |||
| 53098 | 27 | 56260 | 27 |
| 53099 | 29 | 56261 | 29 |
| 53100 | 28 | 56262 | 28 |
| ... | @@ -53102,7 +56264,10 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53102,7 +56264,10 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53102 | 16 | 56264 | 16 |
| 53103 | 16 | 56265 | 16 |
| 53104 | 15 16 | 56266 | 15 16 |
| 56267 | |||
| 53105 | 0 16 | 56268 | 0 16 |
| 56269 | |||
| 56270 | |||
| 53106 | 0 | 56271 | 0 |
| 53107 | 0 | 56272 | 0 |
| 53108 | 0 | 56273 | 0 |
| ... | @@ -53133,6 +56298,11 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53133,6 +56298,11 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53133 | 14 | 56298 | 14 |
| 53134 | 16 | 56299 | 16 |
| 53135 | 1 5 | 56300 | 1 5 |
| 56301 | |||
| 56302 | |||
| 56303 | |||
| 56304 | |||
| 56305 | |||
| 53136 | 1 | 56306 | 1 |
| 53137 | 0 | 56307 | 0 |
| 53138 | 0 | 56308 | 0 |
| ... | @@ -53151,12 +56321,17 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53151,12 +56321,17 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53151 | 27 | 56321 | 27 |
| 53152 | 56322 | ||
| 53153 | 27 | 56323 | 27 |
| 56324 | |||
| 53154 | 27 | 56325 | 27 |
| 56326 | |||
| 53155 | 5 | 56327 | 5 |
| 53156 | 5 | 56328 | 5 |
| 53157 | 5 | 56329 | 5 |
| 53158 | 0 | 56330 | 0 |
| 53159 | 5 | 56331 | 5 |
| 56332 | |||
| 56333 | |||
| 56334 | |||
| 53160 | 8 | 56335 | 8 |
| 53161 | 8 | 56336 | 8 |
| 53162 | 8 | 56337 | 8 |
| ... | @@ -53164,7 +56339,11 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53164,7 +56339,11 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53164 | 0 | 56339 | 0 |
| 53165 | 27 | 56340 | 27 |
| 53166 | 27 | 56341 | 27 |
| 56342 | |||
| 53167 | 27 | 56343 | 27 |
| 56344 | |||
| 56345 | |||
| 56346 | |||
| 53168 | 19 | 56347 | 19 |
| 53169 | 18 | 56348 | 18 |
| 53170 | 19 | 56349 | 19 |
| ... | @@ -53178,6 +56357,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53178,6 +56357,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53178 | 0 | 56357 | 0 |
| 53179 | 0 | 56358 | 0 |
| 53180 | 5 | 56359 | 5 |
| 56360 | |||
| 56361 | |||
| 53181 | 0 | 56362 | 0 |
| 53182 | 0 | 56363 | 0 |
| 53183 | 0 | 56364 | 0 |
| ... | @@ -53188,24 +56369,34 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53188,24 +56369,34 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53188 | 56369 | ||
| 53189 | 16 | 56370 | 16 |
| 53190 | 33 | 56371 | 33 |
| 56372 | |||
| 53191 | 0 | 56373 | 0 |
| 53192 | 0 15 | 56374 | 0 15 |
| 53193 | 4 | 56375 | 4 |
| 53194 | 13 | 56376 | 13 |
| 53195 | 13 | 56377 | 13 |
| 53196 | 13 | 56378 | 13 |
| 56379 | |||
| 53197 | 27 | 56380 | 27 |
| 53198 | 56381 | ||
| 53199 | 27 | 56382 | 27 |
| 56383 | |||
| 53200 | 27 | 56384 | 27 |
| 56385 | |||
| 53201 | 15 16 | 56386 | 15 16 |
| 56387 | |||
| 56388 | |||
| 53202 | 15 16 | 56389 | 15 16 |
| 56390 | |||
| 56391 | |||
| 53203 | 27 | 56392 | 27 |
| 53204 | 13 | 56393 | 13 |
| 53205 | 56394 | ||
| 53206 | 27 | 56395 | 27 |
| 56396 | |||
| 53207 | 27 | 56397 | 27 |
| 53208 | 13 | 56398 | 13 |
| 56399 | |||
| 53209 | 16 | 56400 | 16 |
| 53210 | 56401 | ||
| 53211 | 5 | 56402 | 5 |
| ... | @@ -53238,6 +56429,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53238,6 +56429,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53238 | 0 | 56429 | 0 |
| 53239 | 0 | 56430 | 0 |
| 53240 | 1 16 | 56431 | 1 16 |
| 56432 | |||
| 56433 | |||
| 56434 | |||
| 53241 | 12 | 56435 | 12 |
| 53242 | 56436 | ||
| 53243 | 1 | 56437 | 1 |
| ... | @@ -53272,6 +56466,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53272,6 +56466,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53272 | 56466 | ||
| 53273 | 0 | 56467 | 0 |
| 53274 | 1 | 56468 | 1 |
| 56469 | |||
| 56470 | |||
| 53275 | 0 | 56471 | 0 |
| 53276 | 2 | 56472 | 2 |
| 53277 | 0 | 56473 | 0 |
| ... | @@ -53291,48 +56487,93 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53291,48 +56487,93 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53291 | 13 | 56487 | 13 |
| 53292 | 13 | 56488 | 13 |
| 53293 | 16 | 56489 | 16 |
| 56490 | |||
| 56491 | |||
| 56492 | |||
| 53294 | 5 | 56493 | 5 |
| 53295 | 5 | 56494 | 5 |
| 53296 | 16 | 56495 | 16 |
| 56496 | |||
| 56497 | |||
| 53297 | 0 | 56498 | 0 |
| 56499 | |||
| 56500 | |||
| 56501 | |||
| 53298 | 0 | 56502 | 0 |
| 53299 | 12 | 56503 | 12 |
| 53300 | 32 | 56504 | 32 |
| 53301 | 56505 | ||
| 53302 | 1 | 56506 | 1 |
| 53303 | 1 | 56507 | 1 |
| 56508 | |||
| 56509 | |||
| 53304 | 1 | 56510 | 1 |
| 53305 | 1 | 56511 | 1 |
| 53306 | 1 | 56512 | 1 |
| 53307 | 1 | 56513 | 1 |
| 53308 | 1 | 56514 | 1 |
| 53309 | 13 | 56515 | 13 |
| 56516 | |||
| 53310 | 16 | 56517 | 16 |
| 53311 | 0 | 56518 | 0 |
| 53312 | 0 | 56519 | 0 |
| 53313 | 0 | 56520 | 0 |
| 53314 | 0 | 56521 | 0 |
| 56522 | |||
| 56523 | |||
| 53315 | 0 | 56524 | 0 |
| 53316 | 0 | 56525 | 0 |
| 53317 | 16 | 56526 | 16 |
| 53318 | 16 | 56527 | 16 |
| 53319 | 12 | 56528 | 12 |
| 53320 | 20 | 56529 | 20 |
| 56530 | |||
| 56531 | |||
| 53321 | 20 | 56532 | 20 |
| 56533 | |||
| 56534 | |||
| 56535 | |||
| 56536 | |||
| 53322 | 3 | 56537 | 3 |
| 53323 | 15 16 | 56538 | 15 16 |
| 56539 | |||
| 56540 | |||
| 53324 | 0 16 | 56541 | 0 16 |
| 56542 | |||
| 53325 | 16 | 56543 | 16 |
| 56544 | |||
| 56545 | |||
| 56546 | |||
| 53326 | 15 16 | 56547 | 15 16 |
| 56548 | |||
| 56549 | |||
| 56550 | |||
| 53327 | 0 16 | 56551 | 0 16 |
| 53328 | 15 16 | 56552 | 15 16 |
| 56553 | |||
| 56554 | |||
| 53329 | 15 16 | 56555 | 15 16 |
| 56556 | |||
| 56557 | |||
| 53330 | 0 16 | 56558 | 0 16 |
| 56559 | |||
| 53331 | 16 | 56560 | 16 |
| 56561 | |||
| 56562 | |||
| 56563 | |||
| 53332 | 16 | 56564 | 16 |
| 56565 | |||
| 56566 | |||
| 56567 | |||
| 56568 | |||
| 53333 | 16 | 56569 | 16 |
| 56570 | |||
| 56571 | |||
| 56572 | |||
| 53334 | 0 | 56573 | 0 |
| 53335 | 0 | 56574 | 0 |
| 56575 | |||
| 56576 | |||
| 53336 | 16 | 56577 | 16 |
| 53337 | 16 | 56578 | 16 |
| 53338 | 16 | 56579 | 16 |
| ... | @@ -53351,6 +56592,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53351,6 +56592,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53351 | 56592 | ||
| 53352 | 0 | 56593 | 0 |
| 53353 | 1 | 56594 | 1 |
| 56595 | |||
| 56596 | |||
| 53354 | 0 | 56597 | 0 |
| 53355 | 1 | 56598 | 1 |
| 53356 | 0 16 | 56599 | 0 16 |
| ... | @@ -53372,7 +56615,10 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53372,7 +56615,10 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53372 | 16 | 56615 | 16 |
| 53373 | 5 | 56616 | 5 |
| 53374 | 16 | 56617 | 16 |
| 56618 | |||
| 56619 | |||
| 53375 | 0 | 56620 | 0 |
| 56621 | |||
| 53376 | 5 | 56622 | 5 |
| 53377 | 5 | 56623 | 5 |
| 53378 | 0 | 56624 | 0 |
| ... | @@ -53385,14 +56631,17 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53385,14 +56631,17 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53385 | 27 | 56631 | 27 |
| 53386 | 56632 | ||
| 53387 | 27 | 56633 | 27 |
| 56634 | |||
| 53388 | 27 | 56635 | 27 |
| 53389 | 27 | 56636 | 27 |
| 53390 | 56637 | ||
| 53391 | 27 | 56638 | 27 |
| 56639 | |||
| 53392 | 27 | 56640 | 27 |
| 53393 | 27 | 56641 | 27 |
| 53394 | 56642 | ||
| 53395 | 27 | 56643 | 27 |
| 56644 | |||
| 53396 | 27 | 56645 | 27 |
| 53397 | 1 | 56646 | 1 |
| 53398 | 1 | 56647 | 1 |
| ... | @@ -53990,7 +57239,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -53990,7 +57239,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53990 | 0 | 57239 | 0 |
| 53991 | 0 39 | 57240 | 0 39 |
| 53992 | 1 | 57241 | 1 |
| 53993 | 1 | 57242 | 1 42 |
| 53994 | 57243 | ||
| 53995 | 37 | 57244 | 37 |
| 53996 | 37 | 57245 | 37 |
| ... | @@ -55116,17 +58365,19 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -55116,17 +58365,19 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 55116 | 0 | 58365 | 0 |
| 55117 | 0 | 58366 | 0 |
| 55118 | 0 | 58367 | 0 |
| 58368 | 42 | ||
| 55119 | 5 | 58369 | 5 |
| 55120 | 1 | 58370 | 1 |
| 55121 | 1 | 58371 | 1 |
| 55122 | 0 1 | 58372 | 0 1 |
| 55123 | 14 15 | 58373 | 14 15 42 |
| 55124 | 0 | 58374 | 0 |
| 55125 | 1 | 58375 | 1 |
| 55126 | 0 | 58376 | 0 |
| 55127 | 0 | 58377 | 0 |
| 55128 | 0 | 58378 | 0 |
| 55129 | 0 | 58379 | 0 |
| 58380 | 42 | ||
| 55130 | 5 18 | 58381 | 5 18 |
| 55131 | 1 | 58382 | 1 |
| 55132 | 1 18 | 58383 | 1 18 |
| ... | @@ -55156,9 +58407,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -55156,9 +58407,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 55156 | 0 | 58407 | 0 |
| 55157 | 0 | 58408 | 0 |
| 55158 | 0 | 58409 | 0 |
| 55159 | 14 15 | 58410 | 14 15 42 |
| 55160 | 30 | 58411 | 30 |
| 55161 | 8 | 58412 | 8 42 |
| 55162 | 1 | 58413 | 1 |
| 55163 | 5 | 58414 | 5 |
| 55164 | 24 | 58415 | 24 |
| ... | @@ -55224,7 +58475,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -55224,7 +58475,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 55224 | 0 | 58475 | 0 |
| 55225 | 15 | 58476 | 15 |
| 55226 | 0 | 58477 | 0 |
| 55227 | 0 | 58478 | 0 42 |
| 55228 | 23 | 58479 | 23 |
| 55229 | 5 | 58480 | 5 |
| 55230 | 5 | 58481 | 5 |
| ... | @@ -55529,12 +58780,14 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -55529,12 +58780,14 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 55529 | 0 | 58780 | 0 |
| 55530 | 0 | 58781 | 0 |
| 55531 | 0 | 58782 | 0 |
| 58783 | 42 | ||
| 55532 | 0 | 58784 | 0 |
| 55533 | 0 | 58785 | 0 |
| 55534 | 0 | 58786 | 0 |
| 55535 | 0 | 58787 | 0 |
| 55536 | 0 | 58788 | 0 |
| 55537 | 0 | 58789 | 0 |
| 58790 | 42 | ||
| 55538 | 0 | 58791 | 0 |
| 55539 | 0 | 58792 | 0 |
| 55540 | 0 | 58793 | 0 |
| ... | @@ -55640,6 +58893,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf | ... | @@ -55640,6 +58893,8 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 55640 | 0 | 58893 | 0 |
| 55641 | 18 | 58894 | 18 |
| 55642 | 0 | 58895 | 0 |
| 58896 | 42 | ||
| 58897 | 42 | ||
| 55643 | 0 16 | 58898 | 0 16 |
| 55644 | 12 16 | 58899 | 12 16 |
| 55645 | 35 | 58900 | 35 |
lib/libc/glibc/fns.txt+221-4| ... | @@ -199,7 +199,9 @@ __acosf_finite m | ... | @@ -199,7 +199,9 @@ __acosf_finite m |
| 199 | __acosh_finite m | 199 | __acosh_finite m |
| 200 | __acoshf128_finite m | 200 | __acoshf128_finite m |
| 201 | __acoshf_finite m | 201 | __acoshf_finite m |
| 202 | __acoshieee128 m | ||
| 202 | __acoshl_finite m | 203 | __acoshl_finite m |
| 204 | __acosieee128 m | ||
| 203 | __acosl_finite m | 205 | __acosl_finite m |
| 204 | __adddf3 c | 206 | __adddf3 c |
| 205 | __addsf3 c | 207 | __addsf3 c |
| ... | @@ -228,6 +230,8 @@ __align_cpy_2 c | ... | @@ -228,6 +230,8 @@ __align_cpy_2 c |
| 228 | __align_cpy_4 c | 230 | __align_cpy_4 c |
| 229 | __align_cpy_8 c | 231 | __align_cpy_8 c |
| 230 | __arch_prctl c | 232 | __arch_prctl c |
| 233 | __argp_errorieee128 c | ||
| 234 | __argp_failureieee128 c | ||
| 231 | __argz_count c | 235 | __argz_count c |
| 232 | __argz_next c | 236 | __argz_next c |
| 233 | __argz_stringify c | 237 | __argz_stringify c |
| ... | @@ -236,20 +240,27 @@ __ashrdi3 c | ... | @@ -236,20 +240,27 @@ __ashrdi3 c |
| 236 | __asin_finite m | 240 | __asin_finite m |
| 237 | __asinf128_finite m | 241 | __asinf128_finite m |
| 238 | __asinf_finite m | 242 | __asinf_finite m |
| 243 | __asinhieee128 m | ||
| 244 | __asinieee128 m | ||
| 239 | __asinl_finite m | 245 | __asinl_finite m |
| 240 | __asprintf c | 246 | __asprintf c |
| 241 | __asprintf_chk c | 247 | __asprintf_chk c |
| 248 | __asprintf_chkieee128 c | ||
| 249 | __asprintfieee128 c | ||
| 242 | __assert c | 250 | __assert c |
| 243 | __assert_fail c | 251 | __assert_fail c |
| 244 | __assert_perror_fail c | 252 | __assert_perror_fail c |
| 245 | __atan2_finite m | 253 | __atan2_finite m |
| 246 | __atan2f128_finite m | 254 | __atan2f128_finite m |
| 247 | __atan2f_finite m | 255 | __atan2f_finite m |
| 256 | __atan2ieee128 m | ||
| 248 | __atan2l_finite m | 257 | __atan2l_finite m |
| 249 | __atanh_finite m | 258 | __atanh_finite m |
| 250 | __atanhf128_finite m | 259 | __atanhf128_finite m |
| 251 | __atanhf_finite m | 260 | __atanhf_finite m |
| 261 | __atanhieee128 m | ||
| 252 | __atanhl_finite m | 262 | __atanhl_finite m |
| 263 | __atanieee128 m | ||
| 253 | __atomic_feclearexcept c | 264 | __atomic_feclearexcept c |
| 254 | __atomic_feholdexcept c | 265 | __atomic_feholdexcept c |
| 255 | __atomic_feupdateenv c | 266 | __atomic_feupdateenv c |
| ... | @@ -258,21 +269,50 @@ __backtrace_symbols c | ... | @@ -258,21 +269,50 @@ __backtrace_symbols c |
| 258 | __backtrace_symbols_fd c | 269 | __backtrace_symbols_fd c |
| 259 | __bsd_getpgrp c | 270 | __bsd_getpgrp c |
| 260 | __bzero c | 271 | __bzero c |
| 272 | __cabsieee128 m | ||
| 273 | __cacoshieee128 m | ||
| 274 | __cacosieee128 m | ||
| 275 | __canonicalizeieee128 m | ||
| 276 | __cargieee128 m | ||
| 277 | __casinhieee128 m | ||
| 278 | __casinieee128 m | ||
| 279 | __catanhieee128 m | ||
| 280 | __catanieee128 m | ||
| 281 | __cbrtieee128 m | ||
| 282 | __ccoshieee128 m | ||
| 283 | __ccosieee128 m | ||
| 284 | __ceilieee128 m | ||
| 285 | __cexpieee128 m | ||
| 261 | __check_rhosts_file c | 286 | __check_rhosts_file c |
| 262 | __chk_fail c | 287 | __chk_fail c |
| 288 | __cimagieee128 m | ||
| 263 | __clog10 m | 289 | __clog10 m |
| 264 | __clog10f m | 290 | __clog10f m |
| 291 | __clog10ieee128 m | ||
| 265 | __clog10l m | 292 | __clog10l m |
| 293 | __clogieee128 m | ||
| 266 | __clone c | 294 | __clone c |
| 267 | __close c | 295 | __close c |
| 268 | __cmpdi2 c | 296 | __cmpdi2 c |
| 269 | __cmsg_nxthdr c | 297 | __cmsg_nxthdr c |
| 270 | __confstr_chk c | 298 | __confstr_chk c |
| 299 | __conjieee128 m | ||
| 271 | __connect c | 300 | __connect c |
| 301 | __copysignieee128 m | ||
| 272 | __cosh_finite m | 302 | __cosh_finite m |
| 273 | __coshf128_finite m | 303 | __coshf128_finite m |
| 274 | __coshf_finite m | 304 | __coshf_finite m |
| 305 | __coshieee128 m | ||
| 275 | __coshl_finite m | 306 | __coshl_finite m |
| 307 | __cosieee128 m | ||
| 308 | __cpowieee128 m | ||
| 309 | __cprojieee128 m | ||
| 310 | __crealieee128 m | ||
| 311 | __csinhieee128 m | ||
| 312 | __csinieee128 m | ||
| 313 | __csqrtieee128 m | ||
| 314 | __ctanhieee128 m | ||
| 315 | __ctanieee128 m | ||
| 276 | __ctype32_b c | 316 | __ctype32_b c |
| 277 | __ctype32_tolower c | 317 | __ctype32_tolower c |
| 278 | __ctype32_toupper c | 318 | __ctype32_toupper c |
| ... | @@ -300,33 +340,55 @@ __divdf3 c | ... | @@ -300,33 +340,55 @@ __divdf3 c |
| 300 | __divdi3 c | 340 | __divdi3 c |
| 301 | __divsf3 c | 341 | __divsf3 c |
| 302 | __dprintf_chk c | 342 | __dprintf_chk c |
| 343 | __dprintf_chkieee128 c | ||
| 344 | __dprintfieee128 c | ||
| 303 | __dup2 c | 345 | __dup2 c |
| 304 | __duplocale c | 346 | __duplocale c |
| 305 | __endmntent c | 347 | __endmntent c |
| 306 | __environ c | 348 | __environ c |
| 307 | __eqdf2 c | 349 | __eqdf2 c |
| 308 | __eqsf2 c | 350 | __eqsf2 c |
| 351 | __erfcieee128 m | ||
| 352 | __erfieee128 m | ||
| 353 | __errieee128 c | ||
| 309 | __errno_location c | 354 | __errno_location c |
| 355 | __error_at_lineieee128 c | ||
| 356 | __errorieee128 c | ||
| 357 | __errxieee128 c | ||
| 310 | __exp10_finite m | 358 | __exp10_finite m |
| 311 | __exp10f128_finite m | 359 | __exp10f128_finite m |
| 312 | __exp10f_finite m | 360 | __exp10f_finite m |
| 361 | __exp10ieee128 m | ||
| 313 | __exp10l_finite m | 362 | __exp10l_finite m |
| 314 | __exp2_finite m | 363 | __exp2_finite m |
| 315 | __exp2f128_finite m | 364 | __exp2f128_finite m |
| 316 | __exp2f_finite m | 365 | __exp2f_finite m |
| 366 | __exp2ieee128 m | ||
| 317 | __exp2l_finite m | 367 | __exp2l_finite m |
| 318 | __exp_finite m | 368 | __exp_finite m |
| 319 | __expf128_finite m | 369 | __expf128_finite m |
| 320 | __expf_finite m | 370 | __expf_finite m |
| 371 | __expieee128 m | ||
| 321 | __expl m | 372 | __expl m |
| 322 | __expl_finite m | 373 | __expl_finite m |
| 323 | __explicit_bzero_chk c | 374 | __explicit_bzero_chk c |
| 375 | __expm1ieee128 m | ||
| 324 | __expm1l m | 376 | __expm1l m |
| 325 | __extendsfdf2 c | 377 | __extendsfdf2 c |
| 378 | __f32addieee128 m | ||
| 379 | __f32divieee128 m | ||
| 380 | __f32mulieee128 m | ||
| 381 | __f32subieee128 m | ||
| 382 | __f64addieee128 m | ||
| 383 | __f64divieee128 m | ||
| 384 | __f64mulieee128 m | ||
| 385 | __f64subieee128 m | ||
| 386 | __fabsieee128 m | ||
| 326 | __fbufsize c | 387 | __fbufsize c |
| 327 | __fcntl c | 388 | __fcntl c |
| 328 | __fdelt_chk c | 389 | __fdelt_chk c |
| 329 | __fdelt_warn c | 390 | __fdelt_warn c |
| 391 | __fdimieee128 m | ||
| 330 | __fe_dfl_env m | 392 | __fe_dfl_env m |
| 331 | __fe_dfl_mode m | 393 | __fe_dfl_mode m |
| 332 | __fe_enabled_env m | 394 | __fe_enabled_env m |
| ... | @@ -359,10 +421,17 @@ __floatundidf c | ... | @@ -359,10 +421,17 @@ __floatundidf c |
| 359 | __floatundisf c | 421 | __floatundisf c |
| 360 | __floatunsidf c | 422 | __floatunsidf c |
| 361 | __floatunsisf c | 423 | __floatunsisf c |
| 424 | __floorieee128 m | ||
| 362 | __flt_rounds c | 425 | __flt_rounds c |
| 426 | __fmaieee128 m | ||
| 427 | __fmaxieee128 m | ||
| 428 | __fmaxmagieee128 m | ||
| 429 | __fminieee128 m | ||
| 430 | __fminmagieee128 m | ||
| 363 | __fmod_finite m | 431 | __fmod_finite m |
| 364 | __fmodf128_finite m | 432 | __fmodf128_finite m |
| 365 | __fmodf_finite m | 433 | __fmodf_finite m |
| 434 | __fmodieee128 m | ||
| 366 | __fmodl_finite m | 435 | __fmodl_finite m |
| 367 | __fork c | 436 | __fork c |
| 368 | __fpclassify m | 437 | __fpclassify m |
| ... | @@ -371,6 +440,8 @@ __fpclassifyf128 m | ... | @@ -371,6 +440,8 @@ __fpclassifyf128 m |
| 371 | __fpclassifyl m | 440 | __fpclassifyl m |
| 372 | __fpending c | 441 | __fpending c |
| 373 | __fprintf_chk c | 442 | __fprintf_chk c |
| 443 | __fprintf_chkieee128 c | ||
| 444 | __fprintfieee128 c | ||
| 374 | __fpu_control c | 445 | __fpu_control c |
| 375 | __fpurge c | 446 | __fpurge c |
| 376 | __frame_state_for c | 447 | __frame_state_for c |
| ... | @@ -380,10 +451,17 @@ __freadable c | ... | @@ -380,10 +451,17 @@ __freadable c |
| 380 | __freading c | 451 | __freading c |
| 381 | __free_hook c | 452 | __free_hook c |
| 382 | __freelocale c | 453 | __freelocale c |
| 454 | __frexpieee128 m | ||
| 455 | __fromfpieee128 m | ||
| 456 | __fromfpxieee128 m | ||
| 457 | __fscanfieee128 c | ||
| 383 | __fsetlocking c | 458 | __fsetlocking c |
| 384 | __fwprintf_chk c | 459 | __fwprintf_chk c |
| 460 | __fwprintf_chkieee128 c | ||
| 461 | __fwprintfieee128 c | ||
| 385 | __fwritable c | 462 | __fwritable c |
| 386 | __fwriting c | 463 | __fwriting c |
| 464 | __fwscanfieee128 c | ||
| 387 | __fxstat c | 465 | __fxstat c |
| 388 | __fxstat64 c | 466 | __fxstat64 c |
| 389 | __fxstatat c | 467 | __fxstatat c |
| ... | @@ -403,6 +481,7 @@ __gethostname_chk c | ... | @@ -403,6 +481,7 @@ __gethostname_chk c |
| 403 | __getlogin_r_chk c | 481 | __getlogin_r_chk c |
| 404 | __getmntent_r c | 482 | __getmntent_r c |
| 405 | __getpagesize c | 483 | __getpagesize c |
| 484 | __getpayloadieee128 m | ||
| 406 | __getpgid c | 485 | __getpgid c |
| 407 | __getpid c | 486 | __getpid c |
| 408 | __gets_chk c | 487 | __gets_chk c |
| ... | @@ -418,7 +497,9 @@ __h_errno_location c | ... | @@ -418,7 +497,9 @@ __h_errno_location c |
| 418 | __hypot_finite m | 497 | __hypot_finite m |
| 419 | __hypotf128_finite m | 498 | __hypotf128_finite m |
| 420 | __hypotf_finite m | 499 | __hypotf_finite m |
| 500 | __hypotieee128 m | ||
| 421 | __hypotl_finite m | 501 | __hypotl_finite m |
| 502 | __ilogbieee128 m | ||
| 422 | __isalnum_l c | 503 | __isalnum_l c |
| 423 | __isalpha_l c | 504 | __isalpha_l c |
| 424 | __isascii_l c | 505 | __isascii_l c |
| ... | @@ -442,17 +523,29 @@ __isnanf c | ... | @@ -442,17 +523,29 @@ __isnanf c |
| 442 | __isnanf128 m | 523 | __isnanf128 m |
| 443 | __isnanl c | 524 | __isnanl c |
| 444 | __isoc99_fscanf c | 525 | __isoc99_fscanf c |
| 526 | __isoc99_fscanfieee128 c | ||
| 445 | __isoc99_fwscanf c | 527 | __isoc99_fwscanf c |
| 528 | __isoc99_fwscanfieee128 c | ||
| 446 | __isoc99_scanf c | 529 | __isoc99_scanf c |
| 530 | __isoc99_scanfieee128 c | ||
| 447 | __isoc99_sscanf c | 531 | __isoc99_sscanf c |
| 532 | __isoc99_sscanfieee128 c | ||
| 448 | __isoc99_swscanf c | 533 | __isoc99_swscanf c |
| 534 | __isoc99_swscanfieee128 c | ||
| 449 | __isoc99_vfscanf c | 535 | __isoc99_vfscanf c |
| 536 | __isoc99_vfscanfieee128 c | ||
| 450 | __isoc99_vfwscanf c | 537 | __isoc99_vfwscanf c |
| 538 | __isoc99_vfwscanfieee128 c | ||
| 451 | __isoc99_vscanf c | 539 | __isoc99_vscanf c |
| 540 | __isoc99_vscanfieee128 c | ||
| 452 | __isoc99_vsscanf c | 541 | __isoc99_vsscanf c |
| 542 | __isoc99_vsscanfieee128 c | ||
| 453 | __isoc99_vswscanf c | 543 | __isoc99_vswscanf c |
| 544 | __isoc99_vswscanfieee128 c | ||
| 454 | __isoc99_vwscanf c | 545 | __isoc99_vwscanf c |
| 546 | __isoc99_vwscanfieee128 c | ||
| 455 | __isoc99_wscanf c | 547 | __isoc99_wscanf c |
| 548 | __isoc99_wscanfieee128 c | ||
| 456 | __isprint_l c | 549 | __isprint_l c |
| 457 | __ispunct_l c | 550 | __ispunct_l c |
| 458 | __issignaling m | 551 | __issignaling m |
| ... | @@ -480,23 +573,29 @@ __ivaliduser c | ... | @@ -480,23 +573,29 @@ __ivaliduser c |
| 480 | __j0_finite m | 573 | __j0_finite m |
| 481 | __j0f128_finite m | 574 | __j0f128_finite m |
| 482 | __j0f_finite m | 575 | __j0f_finite m |
| 576 | __j0ieee128 m | ||
| 483 | __j0l_finite m | 577 | __j0l_finite m |
| 484 | __j1_finite m | 578 | __j1_finite m |
| 485 | __j1f128_finite m | 579 | __j1f128_finite m |
| 486 | __j1f_finite m | 580 | __j1f_finite m |
| 581 | __j1ieee128 m | ||
| 487 | __j1l_finite m | 582 | __j1l_finite m |
| 488 | __jn_finite m | 583 | __jn_finite m |
| 489 | __jnf128_finite m | 584 | __jnf128_finite m |
| 490 | __jnf_finite m | 585 | __jnf_finite m |
| 586 | __jnieee128 m | ||
| 491 | __jnl_finite m | 587 | __jnl_finite m |
| 492 | __key_decryptsession_pk_LOCAL c | 588 | __key_decryptsession_pk_LOCAL c |
| 493 | __key_encryptsession_pk_LOCAL c | 589 | __key_encryptsession_pk_LOCAL c |
| 494 | __key_gendes_LOCAL c | 590 | __key_gendes_LOCAL c |
| 591 | __ldexpieee128 m | ||
| 495 | __ledf2 c | 592 | __ledf2 c |
| 496 | __lesf2 c | 593 | __lesf2 c |
| 497 | __lgamma_r_finite m | 594 | __lgamma_r_finite m |
| 498 | __lgammaf128_r_finite m | 595 | __lgammaf128_r_finite m |
| 499 | __lgammaf_r_finite m | 596 | __lgammaf_r_finite m |
| 597 | __lgammaieee128 m | ||
| 598 | __lgammaieee128_r m | ||
| 500 | __lgammal_r_finite m | 599 | __lgammal_r_finite m |
| 501 | __libc_allocate_rtsig c | 600 | __libc_allocate_rtsig c |
| 502 | __libc_calloc c | 601 | __libc_calloc c |
| ... | @@ -512,23 +611,34 @@ __libc_memalign c | ... | @@ -512,23 +611,34 @@ __libc_memalign c |
| 512 | __libc_pvalloc c | 611 | __libc_pvalloc c |
| 513 | __libc_realloc c | 612 | __libc_realloc c |
| 514 | __libc_sa_len c | 613 | __libc_sa_len c |
| 614 | __libc_single_threaded c | ||
| 515 | __libc_stack_end ld | 615 | __libc_stack_end ld |
| 516 | __libc_start_main c | 616 | __libc_start_main c |
| 517 | __libc_valloc c | 617 | __libc_valloc c |
| 518 | __libpthread_version_placeholder pthread | 618 | __libpthread_version_placeholder pthread |
| 619 | __llogbieee128 m | ||
| 620 | __llrintieee128 m | ||
| 621 | __llroundieee128 m | ||
| 519 | __log10_finite m | 622 | __log10_finite m |
| 520 | __log10f128_finite m | 623 | __log10f128_finite m |
| 521 | __log10f_finite m | 624 | __log10f_finite m |
| 625 | __log10ieee128 m | ||
| 522 | __log10l_finite m | 626 | __log10l_finite m |
| 627 | __log1pieee128 m | ||
| 523 | __log2_finite m | 628 | __log2_finite m |
| 524 | __log2f128_finite m | 629 | __log2f128_finite m |
| 525 | __log2f_finite m | 630 | __log2f_finite m |
| 631 | __log2ieee128 m | ||
| 526 | __log2l_finite m | 632 | __log2l_finite m |
| 527 | __log_finite m | 633 | __log_finite m |
| 634 | __logbieee128 m | ||
| 528 | __logf128_finite m | 635 | __logf128_finite m |
| 529 | __logf_finite m | 636 | __logf_finite m |
| 637 | __logieee128 m | ||
| 530 | __logl_finite m | 638 | __logl_finite m |
| 531 | __longjmp_chk c | 639 | __longjmp_chk c |
| 640 | __lrintieee128 m | ||
| 641 | __lroundieee128 m | ||
| 532 | __lseek c | 642 | __lseek c |
| 533 | __lshrdi3 c | 643 | __lshrdi3 c |
| 534 | __ltdf2 c | 644 | __ltdf2 c |
| ... | @@ -567,17 +677,26 @@ __memset_gg c | ... | @@ -567,17 +677,26 @@ __memset_gg c |
| 567 | __mips_fpu_getcw c | 677 | __mips_fpu_getcw c |
| 568 | __mips_fpu_setcw c | 678 | __mips_fpu_setcw c |
| 569 | __moddi3 c | 679 | __moddi3 c |
| 680 | __modfieee128 m | ||
| 570 | __monstartup c | 681 | __monstartup c |
| 571 | __morecore c | 682 | __morecore c |
| 572 | __mq_open_2 rt | 683 | __mq_open_2 rt |
| 573 | __muldf3 c | 684 | __muldf3 c |
| 574 | __mulsf3 c | 685 | __mulsf3 c |
| 686 | __nanieee128 m | ||
| 575 | __nanosleep c | 687 | __nanosleep c |
| 688 | __nearbyintieee128 m | ||
| 576 | __nedf2 c | 689 | __nedf2 c |
| 577 | __negdf2 c | 690 | __negdf2 c |
| 578 | __negsf2 c | 691 | __negsf2 c |
| 579 | __nesf2 c | 692 | __nesf2 c |
| 580 | __newlocale c | 693 | __newlocale c |
| 694 | __nextafterieee128 m | ||
| 695 | __nextdownieee128 m | ||
| 696 | __nexttoward_to_ieee128 m | ||
| 697 | __nexttowardf_to_ieee128 m | ||
| 698 | __nexttowardieee128 m | ||
| 699 | __nextupieee128 m | ||
| 581 | __nl_langinfo_l c | 700 | __nl_langinfo_l c |
| 582 | __nldbl__IO_fprintf c | 701 | __nldbl__IO_fprintf c |
| 583 | __nldbl__IO_printf c | 702 | __nldbl__IO_printf c |
| ... | @@ -690,7 +809,11 @@ __nss_hosts_lookup c | ... | @@ -690,7 +809,11 @@ __nss_hosts_lookup c |
| 690 | __nss_next c | 809 | __nss_next c |
| 691 | __nss_passwd_lookup c | 810 | __nss_passwd_lookup c |
| 692 | __obstack_printf_chk c | 811 | __obstack_printf_chk c |
| 812 | __obstack_printf_chkieee128 c | ||
| 813 | __obstack_printfieee128 c | ||
| 693 | __obstack_vprintf_chk c | 814 | __obstack_vprintf_chk c |
| 815 | __obstack_vprintf_chkieee128 c | ||
| 816 | __obstack_vprintfieee128 c | ||
| 694 | __open c | 817 | __open c |
| 695 | __open64 c | 818 | __open64 c |
| 696 | __open64_2 c | 819 | __open64_2 c |
| ... | @@ -706,6 +829,7 @@ __posix_getopt c | ... | @@ -706,6 +829,7 @@ __posix_getopt c |
| 706 | __pow_finite m | 829 | __pow_finite m |
| 707 | __powf128_finite m | 830 | __powf128_finite m |
| 708 | __powf_finite m | 831 | __powf_finite m |
| 832 | __powieee128 m | ||
| 709 | __powl_finite m | 833 | __powl_finite m |
| 710 | __ppc_get_timebase_freq c | 834 | __ppc_get_timebase_freq c |
| 711 | __ppoll_chk c | 835 | __ppoll_chk c |
| ... | @@ -713,7 +837,10 @@ __pread64 c | ... | @@ -713,7 +837,10 @@ __pread64 c |
| 713 | __pread64_chk c | 837 | __pread64_chk c |
| 714 | __pread_chk c | 838 | __pread_chk c |
| 715 | __printf_chk c | 839 | __printf_chk c |
| 840 | __printf_chkieee128 c | ||
| 716 | __printf_fp c | 841 | __printf_fp c |
| 842 | __printf_sizeieee128 c | ||
| 843 | __printfieee128 c | ||
| 717 | __profile_frequency c | 844 | __profile_frequency c |
| 718 | __progname c | 845 | __progname c |
| 719 | __progname_full c | 846 | __progname_full c |
| ... | @@ -744,6 +871,11 @@ __pthread_unregister_cancel_restore pthread | ... | @@ -744,6 +871,11 @@ __pthread_unregister_cancel_restore pthread |
| 744 | __pthread_unwind_next pthread | 871 | __pthread_unwind_next pthread |
| 745 | __ptsname_r_chk c | 872 | __ptsname_r_chk c |
| 746 | __pwrite64 c | 873 | __pwrite64 c |
| 874 | __qecvtieee128 c | ||
| 875 | __qecvtieee128_r c | ||
| 876 | __qfcvtieee128 c | ||
| 877 | __qfcvtieee128_r c | ||
| 878 | __qgcvtieee128 c | ||
| 747 | __rawmemchr c | 879 | __rawmemchr c |
| 748 | __rcmd_errstr c | 880 | __rcmd_errstr c |
| 749 | __read c | 881 | __read c |
| ... | @@ -762,12 +894,17 @@ __register_frame_table c | ... | @@ -762,12 +894,17 @@ __register_frame_table c |
| 762 | __remainder_finite m | 894 | __remainder_finite m |
| 763 | __remainderf128_finite m | 895 | __remainderf128_finite m |
| 764 | __remainderf_finite m | 896 | __remainderf_finite m |
| 897 | __remainderieee128 m | ||
| 765 | __remainderl_finite m | 898 | __remainderl_finite m |
| 899 | __remquoieee128 m | ||
| 766 | __res_init c | 900 | __res_init c |
| 767 | __res_nclose c | 901 | __res_nclose c |
| 768 | __res_ninit c | 902 | __res_ninit c |
| 769 | __res_randomid c | 903 | __res_randomid c |
| 770 | __res_state c | 904 | __res_state c |
| 905 | __rintieee128 m | ||
| 906 | __roundevenieee128 m | ||
| 907 | __roundieee128 m | ||
| 771 | __rpc_thread_createerr c | 908 | __rpc_thread_createerr c |
| 772 | __rpc_thread_svc_fdset c | 909 | __rpc_thread_svc_fdset c |
| 773 | __rpc_thread_svc_max_pollfd c | 910 | __rpc_thread_svc_max_pollfd c |
| ... | @@ -775,7 +912,11 @@ __rpc_thread_svc_pollfd c | ... | @@ -775,7 +912,11 @@ __rpc_thread_svc_pollfd c |
| 775 | __sbrk c | 912 | __sbrk c |
| 776 | __scalb_finite m | 913 | __scalb_finite m |
| 777 | __scalbf_finite m | 914 | __scalbf_finite m |
| 915 | __scalbieee128 m | ||
| 778 | __scalbl_finite m | 916 | __scalbl_finite m |
| 917 | __scalblnieee128 m | ||
| 918 | __scalbnieee128 m | ||
| 919 | __scanfieee128 c | ||
| 779 | __sched_cpualloc c | 920 | __sched_cpualloc c |
| 780 | __sched_cpucount c | 921 | __sched_cpucount c |
| 781 | __sched_cpufree c | 922 | __sched_cpufree c |
| ... | @@ -789,6 +930,8 @@ __secure_getenv c | ... | @@ -789,6 +930,8 @@ __secure_getenv c |
| 789 | __select c | 930 | __select c |
| 790 | __send c | 931 | __send c |
| 791 | __setmntent c | 932 | __setmntent c |
| 933 | __setpayloadieee128 m | ||
| 934 | __setpayloadsigieee128 m | ||
| 792 | __setpgid c | 935 | __setpgid c |
| 793 | __sigaction c | 936 | __sigaction c |
| 794 | __sigaddset c | 937 | __sigaddset c |
| ... | @@ -799,24 +942,34 @@ __signbitf c | ... | @@ -799,24 +942,34 @@ __signbitf c |
| 799 | __signbitf128 m | 942 | __signbitf128 m |
| 800 | __signbitl c | 943 | __signbitl c |
| 801 | __signgam m | 944 | __signgam m |
| 945 | __significandieee128 m | ||
| 802 | __sigpause c | 946 | __sigpause c |
| 803 | __sigsetjmp c | 947 | __sigsetjmp c |
| 804 | __sigsuspend c | 948 | __sigsuspend c |
| 805 | __sim_disabled_exceptions c | 949 | __sim_disabled_exceptions c |
| 806 | __sim_exceptions c | 950 | __sim_exceptions c |
| 807 | __sim_round_mode c | 951 | __sim_round_mode c |
| 952 | __sincosieee128 m | ||
| 808 | __sinh_finite m | 953 | __sinh_finite m |
| 809 | __sinhf128_finite m | 954 | __sinhf128_finite m |
| 810 | __sinhf_finite m | 955 | __sinhf_finite m |
| 956 | __sinhieee128 m | ||
| 811 | __sinhl_finite m | 957 | __sinhl_finite m |
| 958 | __sinieee128 m | ||
| 812 | __snprintf_chk c | 959 | __snprintf_chk c |
| 960 | __snprintf_chkieee128 c | ||
| 961 | __snprintfieee128 c | ||
| 813 | __sprintf_chk c | 962 | __sprintf_chk c |
| 963 | __sprintf_chkieee128 c | ||
| 964 | __sprintfieee128 c | ||
| 814 | __sqrt_finite m | 965 | __sqrt_finite m |
| 815 | __sqrtdf2 c | 966 | __sqrtdf2 c |
| 816 | __sqrtf128_finite m | 967 | __sqrtf128_finite m |
| 817 | __sqrtf_finite m | 968 | __sqrtf_finite m |
| 969 | __sqrtieee128 m | ||
| 818 | __sqrtl_finite m | 970 | __sqrtl_finite m |
| 819 | __sqrtsf2 c | 971 | __sqrtsf2 c |
| 972 | __sscanfieee128 c | ||
| 820 | __stack_chk_fail c | 973 | __stack_chk_fail c |
| 821 | __stack_chk_guard ld | 974 | __stack_chk_guard ld |
| 822 | __statfs c | 975 | __statfs c |
| ... | @@ -849,6 +1002,9 @@ __strcspn_g c | ... | @@ -849,6 +1002,9 @@ __strcspn_g c |
| 849 | __strdup c | 1002 | __strdup c |
| 850 | __strerror_r c | 1003 | __strerror_r c |
| 851 | __strfmon_l c | 1004 | __strfmon_l c |
| 1005 | __strfmon_lieee128 c | ||
| 1006 | __strfmonieee128 c | ||
| 1007 | __strfromieee128 c | ||
| 852 | __strftime_l c | 1008 | __strftime_l c |
| 853 | __strlen_g c | 1009 | __strlen_g c |
| 854 | __strncasecmp_l c | 1010 | __strncasecmp_l c |
| ... | @@ -883,6 +1039,8 @@ __strtod_l c | ... | @@ -883,6 +1039,8 @@ __strtod_l c |
| 883 | __strtof128_internal c | 1039 | __strtof128_internal c |
| 884 | __strtof_internal c | 1040 | __strtof_internal c |
| 885 | __strtof_l c | 1041 | __strtof_l c |
| 1042 | __strtoieee128 c | ||
| 1043 | __strtoieee128_l c | ||
| 886 | __strtok_r c | 1044 | __strtok_r c |
| 887 | __strtok_r_1c c | 1045 | __strtok_r_1c c |
| 888 | __strtol_internal c | 1046 | __strtol_internal c |
| ... | @@ -902,48 +1060,93 @@ __strxfrm_l c | ... | @@ -902,48 +1060,93 @@ __strxfrm_l c |
| 902 | __subdf3 c | 1060 | __subdf3 c |
| 903 | __subsf3 c | 1061 | __subsf3 c |
| 904 | __swprintf_chk c | 1062 | __swprintf_chk c |
| 1063 | __swprintf_chkieee128 c | ||
| 1064 | __swprintfieee128 c | ||
| 1065 | __swscanfieee128 c | ||
| 905 | __sysconf c | 1066 | __sysconf c |
| 906 | __sysctl c | 1067 | __sysctl c |
| 907 | __syslog_chk c | 1068 | __syslog_chk c |
| 1069 | __syslog_chkieee128 c | ||
| 1070 | __syslogieee128 c | ||
| 908 | __sysv_signal c | 1071 | __sysv_signal c |
| 1072 | __tanhieee128 m | ||
| 1073 | __tanieee128 m | ||
| 1074 | __tgammaieee128 m | ||
| 909 | __timezone c | 1075 | __timezone c |
| 910 | __tls_get_addr ld | 1076 | __tls_get_addr ld |
| 911 | __tls_get_addr_opt ld | 1077 | __tls_get_addr_opt ld |
| 912 | __tls_get_offset ld | 1078 | __tls_get_offset ld |
| 913 | __toascii_l c | 1079 | __toascii_l c |
| 914 | __tolower_l c | 1080 | __tolower_l c |
| 1081 | __totalorderieee128 m | ||
| 1082 | __totalordermagieee128 m | ||
| 915 | __toupper_l c | 1083 | __toupper_l c |
| 916 | __towctrans c | 1084 | __towctrans c |
| 917 | __towctrans_l c | 1085 | __towctrans_l c |
| 918 | __towlower_l c | 1086 | __towlower_l c |
| 919 | __towupper_l c | 1087 | __towupper_l c |
| 920 | __truncdfsf2 c | 1088 | __truncdfsf2 c |
| 1089 | __truncieee128 m | ||
| 921 | __ttyname_r_chk c | 1090 | __ttyname_r_chk c |
| 922 | __tzname c | 1091 | __tzname c |
| 923 | __ucmpdi2 c | 1092 | __ucmpdi2 c |
| 924 | __udivdi3 c | 1093 | __udivdi3 c |
| 925 | __uflow c | 1094 | __uflow c |
| 1095 | __ufromfpieee128 m | ||
| 1096 | __ufromfpxieee128 m | ||
| 926 | __umoddi3 c | 1097 | __umoddi3 c |
| 927 | __underflow c | 1098 | __underflow c |
| 928 | __unorddf2 c | 1099 | __unorddf2 c |
| 929 | __unordsf2 c | 1100 | __unordsf2 c |
| 930 | __uselocale c | 1101 | __uselocale c |
| 931 | __vasprintf_chk c | 1102 | __vasprintf_chk c |
| 1103 | __vasprintf_chkieee128 c | ||
| 1104 | __vasprintfieee128 c | ||
| 932 | __vdprintf_chk c | 1105 | __vdprintf_chk c |
| 1106 | __vdprintf_chkieee128 c | ||
| 1107 | __vdprintfieee128 c | ||
| 1108 | __verrieee128 c | ||
| 1109 | __verrxieee128 c | ||
| 933 | __vfork c | 1110 | __vfork c |
| 934 | __vfprintf_chk c | 1111 | __vfprintf_chk c |
| 1112 | __vfprintf_chkieee128 c | ||
| 1113 | __vfprintfieee128 c | ||
| 935 | __vfscanf c | 1114 | __vfscanf c |
| 1115 | __vfscanfieee128 c | ||
| 936 | __vfwprintf_chk c | 1116 | __vfwprintf_chk c |
| 1117 | __vfwprintf_chkieee128 c | ||
| 1118 | __vfwprintfieee128 c | ||
| 1119 | __vfwscanfieee128 c | ||
| 937 | __vprintf_chk c | 1120 | __vprintf_chk c |
| 1121 | __vprintf_chkieee128 c | ||
| 1122 | __vprintfieee128 c | ||
| 1123 | __vscanfieee128 c | ||
| 938 | __vsnprintf c | 1124 | __vsnprintf c |
| 939 | __vsnprintf_chk c | 1125 | __vsnprintf_chk c |
| 1126 | __vsnprintf_chkieee128 c | ||
| 1127 | __vsnprintfieee128 c | ||
| 940 | __vsprintf_chk c | 1128 | __vsprintf_chk c |
| 1129 | __vsprintf_chkieee128 c | ||
| 1130 | __vsprintfieee128 c | ||
| 941 | __vsscanf c | 1131 | __vsscanf c |
| 1132 | __vsscanfieee128 c | ||
| 942 | __vswprintf_chk c | 1133 | __vswprintf_chk c |
| 1134 | __vswprintf_chkieee128 c | ||
| 1135 | __vswprintfieee128 c | ||
| 1136 | __vswscanfieee128 c | ||
| 943 | __vsyslog_chk c | 1137 | __vsyslog_chk c |
| 1138 | __vsyslog_chkieee128 c | ||
| 1139 | __vsyslogieee128 c | ||
| 1140 | __vwarnieee128 c | ||
| 1141 | __vwarnxieee128 c | ||
| 944 | __vwprintf_chk c | 1142 | __vwprintf_chk c |
| 1143 | __vwprintf_chkieee128 c | ||
| 1144 | __vwprintfieee128 c | ||
| 1145 | __vwscanfieee128 c | ||
| 945 | __wait c | 1146 | __wait c |
| 946 | __waitpid c | 1147 | __waitpid c |
| 1148 | __warnieee128 c | ||
| 1149 | __warnxieee128 c | ||
| 947 | __wcpcpy_chk c | 1150 | __wcpcpy_chk c |
| 948 | __wcpncpy_chk c | 1151 | __wcpncpy_chk c |
| 949 | __wcrtomb_chk c | 1152 | __wcrtomb_chk c |
| ... | @@ -962,6 +1165,8 @@ __wcstod_l c | ... | @@ -962,6 +1165,8 @@ __wcstod_l c |
| 962 | __wcstof128_internal c | 1165 | __wcstof128_internal c |
| 963 | __wcstof_internal c | 1166 | __wcstof_internal c |
| 964 | __wcstof_l c | 1167 | __wcstof_l c |
| 1168 | __wcstoieee128 c | ||
| 1169 | __wcstoieee128_l c | ||
| 965 | __wcstol_internal c | 1170 | __wcstol_internal c |
| 966 | __wcstol_l c | 1171 | __wcstol_l c |
| 967 | __wcstold_internal c | 1172 | __wcstold_internal c |
| ... | @@ -983,7 +1188,10 @@ __wmempcpy_chk c | ... | @@ -983,7 +1188,10 @@ __wmempcpy_chk c |
| 983 | __wmemset_chk c | 1188 | __wmemset_chk c |
| 984 | __woverflow c | 1189 | __woverflow c |
| 985 | __wprintf_chk c | 1190 | __wprintf_chk c |
| 1191 | __wprintf_chkieee128 c | ||
| 1192 | __wprintfieee128 c | ||
| 986 | __write c | 1193 | __write c |
| 1194 | __wscanfieee128 c | ||
| 987 | __wuflow c | 1195 | __wuflow c |
| 988 | __wunderflow c | 1196 | __wunderflow c |
| 989 | __xmknod c | 1197 | __xmknod c |
| ... | @@ -996,14 +1204,17 @@ __xstat64 c | ... | @@ -996,14 +1204,17 @@ __xstat64 c |
| 996 | __y0_finite m | 1204 | __y0_finite m |
| 997 | __y0f128_finite m | 1205 | __y0f128_finite m |
| 998 | __y0f_finite m | 1206 | __y0f_finite m |
| 1207 | __y0ieee128 m | ||
| 999 | __y0l_finite m | 1208 | __y0l_finite m |
| 1000 | __y1_finite m | 1209 | __y1_finite m |
| 1001 | __y1f128_finite m | 1210 | __y1f128_finite m |
| 1002 | __y1f_finite m | 1211 | __y1f_finite m |
| 1212 | __y1ieee128 m | ||
| 1003 | __y1l_finite m | 1213 | __y1l_finite m |
| 1004 | __yn_finite m | 1214 | __yn_finite m |
| 1005 | __ynf128_finite m | 1215 | __ynf128_finite m |
| 1006 | __ynf_finite m | 1216 | __ynf_finite m |
| 1217 | __ynieee128 m | ||
| 1007 | __ynl_finite m | 1218 | __ynl_finite m |
| 1008 | _authenticate c | 1219 | _authenticate c |
| 1009 | _dl_mcount ld | 1220 | _dl_mcount ld |
| ... | @@ -2727,17 +2938,19 @@ pthread_attr_getinheritsched c | ... | @@ -2727,17 +2938,19 @@ pthread_attr_getinheritsched c |
| 2727 | pthread_attr_getschedparam c | 2938 | pthread_attr_getschedparam c |
| 2728 | pthread_attr_getschedpolicy c | 2939 | pthread_attr_getschedpolicy c |
| 2729 | pthread_attr_getscope c | 2940 | pthread_attr_getscope c |
| 2941 | pthread_attr_getsigmask_np c | ||
| 2730 | pthread_attr_getstack pthread | 2942 | pthread_attr_getstack pthread |
| 2731 | pthread_attr_getstackaddr pthread | 2943 | pthread_attr_getstackaddr pthread |
| 2732 | pthread_attr_getstacksize pthread | 2944 | pthread_attr_getstacksize pthread |
| 2733 | pthread_attr_init c | 2945 | pthread_attr_init c |
| 2734 | pthread_attr_setaffinity_np pthread | 2946 | pthread_attr_setaffinity_np c |
| 2735 | pthread_attr_setdetachstate c | 2947 | pthread_attr_setdetachstate c |
| 2736 | pthread_attr_setguardsize pthread | 2948 | pthread_attr_setguardsize pthread |
| 2737 | pthread_attr_setinheritsched c | 2949 | pthread_attr_setinheritsched c |
| 2738 | pthread_attr_setschedparam c | 2950 | pthread_attr_setschedparam c |
| 2739 | pthread_attr_setschedpolicy c | 2951 | pthread_attr_setschedpolicy c |
| 2740 | pthread_attr_setscope c | 2952 | pthread_attr_setscope c |
| 2953 | pthread_attr_setsigmask_np c | ||
| 2741 | pthread_attr_setstack pthread | 2954 | pthread_attr_setstack pthread |
| 2742 | pthread_attr_setstackaddr pthread | 2955 | pthread_attr_setstackaddr pthread |
| 2743 | pthread_attr_setstacksize pthread | 2956 | pthread_attr_setstacksize pthread |
| ... | @@ -2767,9 +2980,9 @@ pthread_create pthread | ... | @@ -2767,9 +2980,9 @@ pthread_create pthread |
| 2767 | pthread_detach pthread | 2980 | pthread_detach pthread |
| 2768 | pthread_equal c | 2981 | pthread_equal c |
| 2769 | pthread_exit c | 2982 | pthread_exit c |
| 2770 | pthread_getaffinity_np pthread | 2983 | pthread_getaffinity_np c |
| 2771 | pthread_getattr_default_np pthread | 2984 | pthread_getattr_default_np pthread |
| 2772 | pthread_getattr_np pthread | 2985 | pthread_getattr_np c |
| 2773 | pthread_getconcurrency pthread | 2986 | pthread_getconcurrency pthread |
| 2774 | pthread_getcpuclockid pthread | 2987 | pthread_getcpuclockid pthread |
| 2775 | pthread_getname_np pthread | 2988 | pthread_getname_np pthread |
| ... | @@ -2835,7 +3048,7 @@ pthread_setname_np pthread | ... | @@ -2835,7 +3048,7 @@ pthread_setname_np pthread |
| 2835 | pthread_setschedparam c | 3048 | pthread_setschedparam c |
| 2836 | pthread_setschedprio pthread | 3049 | pthread_setschedprio pthread |
| 2837 | pthread_setspecific pthread | 3050 | pthread_setspecific pthread |
| 2838 | pthread_sigmask pthread | 3051 | pthread_sigmask c |
| 2839 | pthread_sigqueue pthread | 3052 | pthread_sigqueue pthread |
| 2840 | pthread_spin_destroy pthread | 3053 | pthread_spin_destroy pthread |
| 2841 | pthread_spin_init pthread | 3054 | pthread_spin_init pthread |
| ... | @@ -3140,12 +3353,14 @@ shmctl c | ... | @@ -3140,12 +3353,14 @@ shmctl c |
| 3140 | shmdt c | 3353 | shmdt c |
| 3141 | shmget c | 3354 | shmget c |
| 3142 | shutdown c | 3355 | shutdown c |
| 3356 | sigabbrev_np c | ||
| 3143 | sigaction c | 3357 | sigaction c |
| 3144 | sigaddset c | 3358 | sigaddset c |
| 3145 | sigaltstack c | 3359 | sigaltstack c |
| 3146 | sigandset c | 3360 | sigandset c |
| 3147 | sigblock c | 3361 | sigblock c |
| 3148 | sigdelset c | 3362 | sigdelset c |
| 3363 | sigdescr_np c | ||
| 3149 | sigemptyset c | 3364 | sigemptyset c |
| 3150 | sigfillset c | 3365 | sigfillset c |
| 3151 | siggetmask c | 3366 | siggetmask c |
| ... | @@ -3251,6 +3466,8 @@ strdup c | ... | @@ -3251,6 +3466,8 @@ strdup c |
| 3251 | strerror c | 3466 | strerror c |
| 3252 | strerror_l c | 3467 | strerror_l c |
| 3253 | strerror_r c | 3468 | strerror_r c |
| 3469 | strerrordesc_np c | ||
| 3470 | strerrorname_np c | ||
| 3254 | strfmon c | 3471 | strfmon c |
| 3255 | strfmon_l c | 3472 | strfmon_l c |
| 3256 | strfromd c | 3473 | strfromd c |
lib/libc/glibc/vers.txt+1| ... | @@ -40,3 +40,4 @@ GLIBC_2.28 | ... | @@ -40,3 +40,4 @@ GLIBC_2.28 |
| 40 | GLIBC_2.29 | 40 | GLIBC_2.29 |
| 41 | GLIBC_2.30 | 41 | GLIBC_2.30 |
| 42 | GLIBC_2.31 | 42 | GLIBC_2.31 |
| 43 | GLIBC_2.32 |
lib/libc/include/aarch64-linux-gnu/bits/floatn.h deleted-97| ... | @@ -1,97 +0,0 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on ldbl-128 platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/aarch64-linux-gnu/bits/hwcap.h+20-1| ... | @@ -53,4 +53,23 @@ | ... | @@ -53,4 +53,23 @@ |
| 53 | #define HWCAP_SSBS		(1 << 28) | 53 | #define HWCAP_SSBS		(1 << 28) |
| 54 | #define HWCAP_SB		(1 << 29) | 54 | #define HWCAP_SB		(1 << 29) |
| 55 | #define HWCAP_PACA		(1 << 30) | 55 | #define HWCAP_PACA		(1 << 30) |
| 56 | #define HWCAP_PACG		(1UL << 31) | ||
| \ No newline at end of file | |||
| 56 | #define HWCAP_PACG		(1UL << 31) | ||
| 57 | |||
| 58 | #define HWCAP2_DCPODP		(1 << 0) | ||
| 59 | #define HWCAP2_SVE2		(1 << 1) | ||
| 60 | #define HWCAP2_SVEAES		(1 << 2) | ||
| 61 | #define HWCAP2_SVEPMULL		(1 << 3) | ||
| 62 | #define HWCAP2_SVEBITPERM	(1 << 4) | ||
| 63 | #define HWCAP2_SVESHA3		(1 << 5) | ||
| 64 | #define HWCAP2_SVESM4		(1 << 6) | ||
| 65 | #define HWCAP2_FLAGM2		(1 << 7) | ||
| 66 | #define HWCAP2_FRINT		(1 << 8) | ||
| 67 | #define HWCAP2_SVEI8MM		(1 << 9) | ||
| 68 | #define HWCAP2_SVEF32MM		(1 << 10) | ||
| 69 | #define HWCAP2_SVEF64MM		(1 << 11) | ||
| 70 | #define HWCAP2_SVEBF16		(1 << 12) | ||
| 71 | #define HWCAP2_I8MM		(1 << 13) | ||
| 72 | #define HWCAP2_BF16		(1 << 14) | ||
| 73 | #define HWCAP2_DGH		(1 << 15) | ||
| 74 | #define HWCAP2_RNG		(1 << 16) | ||
| 75 | #define HWCAP2_BTI		(1 << 17) | ||
| \ No newline at end of file | |||
lib/libc/include/aarch64-linux-gnu/bits/long-double.h+1-1| ... | @@ -18,4 +18,4 @@ | ... | @@ -18,4 +18,4 @@ |
| 18 | 18 | ||
| 19 | /* long double is distinct from double, so there is nothing to | 19 | /* long double is distinct from double, so there is nothing to |
| 20 | define here. */ | 20 | define here. */ |
| 21 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 21 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/aarch64-linux-gnu/bits/mman.h created+31| ... | @@ -0,0 +1,31 @@ | ||
| 1 | /* Definitions for POSIX memory map interface. Linux/AArch64 version. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MMAN_H | ||
| 20 | # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* AArch64 specific definitions, should be in sync with | ||
| 24 | arch/arm64/include/uapi/asm/mman.h. */ | ||
| 25 | |||
| 26 | #define PROT_BTI	0x10 | ||
| 27 | |||
| 28 | #include <bits/mman-map-flags-generic.h> | ||
| 29 | |||
| 30 | /* Include generic Linux declarations. */ | ||
| 31 | #include <bits/mman-linux.h> | ||
| \ No newline at end of file | |||
lib/libc/include/aarch64-linux-gnu/bits/typesizes.h+29-9| ... | @@ -26,31 +26,45 @@ | ... | @@ -26,31 +26,45 @@ |
| 26 | 26 | ||
| 27 | /* See <bits/types.h> for the meaning of these macros. This file exists so | 27 | /* See <bits/types.h> for the meaning of these macros. This file exists so |
| 28 | that <bits/types.h> need not vary across different GNU platforms. */ | 28 | that <bits/types.h> need not vary across different GNU platforms. */ |
| 29 | #if __TIMESIZE == 64 && __WORDSIZE == 32 | ||
| 30 | /* These are the "new" y2038 types defined for architectures added after | ||
| 31 | the 5.1 kernel. */ | ||
| 32 | # define __INO_T_TYPE		__UQUAD_TYPE | ||
| 33 | # define __OFF_T_TYPE		__SQUAD_TYPE | ||
| 34 | # define __RLIM_T_TYPE		__UQUAD_TYPE | ||
| 35 | # define __BLKCNT_T_TYPE	__SQUAD_TYPE | ||
| 36 | # define __FSBLKCNT_T_TYPE	__UQUAD_TYPE | ||
| 37 | # define __FSFILCNT_T_TYPE	__UQUAD_TYPE | ||
| 38 | # define __TIME_T_TYPE		__SQUAD_TYPE | ||
| 39 | # define __SUSECONDS_T_TYPE	__SQUAD_TYPE | ||
| 40 | #else | ||
| 41 | # define __INO_T_TYPE		__ULONGWORD_TYPE | ||
| 42 | # define __OFF_T_TYPE		__SLONGWORD_TYPE | ||
| 43 | # define __RLIM_T_TYPE		__ULONGWORD_TYPE | ||
| 44 | # define __BLKCNT_T_TYPE	__SLONGWORD_TYPE | ||
| 45 | # define __FSBLKCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 46 | # define __FSFILCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 47 | # define __TIME_T_TYPE		__SLONGWORD_TYPE | ||
| 48 | # define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE | ||
| 49 | #endif | ||
| 29 | 50 | ||
| 30 | #define __DEV_T_TYPE		__UQUAD_TYPE | 51 | #define __DEV_T_TYPE		__UQUAD_TYPE |
| 31 | #define __UID_T_TYPE		__U32_TYPE | 52 | #define __UID_T_TYPE		__U32_TYPE |
| 32 | #define __GID_T_TYPE		__U32_TYPE | 53 | #define __GID_T_TYPE		__U32_TYPE |
| 33 | #define __INO_T_TYPE		__ULONGWORD_TYPE | ||
| 34 | #define __INO64_T_TYPE		__UQUAD_TYPE | 54 | #define __INO64_T_TYPE		__UQUAD_TYPE |
| 35 | #define __MODE_T_TYPE		__U32_TYPE | 55 | #define __MODE_T_TYPE		__U32_TYPE |
| 36 | #define __NLINK_T_TYPE		__U32_TYPE | 56 | #define __NLINK_T_TYPE		__U32_TYPE |
| 37 | #define __OFF_T_TYPE		__SLONGWORD_TYPE | ||
| 38 | #define __OFF64_T_TYPE		__SQUAD_TYPE | 57 | #define __OFF64_T_TYPE		__SQUAD_TYPE |
| 39 | #define __PID_T_TYPE		__S32_TYPE | 58 | #define __PID_T_TYPE		__S32_TYPE |
| 40 | #define __RLIM_T_TYPE		__ULONGWORD_TYPE | ||
| 41 | #define __RLIM64_T_TYPE		__UQUAD_TYPE | 59 | #define __RLIM64_T_TYPE		__UQUAD_TYPE |
| 42 | #define	__BLKCNT_T_TYPE		__SLONGWORD_TYPE | ||
| 43 | #define	__BLKCNT64_T_TYPE	__SQUAD_TYPE | 60 | #define	__BLKCNT64_T_TYPE	__SQUAD_TYPE |
| 44 | #define	__FSBLKCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 45 | #define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE | 61 | #define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE |
| 46 | #define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 47 | #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE | 62 | #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE |
| 48 | #define	__FSWORD_T_TYPE		__SWORD_TYPE | 63 | #define	__FSWORD_T_TYPE		__SWORD_TYPE |
| 49 | #define	__ID_T_TYPE		__U32_TYPE | 64 | #define	__ID_T_TYPE		__U32_TYPE |
| 50 | #define __CLOCK_T_TYPE		__SLONGWORD_TYPE | 65 | #define __CLOCK_T_TYPE		__SLONGWORD_TYPE |
| 51 | #define __TIME_T_TYPE		__SLONGWORD_TYPE | ||
| 52 | #define __USECONDS_T_TYPE	__U32_TYPE | 66 | #define __USECONDS_T_TYPE	__U32_TYPE |
| 53 | #define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE | 67 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE |
| 54 | #define __DADDR_T_TYPE		__S32_TYPE | 68 | #define __DADDR_T_TYPE		__S32_TYPE |
| 55 | #define __KEY_T_TYPE		__S32_TYPE | 69 | #define __KEY_T_TYPE		__S32_TYPE |
| 56 | #define __CLOCKID_T_TYPE	__S32_TYPE | 70 | #define __CLOCKID_T_TYPE	__S32_TYPE |
| ... | @@ -62,7 +76,7 @@ | ... | @@ -62,7 +76,7 @@ |
| 62 | #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE | 76 | #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE |
| 63 | #define __CPU_MASK_TYPE 	__ULONGWORD_TYPE | 77 | #define __CPU_MASK_TYPE 	__ULONGWORD_TYPE |
| 64 | 78 | ||
| 65 | #ifdef __LP64__ | 79 | #if defined __LP64__ || (__TIMESIZE == 64 && __WORDSIZE == 32) |
| 66 | /* Tell the libc code that off_t and off64_t are actually the same type | 80 | /* Tell the libc code that off_t and off64_t are actually the same type |
| 67 | for all ABI purposes, even if possibly expressed as different base types | 81 | for all ABI purposes, even if possibly expressed as different base types |
| 68 | for C type-checking purposes. */ | 82 | for C type-checking purposes. */ |
| ... | @@ -76,11 +90,17 @@ | ... | @@ -76,11 +90,17 @@ |
| 76 | 90 | ||
| 77 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | 91 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ |
| 78 | # define __STATFS_MATCHES_STATFS64 1 | 92 | # define __STATFS_MATCHES_STATFS64 1 |
| 93 | |||
| 94 | /* And for getitimer, setitimer and rusage */ | ||
| 95 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 (__WORDSIZE == 64) | ||
| 79 | #else | 96 | #else |
| 80 | # define __RLIM_T_MATCHES_RLIM64_T	0 | 97 | # define __RLIM_T_MATCHES_RLIM64_T	0 |
| 81 | 98 | ||
| 82 | # define __STATFS_MATCHES_STATFS64 0 | 99 | # define __STATFS_MATCHES_STATFS64 0 |
| 100 | |||
| 101 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 83 | #endif | 102 | #endif |
| 103 | |||
| 84 | /* Number of descriptors that can fit in an `fd_set'. */ | 104 | /* Number of descriptors that can fit in an `fd_set'. */ |
| 85 | #define	__FD_SETSIZE		1024 | 105 | #define	__FD_SETSIZE		1024 |
| 86 | 106 |
lib/libc/include/aarch64-linux-gnu/gnu/lib-names-lp64.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/aarch64-linux-gnu/gnu/stubs-lp64.h+1-4| ... | @@ -15,10 +15,7 @@ | ... | @@ -15,10 +15,7 @@ |
| 15 | #define __stub_chflags | 15 | #define __stub_chflags |
| 16 | #define __stub_fchflags | 16 | #define __stub_fchflags |
| 17 | #define __stub_gtty | 17 | #define __stub_gtty |
| 18 | #define __stub_lchmod | ||
| 19 | #define __stub_revoke | 18 | #define __stub_revoke |
| 20 | #define __stub_setlogin | 19 | #define __stub_setlogin |
| 21 | #define __stub_sigreturn | 20 | #define __stub_sigreturn |
| 22 | #define __stub_sstk | ||
| 23 | #define __stub_stty | ||
| 24 | #define __stub_sysctl | ||
| \ No newline at end of file | |||
| 21 | #define __stub_stty | ||
| \ No newline at end of file | |||
lib/libc/include/aarch64_be-linux-gnu/bits/floatn.h deleted-97| ... | @@ -1,97 +0,0 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on ldbl-128 platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/aarch64_be-linux-gnu/bits/hwcap.h+20-1| ... | @@ -53,4 +53,23 @@ | ... | @@ -53,4 +53,23 @@ |
| 53 | #define HWCAP_SSBS		(1 << 28) | 53 | #define HWCAP_SSBS		(1 << 28) |
| 54 | #define HWCAP_SB		(1 << 29) | 54 | #define HWCAP_SB		(1 << 29) |
| 55 | #define HWCAP_PACA		(1 << 30) | 55 | #define HWCAP_PACA		(1 << 30) |
| 56 | #define HWCAP_PACG		(1UL << 31) | ||
| \ No newline at end of file | |||
| 56 | #define HWCAP_PACG		(1UL << 31) | ||
| 57 | |||
| 58 | #define HWCAP2_DCPODP		(1 << 0) | ||
| 59 | #define HWCAP2_SVE2		(1 << 1) | ||
| 60 | #define HWCAP2_SVEAES		(1 << 2) | ||
| 61 | #define HWCAP2_SVEPMULL		(1 << 3) | ||
| 62 | #define HWCAP2_SVEBITPERM	(1 << 4) | ||
| 63 | #define HWCAP2_SVESHA3		(1 << 5) | ||
| 64 | #define HWCAP2_SVESM4		(1 << 6) | ||
| 65 | #define HWCAP2_FLAGM2		(1 << 7) | ||
| 66 | #define HWCAP2_FRINT		(1 << 8) | ||
| 67 | #define HWCAP2_SVEI8MM		(1 << 9) | ||
| 68 | #define HWCAP2_SVEF32MM		(1 << 10) | ||
| 69 | #define HWCAP2_SVEF64MM		(1 << 11) | ||
| 70 | #define HWCAP2_SVEBF16		(1 << 12) | ||
| 71 | #define HWCAP2_I8MM		(1 << 13) | ||
| 72 | #define HWCAP2_BF16		(1 << 14) | ||
| 73 | #define HWCAP2_DGH		(1 << 15) | ||
| 74 | #define HWCAP2_RNG		(1 << 16) | ||
| 75 | #define HWCAP2_BTI		(1 << 17) | ||
| \ No newline at end of file | |||
lib/libc/include/aarch64_be-linux-gnu/bits/long-double.h+1-1| ... | @@ -18,4 +18,4 @@ | ... | @@ -18,4 +18,4 @@ |
| 18 | 18 | ||
| 19 | /* long double is distinct from double, so there is nothing to | 19 | /* long double is distinct from double, so there is nothing to |
| 20 | define here. */ | 20 | define here. */ |
| 21 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 21 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/aarch64_be-linux-gnu/bits/mman.h created+31| ... | @@ -0,0 +1,31 @@ | ||
| 1 | /* Definitions for POSIX memory map interface. Linux/AArch64 version. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MMAN_H | ||
| 20 | # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* AArch64 specific definitions, should be in sync with | ||
| 24 | arch/arm64/include/uapi/asm/mman.h. */ | ||
| 25 | |||
| 26 | #define PROT_BTI	0x10 | ||
| 27 | |||
| 28 | #include <bits/mman-map-flags-generic.h> | ||
| 29 | |||
| 30 | /* Include generic Linux declarations. */ | ||
| 31 | #include <bits/mman-linux.h> | ||
| \ No newline at end of file | |||
lib/libc/include/aarch64_be-linux-gnu/bits/typesizes.h+29-9| ... | @@ -26,31 +26,45 @@ | ... | @@ -26,31 +26,45 @@ |
| 26 | 26 | ||
| 27 | /* See <bits/types.h> for the meaning of these macros. This file exists so | 27 | /* See <bits/types.h> for the meaning of these macros. This file exists so |
| 28 | that <bits/types.h> need not vary across different GNU platforms. */ | 28 | that <bits/types.h> need not vary across different GNU platforms. */ |
| 29 | #if __TIMESIZE == 64 && __WORDSIZE == 32 | ||
| 30 | /* These are the "new" y2038 types defined for architectures added after | ||
| 31 | the 5.1 kernel. */ | ||
| 32 | # define __INO_T_TYPE		__UQUAD_TYPE | ||
| 33 | # define __OFF_T_TYPE		__SQUAD_TYPE | ||
| 34 | # define __RLIM_T_TYPE		__UQUAD_TYPE | ||
| 35 | # define __BLKCNT_T_TYPE	__SQUAD_TYPE | ||
| 36 | # define __FSBLKCNT_T_TYPE	__UQUAD_TYPE | ||
| 37 | # define __FSFILCNT_T_TYPE	__UQUAD_TYPE | ||
| 38 | # define __TIME_T_TYPE		__SQUAD_TYPE | ||
| 39 | # define __SUSECONDS_T_TYPE	__SQUAD_TYPE | ||
| 40 | #else | ||
| 41 | # define __INO_T_TYPE		__ULONGWORD_TYPE | ||
| 42 | # define __OFF_T_TYPE		__SLONGWORD_TYPE | ||
| 43 | # define __RLIM_T_TYPE		__ULONGWORD_TYPE | ||
| 44 | # define __BLKCNT_T_TYPE	__SLONGWORD_TYPE | ||
| 45 | # define __FSBLKCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 46 | # define __FSFILCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 47 | # define __TIME_T_TYPE		__SLONGWORD_TYPE | ||
| 48 | # define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE | ||
| 49 | #endif | ||
| 29 | 50 | ||
| 30 | #define __DEV_T_TYPE		__UQUAD_TYPE | 51 | #define __DEV_T_TYPE		__UQUAD_TYPE |
| 31 | #define __UID_T_TYPE		__U32_TYPE | 52 | #define __UID_T_TYPE		__U32_TYPE |
| 32 | #define __GID_T_TYPE		__U32_TYPE | 53 | #define __GID_T_TYPE		__U32_TYPE |
| 33 | #define __INO_T_TYPE		__ULONGWORD_TYPE | ||
| 34 | #define __INO64_T_TYPE		__UQUAD_TYPE | 54 | #define __INO64_T_TYPE		__UQUAD_TYPE |
| 35 | #define __MODE_T_TYPE		__U32_TYPE | 55 | #define __MODE_T_TYPE		__U32_TYPE |
| 36 | #define __NLINK_T_TYPE		__U32_TYPE | 56 | #define __NLINK_T_TYPE		__U32_TYPE |
| 37 | #define __OFF_T_TYPE		__SLONGWORD_TYPE | ||
| 38 | #define __OFF64_T_TYPE		__SQUAD_TYPE | 57 | #define __OFF64_T_TYPE		__SQUAD_TYPE |
| 39 | #define __PID_T_TYPE		__S32_TYPE | 58 | #define __PID_T_TYPE		__S32_TYPE |
| 40 | #define __RLIM_T_TYPE		__ULONGWORD_TYPE | ||
| 41 | #define __RLIM64_T_TYPE		__UQUAD_TYPE | 59 | #define __RLIM64_T_TYPE		__UQUAD_TYPE |
| 42 | #define	__BLKCNT_T_TYPE		__SLONGWORD_TYPE | ||
| 43 | #define	__BLKCNT64_T_TYPE	__SQUAD_TYPE | 60 | #define	__BLKCNT64_T_TYPE	__SQUAD_TYPE |
| 44 | #define	__FSBLKCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 45 | #define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE | 61 | #define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE |
| 46 | #define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 47 | #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE | 62 | #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE |
| 48 | #define	__FSWORD_T_TYPE		__SWORD_TYPE | 63 | #define	__FSWORD_T_TYPE		__SWORD_TYPE |
| 49 | #define	__ID_T_TYPE		__U32_TYPE | 64 | #define	__ID_T_TYPE		__U32_TYPE |
| 50 | #define __CLOCK_T_TYPE		__SLONGWORD_TYPE | 65 | #define __CLOCK_T_TYPE		__SLONGWORD_TYPE |
| 51 | #define __TIME_T_TYPE		__SLONGWORD_TYPE | ||
| 52 | #define __USECONDS_T_TYPE	__U32_TYPE | 66 | #define __USECONDS_T_TYPE	__U32_TYPE |
| 53 | #define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE | 67 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE |
| 54 | #define __DADDR_T_TYPE		__S32_TYPE | 68 | #define __DADDR_T_TYPE		__S32_TYPE |
| 55 | #define __KEY_T_TYPE		__S32_TYPE | 69 | #define __KEY_T_TYPE		__S32_TYPE |
| 56 | #define __CLOCKID_T_TYPE	__S32_TYPE | 70 | #define __CLOCKID_T_TYPE	__S32_TYPE |
| ... | @@ -62,7 +76,7 @@ | ... | @@ -62,7 +76,7 @@ |
| 62 | #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE | 76 | #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE |
| 63 | #define __CPU_MASK_TYPE 	__ULONGWORD_TYPE | 77 | #define __CPU_MASK_TYPE 	__ULONGWORD_TYPE |
| 64 | 78 | ||
| 65 | #ifdef __LP64__ | 79 | #if defined __LP64__ || (__TIMESIZE == 64 && __WORDSIZE == 32) |
| 66 | /* Tell the libc code that off_t and off64_t are actually the same type | 80 | /* Tell the libc code that off_t and off64_t are actually the same type |
| 67 | for all ABI purposes, even if possibly expressed as different base types | 81 | for all ABI purposes, even if possibly expressed as different base types |
| 68 | for C type-checking purposes. */ | 82 | for C type-checking purposes. */ |
| ... | @@ -76,11 +90,17 @@ | ... | @@ -76,11 +90,17 @@ |
| 76 | 90 | ||
| 77 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | 91 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ |
| 78 | # define __STATFS_MATCHES_STATFS64 1 | 92 | # define __STATFS_MATCHES_STATFS64 1 |
| 93 | |||
| 94 | /* And for getitimer, setitimer and rusage */ | ||
| 95 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 (__WORDSIZE == 64) | ||
| 79 | #else | 96 | #else |
| 80 | # define __RLIM_T_MATCHES_RLIM64_T	0 | 97 | # define __RLIM_T_MATCHES_RLIM64_T	0 |
| 81 | 98 | ||
| 82 | # define __STATFS_MATCHES_STATFS64 0 | 99 | # define __STATFS_MATCHES_STATFS64 0 |
| 100 | |||
| 101 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 83 | #endif | 102 | #endif |
| 103 | |||
| 84 | /* Number of descriptors that can fit in an `fd_set'. */ | 104 | /* Number of descriptors that can fit in an `fd_set'. */ |
| 85 | #define	__FD_SETSIZE		1024 | 105 | #define	__FD_SETSIZE		1024 |
| 86 | 106 |
lib/libc/include/aarch64_be-linux-gnu/gnu/lib-names-lp64_be.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/aarch64_be-linux-gnu/gnu/stubs-lp64_be.h+1-4| ... | @@ -15,10 +15,7 @@ | ... | @@ -15,10 +15,7 @@ |
| 15 | #define __stub_chflags | 15 | #define __stub_chflags |
| 16 | #define __stub_fchflags | 16 | #define __stub_fchflags |
| 17 | #define __stub_gtty | 17 | #define __stub_gtty |
| 18 | #define __stub_lchmod | ||
| 19 | #define __stub_revoke | 18 | #define __stub_revoke |
| 20 | #define __stub_setlogin | 19 | #define __stub_setlogin |
| 21 | #define __stub_sigreturn | 20 | #define __stub_sigreturn |
| 22 | #define __stub_sstk | ||
| 23 | #define __stub_stty | ||
| 24 | #define __stub_sysctl | ||
| \ No newline at end of file | |||
| 21 | #define __stub_stty | ||
| \ No newline at end of file | |||
lib/libc/include/arm-linux-gnueabi/bits/long-double.h+14-1| ... | @@ -37,4 +37,17 @@ | ... | @@ -37,4 +37,17 @@ |
| 37 | #ifndef __NO_LONG_DOUBLE_MATH | 37 | #ifndef __NO_LONG_DOUBLE_MATH |
| 38 | # define __NO_LONG_DOUBLE_MATH	1 | 38 | # define __NO_LONG_DOUBLE_MATH	1 |
| 39 | #endif | 39 | #endif |
| 40 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 40 | |||
| 41 | /* The macro __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI is used to determine the | ||
| 42 | choice of the underlying ABI of long double. It will always assume | ||
| 43 | a constant value for each translation unit. | ||
| 44 | |||
| 45 | If the value is non-zero, any API which is parameterized by the long | ||
| 46 | double type (i.e the scanf/printf family of functions or the explicitly | ||
| 47 | parameterized math.h functions) will be redirected to a compatible | ||
| 48 | implementation using _Float128 ABI via symbols suffixed with ieee128. | ||
| 49 | |||
| 50 | The mechanism this macro uses to acquire may be a function | ||
| 51 | of architecture, or target specific options used to invoke the | ||
| 52 | compiler. */ | ||
| 53 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/arm-linux-gnueabi/bits/semaphore.h deleted-34| ... | @@ -1,34 +0,0 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library. If not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SEMAPHORE_H | ||
| 19 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | |||
| 23 | #define __SIZEOF_SEM_T	16 | ||
| 24 | |||
| 25 | |||
| 26 | /* Value returned if `sem_open' failed. */ | ||
| 27 | #define SEM_FAILED ((sem_t *) 0) | ||
| 28 | |||
| 29 | |||
| 30 | typedef union | ||
| 31 | { | ||
| 32 | char __size[__SIZEOF_SEM_T]; | ||
| 33 | long int __align; | ||
| 34 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/arm-linux-gnueabihf/bits/long-double.h+14-1| ... | @@ -37,4 +37,17 @@ | ... | @@ -37,4 +37,17 @@ |
| 37 | #ifndef __NO_LONG_DOUBLE_MATH | 37 | #ifndef __NO_LONG_DOUBLE_MATH |
| 38 | # define __NO_LONG_DOUBLE_MATH	1 | 38 | # define __NO_LONG_DOUBLE_MATH	1 |
| 39 | #endif | 39 | #endif |
| 40 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 40 | |||
| 41 | /* The macro __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI is used to determine the | ||
| 42 | choice of the underlying ABI of long double. It will always assume | ||
| 43 | a constant value for each translation unit. | ||
| 44 | |||
| 45 | If the value is non-zero, any API which is parameterized by the long | ||
| 46 | double type (i.e the scanf/printf family of functions or the explicitly | ||
| 47 | parameterized math.h functions) will be redirected to a compatible | ||
| 48 | implementation using _Float128 ABI via symbols suffixed with ieee128. | ||
| 49 | |||
| 50 | The mechanism this macro uses to acquire may be a function | ||
| 51 | of architecture, or target specific options used to invoke the | ||
| 52 | compiler. */ | ||
| 53 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/arm-linux-gnueabihf/bits/semaphore.h deleted-34| ... | @@ -1,34 +0,0 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library. If not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SEMAPHORE_H | ||
| 19 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | |||
| 23 | #define __SIZEOF_SEM_T	16 | ||
| 24 | |||
| 25 | |||
| 26 | /* Value returned if `sem_open' failed. */ | ||
| 27 | #define SEM_FAILED ((sem_t *) 0) | ||
| 28 | |||
| 29 | |||
| 30 | typedef union | ||
| 31 | { | ||
| 32 | char __size[__SIZEOF_SEM_T]; | ||
| 33 | long int __align; | ||
| 34 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/armeb-linux-gnueabi/bits/long-double.h+14-1| ... | @@ -37,4 +37,17 @@ | ... | @@ -37,4 +37,17 @@ |
| 37 | #ifndef __NO_LONG_DOUBLE_MATH | 37 | #ifndef __NO_LONG_DOUBLE_MATH |
| 38 | # define __NO_LONG_DOUBLE_MATH	1 | 38 | # define __NO_LONG_DOUBLE_MATH	1 |
| 39 | #endif | 39 | #endif |
| 40 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 40 | |||
| 41 | /* The macro __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI is used to determine the | ||
| 42 | choice of the underlying ABI of long double. It will always assume | ||
| 43 | a constant value for each translation unit. | ||
| 44 | |||
| 45 | If the value is non-zero, any API which is parameterized by the long | ||
| 46 | double type (i.e the scanf/printf family of functions or the explicitly | ||
| 47 | parameterized math.h functions) will be redirected to a compatible | ||
| 48 | implementation using _Float128 ABI via symbols suffixed with ieee128. | ||
| 49 | |||
| 50 | The mechanism this macro uses to acquire may be a function | ||
| 51 | of architecture, or target specific options used to invoke the | ||
| 52 | compiler. */ | ||
| 53 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/armeb-linux-gnueabi/bits/semaphore.h deleted-34| ... | @@ -1,34 +0,0 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library. If not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SEMAPHORE_H | ||
| 19 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | |||
| 23 | #define __SIZEOF_SEM_T	16 | ||
| 24 | |||
| 25 | |||
| 26 | /* Value returned if `sem_open' failed. */ | ||
| 27 | #define SEM_FAILED ((sem_t *) 0) | ||
| 28 | |||
| 29 | |||
| 30 | typedef union | ||
| 31 | { | ||
| 32 | char __size[__SIZEOF_SEM_T]; | ||
| 33 | long int __align; | ||
| 34 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/armeb-linux-gnueabihf/bits/long-double.h+14-1| ... | @@ -37,4 +37,17 @@ | ... | @@ -37,4 +37,17 @@ |
| 37 | #ifndef __NO_LONG_DOUBLE_MATH | 37 | #ifndef __NO_LONG_DOUBLE_MATH |
| 38 | # define __NO_LONG_DOUBLE_MATH	1 | 38 | # define __NO_LONG_DOUBLE_MATH	1 |
| 39 | #endif | 39 | #endif |
| 40 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 40 | |||
| 41 | /* The macro __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI is used to determine the | ||
| 42 | choice of the underlying ABI of long double. It will always assume | ||
| 43 | a constant value for each translation unit. | ||
| 44 | |||
| 45 | If the value is non-zero, any API which is parameterized by the long | ||
| 46 | double type (i.e the scanf/printf family of functions or the explicitly | ||
| 47 | parameterized math.h functions) will be redirected to a compatible | ||
| 48 | implementation using _Float128 ABI via symbols suffixed with ieee128. | ||
| 49 | |||
| 50 | The mechanism this macro uses to acquire may be a function | ||
| 51 | of architecture, or target specific options used to invoke the | ||
| 52 | compiler. */ | ||
| 53 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/armeb-linux-gnueabihf/bits/semaphore.h deleted-34| ... | @@ -1,34 +0,0 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library. If not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SEMAPHORE_H | ||
| 19 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | |||
| 23 | #define __SIZEOF_SEM_T	16 | ||
| 24 | |||
| 25 | |||
| 26 | /* Value returned if `sem_open' failed. */ | ||
| 27 | #define SEM_FAILED ((sem_t *) 0) | ||
| 28 | |||
| 29 | |||
| 30 | typedef union | ||
| 31 | { | ||
| 32 | char __size[__SIZEOF_SEM_T]; | ||
| 33 | long int __align; | ||
| 34 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/argp.h+2-1| ... | @@ -554,7 +554,8 @@ __NTH (__option_is_end (const struct argp_option *__opt)) | ... | @@ -554,7 +554,8 @@ __NTH (__option_is_end (const struct argp_option *__opt)) |
| 554 | # endif | 554 | # endif |
| 555 | #endif /* Use extern inlines. */ | 555 | #endif /* Use extern inlines. */ |
| 556 | 556 | ||
| 557 | #ifdef __LDBL_COMPAT | 557 | #include <bits/floatn.h> |
| 558 | #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 558 | # include <bits/argp-ldbl.h> | 559 | # include <bits/argp-ldbl.h> |
| 559 | #endif | 560 | #endif |
| 560 | 561 |
lib/libc/include/generic-glibc/bits/fcntl-linux.h+2-1| ... | @@ -290,7 +290,8 @@ struct f_owner_ex | ... | @@ -290,7 +290,8 @@ struct f_owner_ex |
| 290 | 290 | ||
| 291 | #ifdef __USE_GNU | 291 | #ifdef __USE_GNU |
| 292 | /* Hint values for F_{GET,SET}_RW_HINT. */ | 292 | /* Hint values for F_{GET,SET}_RW_HINT. */ |
| 293 | # define RWF_WRITE_LIFE_NOT_SET	0 | 293 | # define RWH_WRITE_LIFE_NOT_SET	0 |
| 294 | # define RWF_WRITE_LIFE_NOT_SET	RWH_WRITE_LIFE_NOT_SET | ||
| 294 | # define RWH_WRITE_LIFE_NONE	1 | 295 | # define RWH_WRITE_LIFE_NONE	1 |
| 295 | # define RWH_WRITE_LIFE_SHORT	2 | 296 | # define RWH_WRITE_LIFE_SHORT	2 |
| 296 | # define RWH_WRITE_LIFE_MEDIUM	3 | 297 | # define RWH_WRITE_LIFE_MEDIUM	3 |
lib/libc/include/generic-glibc/bits/fenvinline.h deleted-8| ... | @@ -1,8 +0,0 @@ | ||
| 1 | /* This file provides inline versions of floating-pint environment | ||
| 2 | handling functions. If there were any. */ | ||
| 3 | |||
| 4 | #ifndef __NO_MATH_INLINES | ||
| 5 | |||
| 6 | /* Here is where the code would go. */ | ||
| 7 | |||
| 8 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/floatn.h+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | /* Macros to control TS 18661-3 glibc features on MIPS platforms. | 1 | /* Macros to control TS 18661-3 glibc features on ldbl-128 platforms. |
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. |
| 3 | This file is part of the GNU C Library. | 3 | This file is part of the GNU C Library. |
| 4 | 4 |
lib/libc/include/generic-glibc/bits/long-double.h+1-1| ... | @@ -21,4 +21,4 @@ | ... | @@ -21,4 +21,4 @@ |
| 21 | #if !defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32 | 21 | #if !defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32 |
| 22 | # define __NO_LONG_DOUBLE_MATH	1 | 22 | # define __NO_LONG_DOUBLE_MATH	1 |
| 23 | #endif | 23 | #endif |
| 24 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 24 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/mathcalls-helper-functions.h+10-8| ... | @@ -16,28 +16,30 @@ | ... | @@ -16,28 +16,30 @@ |
| 16 | License along with the GNU C Library; if not, see | 16 | License along with the GNU C Library; if not, see |
| 17 | <https://www.gnu.org/licenses/>. */ | 17 | <https://www.gnu.org/licenses/>. */ |
| 18 | 18 | ||
| 19 | |||
| 20 | /* Classify given number. */ | 19 | /* Classify given number. */ |
| 21 | __MATHDECL_1 (int, __fpclassify,, (_Mdouble_ __value)) | 20 | __MATHDECL_ALIAS (int, __fpclassify,, (_Mdouble_ __value), fpclassify) |
| 22 | __attribute__ ((__const__)); | 21 | __attribute__ ((__const__)); |
| 23 | 22 | ||
| 24 | /* Test for negative number. */ | 23 | /* Test for negative number. */ |
| 25 | __MATHDECL_1 (int, __signbit,, (_Mdouble_ __value)) | 24 | __MATHDECL_ALIAS (int, __signbit,, (_Mdouble_ __value), signbit) |
| 26 | __attribute__ ((__const__)); | 25 | __attribute__ ((__const__)); |
| 27 | 26 | ||
| 28 | /* Return 0 if VALUE is finite or NaN, +1 if it | 27 | /* Return 0 if VALUE is finite or NaN, +1 if it |
| 29 | is +Infinity, -1 if it is -Infinity. */ | 28 | is +Infinity, -1 if it is -Infinity. */ |
| 30 | __MATHDECL_1 (int, __isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); | 29 | __MATHDECL_ALIAS (int, __isinf,, (_Mdouble_ __value), isinf) |
| 30 | __attribute__ ((__const__)); | ||
| 31 | 31 | ||
| 32 | /* Return nonzero if VALUE is finite and not NaN. Used by isfinite macro. */ | 32 | /* Return nonzero if VALUE is finite and not NaN. Used by isfinite macro. */ |
| 33 | __MATHDECL_1 (int, __finite,, (_Mdouble_ __value)) __attribute__ ((__const__)); | 33 | __MATHDECL_ALIAS (int, __finite,, (_Mdouble_ __value), finite) |
| 34 | __attribute__ ((__const__)); | ||
| 34 | 35 | ||
| 35 | /* Return nonzero if VALUE is not a number. */ | 36 | /* Return nonzero if VALUE is not a number. */ |
| 36 | __MATHDECL_1 (int, __isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); | 37 | __MATHDECL_ALIAS (int, __isnan,, (_Mdouble_ __value), isnan) |
| 38 | __attribute__ ((__const__)); | ||
| 37 | 39 | ||
| 38 | /* Test equality. */ | 40 | /* Test equality. */ |
| 39 | __MATHDECL_1 (int, __iseqsig,, (_Mdouble_ __x, _Mdouble_ __y)); | 41 | __MATHDECL_ALIAS (int, __iseqsig,, (_Mdouble_ __x, _Mdouble_ __y), iseqsig); |
| 40 | 42 | ||
| 41 | /* Test for signaling NaN. */ | 43 | /* Test for signaling NaN. */ |
| 42 | __MATHDECL_1 (int, __issignaling,, (_Mdouble_ __value)) | 44 | __MATHDECL_ALIAS (int, __issignaling,, (_Mdouble_ __value), issignaling) |
| 43 | __attribute__ ((__const__)); | 45 | __attribute__ ((__const__)); |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/mathcalls.h+6-3| ... | @@ -174,12 +174,14 @@ __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); | ... | @@ -174,12 +174,14 @@ __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); |
| 174 | && !__MATH_DECLARING_FLOATN | 174 | && !__MATH_DECLARING_FLOATN |
| 175 | /* Return 0 if VALUE is finite or NaN, +1 if it | 175 | /* Return 0 if VALUE is finite or NaN, +1 if it |
| 176 | is +Infinity, -1 if it is -Infinity. */ | 176 | is +Infinity, -1 if it is -Infinity. */ |
| 177 | __MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); | 177 | __MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf) |
| 178 | __attribute__ ((__const__)); | ||
| 178 | # endif | 179 | # endif |
| 179 | 180 | ||
| 180 | # if !__MATH_DECLARING_FLOATN | 181 | # if !__MATH_DECLARING_FLOATN |
| 181 | /* Return nonzero if VALUE is finite and not NaN. */ | 182 | /* Return nonzero if VALUE is finite and not NaN. */ |
| 182 | __MATHDECL_1 (int,finite,, (_Mdouble_ __value)) __attribute__ ((__const__)); | 183 | __MATHDECL_ALIAS (int,finite,, (_Mdouble_ __value), finite) |
| 184 | __attribute__ ((__const__)); | ||
| 183 | 185 | ||
| 184 | /* Return the remainder of X/Y. */ | 186 | /* Return the remainder of X/Y. */ |
| 185 | __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); | 187 | __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); |
| ... | @@ -208,7 +210,8 @@ __MATHCALL (nan,, (const char *__tagb)); | ... | @@ -208,7 +210,8 @@ __MATHCALL (nan,, (const char *__tagb)); |
| 208 | || __MATH_DECLARING_DOUBLE == 0)) /* isnanf or isnanl don't. */ \ | 210 | || __MATH_DECLARING_DOUBLE == 0)) /* isnanf or isnanl don't. */ \ |
| 209 | && !__MATH_DECLARING_FLOATN | 211 | && !__MATH_DECLARING_FLOATN |
| 210 | /* Return nonzero if VALUE is not a number. */ | 212 | /* Return nonzero if VALUE is not a number. */ |
| 211 | __MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); | 213 | __MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan) |
| 214 | __attribute__ ((__const__)); | ||
| 212 | # endif | 215 | # endif |
| 213 | #endif | 216 | #endif |
| 214 | 217 |
lib/libc/include/generic-glibc/bits/mathinline.h deleted-12| ... | @@ -1,12 +0,0 @@ | ||
| 1 | /* This file should provide inline versions of math functions. | ||
| 2 | |||
| 3 | Surround GCC-specific parts with #ifdef __GNUC__, and use `__extern_inline'. | ||
| 4 | |||
| 5 | This file should define __MATH_INLINES if functions are actually defined as | ||
| 6 | inlines. */ | ||
| 7 | |||
| 8 | #if !defined __NO_MATH_INLINES && defined __OPTIMIZE__ | ||
| 9 | |||
| 10 | /* Here goes the real code. */ | ||
| 11 | |||
| 12 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/mman-shared.h+1| ... | @@ -24,6 +24,7 @@ | ... | @@ -24,6 +24,7 @@ |
| 24 | /* Flags for mremap. */ | 24 | /* Flags for mremap. */ |
| 25 | # define MREMAP_MAYMOVE	1 | 25 | # define MREMAP_MAYMOVE	1 |
| 26 | # define MREMAP_FIXED	2 | 26 | # define MREMAP_FIXED	2 |
| 27 | # define MREMAP_DONTUNMAP 4 | ||
| 27 | 28 | ||
| 28 | /* Flags for memfd_create. */ | 29 | /* Flags for memfd_create. */ |
| 29 | # ifndef MFD_CLOEXEC | 30 | # ifndef MFD_CLOEXEC |
lib/libc/include/generic-glibc/bits/msq-pad.h deleted-31| ... | @@ -1,31 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. Generic version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | /* On most architectures, padding goes after time fields for 32-bit | ||
| 26 | systems and is omitted for 64-bit systems. Some architectures pad | ||
| 27 | before time fields instead, or omit padding despite being | ||
| 28 | 32-bit. */ | ||
| 29 | |||
| 30 | #define __MSQ_PAD_AFTER_TIME (__TIMESIZE == 32) | ||
| 31 | #define __MSQ_PAD_BEFORE_TIME 0 | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/msq.h+6-33| ... | @@ -20,7 +20,12 @@ | ... | @@ -20,7 +20,12 @@ |
| 20 | #endif | 20 | #endif |
| 21 | 21 | ||
| 22 | #include <bits/types.h> | 22 | #include <bits/types.h> |
| 23 | #include <bits/msq-pad.h> | 23 | |
| 24 | /* Types used in the MSQID_DS structure definition. */ | ||
| 25 | typedef __syscall_ulong_t msgqnum_t; | ||
| 26 | typedef __syscall_ulong_t msglen_t; | ||
| 27 | |||
| 28 | #include <bits/types/struct_msqid_ds.h> | ||
| 24 | 29 | ||
| 25 | /* Define options for message queue functions. */ | 30 | /* Define options for message queue functions. */ |
| 26 | #define MSG_NOERROR	010000	/* no error if message is too big */ | 31 | #define MSG_NOERROR	010000	/* no error if message is too big */ |
| ... | @@ -29,38 +34,6 @@ | ... | @@ -29,38 +34,6 @@ |
| 29 | # define MSG_COPY	040000	/* copy (not remove) all queue messages */ | 34 | # define MSG_COPY	040000	/* copy (not remove) all queue messages */ |
| 30 | #endif | 35 | #endif |
| 31 | 36 | ||
| 32 | /* Types used in the structure definition. */ | ||
| 33 | typedef __syscall_ulong_t msgqnum_t; | ||
| 34 | typedef __syscall_ulong_t msglen_t; | ||
| 35 | |||
| 36 | #if __MSQ_PAD_BEFORE_TIME | ||
| 37 | # define __MSQ_PAD_TIME(NAME, RES)				\ | ||
| 38 | unsigned long int __glibc_reserved ## RES; __time_t NAME | ||
| 39 | #elif __MSQ_PAD_AFTER_TIME | ||
| 40 | # define __MSQ_PAD_TIME(NAME, RES)				\ | ||
| 41 | __time_t NAME; unsigned long int __glibc_reserved ## RES | ||
| 42 | #else | ||
| 43 | # define __MSQ_PAD_TIME(NAME, RES)		\ | ||
| 44 | __time_t NAME | ||
| 45 | #endif | ||
| 46 | |||
| 47 | /* Structure of record for one message inside the kernel. | ||
| 48 | The type `struct msg' is opaque. */ | ||
| 49 | struct msqid_ds | ||
| 50 | { | ||
| 51 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 52 | __MSQ_PAD_TIME (msg_stime, 1);	/* time of last msgsnd command */ | ||
| 53 | __MSQ_PAD_TIME (msg_rtime, 2);	/* time of last msgrcv command */ | ||
| 54 | __MSQ_PAD_TIME (msg_ctime, 3);	/* time of last change */ | ||
| 55 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 56 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 57 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 58 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 59 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 60 | __syscall_ulong_t __glibc_reserved4; | ||
| 61 | __syscall_ulong_t __glibc_reserved5; | ||
| 62 | }; | ||
| 63 | |||
| 64 | #ifdef __USE_MISC | 37 | #ifdef __USE_MISC |
| 65 | 38 | ||
| 66 | # define msg_cbytes	__msg_cbytes | 39 | # define msg_cbytes	__msg_cbytes |
lib/libc/include/generic-glibc/bits/resource.h+1-1| ... | @@ -98,7 +98,7 @@ enum __rlimit_resource | ... | @@ -98,7 +98,7 @@ enum __rlimit_resource |
| 98 | __RLIMIT_RTPRIO = 14, | 98 | __RLIMIT_RTPRIO = 14, |
| 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO | 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO |
| 100 | 100 | ||
| 101 | /* Maximum CPU time in µs that a process scheduled under a real-time | 101 | /* Maximum CPU time in microseconds that a process scheduled under a real-time |
| 102 | scheduling policy may consume without making a blocking system | 102 | scheduling policy may consume without making a blocking system |
| 103 | call before being forcibly descheduled. */ | 103 | call before being forcibly descheduled. */ |
| 104 | __RLIMIT_RTTIME = 15, | 104 | __RLIMIT_RTTIME = 15, |
lib/libc/include/generic-glibc/bits/sem-pad.h deleted-33| ... | @@ -1,33 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. Generic version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | /* On most architectures, padding goes after time fields for 32-bit | ||
| 26 | systems and is omitted for 64-bit systems. Some architectures pad | ||
| 27 | before time fields instead, or omit padding despite being 32-bit, | ||
| 28 | or include it despite being 64-bit. This must match the layout | ||
| 29 | used for struct semid64_ds in <asm/sembuf.h>, as glibc does not do | ||
| 30 | layout conversions for this structure. */ | ||
| 31 | |||
| 32 | #define __SEM_PAD_AFTER_TIME (__TIMESIZE == 32) | ||
| 33 | #define __SEM_PAD_BEFORE_TIME 0 | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/sem.h+2-24| ... | @@ -20,7 +20,8 @@ | ... | @@ -20,7 +20,8 @@ |
| 20 | #endif | 20 | #endif |
| 21 | 21 | ||
| 22 | #include <sys/types.h> | 22 | #include <sys/types.h> |
| 23 | #include <bits/sem-pad.h> | 23 | #include <bits/timesize.h> |
| 24 | #include <bits/types/struct_semid_ds.h> | ||
| 24 | 25 | ||
| 25 | /* Flags for `semop'. */ | 26 | /* Flags for `semop'. */ |
| 26 | #define SEM_UNDO	0x1000		/* undo the operation on exit */ | 27 | #define SEM_UNDO	0x1000		/* undo the operation on exit */ |
| ... | @@ -34,29 +35,6 @@ | ... | @@ -34,29 +35,6 @@ |
| 34 | #define SETVAL		16		/* set semval */ | 35 | #define SETVAL		16		/* set semval */ |
| 35 | #define SETALL		17		/* set all semval's */ | 36 | #define SETALL		17		/* set all semval's */ |
| 36 | 37 | ||
| 37 | |||
| 38 | #if __SEM_PAD_BEFORE_TIME | ||
| 39 | # define __SEM_PAD_TIME(NAME, RES)				\ | ||
| 40 | __syscall_ulong_t __glibc_reserved ## RES; __time_t NAME | ||
| 41 | #elif __SEM_PAD_AFTER_TIME | ||
| 42 | # define __SEM_PAD_TIME(NAME, RES)				\ | ||
| 43 | __time_t NAME; __syscall_ulong_t __glibc_reserved ## RES | ||
| 44 | #else | ||
| 45 | # define __SEM_PAD_TIME(NAME, RES)		\ | ||
| 46 | __time_t NAME | ||
| 47 | #endif | ||
| 48 | |||
| 49 | /* Data structure describing a set of semaphores. */ | ||
| 50 | struct semid_ds | ||
| 51 | { | ||
| 52 | struct ipc_perm sem_perm;		/* operation permission struct */ | ||
| 53 | __SEM_PAD_TIME (sem_otime, 1);	/* last semop() time */ | ||
| 54 | __SEM_PAD_TIME (sem_ctime, 2);	/* last time changed by semctl() */ | ||
| 55 | __syscall_ulong_t sem_nsems;		/* number of semaphores in set */ | ||
| 56 | __syscall_ulong_t __glibc_reserved3; | ||
| 57 | __syscall_ulong_t __glibc_reserved4; | ||
| 58 | }; | ||
| 59 | |||
| 60 | /* The user should define a union like the following to use it for arguments | 38 | /* The user should define a union like the following to use it for arguments |
| 61 | for `semctl'. | 39 | for `semctl'. |
| 62 | 40 |
lib/libc/include/generic-glibc/bits/semaphore.h+6-3| ... | @@ -1,4 +1,5 @@ | ... | @@ -1,4 +1,5 @@ |
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | 1 | /* Generic POSIX semaphore type layout |
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | 3 | This file is part of the GNU C Library. |
| 3 | 4 | ||
| 4 | The GNU C Library is free software; you can redistribute it and/or | 5 | The GNU C Library is free software; you can redistribute it and/or |
| ... | @@ -12,14 +13,16 @@ | ... | @@ -12,14 +13,16 @@ |
| 12 | Lesser General Public License for more details. | 13 | Lesser General Public License for more details. |
| 13 | 14 | ||
| 14 | You should have received a copy of the GNU Lesser General Public | 15 | You should have received a copy of the GNU Lesser General Public |
| 15 | License along with the GNU C Library. If not, see | 16 | License along with the GNU C Library; if not, see |
| 16 | <https://www.gnu.org/licenses/>. */ | 17 | <https://www.gnu.org/licenses/>. */ |
| 17 | 18 | ||
| 18 | #ifndef _SEMAPHORE_H | 19 | #ifndef _SEMAPHORE_H |
| 19 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | 20 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." |
| 20 | #endif | 21 | #endif |
| 21 | 22 | ||
| 22 | #if _MIPS_SIM == _ABI64 | 23 | #include <bits/wordsize.h> |
| 24 | |||
| 25 | #if __WORDSIZE == 64 | ||
| 23 | # define __SIZEOF_SEM_T	32 | 26 | # define __SIZEOF_SEM_T	32 |
| 24 | #else | 27 | #else |
| 25 | # define __SIZEOF_SEM_T	16 | 28 | # define __SIZEOF_SEM_T	16 |
lib/libc/include/generic-glibc/bits/shm-pad.h deleted-37| ... | @@ -1,37 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. Generic version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | /* On most architectures, padding goes after time fields for 32-bit | ||
| 26 | systems and is omitted for 64-bit systems. Some architectures pad | ||
| 27 | before time fields instead, or omit padding despite being 32-bit, | ||
| 28 | or include it despite being 64-bit. Furthermore, some | ||
| 29 | architectures place shm_segsz after the time fields rather than | ||
| 30 | before them, with or without padding there. This must match the | ||
| 31 | layout used for struct shmid64_ds in <asm/shmbuf.h>, as glibc does | ||
| 32 | not do layout conversions for this structure. */ | ||
| 33 | |||
| 34 | #define __SHM_PAD_AFTER_TIME (__TIMESIZE == 32) | ||
| 35 | #define __SHM_PAD_BEFORE_TIME 0 | ||
| 36 | #define __SHM_SEGSZ_AFTER_TIME 0 | ||
| 37 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0 | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/shm.h+1-34| ... | @@ -22,7 +22,6 @@ | ... | @@ -22,7 +22,6 @@ |
| 22 | #include <bits/types.h> | 22 | #include <bits/types.h> |
| 23 | #include <bits/wordsize.h> | 23 | #include <bits/wordsize.h> |
| 24 | #include <bits/shmlba.h> | 24 | #include <bits/shmlba.h> |
| 25 | #include <bits/shm-pad.h> | ||
| 26 | 25 | ||
| 27 | /* Permission flag for shmget. */ | 26 | /* Permission flag for shmget. */ |
| 28 | #define SHM_R		0400		/* or S_IRUGO from <linux/stat.h> */ | 27 | #define SHM_R		0400		/* or S_IRUGO from <linux/stat.h> */ |
| ... | @@ -43,39 +42,7 @@ __BEGIN_DECLS | ... | @@ -43,39 +42,7 @@ __BEGIN_DECLS |
| 43 | /* Type to count number of attaches. */ | 42 | /* Type to count number of attaches. */ |
| 44 | typedef __syscall_ulong_t shmatt_t; | 43 | typedef __syscall_ulong_t shmatt_t; |
| 45 | 44 | ||
| 46 | #if __SHM_PAD_BEFORE_TIME | 45 | #include <bits/types/struct_shmid_ds.h> |
| 47 | # define __SHM_PAD_TIME(NAME, RES)				\ | ||
| 48 | unsigned long int __glibc_reserved ## RES; __time_t NAME | ||
| 49 | #elif __SHM_PAD_AFTER_TIME | ||
| 50 | # define __SHM_PAD_TIME(NAME, RES)				\ | ||
| 51 | __time_t NAME; unsigned long int __glibc_reserved ## RES | ||
| 52 | #else | ||
| 53 | # define __SHM_PAD_TIME(NAME, RES)		\ | ||
| 54 | __time_t NAME | ||
| 55 | #endif | ||
| 56 | |||
| 57 | /* Data structure describing a shared memory segment. */ | ||
| 58 | struct shmid_ds | ||
| 59 | { | ||
| 60 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 61 | #if !__SHM_SEGSZ_AFTER_TIME | ||
| 62 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 63 | #endif | ||
| 64 | __SHM_PAD_TIME (shm_atime, 1);	/* time of last shmat() */ | ||
| 65 | __SHM_PAD_TIME (shm_dtime, 2);	/* time of last shmdt() */ | ||
| 66 | __SHM_PAD_TIME (shm_ctime, 3);	/* time of last change by shmctl() */ | ||
| 67 | #if __SHM_PAD_BETWEEN_TIME_AND_SEGSZ | ||
| 68 | unsigned long int __glibc_reserved4; | ||
| 69 | #endif | ||
| 70 | #if __SHM_SEGSZ_AFTER_TIME | ||
| 71 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 72 | #endif | ||
| 73 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 74 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 75 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 76 | __syscall_ulong_t __glibc_reserved5; | ||
| 77 | __syscall_ulong_t __glibc_reserved6; | ||
| 78 | }; | ||
| 79 | 46 | ||
| 80 | #ifdef __USE_MISC | 47 | #ifdef __USE_MISC |
| 81 | 48 |
lib/libc/include/generic-glibc/bits/signum-arch.h created+64| ... | @@ -0,0 +1,64 @@ | ||
| 1 | /* Signal number definitions. Linux version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_ARCH_H | ||
| 20 | #define _BITS_SIGNUM_ARCH_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum-arch.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | /* Adjustments and additions to the signal number constants for | ||
| 27 | most Linux systems. */ | ||
| 28 | |||
| 29 | #define SIGSTKFLT	16	/* Stack fault (obsolete). */ | ||
| 30 | #define SIGPWR		30	/* Power failure imminent. */ | ||
| 31 | |||
| 32 | /* Historical signals specified by POSIX. */ | ||
| 33 | #define SIGBUS		 7	/* Bus error. */ | ||
| 34 | #define SIGSYS		31	/* Bad system call. */ | ||
| 35 | |||
| 36 | /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ | ||
| 37 | #define SIGURG		23	/* Urgent data is available at a socket. */ | ||
| 38 | #define SIGSTOP		19	/* Stop, unblockable. */ | ||
| 39 | #define SIGTSTP		20	/* Keyboard stop. */ | ||
| 40 | #define SIGCONT		18	/* Continue. */ | ||
| 41 | #define SIGCHLD		17	/* Child terminated or stopped. */ | ||
| 42 | #define SIGTTIN		21	/* Background read from control terminal. */ | ||
| 43 | #define SIGTTOU		22	/* Background write to control terminal. */ | ||
| 44 | #define SIGPOLL		29	/* Pollable event occurred (System V). */ | ||
| 45 | #define SIGXFSZ		25	/* File size limit exceeded. */ | ||
| 46 | #define SIGXCPU		24	/* CPU time limit exceeded. */ | ||
| 47 | #define SIGVTALRM	26	/* Virtual timer expired. */ | ||
| 48 | #define SIGPROF		27	/* Profiling timer expired. */ | ||
| 49 | #define SIGUSR1		10	/* User-defined signal 1. */ | ||
| 50 | #define SIGUSR2		12	/* User-defined signal 2. */ | ||
| 51 | |||
| 52 | /* Nonstandard signals found in all modern POSIX systems | ||
| 53 | (including both BSD and Linux). */ | ||
| 54 | #define SIGWINCH	28	/* Window size change (4.3 BSD, Sun). */ | ||
| 55 | |||
| 56 | /* Archaic names for compatibility. */ | ||
| 57 | #define SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD). */ | ||
| 58 | #define SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11. */ | ||
| 59 | #define SIGCLD		SIGCHLD	/* Old System V name */ | ||
| 60 | |||
| 61 | #define __SIGRTMIN	32 | ||
| 62 | #define __SIGRTMAX	64 | ||
| 63 | |||
| 64 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/signum-generic.h+3-24| ... | @@ -57,31 +57,9 @@ | ... | @@ -57,31 +57,9 @@ |
| 57 | #define	SIGQUIT		3	/* Quit. */ | 57 | #define	SIGQUIT		3	/* Quit. */ |
| 58 | #define	SIGTRAP		5	/* Trace/breakpoint trap. */ | 58 | #define	SIGTRAP		5	/* Trace/breakpoint trap. */ |
| 59 | #define	SIGKILL		9	/* Killed. */ | 59 | #define	SIGKILL		9	/* Killed. */ |
| 60 | #define SIGBUS		10	/* Bus error. */ | ||
| 61 | #define	SIGSYS		12	/* Bad system call. */ | ||
| 62 | #define	SIGPIPE		13	/* Broken pipe. */ | 60 | #define	SIGPIPE		13	/* Broken pipe. */ |
| 63 | #define	SIGALRM		14	/* Alarm clock. */ | 61 | #define	SIGALRM		14	/* Alarm clock. */ |
| 64 | 62 | ||
| 65 | /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ | ||
| 66 | #define	SIGURG		16	/* Urgent data is available at a socket. */ | ||
| 67 | #define	SIGSTOP		17	/* Stop, unblockable. */ | ||
| 68 | #define	SIGTSTP		18	/* Keyboard stop. */ | ||
| 69 | #define	SIGCONT		19	/* Continue. */ | ||
| 70 | #define	SIGCHLD		20	/* Child terminated or stopped. */ | ||
| 71 | #define	SIGTTIN		21	/* Background read from control terminal. */ | ||
| 72 | #define	SIGTTOU		22	/* Background write to control terminal. */ | ||
| 73 | #define	SIGPOLL		23	/* Pollable event occurred (System V). */ | ||
| 74 | #define	SIGXCPU		24	/* CPU time limit exceeded. */ | ||
| 75 | #define	SIGXFSZ		25	/* File size limit exceeded. */ | ||
| 76 | #define	SIGVTALRM	26	/* Virtual timer expired. */ | ||
| 77 | #define	SIGPROF		27	/* Profiling timer expired. */ | ||
| 78 | #define	SIGUSR1		30	/* User-defined signal 1. */ | ||
| 79 | #define	SIGUSR2		31	/* User-defined signal 2. */ | ||
| 80 | |||
| 81 | /* Nonstandard signals found in all modern POSIX systems | ||
| 82 | (including both BSD and Linux). */ | ||
| 83 | #define	SIGWINCH	28	/* Window size change (4.3 BSD, Sun). */ | ||
| 84 | |||
| 85 | /* Archaic names for compatibility. */ | 63 | /* Archaic names for compatibility. */ |
| 86 | #define	SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD). */ | 64 | #define	SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD). */ |
| 87 | #define	SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11. */ | 65 | #define	SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11. */ |
| ... | @@ -93,8 +71,9 @@ | ... | @@ -93,8 +71,9 @@ |
| 93 | but some real-time signals may be used internally by glibc. Do not | 71 | but some real-time signals may be used internally by glibc. Do not |
| 94 | use these constants in application code; use SIGRTMIN and SIGRTMAX | 72 | use these constants in application code; use SIGRTMIN and SIGRTMAX |
| 95 | (defined in signal.h) instead. */ | 73 | (defined in signal.h) instead. */ |
| 96 | #define __SIGRTMIN	32 | 74 | |
| 97 | #define __SIGRTMAX	__SIGRTMIN | 75 | /* Include system specific bits. */ |
| 76 | #include <bits/signum-arch.h> | ||
| 98 | 77 | ||
| 99 | /* Biggest signal number + 1 (including real-time signals). */ | 78 | /* Biggest signal number + 1 (including real-time signals). */ |
| 100 | #define _NSIG		(__SIGRTMAX + 1) | 79 | #define _NSIG		(__SIGRTMAX + 1) |
lib/libc/include/generic-glibc/bits/signum.h deleted-58| ... | @@ -1,58 +0,0 @@ | ||
| 1 | /* Signal number definitions. Linux version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include <bits/signum-generic.h> | ||
| 27 | |||
| 28 | /* Adjustments and additions to the signal number constants for | ||
| 29 | most Linux systems. */ | ||
| 30 | |||
| 31 | #define	SIGSTKFLT	16	/* Stack fault (obsolete). */ | ||
| 32 | #define	SIGPWR		30	/* Power failure imminent. */ | ||
| 33 | |||
| 34 | #undef	SIGBUS | ||
| 35 | #define	SIGBUS		 7 | ||
| 36 | #undef	SIGUSR1 | ||
| 37 | #define	SIGUSR1		10 | ||
| 38 | #undef	SIGUSR2 | ||
| 39 | #define	SIGUSR2		12 | ||
| 40 | #undef	SIGCHLD | ||
| 41 | #define	SIGCHLD		17 | ||
| 42 | #undef	SIGCONT | ||
| 43 | #define	SIGCONT		18 | ||
| 44 | #undef	SIGSTOP | ||
| 45 | #define	SIGSTOP		19 | ||
| 46 | #undef	SIGTSTP | ||
| 47 | #define	SIGTSTP		20 | ||
| 48 | #undef	SIGURG | ||
| 49 | #define	SIGURG		23 | ||
| 50 | #undef	SIGPOLL | ||
| 51 | #define	SIGPOLL		29 | ||
| 52 | #undef	SIGSYS | ||
| 53 | #define SIGSYS		31 | ||
| 54 | |||
| 55 | #undef	__SIGRTMAX | ||
| 56 | #define __SIGRTMAX	64 | ||
| 57 | |||
| 58 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/socket-constants.h+14-2| ... | @@ -20,6 +20,8 @@ | ... | @@ -20,6 +20,8 @@ |
| 20 | # error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead." | 20 | # error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead." |
| 21 | #endif | 21 | #endif |
| 22 | 22 | ||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 23 | #define SOL_SOCKET 1 | 25 | #define SOL_SOCKET 1 |
| 24 | #define SO_ACCEPTCONN 30 | 26 | #define SO_ACCEPTCONN 30 |
| 25 | #define SO_BROADCAST 6 | 27 | #define SO_BROADCAST 6 |
| ... | @@ -30,9 +32,19 @@ | ... | @@ -30,9 +32,19 @@ |
| 30 | #define SO_OOBINLINE 10 | 32 | #define SO_OOBINLINE 10 |
| 31 | #define SO_RCVBUF 8 | 33 | #define SO_RCVBUF 8 |
| 32 | #define SO_RCVLOWAT 18 | 34 | #define SO_RCVLOWAT 18 |
| 33 | #define SO_RCVTIMEO 20 | 35 | #if (__TIMESIZE == 64 && __WORDSIZE == 32 \ |
| 36 | && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) | ||
| 37 | # define SO_RCVTIMEO 66 | ||
| 38 | #else | ||
| 39 | # define SO_RCVTIMEO 20 | ||
| 40 | #endif | ||
| 34 | #define SO_REUSEADDR 2 | 41 | #define SO_REUSEADDR 2 |
| 35 | #define SO_SNDBUF 7 | 42 | #define SO_SNDBUF 7 |
| 36 | #define SO_SNDLOWAT 19 | 43 | #define SO_SNDLOWAT 19 |
| 37 | #define SO_SNDTIMEO 21 | 44 | #if (__TIMESIZE == 64 && __WORDSIZE == 32 \ |
| 45 | && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) | ||
| 46 | # define SO_SNDTIMEO 67 | ||
| 47 | #else | ||
| 48 | # define SO_SNDTIMEO 21 | ||
| 49 | #endif | ||
| 38 | #define SO_TYPE 3 | 50 | #define SO_TYPE 3 |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/statx-generic.h+1| ... | @@ -48,6 +48,7 @@ | ... | @@ -48,6 +48,7 @@ |
| 48 | # define STATX_ATTR_NODUMP 0x0040 | 48 | # define STATX_ATTR_NODUMP 0x0040 |
| 49 | # define STATX_ATTR_ENCRYPTED 0x0800 | 49 | # define STATX_ATTR_ENCRYPTED 0x0800 |
| 50 | # define STATX_ATTR_AUTOMOUNT 0x1000 | 50 | # define STATX_ATTR_AUTOMOUNT 0x1000 |
| 51 | # define STATX_ATTR_VERITY 0x100000 | ||
| 51 | #endif /* !STATX_TYPE */ | 52 | #endif /* !STATX_TYPE */ |
| 52 | 53 | ||
| 53 | __BEGIN_DECLS | 54 | __BEGIN_DECLS |
lib/libc/include/generic-glibc/bits/stdio-ldbl.h+31-15| ... | @@ -27,9 +27,17 @@ __LDBL_REDIR_DECL (vfprintf) | ... | @@ -27,9 +27,17 @@ __LDBL_REDIR_DECL (vfprintf) |
| 27 | __LDBL_REDIR_DECL (vprintf) | 27 | __LDBL_REDIR_DECL (vprintf) |
| 28 | __LDBL_REDIR_DECL (vsprintf) | 28 | __LDBL_REDIR_DECL (vsprintf) |
| 29 | #if !__GLIBC_USE (DEPRECATED_SCANF) | 29 | #if !__GLIBC_USE (DEPRECATED_SCANF) |
| 30 | # if defined __LDBL_COMPAT | ||
| 30 | __LDBL_REDIR1_DECL (fscanf, __nldbl___isoc99_fscanf) | 31 | __LDBL_REDIR1_DECL (fscanf, __nldbl___isoc99_fscanf) |
| 31 | __LDBL_REDIR1_DECL (scanf, __nldbl___isoc99_scanf) | 32 | __LDBL_REDIR1_DECL (scanf, __nldbl___isoc99_scanf) |
| 32 | __LDBL_REDIR1_DECL (sscanf, __nldbl___isoc99_sscanf) | 33 | __LDBL_REDIR1_DECL (sscanf, __nldbl___isoc99_sscanf) |
| 34 | # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 35 | __LDBL_REDIR1_DECL (fscanf, __isoc99_fscanfieee128) | ||
| 36 | __LDBL_REDIR1_DECL (scanf, __isoc99_scanfieee128) | ||
| 37 | __LDBL_REDIR1_DECL (sscanf, __isoc99_sscanfieee128) | ||
| 38 | # else | ||
| 39 | # error bits/stdlib-ldbl.h included when no ldbl redirections are required. | ||
| 40 | # endif | ||
| 33 | #else | 41 | #else |
| 34 | __LDBL_REDIR_DECL (fscanf) | 42 | __LDBL_REDIR_DECL (fscanf) |
| 35 | __LDBL_REDIR_DECL (scanf) | 43 | __LDBL_REDIR_DECL (scanf) |
| ... | @@ -43,9 +51,17 @@ __LDBL_REDIR_DECL (vsnprintf) | ... | @@ -43,9 +51,17 @@ __LDBL_REDIR_DECL (vsnprintf) |
| 43 | 51 | ||
| 44 | #ifdef	__USE_ISOC99 | 52 | #ifdef	__USE_ISOC99 |
| 45 | # if !__GLIBC_USE (DEPRECATED_SCANF) | 53 | # if !__GLIBC_USE (DEPRECATED_SCANF) |
| 54 | # if defined __LDBL_COMPAT | ||
| 46 | __LDBL_REDIR1_DECL (vfscanf, __nldbl___isoc99_vfscanf) | 55 | __LDBL_REDIR1_DECL (vfscanf, __nldbl___isoc99_vfscanf) |
| 47 | __LDBL_REDIR1_DECL (vscanf, __nldbl___isoc99_vscanf) | 56 | __LDBL_REDIR1_DECL (vscanf, __nldbl___isoc99_vscanf) |
| 48 | __LDBL_REDIR1_DECL (vsscanf, __nldbl___isoc99_vsscanf) | 57 | __LDBL_REDIR1_DECL (vsscanf, __nldbl___isoc99_vsscanf) |
| 58 | # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 59 | __LDBL_REDIR1_DECL (vfscanf, __isoc99_vfscanfieee128) | ||
| 60 | __LDBL_REDIR1_DECL (vscanf, __isoc99_vscanfieee128) | ||
| 61 | __LDBL_REDIR1_DECL (vsscanf, __isoc99_vsscanfieee128) | ||
| 62 | # else | ||
| 63 | # error bits/stdlib-ldbl.h included when no ldbl redirections are required. | ||
| 64 | # endif | ||
| 49 | # else | 65 | # else |
| 50 | __LDBL_REDIR_DECL (vfscanf) | 66 | __LDBL_REDIR_DECL (vfscanf) |
| 51 | __LDBL_REDIR_DECL (vsscanf) | 67 | __LDBL_REDIR_DECL (vsscanf) |
| ... | @@ -60,33 +76,33 @@ __LDBL_REDIR_DECL (dprintf) | ... | @@ -60,33 +76,33 @@ __LDBL_REDIR_DECL (dprintf) |
| 60 | 76 | ||
| 61 | #ifdef __USE_GNU | 77 | #ifdef __USE_GNU |
| 62 | __LDBL_REDIR_DECL (vasprintf) | 78 | __LDBL_REDIR_DECL (vasprintf) |
| 63 | __LDBL_REDIR_DECL (__asprintf) | 79 | __LDBL_REDIR2_DECL (asprintf) |
| 64 | __LDBL_REDIR_DECL (asprintf) | 80 | __LDBL_REDIR_DECL (asprintf) |
| 65 | __LDBL_REDIR_DECL (obstack_printf) | 81 | __LDBL_REDIR_DECL (obstack_printf) |
| 66 | __LDBL_REDIR_DECL (obstack_vprintf) | 82 | __LDBL_REDIR_DECL (obstack_vprintf) |
| 67 | #endif | 83 | #endif |
| 68 | 84 | ||
| 69 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function | 85 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function |
| 70 | __LDBL_REDIR_DECL (__sprintf_chk) | 86 | __LDBL_REDIR2_DECL (sprintf_chk) |
| 71 | __LDBL_REDIR_DECL (__vsprintf_chk) | 87 | __LDBL_REDIR2_DECL (vsprintf_chk) |
| 72 | # if defined __USE_ISOC99 || defined __USE_UNIX98 | 88 | # if defined __USE_ISOC99 || defined __USE_UNIX98 |
| 73 | __LDBL_REDIR_DECL (__snprintf_chk) | 89 | __LDBL_REDIR2_DECL (snprintf_chk) |
| 74 | __LDBL_REDIR_DECL (__vsnprintf_chk) | 90 | __LDBL_REDIR2_DECL (vsnprintf_chk) |
| 75 | # endif | 91 | # endif |
| 76 | # if __USE_FORTIFY_LEVEL > 1 | 92 | # if __USE_FORTIFY_LEVEL > 1 |
| 77 | __LDBL_REDIR_DECL (__fprintf_chk) | 93 | __LDBL_REDIR2_DECL (fprintf_chk) |
| 78 | __LDBL_REDIR_DECL (__printf_chk) | 94 | __LDBL_REDIR2_DECL (printf_chk) |
| 79 | __LDBL_REDIR_DECL (__vfprintf_chk) | 95 | __LDBL_REDIR2_DECL (vfprintf_chk) |
| 80 | __LDBL_REDIR_DECL (__vprintf_chk) | 96 | __LDBL_REDIR2_DECL (vprintf_chk) |
| 81 | # ifdef __USE_XOPEN2K8 | 97 | # ifdef __USE_XOPEN2K8 |
| 82 | __LDBL_REDIR_DECL (__dprintf_chk) | 98 | __LDBL_REDIR2_DECL (dprintf_chk) |
| 83 | __LDBL_REDIR_DECL (__vdprintf_chk) | 99 | __LDBL_REDIR2_DECL (vdprintf_chk) |
| 84 | # endif | 100 | # endif |
| 85 | # ifdef __USE_GNU | 101 | # ifdef __USE_GNU |
| 86 | __LDBL_REDIR_DECL (__asprintf_chk) | 102 | __LDBL_REDIR2_DECL (asprintf_chk) |
| 87 | __LDBL_REDIR_DECL (__vasprintf_chk) | 103 | __LDBL_REDIR2_DECL (vasprintf_chk) |
| 88 | __LDBL_REDIR_DECL (__obstack_printf_chk) | 104 | __LDBL_REDIR2_DECL (obstack_printf_chk) |
| 89 | __LDBL_REDIR_DECL (__obstack_vprintf_chk) | 105 | __LDBL_REDIR2_DECL (obstack_vprintf_chk) |
| 90 | # endif | 106 | # endif |
| 91 | # endif | 107 | # endif |
| 92 | #endif | 108 | #endif |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/stdio2.h+16-9| ... | @@ -24,10 +24,12 @@ | ... | @@ -24,10 +24,12 @@ |
| 24 | #endif | 24 | #endif |
| 25 | 25 | ||
| 26 | extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, | 26 | extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, |
| 27 | 			 const char *__restrict __format, ...) __THROW; | 27 | 			 const char *__restrict __format, ...) __THROW |
| 28 | __attr_access ((__write_only__, 1, 3)); | ||
| 28 | extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, | 29 | extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, |
| 29 | 			 const char *__restrict __format, | 30 | 			 const char *__restrict __format, |
| 30 | 			 __gnuc_va_list __ap) __THROW; | 31 | 			 __gnuc_va_list __ap) __THROW |
| 32 | __attr_access ((__write_only__, 1, 3)); | ||
| 31 | 33 | ||
| 32 | #ifdef __va_arg_pack | 34 | #ifdef __va_arg_pack |
| 33 | __fortify_function int | 35 | __fortify_function int |
| ... | @@ -54,7 +56,8 @@ __NTH (vsprintf (char *__restrict __s, const char *__restrict __fmt, | ... | @@ -54,7 +56,8 @@ __NTH (vsprintf (char *__restrict __s, const char *__restrict __fmt, |
| 54 | 56 | ||
| 55 | extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, | 57 | extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, |
| 56 | 			 size_t __slen, const char *__restrict __format, | 58 | 			 size_t __slen, const char *__restrict __format, |
| 57 | 			 ...) __THROW; | 59 | 			 ...) __THROW |
| 60 | __attr_access ((__write_only__, 1, 2)); | ||
| 58 | extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, | 61 | extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, |
| 59 | 			 size_t __slen, const char *__restrict __format, | 62 | 			 size_t __slen, const char *__restrict __format, |
| 60 | 			 __gnuc_va_list __ap) __THROW; | 63 | 			 __gnuc_va_list __ap) __THROW; |
| ... | @@ -241,17 +244,19 @@ gets (char *__str) | ... | @@ -241,17 +244,19 @@ gets (char *__str) |
| 241 | #endif | 244 | #endif |
| 242 | 245 | ||
| 243 | extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, | 246 | extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, |
| 244 | 			 FILE *__restrict __stream) __wur; | 247 | 			 FILE *__restrict __stream) |
| 248 | __wur __attr_access ((__write_only__, 1, 3)); | ||
| 245 | extern char *__REDIRECT (__fgets_alias, | 249 | extern char *__REDIRECT (__fgets_alias, |
| 246 | 			 (char *__restrict __s, int __n, | 250 | 			 (char *__restrict __s, int __n, |
| 247 | 			 FILE *__restrict __stream), fgets) __wur; | 251 | 			 FILE *__restrict __stream), fgets) |
| 252 | __wur __attr_access ((__write_only__, 1, 2)); | ||
| 248 | extern char *__REDIRECT (__fgets_chk_warn, | 253 | extern char *__REDIRECT (__fgets_chk_warn, |
| 249 | 			 (char *__restrict __s, size_t __size, int __n, | 254 | 			 (char *__restrict __s, size_t __size, int __n, |
| 250 | 			 FILE *__restrict __stream), __fgets_chk) | 255 | 			 FILE *__restrict __stream), __fgets_chk) |
| 251 | __wur __warnattr ("fgets called with bigger size than length " | 256 | __wur __warnattr ("fgets called with bigger size than length " |
| 252 | 		 "of destination buffer"); | 257 | 		 "of destination buffer"); |
| 253 | 258 | ||
| 254 | __fortify_function __wur char * | 259 | __fortify_function __wur __attr_access ((__write_only__, 1, 2)) char * |
| 255 | fgets (char *__restrict __s, int __n, FILE *__restrict __stream) | 260 | fgets (char *__restrict __s, int __n, FILE *__restrict __stream) |
| 256 | { | 261 | { |
| 257 | if (__bos (__s) != (size_t) -1) | 262 | if (__bos (__s) != (size_t) -1) |
| ... | @@ -299,17 +304,19 @@ fread (void *__restrict __ptr, size_t __size, size_t __n, | ... | @@ -299,17 +304,19 @@ fread (void *__restrict __ptr, size_t __size, size_t __n, |
| 299 | 304 | ||
| 300 | #ifdef __USE_GNU | 305 | #ifdef __USE_GNU |
| 301 | extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, | 306 | extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, |
| 302 | 				 int __n, FILE *__restrict __stream) __wur; | 307 | 				 int __n, FILE *__restrict __stream) |
| 308 | __wur __attr_access ((__write_only__, 1, 3)); | ||
| 303 | extern char *__REDIRECT (__fgets_unlocked_alias, | 309 | extern char *__REDIRECT (__fgets_unlocked_alias, |
| 304 | 			 (char *__restrict __s, int __n, | 310 | 			 (char *__restrict __s, int __n, |
| 305 | 			 FILE *__restrict __stream), fgets_unlocked) __wur; | 311 | 			 FILE *__restrict __stream), fgets_unlocked) |
| 312 | __wur __attr_access ((__write_only__, 1, 2)); | ||
| 306 | extern char *__REDIRECT (__fgets_unlocked_chk_warn, | 313 | extern char *__REDIRECT (__fgets_unlocked_chk_warn, |
| 307 | 			 (char *__restrict __s, size_t __size, int __n, | 314 | 			 (char *__restrict __s, size_t __size, int __n, |
| 308 | 			 FILE *__restrict __stream), __fgets_unlocked_chk) | 315 | 			 FILE *__restrict __stream), __fgets_unlocked_chk) |
| 309 | __wur __warnattr ("fgets_unlocked called with bigger size than length " | 316 | __wur __warnattr ("fgets_unlocked called with bigger size than length " |
| 310 | 		 "of destination buffer"); | 317 | 		 "of destination buffer"); |
| 311 | 318 | ||
| 312 | __fortify_function __wur char * | 319 | __fortify_function __wur __attr_access ((__write_only__, 1, 2)) char * |
| 313 | fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) | 320 | fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) |
| 314 | { | 321 | { |
| 315 | if (__bos (__s) != (size_t) -1) | 322 | if (__bos (__s) != (size_t) -1) |
lib/libc/include/generic-glibc/bits/stdlib-ldbl.h+22| ... | @@ -21,21 +21,43 @@ | ... | @@ -21,21 +21,43 @@ |
| 21 | #endif | 21 | #endif |
| 22 | 22 | ||
| 23 | #ifdef	__USE_ISOC99 | 23 | #ifdef	__USE_ISOC99 |
| 24 | # ifdef __LDBL_COMPAT | ||
| 24 | __LDBL_REDIR1_DECL (strtold, strtod) | 25 | __LDBL_REDIR1_DECL (strtold, strtod) |
| 26 | # else | ||
| 27 | __LDBL_REDIR1_DECL (strtold, __strtoieee128) | ||
| 28 | # endif | ||
| 25 | #endif | 29 | #endif |
| 26 | 30 | ||
| 27 | #ifdef __USE_GNU | 31 | #ifdef __USE_GNU |
| 32 | # ifdef __LDBL_COMPAT | ||
| 28 | __LDBL_REDIR1_DECL (strtold_l, strtod_l) | 33 | __LDBL_REDIR1_DECL (strtold_l, strtod_l) |
| 34 | # else | ||
| 35 | __LDBL_REDIR1_DECL (strtold_l, __strtoieee128_l) | ||
| 36 | # endif | ||
| 29 | #endif | 37 | #endif |
| 30 | 38 | ||
| 31 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) | 39 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) |
| 40 | # ifdef __LDBL_COMPAT | ||
| 32 | __LDBL_REDIR1_DECL (strfroml, strfromd) | 41 | __LDBL_REDIR1_DECL (strfroml, strfromd) |
| 42 | # else | ||
| 43 | __LDBL_REDIR1_DECL (strfroml, __strfromieee128) | ||
| 44 | # endif | ||
| 33 | #endif | 45 | #endif |
| 34 | 46 | ||
| 35 | #ifdef __USE_MISC | 47 | #ifdef __USE_MISC |
| 48 | # if defined __LDBL_COMPAT | ||
| 36 | __LDBL_REDIR1_DECL (qecvt, ecvt) | 49 | __LDBL_REDIR1_DECL (qecvt, ecvt) |
| 37 | __LDBL_REDIR1_DECL (qfcvt, fcvt) | 50 | __LDBL_REDIR1_DECL (qfcvt, fcvt) |
| 38 | __LDBL_REDIR1_DECL (qgcvt, gcvt) | 51 | __LDBL_REDIR1_DECL (qgcvt, gcvt) |
| 39 | __LDBL_REDIR1_DECL (qecvt_r, ecvt_r) | 52 | __LDBL_REDIR1_DECL (qecvt_r, ecvt_r) |
| 40 | __LDBL_REDIR1_DECL (qfcvt_r, fcvt_r) | 53 | __LDBL_REDIR1_DECL (qfcvt_r, fcvt_r) |
| 54 | # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 55 | __LDBL_REDIR1_DECL (qecvt, __qecvtieee128) | ||
| 56 | __LDBL_REDIR1_DECL (qfcvt, __qfcvtieee128) | ||
| 57 | __LDBL_REDIR1_DECL (qgcvt, __qgcvtieee128) | ||
| 58 | __LDBL_REDIR1_DECL (qecvt_r, __qecvtieee128_r) | ||
| 59 | __LDBL_REDIR1_DECL (qfcvt_r, __qfcvtieee128_r) | ||
| 60 | # else | ||
| 61 | # error bits/stdlib-ldbl.h included when no ldbl redirections are required. | ||
| 62 | # endif | ||
| 41 | #endif | 63 | #endif |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/stdlib.h+11-6| ... | @@ -50,10 +50,11 @@ __NTH (realpath (const char *__restrict __name, char *__restrict __resolved)) | ... | @@ -50,10 +50,11 @@ __NTH (realpath (const char *__restrict __name, char *__restrict __resolved)) |
| 50 | 50 | ||
| 51 | 51 | ||
| 52 | extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, | 52 | extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, |
| 53 | 			 size_t __nreal) __THROW __nonnull ((2)); | 53 | 			 size_t __nreal) __THROW __nonnull ((2)) |
| 54 | __attr_access ((__write_only__, 2, 3)); | ||
| 54 | extern int __REDIRECT_NTH (__ptsname_r_alias, (int __fd, char *__buf, | 55 | extern int __REDIRECT_NTH (__ptsname_r_alias, (int __fd, char *__buf, |
| 55 | 					 size_t __buflen), ptsname_r) | 56 | 					 size_t __buflen), ptsname_r) |
| 56 | __nonnull ((2)); | 57 | __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); |
| 57 | extern int __REDIRECT_NTH (__ptsname_r_chk_warn, | 58 | extern int __REDIRECT_NTH (__ptsname_r_chk_warn, |
| 58 | 			 (int __fd, char *__buf, size_t __buflen, | 59 | 			 (int __fd, char *__buf, size_t __buflen, |
| 59 | 			 size_t __nreal), __ptsname_r_chk) | 60 | 			 size_t __nreal), __ptsname_r_chk) |
| ... | @@ -97,11 +98,13 @@ __NTH (wctomb (char *__s, wchar_t __wchar)) | ... | @@ -97,11 +98,13 @@ __NTH (wctomb (char *__s, wchar_t __wchar)) |
| 97 | 98 | ||
| 98 | extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, | 99 | extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, |
| 99 | 			 const char *__restrict __src, | 100 | 			 const char *__restrict __src, |
| 100 | 			 size_t __len, size_t __dstlen) __THROW; | 101 | 			 size_t __len, size_t __dstlen) __THROW |
| 102 | __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2)); | ||
| 101 | extern size_t __REDIRECT_NTH (__mbstowcs_alias, | 103 | extern size_t __REDIRECT_NTH (__mbstowcs_alias, |
| 102 | 			 (wchar_t *__restrict __dst, | 104 | 			 (wchar_t *__restrict __dst, |
| 103 | 			 const char *__restrict __src, | 105 | 			 const char *__restrict __src, |
| 104 | 			 size_t __len), mbstowcs); | 106 | 			 size_t __len), mbstowcs) |
| 107 | __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2)); | ||
| 105 | extern size_t __REDIRECT_NTH (__mbstowcs_chk_warn, | 108 | extern size_t __REDIRECT_NTH (__mbstowcs_chk_warn, |
| 106 | 			 (wchar_t *__restrict __dst, | 109 | 			 (wchar_t *__restrict __dst, |
| 107 | 			 const char *__restrict __src, | 110 | 			 const char *__restrict __src, |
| ... | @@ -129,11 +132,13 @@ __NTH (mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, | ... | @@ -129,11 +132,13 @@ __NTH (mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, |
| 129 | 132 | ||
| 130 | extern size_t __wcstombs_chk (char *__restrict __dst, | 133 | extern size_t __wcstombs_chk (char *__restrict __dst, |
| 131 | 			 const wchar_t *__restrict __src, | 134 | 			 const wchar_t *__restrict __src, |
| 132 | 			 size_t __len, size_t __dstlen) __THROW; | 135 | 			 size_t __len, size_t __dstlen) __THROW |
| 136 | __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2)); | ||
| 133 | extern size_t __REDIRECT_NTH (__wcstombs_alias, | 137 | extern size_t __REDIRECT_NTH (__wcstombs_alias, |
| 134 | 			 (char *__restrict __dst, | 138 | 			 (char *__restrict __dst, |
| 135 | 			 const wchar_t *__restrict __src, | 139 | 			 const wchar_t *__restrict __src, |
| 136 | 			 size_t __len), wcstombs); | 140 | 			 size_t __len), wcstombs) |
| 141 | __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2)); | ||
| 137 | extern size_t __REDIRECT_NTH (__wcstombs_chk_warn, | 142 | extern size_t __REDIRECT_NTH (__wcstombs_chk_warn, |
| 138 | 			 (char *__restrict __dst, | 143 | 			 (char *__restrict __dst, |
| 139 | 			 const wchar_t *__restrict __src, | 144 | 			 const wchar_t *__restrict __src, |
lib/libc/include/generic-glibc/bits/string_fortified.h+3-2| ... | @@ -75,7 +75,7 @@ __NTH (memset (void *__dest, int __ch, size_t __len)) | ... | @@ -75,7 +75,7 @@ __NTH (memset (void *__dest, int __ch, size_t __len)) |
| 75 | # include <bits/strings_fortified.h> | 75 | # include <bits/strings_fortified.h> |
| 76 | 76 | ||
| 77 | void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) | 77 | void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) |
| 78 | __THROW __nonnull ((1)); | 78 | __THROW __nonnull ((1)) __attr_access ((__write_only__, 1, 2)); |
| 79 | 79 | ||
| 80 | __fortify_function void | 80 | __fortify_function void |
| 81 | __NTH (explicit_bzero (void *__dest, size_t __len)) | 81 | __NTH (explicit_bzero (void *__dest, size_t __len)) |
| ... | @@ -108,7 +108,8 @@ __NTH (strncpy (char *__restrict __dest, const char *__restrict __src, | ... | @@ -108,7 +108,8 @@ __NTH (strncpy (char *__restrict __dest, const char *__restrict __src, |
| 108 | 108 | ||
| 109 | /* XXX We have no corresponding builtin yet. */ | 109 | /* XXX We have no corresponding builtin yet. */ |
| 110 | extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, | 110 | extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, |
| 111 | 			 size_t __destlen) __THROW; | 111 | 			 size_t __destlen) __THROW |
| 112 | __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2)); | ||
| 112 | extern char *__REDIRECT_NTH (__stpncpy_alias, (char *__dest, const char *__src, | 113 | extern char *__REDIRECT_NTH (__stpncpy_alias, (char *__dest, const char *__src, |
| 113 | 					 size_t __n), stpncpy); | 114 | 					 size_t __n), stpncpy); |
| 114 | 115 |
lib/libc/include/generic-glibc/bits/sys_errlist.h deleted-32| ... | @@ -1,32 +0,0 @@ | ||
| 1 | /* Declare sys_errlist and sys_nerr, or don't. Compatibility (do) version. | ||
| 2 | Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _STDIO_H | ||
| 20 | # error "Never include <bits/sys_errlist.h> directly; use <stdio.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* sys_errlist and sys_nerr are deprecated. Use strerror instead. */ | ||
| 24 | |||
| 25 | #ifdef __USE_MISC | ||
| 26 | extern int sys_nerr; | ||
| 27 | extern const char *const sys_errlist[]; | ||
| 28 | #endif | ||
| 29 | #ifdef __USE_GNU | ||
| 30 | extern int _sys_nerr; | ||
| 31 | extern const char *const _sys_errlist[]; | ||
| 32 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/syscall.h+22-2| ... | @@ -1,11 +1,11 @@ | ... | @@ -1,11 +1,11 @@ |
| 1 | /* Generated at libc build time from syscall list. */ | 1 | /* Generated at libc build time from syscall list. */ |
| 2 | /* The system call list corresponds to kernel 5.4. */ | 2 | /* The system call list corresponds to kernel 5.7. */ |
| 3 | 3 | ||
| 4 | #ifndef _SYSCALL_H | 4 | #ifndef _SYSCALL_H |
| 5 | # error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead." | 5 | # error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead." |
| 6 | #endif | 6 | #endif |
| 7 | 7 | ||
| 8 | #define __GLIBC_LINUX_VERSION_CODE 328704 | 8 | #define __GLIBC_LINUX_VERSION_CODE 329472 |
| 9 | 9 | ||
| 10 | #ifdef __NR_FAST_atomic_update | 10 | #ifdef __NR_FAST_atomic_update |
| 11 | # define SYS_FAST_atomic_update __NR_FAST_atomic_update | 11 | # define SYS_FAST_atomic_update __NR_FAST_atomic_update |
| ... | @@ -75,6 +75,18 @@ | ... | @@ -75,6 +75,18 @@ |
| 75 | # define SYS_alloc_hugepages __NR_alloc_hugepages | 75 | # define SYS_alloc_hugepages __NR_alloc_hugepages |
| 76 | #endif | 76 | #endif |
| 77 | 77 | ||
| 78 | #ifdef __NR_arc_gettls | ||
| 79 | # define SYS_arc_gettls __NR_arc_gettls | ||
| 80 | #endif | ||
| 81 | |||
| 82 | #ifdef __NR_arc_settls | ||
| 83 | # define SYS_arc_settls __NR_arc_settls | ||
| 84 | #endif | ||
| 85 | |||
| 86 | #ifdef __NR_arc_usr_cmpxchg | ||
| 87 | # define SYS_arc_usr_cmpxchg __NR_arc_usr_cmpxchg | ||
| 88 | #endif | ||
| 89 | |||
| 78 | #ifdef __NR_arch_prctl | 90 | #ifdef __NR_arch_prctl |
| 79 | # define SYS_arch_prctl __NR_arch_prctl | 91 | # define SYS_arch_prctl __NR_arch_prctl |
| 80 | #endif | 92 | #endif |
| ... | @@ -1079,6 +1091,10 @@ | ... | @@ -1079,6 +1091,10 @@ |
| 1079 | # define SYS_openat __NR_openat | 1091 | # define SYS_openat __NR_openat |
| 1080 | #endif | 1092 | #endif |
| 1081 | 1093 | ||
| 1094 | #ifdef __NR_openat2 | ||
| 1095 | # define SYS_openat2 __NR_openat2 | ||
| 1096 | #endif | ||
| 1097 | |||
| 1082 | #ifdef __NR_osf_adjtime | 1098 | #ifdef __NR_osf_adjtime |
| 1083 | # define SYS_osf_adjtime __NR_osf_adjtime | 1099 | # define SYS_osf_adjtime __NR_osf_adjtime |
| 1084 | #endif | 1100 | #endif |
| ... | @@ -1551,6 +1567,10 @@ | ... | @@ -1551,6 +1567,10 @@ |
| 1551 | # define SYS_personality __NR_personality | 1567 | # define SYS_personality __NR_personality |
| 1552 | #endif | 1568 | #endif |
| 1553 | 1569 | ||
| 1570 | #ifdef __NR_pidfd_getfd | ||
| 1571 | # define SYS_pidfd_getfd __NR_pidfd_getfd | ||
| 1572 | #endif | ||
| 1573 | |||
| 1554 | #ifdef __NR_pidfd_open | 1574 | #ifdef __NR_pidfd_open |
| 1555 | # define SYS_pidfd_open __NR_pidfd_open | 1575 | # define SYS_pidfd_open __NR_pidfd_open |
| 1556 | #endif | 1576 | #endif |
lib/libc/include/generic-glibc/bits/sysctl.h deleted-1| ... | @@ -1 +0,0 @@ | ||
| 1 | /* Empty file. */ | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/syslog-ldbl.h+2-2| ... | @@ -27,9 +27,9 @@ __LDBL_REDIR_DECL (vsyslog) | ... | @@ -27,9 +27,9 @@ __LDBL_REDIR_DECL (vsyslog) |
| 27 | #endif | 27 | #endif |
| 28 | 28 | ||
| 29 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function | 29 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function |
| 30 | __LDBL_REDIR_DECL (__syslog_chk) | 30 | __LDBL_REDIR2_DECL (syslog_chk) |
| 31 | 31 | ||
| 32 | # ifdef __USE_MISC | 32 | # ifdef __USE_MISC |
| 33 | __LDBL_REDIR_DECL (__vsyslog_chk) | 33 | __LDBL_REDIR2_DECL (vsyslog_chk) |
| 34 | # endif | 34 | # endif |
| 35 | #endif | 35 | #endif |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/thread-shared-types.h+10| ... | @@ -116,4 +116,14 @@ struct __pthread_cond_s | ... | @@ -116,4 +116,14 @@ struct __pthread_cond_s |
| 116 | unsigned int __g_signals[2]; | 116 | unsigned int __g_signals[2]; |
| 117 | }; | 117 | }; |
| 118 | 118 | ||
| 119 | typedef unsigned int __tss_t; | ||
| 120 | typedef unsigned long int __thrd_t; | ||
| 121 | |||
| 122 | typedef struct | ||
| 123 | { | ||
| 124 | int __data __ONCE_ALIGNMENT; | ||
| 125 | } __once_flag; | ||
| 126 | |||
| 127 | #define __ONCE_FLAG_INIT { 0 } | ||
| 128 | |||
| 119 | #endif /* _THREAD_SHARED_TYPES_H */ | 129 | #endif /* _THREAD_SHARED_TYPES_H */ |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/types.h+1| ... | @@ -160,6 +160,7 @@ __STD_TYPE __ID_T_TYPE __id_t;		/* General type for IDs. */ | ... | @@ -160,6 +160,7 @@ __STD_TYPE __ID_T_TYPE __id_t;		/* General type for IDs. */ |
| 160 | __STD_TYPE __TIME_T_TYPE __time_t;	/* Seconds since the Epoch. */ | 160 | __STD_TYPE __TIME_T_TYPE __time_t;	/* Seconds since the Epoch. */ |
| 161 | __STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */ | 161 | __STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */ |
| 162 | __STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */ | 162 | __STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */ |
| 163 | __STD_TYPE __SUSECONDS64_T_TYPE __suseconds64_t; | ||
| 163 | 164 | ||
| 164 | __STD_TYPE __DADDR_T_TYPE __daddr_t;	/* The type of a disk address. */ | 165 | __STD_TYPE __DADDR_T_TYPE __daddr_t;	/* The type of a disk address. */ |
| 165 | __STD_TYPE __KEY_T_TYPE __key_t;	/* Type of an IPC key. */ | 166 | __STD_TYPE __KEY_T_TYPE __key_t;	/* Type of an IPC key. */ |
lib/libc/include/generic-glibc/bits/types/struct_msqid_ds.h created+47| ... | @@ -0,0 +1,47 @@ | ||
| 1 | /* Generic implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 30 | unsigned long int __msg_stime_high; | ||
| 31 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 32 | unsigned long int __msg_rtime_high; | ||
| 33 | __time_t msg_ctime;		/* time of last change */ | ||
| 34 | unsigned long int __msg_ctime_high; | ||
| 35 | #else | ||
| 36 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 37 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 38 | __time_t msg_ctime;		/* time of last change */ | ||
| 39 | #endif | ||
| 40 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 41 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 42 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 43 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 44 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 45 | __syscall_ulong_t __glibc_reserved4; | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/types/struct_semid_ds.h created+39| ... | @@ -0,0 +1,39 @@ | ||
| 1 | /* Generic implementation of the semaphore struct semid_ds. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm; /* operation permission struct */ | ||
| 27 | #if __TIMESIZE == 32 | ||
| 28 | __time_t sem_otime; /* last semop() time */ | ||
| 29 | __syscall_ulong_t __sem_otime_high; | ||
| 30 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 31 | __syscall_ulong_t __sem_ctime_high; | ||
| 32 | #else | ||
| 33 | __time_t sem_otime; | ||
| 34 | __time_t sem_ctime; | ||
| 35 | #endif | ||
| 36 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | ||
| 37 | __syscall_ulong_t __glibc_reserved3; | ||
| 38 | __syscall_ulong_t __glibc_reserved4; | ||
| 39 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/types/struct_shmid_ds.h created+45| ... | @@ -0,0 +1,45 @@ | ||
| 1 | /* Generic implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | unsigned long int __shm_atime_high; | ||
| 31 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 32 | unsigned long int __shm_dtime_high; | ||
| 33 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 34 | unsigned long int __shm_ctime_high; | ||
| 35 | #else | ||
| 36 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 37 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 38 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 39 | #endif | ||
| 40 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 41 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 42 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 43 | __syscall_ulong_t __glibc_reserved5; | ||
| 44 | __syscall_ulong_t __glibc_reserved6; | ||
| 45 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/bits/typesizes.h+7| ... | @@ -50,6 +50,7 @@ | ... | @@ -50,6 +50,7 @@ |
| 50 | #define __TIME_T_TYPE		__SLONGWORD_TYPE | 50 | #define __TIME_T_TYPE		__SLONGWORD_TYPE |
| 51 | #define __USECONDS_T_TYPE	__U32_TYPE | 51 | #define __USECONDS_T_TYPE	__U32_TYPE |
| 52 | #define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE | 52 | #define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE |
| 53 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE | ||
| 53 | #define __DADDR_T_TYPE		__S32_TYPE | 54 | #define __DADDR_T_TYPE		__S32_TYPE |
| 54 | #define __KEY_T_TYPE		__S32_TYPE | 55 | #define __KEY_T_TYPE		__S32_TYPE |
| 55 | #define __CLOCKID_T_TYPE	__S32_TYPE | 56 | #define __CLOCKID_T_TYPE	__S32_TYPE |
| ... | @@ -75,10 +76,16 @@ | ... | @@ -75,10 +76,16 @@ |
| 75 | 76 | ||
| 76 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | 77 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ |
| 77 | # define __STATFS_MATCHES_STATFS64 1 | 78 | # define __STATFS_MATCHES_STATFS64 1 |
| 79 | |||
| 80 | /* And for getitimer, setitimer and rusage */ | ||
| 81 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 | ||
| 78 | #else | 82 | #else |
| 79 | # define __RLIM_T_MATCHES_RLIM64_T	0 | 83 | # define __RLIM_T_MATCHES_RLIM64_T	0 |
| 80 | 84 | ||
| 81 | # define __STATFS_MATCHES_STATFS64 0 | 85 | # define __STATFS_MATCHES_STATFS64 0 |
| 86 | |||
| 87 | /* And for getitimer, setitimer and rusage */ | ||
| 88 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 82 | #endif | 89 | #endif |
| 83 | 90 | ||
| 84 | /* Number of descriptors that can fit in an `fd_set'. */ | 91 | /* Number of descriptors that can fit in an `fd_set'. */ |
lib/libc/include/generic-glibc/bits/unistd.h+35-23| ... | @@ -21,9 +21,11 @@ | ... | @@ -21,9 +21,11 @@ |
| 21 | #endif | 21 | #endif |
| 22 | 22 | ||
| 23 | extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes, | 23 | extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes, |
| 24 | 			 size_t __buflen) __wur; | 24 | 			 size_t __buflen) |
| 25 | __wur __attr_access ((__write_only__, 2, 3)); | ||
| 25 | extern ssize_t __REDIRECT (__read_alias, (int __fd, void *__buf, | 26 | extern ssize_t __REDIRECT (__read_alias, (int __fd, void *__buf, |
| 26 | 					 size_t __nbytes), read) __wur; | 27 | 					 size_t __nbytes), read) |
| 28 | __wur __attr_access ((__write_only__, 2, 3)); | ||
| 27 | extern ssize_t __REDIRECT (__read_chk_warn, | 29 | extern ssize_t __REDIRECT (__read_chk_warn, |
| 28 | 			 (int __fd, void *__buf, size_t __nbytes, | 30 | 			 (int __fd, void *__buf, size_t __nbytes, |
| 29 | 			 size_t __buflen), __read_chk) | 31 | 			 size_t __buflen), __read_chk) |
| ... | @@ -46,15 +48,19 @@ read (int __fd, void *__buf, size_t __nbytes) | ... | @@ -46,15 +48,19 @@ read (int __fd, void *__buf, size_t __nbytes) |
| 46 | 48 | ||
| 47 | #ifdef __USE_UNIX98 | 49 | #ifdef __USE_UNIX98 |
| 48 | extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes, | 50 | extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes, |
| 49 | 			 __off_t __offset, size_t __bufsize) __wur; | 51 | 			 __off_t __offset, size_t __bufsize) |
| 52 | __wur __attr_access ((__write_only__, 2, 3)); | ||
| 50 | extern ssize_t __pread64_chk (int __fd, void *__buf, size_t __nbytes, | 53 | extern ssize_t __pread64_chk (int __fd, void *__buf, size_t __nbytes, |
| 51 | 			 __off64_t __offset, size_t __bufsize) __wur; | 54 | 			 __off64_t __offset, size_t __bufsize) |
| 55 | __wur __attr_access ((__write_only__, 2, 3)); | ||
| 52 | extern ssize_t __REDIRECT (__pread_alias, | 56 | extern ssize_t __REDIRECT (__pread_alias, |
| 53 | 			 (int __fd, void *__buf, size_t __nbytes, | 57 | 			 (int __fd, void *__buf, size_t __nbytes, |
| 54 | 			 __off_t __offset), pread) __wur; | 58 | 			 __off_t __offset), pread) |
| 59 | __wur __attr_access ((__write_only__, 2, 3)); | ||
| 55 | extern ssize_t __REDIRECT (__pread64_alias, | 60 | extern ssize_t __REDIRECT (__pread64_alias, |
| 56 | 			 (int __fd, void *__buf, size_t __nbytes, | 61 | 			 (int __fd, void *__buf, size_t __nbytes, |
| 57 | 			 __off64_t __offset), pread64) __wur; | 62 | 			 __off64_t __offset), pread64) |
| 63 | __wur __attr_access ((__write_only__, 2, 3)); | ||
| 58 | extern ssize_t __REDIRECT (__pread_chk_warn, | 64 | extern ssize_t __REDIRECT (__pread_chk_warn, |
| 59 | 			 (int __fd, void *__buf, size_t __nbytes, | 65 | 			 (int __fd, void *__buf, size_t __nbytes, |
| 60 | 			 __off_t __offset, size_t __bufsize), __pread_chk) | 66 | 			 __off_t __offset, size_t __bufsize), __pread_chk) |
| ... | @@ -123,11 +129,11 @@ pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) | ... | @@ -123,11 +129,11 @@ pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) |
| 123 | extern ssize_t __readlink_chk (const char *__restrict __path, | 129 | extern ssize_t __readlink_chk (const char *__restrict __path, |
| 124 | 			 char *__restrict __buf, size_t __len, | 130 | 			 char *__restrict __buf, size_t __len, |
| 125 | 			 size_t __buflen) | 131 | 			 size_t __buflen) |
| 126 | __THROW __nonnull ((1, 2)) __wur; | 132 | __THROW __nonnull ((1, 2)) __wur __attr_access ((__write_only__, 2, 3)); |
| 127 | extern ssize_t __REDIRECT_NTH (__readlink_alias, | 133 | extern ssize_t __REDIRECT_NTH (__readlink_alias, |
| 128 | 			 (const char *__restrict __path, | 134 | 			 (const char *__restrict __path, |
| 129 | 				char *__restrict __buf, size_t __len), readlink) | 135 | 				char *__restrict __buf, size_t __len), readlink) |
| 130 | __nonnull ((1, 2)) __wur; | 136 | __nonnull ((1, 2)) __wur __attr_access ((__write_only__, 2, 3)); |
| 131 | extern ssize_t __REDIRECT_NTH (__readlink_chk_warn, | 137 | extern ssize_t __REDIRECT_NTH (__readlink_chk_warn, |
| 132 | 			 (const char *__restrict __path, | 138 | 			 (const char *__restrict __path, |
| 133 | 				char *__restrict __buf, size_t __len, | 139 | 				char *__restrict __buf, size_t __len, |
| ... | @@ -155,12 +161,12 @@ __NTH (readlink (const char *__restrict __path, char *__restrict __buf, | ... | @@ -155,12 +161,12 @@ __NTH (readlink (const char *__restrict __path, char *__restrict __buf, |
| 155 | extern ssize_t __readlinkat_chk (int __fd, const char *__restrict __path, | 161 | extern ssize_t __readlinkat_chk (int __fd, const char *__restrict __path, |
| 156 | 				 char *__restrict __buf, size_t __len, | 162 | 				 char *__restrict __buf, size_t __len, |
| 157 | 				 size_t __buflen) | 163 | 				 size_t __buflen) |
| 158 | __THROW __nonnull ((2, 3)) __wur; | 164 | __THROW __nonnull ((2, 3)) __wur __attr_access ((__write_only__, 3, 4)); |
| 159 | extern ssize_t __REDIRECT_NTH (__readlinkat_alias, | 165 | extern ssize_t __REDIRECT_NTH (__readlinkat_alias, |
| 160 | 			 (int __fd, const char *__restrict __path, | 166 | 			 (int __fd, const char *__restrict __path, |
| 161 | 				char *__restrict __buf, size_t __len), | 167 | 				char *__restrict __buf, size_t __len), |
| 162 | 			 readlinkat) | 168 | 			 readlinkat) |
| 163 | __nonnull ((2, 3)) __wur; | 169 | __nonnull ((2, 3)) __wur __attr_access ((__write_only__, 3, 4)); |
| 164 | extern ssize_t __REDIRECT_NTH (__readlinkat_chk_warn, | 170 | extern ssize_t __REDIRECT_NTH (__readlinkat_chk_warn, |
| 165 | 			 (int __fd, const char *__restrict __path, | 171 | 			 (int __fd, const char *__restrict __path, |
| 166 | 				char *__restrict __buf, size_t __len, | 172 | 				char *__restrict __buf, size_t __len, |
| ... | @@ -187,9 +193,10 @@ __NTH (readlinkat (int __fd, const char *__restrict __path, | ... | @@ -187,9 +193,10 @@ __NTH (readlinkat (int __fd, const char *__restrict __path, |
| 187 | #endif | 193 | #endif |
| 188 | 194 | ||
| 189 | extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen) | 195 | extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen) |
| 190 | __THROW __wur; | 196 | __THROW __wur __attr_access ((__write_only__, 1, 2)); |
| 191 | extern char *__REDIRECT_NTH (__getcwd_alias, | 197 | extern char *__REDIRECT_NTH (__getcwd_alias, |
| 192 | 			 (char *__buf, size_t __size), getcwd) __wur; | 198 | 			 (char *__buf, size_t __size), getcwd) |
| 199 | __wur __attr_access ((__write_only__, 1, 2)); | ||
| 193 | extern char *__REDIRECT_NTH (__getcwd_chk_warn, | 200 | extern char *__REDIRECT_NTH (__getcwd_chk_warn, |
| 194 | 			 (char *__buf, size_t __size, size_t __buflen), | 201 | 			 (char *__buf, size_t __size, size_t __buflen), |
| 195 | 			 __getcwd_chk) | 202 | 			 __getcwd_chk) |
| ... | @@ -212,7 +219,7 @@ __NTH (getcwd (char *__buf, size_t __size)) | ... | @@ -212,7 +219,7 @@ __NTH (getcwd (char *__buf, size_t __size)) |
| 212 | 219 | ||
| 213 | #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED | 220 | #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED |
| 214 | extern char *__getwd_chk (char *__buf, size_t buflen) | 221 | extern char *__getwd_chk (char *__buf, size_t buflen) |
| 215 | __THROW __nonnull ((1)) __wur; | 222 | __THROW __nonnull ((1)) __wur __attr_access ((__write_only__, 1, 2)); |
| 216 | extern char *__REDIRECT_NTH (__getwd_warn, (char *__buf), getwd) | 223 | extern char *__REDIRECT_NTH (__getwd_warn, (char *__buf), getwd) |
| 217 | __nonnull ((1)) __wur __warnattr ("please use getcwd instead, as getwd " | 224 | __nonnull ((1)) __wur __warnattr ("please use getcwd instead, as getwd " |
| 218 | 				 "doesn't specify buffer size"); | 225 | 				 "doesn't specify buffer size"); |
| ... | @@ -227,9 +234,11 @@ __NTH (getwd (char *__buf)) | ... | @@ -227,9 +234,11 @@ __NTH (getwd (char *__buf)) |
| 227 | #endif | 234 | #endif |
| 228 | 235 | ||
| 229 | extern size_t __confstr_chk (int __name, char *__buf, size_t __len, | 236 | extern size_t __confstr_chk (int __name, char *__buf, size_t __len, |
| 230 | 			 size_t __buflen) __THROW; | 237 | 			 size_t __buflen) __THROW |
| 238 | __attr_access ((__write_only__, 2, 3)); | ||
| 231 | extern size_t __REDIRECT_NTH (__confstr_alias, (int __name, char *__buf, | 239 | extern size_t __REDIRECT_NTH (__confstr_alias, (int __name, char *__buf, |
| 232 | 						size_t __len), confstr); | 240 | 						size_t __len), confstr) |
| 241 | __attr_access ((__write_only__, 2, 3)); | ||
| 233 | extern size_t __REDIRECT_NTH (__confstr_chk_warn, | 242 | extern size_t __REDIRECT_NTH (__confstr_chk_warn, |
| 234 | 			 (int __name, char *__buf, size_t __len, | 243 | 			 (int __name, char *__buf, size_t __len, |
| 235 | 			 size_t __buflen), __confstr_chk) | 244 | 			 size_t __buflen), __confstr_chk) |
| ... | @@ -252,9 +261,9 @@ __NTH (confstr (int __name, char *__buf, size_t __len)) | ... | @@ -252,9 +261,9 @@ __NTH (confstr (int __name, char *__buf, size_t __len)) |
| 252 | 261 | ||
| 253 | 262 | ||
| 254 | extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen) | 263 | extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen) |
| 255 | __THROW __wur; | 264 | __THROW __wur __attr_access ((__write_only__, 2, 1)); |
| 256 | extern int __REDIRECT_NTH (__getgroups_alias, (int __size, __gid_t __list[]), | 265 | extern int __REDIRECT_NTH (__getgroups_alias, (int __size, __gid_t __list[]), |
| 257 | 			 getgroups) __wur; | 266 | 			 getgroups) __wur __attr_access ((__write_only__, 2, 1)); |
| 258 | extern int __REDIRECT_NTH (__getgroups_chk_warn, | 267 | extern int __REDIRECT_NTH (__getgroups_chk_warn, |
| 259 | 			 (int __size, __gid_t __list[], size_t __listlen), | 268 | 			 (int __size, __gid_t __list[], size_t __listlen), |
| 260 | 			 __getgroups_chk) | 269 | 			 __getgroups_chk) |
| ... | @@ -277,7 +286,8 @@ __NTH (getgroups (int __size, __gid_t __list[])) | ... | @@ -277,7 +286,8 @@ __NTH (getgroups (int __size, __gid_t __list[])) |
| 277 | 286 | ||
| 278 | 287 | ||
| 279 | extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen, | 288 | extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen, |
| 280 | 			 size_t __nreal) __THROW __nonnull ((2)); | 289 | 			 size_t __nreal) __THROW __nonnull ((2)) |
| 290 | __attr_access ((__write_only__, 2, 3)); | ||
| 281 | extern int __REDIRECT_NTH (__ttyname_r_alias, (int __fd, char *__buf, | 291 | extern int __REDIRECT_NTH (__ttyname_r_alias, (int __fd, char *__buf, |
| 282 | 					 size_t __buflen), ttyname_r) | 292 | 					 size_t __buflen), ttyname_r) |
| 283 | __nonnull ((2)); | 293 | __nonnull ((2)); |
| ... | @@ -304,7 +314,7 @@ __NTH (ttyname_r (int __fd, char *__buf, size_t __buflen)) | ... | @@ -304,7 +314,7 @@ __NTH (ttyname_r (int __fd, char *__buf, size_t __buflen)) |
| 304 | 314 | ||
| 305 | #ifdef __USE_POSIX199506 | 315 | #ifdef __USE_POSIX199506 |
| 306 | extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal) | 316 | extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal) |
| 307 | __nonnull ((1)); | 317 | __nonnull ((1)) __attr_access ((__write_only__, 1, 2)); |
| 308 | extern int __REDIRECT (__getlogin_r_alias, (char *__buf, size_t __buflen), | 318 | extern int __REDIRECT (__getlogin_r_alias, (char *__buf, size_t __buflen), |
| 309 | 		 getlogin_r) __nonnull ((1)); | 319 | 		 getlogin_r) __nonnull ((1)); |
| 310 | extern int __REDIRECT (__getlogin_r_chk_warn, | 320 | extern int __REDIRECT (__getlogin_r_chk_warn, |
| ... | @@ -331,9 +341,10 @@ getlogin_r (char *__buf, size_t __buflen) | ... | @@ -331,9 +341,10 @@ getlogin_r (char *__buf, size_t __buflen) |
| 331 | 341 | ||
| 332 | #if defined __USE_MISC || defined __USE_UNIX98 | 342 | #if defined __USE_MISC || defined __USE_UNIX98 |
| 333 | extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal) | 343 | extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal) |
| 334 | __THROW __nonnull ((1)); | 344 | __THROW __nonnull ((1)) __attr_access ((__write_only__, 1, 2)); |
| 335 | extern int __REDIRECT_NTH (__gethostname_alias, (char *__buf, size_t __buflen), | 345 | extern int __REDIRECT_NTH (__gethostname_alias, (char *__buf, size_t __buflen), |
| 336 | 			 gethostname) __nonnull ((1)); | 346 | 			 gethostname) |
| 347 | __nonnull ((1)) __attr_access ((__write_only__, 1, 2)); | ||
| 337 | extern int __REDIRECT_NTH (__gethostname_chk_warn, | 348 | extern int __REDIRECT_NTH (__gethostname_chk_warn, |
| 338 | 			 (char *__buf, size_t __buflen, size_t __nreal), | 349 | 			 (char *__buf, size_t __buflen, size_t __nreal), |
| 339 | 			 __gethostname_chk) | 350 | 			 __gethostname_chk) |
| ... | @@ -358,10 +369,11 @@ __NTH (gethostname (char *__buf, size_t __buflen)) | ... | @@ -358,10 +369,11 @@ __NTH (gethostname (char *__buf, size_t __buflen)) |
| 358 | 369 | ||
| 359 | #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_UNIX98) | 370 | #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_UNIX98) |
| 360 | extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal) | 371 | extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal) |
| 361 | __THROW __nonnull ((1)) __wur; | 372 | __THROW __nonnull ((1)) __wur __attr_access ((__write_only__, 1, 2)); |
| 362 | extern int __REDIRECT_NTH (__getdomainname_alias, (char *__buf, | 373 | extern int __REDIRECT_NTH (__getdomainname_alias, (char *__buf, |
| 363 | 						 size_t __buflen), | 374 | 						 size_t __buflen), |
| 364 | 			 getdomainname) __nonnull ((1)) __wur; | 375 | 			 getdomainname) __nonnull ((1)) |
| 376 | __wur __attr_access ((__write_only__, 1, 2)); | ||
| 365 | extern int __REDIRECT_NTH (__getdomainname_chk_warn, | 377 | extern int __REDIRECT_NTH (__getdomainname_chk_warn, |
| 366 | 			 (char *__buf, size_t __buflen, size_t __nreal), | 378 | 			 (char *__buf, size_t __buflen, size_t __nreal), |
| 367 | 			 __getdomainname_chk) | 379 | 			 __getdomainname_chk) |
lib/libc/include/generic-glibc/bits/wchar-ldbl.h+30-6| ... | @@ -28,9 +28,17 @@ __LDBL_REDIR_DECL (vfwprintf); | ... | @@ -28,9 +28,17 @@ __LDBL_REDIR_DECL (vfwprintf); |
| 28 | __LDBL_REDIR_DECL (vwprintf); | 28 | __LDBL_REDIR_DECL (vwprintf); |
| 29 | __LDBL_REDIR_DECL (vswprintf); | 29 | __LDBL_REDIR_DECL (vswprintf); |
| 30 | # if !__GLIBC_USE (DEPRECATED_SCANF) | 30 | # if !__GLIBC_USE (DEPRECATED_SCANF) |
| 31 | # if defined __LDBL_COMPAT | ||
| 31 | __LDBL_REDIR1_DECL (fwscanf, __nldbl___isoc99_fwscanf) | 32 | __LDBL_REDIR1_DECL (fwscanf, __nldbl___isoc99_fwscanf) |
| 32 | __LDBL_REDIR1_DECL (wscanf, __nldbl___isoc99_wscanf) | 33 | __LDBL_REDIR1_DECL (wscanf, __nldbl___isoc99_wscanf) |
| 33 | __LDBL_REDIR1_DECL (swscanf, __nldbl___isoc99_swscanf) | 34 | __LDBL_REDIR1_DECL (swscanf, __nldbl___isoc99_swscanf) |
| 35 | # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 36 | __LDBL_REDIR1_DECL (fwscanf, __isoc99_fwscanfieee128) | ||
| 37 | __LDBL_REDIR1_DECL (wscanf, __isoc99_wscanfieee128) | ||
| 38 | __LDBL_REDIR1_DECL (swscanf, __isoc99_swscanfieee128) | ||
| 39 | # else | ||
| 40 | # error bits/stdlib-ldbl.h included when no ldbl redirections are required. | ||
| 41 | # endif | ||
| 34 | # else | 42 | # else |
| 35 | __LDBL_REDIR_DECL (fwscanf); | 43 | __LDBL_REDIR_DECL (fwscanf); |
| 36 | __LDBL_REDIR_DECL (wscanf); | 44 | __LDBL_REDIR_DECL (wscanf); |
| ... | @@ -39,11 +47,23 @@ __LDBL_REDIR_DECL (swscanf); | ... | @@ -39,11 +47,23 @@ __LDBL_REDIR_DECL (swscanf); |
| 39 | #endif | 47 | #endif |
| 40 | 48 | ||
| 41 | #ifdef __USE_ISOC99 | 49 | #ifdef __USE_ISOC99 |
| 50 | # ifdef __LDBL_COMPAT | ||
| 42 | __LDBL_REDIR1_DECL (wcstold, wcstod); | 51 | __LDBL_REDIR1_DECL (wcstold, wcstod); |
| 52 | # else | ||
| 53 | __LDBL_REDIR1_DECL (wcstold, __wcstoieee128) | ||
| 54 | # endif | ||
| 43 | # if !__GLIBC_USE (DEPRECATED_SCANF) | 55 | # if !__GLIBC_USE (DEPRECATED_SCANF) |
| 56 | # if defined __LDBL_COMPAT | ||
| 44 | __LDBL_REDIR1_DECL (vfwscanf, __nldbl___isoc99_vfwscanf) | 57 | __LDBL_REDIR1_DECL (vfwscanf, __nldbl___isoc99_vfwscanf) |
| 45 | __LDBL_REDIR1_DECL (vwscanf, __nldbl___isoc99_vwscanf) | 58 | __LDBL_REDIR1_DECL (vwscanf, __nldbl___isoc99_vwscanf) |
| 46 | __LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc99_vswscanf) | 59 | __LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc99_vswscanf) |
| 60 | # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 61 | __LDBL_REDIR1_DECL (vfwscanf, __isoc99_vfwscanfieee128) | ||
| 62 | __LDBL_REDIR1_DECL (vwscanf, __isoc99_vwscanfieee128) | ||
| 63 | __LDBL_REDIR1_DECL (vswscanf, __isoc99_vswscanfieee128) | ||
| 64 | # else | ||
| 65 | # error bits/stdlib-ldbl.h included when no ldbl redirections are required. | ||
| 66 | # endif | ||
| 47 | # else | 67 | # else |
| 48 | __LDBL_REDIR_DECL (vfwscanf); | 68 | __LDBL_REDIR_DECL (vfwscanf); |
| 49 | __LDBL_REDIR_DECL (vwscanf); | 69 | __LDBL_REDIR_DECL (vwscanf); |
| ... | @@ -52,16 +72,20 @@ __LDBL_REDIR_DECL (vswscanf); | ... | @@ -52,16 +72,20 @@ __LDBL_REDIR_DECL (vswscanf); |
| 52 | #endif | 72 | #endif |
| 53 | 73 | ||
| 54 | #ifdef __USE_GNU | 74 | #ifdef __USE_GNU |
| 75 | # ifdef __LDBL_COMPAT | ||
| 55 | __LDBL_REDIR1_DECL (wcstold_l, wcstod_l); | 76 | __LDBL_REDIR1_DECL (wcstold_l, wcstod_l); |
| 77 | # else | ||
| 78 | __LDBL_REDIR1_DECL (wcstold_l, __wcstoieee128_l) | ||
| 79 | # endif | ||
| 56 | #endif | 80 | #endif |
| 57 | 81 | ||
| 58 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function | 82 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function |
| 59 | __LDBL_REDIR_DECL (__swprintf_chk) | 83 | __LDBL_REDIR2_DECL (swprintf_chk) |
| 60 | __LDBL_REDIR_DECL (__vswprintf_chk) | 84 | __LDBL_REDIR2_DECL (vswprintf_chk) |
| 61 | # if __USE_FORTIFY_LEVEL > 1 | 85 | # if __USE_FORTIFY_LEVEL > 1 |
| 62 | __LDBL_REDIR_DECL (__fwprintf_chk) | 86 | __LDBL_REDIR2_DECL (fwprintf_chk) |
| 63 | __LDBL_REDIR_DECL (__wprintf_chk) | 87 | __LDBL_REDIR2_DECL (wprintf_chk) |
| 64 | __LDBL_REDIR_DECL (__vfwprintf_chk) | 88 | __LDBL_REDIR2_DECL (vfwprintf_chk) |
| 65 | __LDBL_REDIR_DECL (__vwprintf_chk) | 89 | __LDBL_REDIR2_DECL (vwprintf_chk) |
| 66 | # endif | 90 | # endif |
| 67 | #endif | 91 | #endif |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/complex.h+27-2| ... | @@ -95,11 +95,15 @@ __BEGIN_DECLS | ... | @@ -95,11 +95,15 @@ __BEGIN_DECLS |
| 95 | 95 | ||
| 96 | #define __MATHCALL(function, args)	\ | 96 | #define __MATHCALL(function, args)	\ |
| 97 | __MATHDECL (_Mdouble_complex_,function, args) | 97 | __MATHDECL (_Mdouble_complex_,function, args) |
| 98 | #define __MATHDECL(type, function, args) \ | 98 | #define __MATHDECL_IMPL(type, function, args) \ |
| 99 | __MATHDECL_1(type, function, args); \ | 99 | __MATHDECL_1(type, function, args); \ |
| 100 | __MATHDECL_1(type, __CONCAT(__,function), args) | 100 | __MATHDECL_1(type, __CONCAT(__,function), args) |
| 101 | #define __MATHDECL_1(type, function, args) \ | 101 | #define __MATHDECL(type, function, args) \ |
| 102 | __MATHDECL_IMPL(type, function, args) | ||
| 103 | #define __MATHDECL_1_IMPL(type, function, args) \ | ||
| 102 | extern type __MATH_PRECNAME(function) args __THROW | 104 | extern type __MATH_PRECNAME(function) args __THROW |
| 105 | #define __MATHDECL_1(type, function, args) \ | ||
| 106 | __MATHDECL_1_IMPL(type, function, args) | ||
| 103 | 107 | ||
| 104 | #define _Mdouble_ 		double | 108 | #define _Mdouble_ 		double |
| 105 | #define __MATH_PRECNAME(name)	name | 109 | #define __MATH_PRECNAME(name)	name |
| ... | @@ -122,11 +126,31 @@ __BEGIN_DECLS | ... | @@ -122,11 +126,31 @@ __BEGIN_DECLS |
| 122 | # undef __MATHDECL_1 | 126 | # undef __MATHDECL_1 |
| 123 | # define __MATHDECL_1(type, function, args) \ | 127 | # define __MATHDECL_1(type, function, args) \ |
| 124 | extern type __REDIRECT_NTH(__MATH_PRECNAME(function), args, function) | 128 | extern type __REDIRECT_NTH(__MATH_PRECNAME(function), args, function) |
| 129 | # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 130 | # undef __MATHDECL_1 | ||
| 131 | # undef __MATHDECL | ||
| 132 | # define __REDIR_TO(function) \ | ||
| 133 | __ ## function ## ieee128 | ||
| 134 | # define __MATHDECL_1(type, function, alias, args) \ | ||
| 135 | extern type __REDIRECT_NTH(__MATH_PRECNAME(function), args, alias) | ||
| 136 | #define __MATHDECL(type, function, args) \ | ||
| 137 | __MATHDECL_1(type, function, __REDIR_TO(function), args); \ | ||
| 138 | __MATHDECL_1(type, __CONCAT(__,function), __REDIR_TO(function), args) | ||
| 125 | # endif | 139 | # endif |
| 126 | 140 | ||
| 127 | # define _Mdouble_ 		long double | 141 | # define _Mdouble_ 		long double |
| 128 | # define __MATH_PRECNAME(name)	name##l | 142 | # define __MATH_PRECNAME(name)	name##l |
| 129 | # include <bits/cmathcalls.h> | 143 | # include <bits/cmathcalls.h> |
| 144 | # if defined __LDBL_COMPAT \ | ||
| 145 | || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 146 | # undef __REDIR_TO | ||
| 147 | # undef __MATHDECL_1 | ||
| 148 | # undef __MATHDECL | ||
| 149 | #define __MATHDECL(type, function, args) \ | ||
| 150 | __MATHDECL_IMPL(type, function, args) | ||
| 151 | # define __MATHDECL_1(type, function, args) \ | ||
| 152 | __MATHDECL_1_IMPL(type, function, args) | ||
| 153 | # endif | ||
| 130 | #endif | 154 | #endif |
| 131 | #undef	_Mdouble_ | 155 | #undef	_Mdouble_ |
| 132 | #undef	__MATH_PRECNAME | 156 | #undef	__MATH_PRECNAME |
| ... | @@ -215,6 +239,7 @@ __BEGIN_DECLS | ... | @@ -215,6 +239,7 @@ __BEGIN_DECLS |
| 215 | # undef _Mdouble_complex_ | 239 | # undef _Mdouble_complex_ |
| 216 | #endif | 240 | #endif |
| 217 | 241 | ||
| 242 | #undef	__MATHDECL_1_IMPL | ||
| 218 | #undef	__MATHDECL_1 | 243 | #undef	__MATHDECL_1 |
| 219 | #undef	__MATHDECL | 244 | #undef	__MATHDECL |
| 220 | #undef	__MATHCALL | 245 | #undef	__MATHCALL |
lib/libc/include/generic-glibc/elf.h+78-2| ... | @@ -330,7 +330,7 @@ typedef struct | ... | @@ -330,7 +330,7 @@ typedef struct |
| 330 | #define EM_CLOUDSHIELD	192	/* CloudShield */ | 330 | #define EM_CLOUDSHIELD	192	/* CloudShield */ |
| 331 | #define EM_COREA_1ST	193	/* KIPO-KAIST Core-A 1st gen. */ | 331 | #define EM_COREA_1ST	193	/* KIPO-KAIST Core-A 1st gen. */ |
| 332 | #define EM_COREA_2ND	194	/* KIPO-KAIST Core-A 2nd gen. */ | 332 | #define EM_COREA_2ND	194	/* KIPO-KAIST Core-A 2nd gen. */ |
| 333 | #define EM_ARC_COMPACT2	195	/* Synopsys ARCompact V2 */ | 333 | #define EM_ARCV2	195	/* Synopsys ARCv2 ISA. */ |
| 334 | #define EM_OPEN8	196	/* Open8 RISC */ | 334 | #define EM_OPEN8	196	/* Open8 RISC */ |
| 335 | #define EM_RL78		197	/* Renesas RL78 */ | 335 | #define EM_RL78		197	/* Renesas RL78 */ |
| 336 | #define EM_VIDEOCORE5	198	/* Broadcom VideoCore V */ | 336 | #define EM_VIDEOCORE5	198	/* Broadcom VideoCore V */ |
| ... | @@ -721,6 +721,7 @@ typedef struct | ... | @@ -721,6 +721,7 @@ typedef struct |
| 721 | #define PT_GNU_EH_FRAME	0x6474e550	/* GCC .eh_frame_hdr segment */ | 721 | #define PT_GNU_EH_FRAME	0x6474e550	/* GCC .eh_frame_hdr segment */ |
| 722 | #define PT_GNU_STACK	0x6474e551	/* Indicates stack executability */ | 722 | #define PT_GNU_STACK	0x6474e551	/* Indicates stack executability */ |
| 723 | #define PT_GNU_RELRO	0x6474e552	/* Read-only after relocation */ | 723 | #define PT_GNU_RELRO	0x6474e552	/* Read-only after relocation */ |
| 724 | #define PT_GNU_PROPERTY	0x6474e553	/* GNU property */ | ||
| 724 | #define PT_LOSUNW	0x6ffffffa | 725 | #define PT_LOSUNW	0x6ffffffa |
| 725 | #define PT_SUNWBSS	0x6ffffffa	/* Sun Specific segment */ | 726 | #define PT_SUNWBSS	0x6ffffffa	/* Sun Specific segment */ |
| 726 | #define PT_SUNWSTACK	0x6ffffffb	/* Stack segment */ | 727 | #define PT_SUNWSTACK	0x6ffffffb	/* Stack segment */ |
| ... | @@ -1318,6 +1319,12 @@ typedef struct | ... | @@ -1318,6 +1319,12 @@ typedef struct |
| 1318 | /* Application-specific semantics, hi */ | 1319 | /* Application-specific semantics, hi */ |
| 1319 | #define GNU_PROPERTY_HIUSER			0xffffffff | 1320 | #define GNU_PROPERTY_HIUSER			0xffffffff |
| 1320 | 1321 | ||
| 1322 | /* AArch64 specific GNU properties. */ | ||
| 1323 | #define GNU_PROPERTY_AARCH64_FEATURE_1_AND	0xc0000000 | ||
| 1324 | |||
| 1325 | #define GNU_PROPERTY_AARCH64_FEATURE_1_BTI	(1U << 0) | ||
| 1326 | #define GNU_PROPERTY_AARCH64_FEATURE_1_PAC	(1U << 1) | ||
| 1327 | |||
| 1321 | /* The x86 instruction sets indicated by the corresponding bits are | 1328 | /* The x86 instruction sets indicated by the corresponding bits are |
| 1322 | used in program. Their support in the hardware is optional. */ | 1329 | used in program. Their support in the hardware is optional. */ |
| 1323 | #define GNU_PROPERTY_X86_ISA_1_USED		0xc0000000 | 1330 | #define GNU_PROPERTY_X86_ISA_1_USED		0xc0000000 |
| ... | @@ -3946,8 +3953,9 @@ enum | ... | @@ -3946,8 +3953,9 @@ enum |
| 3946 | #define R_RISCV_SET16		55 | 3953 | #define R_RISCV_SET16		55 |
| 3947 | #define R_RISCV_SET32		56 | 3954 | #define R_RISCV_SET32		56 |
| 3948 | #define R_RISCV_32_PCREL	57 | 3955 | #define R_RISCV_32_PCREL	57 |
| 3956 | #define R_RISCV_IRELATIVE	58 | ||
| 3949 | 3957 | ||
| 3950 | #define R_RISCV_NUM		58 | 3958 | #define R_RISCV_NUM		59 |
| 3951 | 3959 | ||
| 3952 | /* BPF specific declarations. */ | 3960 | /* BPF specific declarations. */ |
| 3953 | 3961 | ||
| ... | @@ -4027,6 +4035,74 @@ enum | ... | @@ -4027,6 +4035,74 @@ enum |
| 4027 | #define R_NDS32_TLS_TPOFF	102 | 4035 | #define R_NDS32_TLS_TPOFF	102 |
| 4028 | #define R_NDS32_TLS_DESC	119 | 4036 | #define R_NDS32_TLS_DESC	119 |
| 4029 | 4037 | ||
| 4038 | /* ARCompact/ARCv2 specific relocs. */ | ||
| 4039 | #define R_ARC_NONE		0x0 | ||
| 4040 | #define R_ARC_8			0x1 | ||
| 4041 | #define R_ARC_16		0x2 | ||
| 4042 | #define R_ARC_24		0x3 | ||
| 4043 | #define R_ARC_32		0x4 | ||
| 4044 | #define R_ARC_B26		0x5 | ||
| 4045 | #define R_ARC_B22_PCREL		0x6 | ||
| 4046 | #define R_ARC_H30		0x7 | ||
| 4047 | #define R_ARC_N8		0x8 | ||
| 4048 | #define R_ARC_N16		0x9 | ||
| 4049 | #define R_ARC_N24		0xA | ||
| 4050 | #define R_ARC_N32		0xB | ||
| 4051 | #define R_ARC_SDA		0xC | ||
| 4052 | #define R_ARC_SECTOFF		0xD | ||
| 4053 | #define R_ARC_S21H_PCREL	0xE | ||
| 4054 | #define R_ARC_S21W_PCREL	0xF | ||
| 4055 | #define R_ARC_S25H_PCREL	0x10 | ||
| 4056 | #define R_ARC_S25W_PCREL	0x11 | ||
| 4057 | #define R_ARC_SDA32		0x12 | ||
| 4058 | #define R_ARC_SDA_LDST		0x13 | ||
| 4059 | #define R_ARC_SDA_LDST1		0x14 | ||
| 4060 | #define R_ARC_SDA_LDST2		0x15 | ||
| 4061 | #define R_ARC_SDA16_LD		0x16 | ||
| 4062 | #define R_ARC_SDA16_LD1		0x17 | ||
| 4063 | #define R_ARC_SDA16_LD2		0x18 | ||
| 4064 | #define R_ARC_S13_PCREL		0x19 | ||
| 4065 | #define R_ARC_W			0x1A | ||
| 4066 | #define R_ARC_32_ME		0x1B | ||
| 4067 | #define R_ARC_N32_ME		0x1C | ||
| 4068 | #define R_ARC_SECTOFF_ME	0x1D | ||
| 4069 | #define R_ARC_SDA32_ME		0x1E | ||
| 4070 | #define R_ARC_W_ME		0x1F | ||
| 4071 | #define R_ARC_H30_ME		0x20 | ||
| 4072 | #define R_ARC_SECTOFF_U8	0x21 | ||
| 4073 | #define R_ARC_SECTOFF_S9	0x22 | ||
| 4074 | #define R_AC_SECTOFF_U8		0x23 | ||
| 4075 | #define R_AC_SECTOFF_U8_1	0x24 | ||
| 4076 | #define R_AC_SECTOFF_U8_2	0x25 | ||
| 4077 | #define R_AC_SECTOFF_S9		0x26 | ||
| 4078 | #define R_AC_SECTOFF_S9_1	0x27 | ||
| 4079 | #define R_AC_SECTOFF_S9_2	0x28 | ||
| 4080 | #define R_ARC_SECTOFF_ME_1	0x29 | ||
| 4081 | #define R_ARC_SECTOFF_ME_2	0x2A | ||
| 4082 | #define R_ARC_SECTOFF_1		0x2B | ||
| 4083 | #define R_ARC_SECTOFF_2		0x2C | ||
| 4084 | #define R_ARC_PC32		0x32 | ||
| 4085 | #define R_ARC_GOTPC32		0x33 | ||
| 4086 | #define R_ARC_PLT32		0x34 | ||
| 4087 | #define R_ARC_COPY		0x35 | ||
| 4088 | #define R_ARC_GLOB_DAT		0x36 | ||
| 4089 | #define R_ARC_JUMP_SLOT		0x37 | ||
| 4090 | #define R_ARC_RELATIVE		0x38 | ||
| 4091 | #define R_ARC_GOTOFF		0x39 | ||
| 4092 | #define R_ARC_GOTPC		0x3A | ||
| 4093 | #define R_ARC_GOT32		0x3B | ||
| 4094 | |||
| 4095 | #define R_ARC_TLS_DTPMOD	0x42 | ||
| 4096 | #define R_ARC_TLS_DTPOFF	0x43 | ||
| 4097 | #define R_ARC_TLS_TPOFF		0x44 | ||
| 4098 | #define R_ARC_TLS_GD_GOT	0x45 | ||
| 4099 | #define R_ARC_TLS_GD_LD	 0x46 | ||
| 4100 | #define R_ARC_TLS_GD_CALL	0x47 | ||
| 4101 | #define R_ARC_TLS_IE_GOT	0x48 | ||
| 4102 | #define R_ARC_TLS_DTPOFF_S9	0x4a | ||
| 4103 | #define R_ARC_TLS_LE_S9		0x4a | ||
| 4104 | #define R_ARC_TLS_LE_32		0x4b | ||
| 4105 | |||
| 4030 | __END_DECLS | 4106 | __END_DECLS |
| 4031 | 4107 | ||
| 4032 | #endif	/* elf.h */ | 4108 | #endif	/* elf.h */ |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/err.h+2-1| ... | @@ -52,7 +52,8 @@ extern void errx (int __status, const char *__format, ...) | ... | @@ -52,7 +52,8 @@ extern void errx (int __status, const char *__format, ...) |
| 52 | extern void verrx (int __status, const char *, __gnuc_va_list) | 52 | extern void verrx (int __status, const char *, __gnuc_va_list) |
| 53 | __attribute__ ((__noreturn__, __format__ (__printf__, 2, 0))); | 53 | __attribute__ ((__noreturn__, __format__ (__printf__, 2, 0))); |
| 54 | 54 | ||
| 55 | #ifdef __LDBL_COMPAT | 55 | #include <bits/floatn.h> |
| 56 | #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 56 | # include <bits/err-ldbl.h> | 57 | # include <bits/err-ldbl.h> |
| 57 | #endif | 58 | #endif |
| 58 | 59 |
lib/libc/include/generic-glibc/error.h+4-2| ... | @@ -47,11 +47,13 @@ extern unsigned int error_message_count; | ... | @@ -47,11 +47,13 @@ extern unsigned int error_message_count; |
| 47 | variable controls whether this mode is selected or not. */ | 47 | variable controls whether this mode is selected or not. */ |
| 48 | extern int error_one_per_line; | 48 | extern int error_one_per_line; |
| 49 | 49 | ||
| 50 | #ifdef __LDBL_COMPAT | 50 | #include <bits/floatn.h> |
| 51 | #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 51 | # include <bits/error-ldbl.h> | 52 | # include <bits/error-ldbl.h> |
| 52 | #else | 53 | #else |
| 53 | /* Do not inline error and error_at_line when long double has the same | 54 | /* Do not inline error and error_at_line when long double has the same |
| 54 | size of double, because that would invalidate the redirections to the | 55 | size of double, nor when long double reuses the float128 |
| 56 | implementation, because that would invalidate the redirections to the | ||
| 55 | compatibility functions. */ | 57 | compatibility functions. */ |
| 56 | # if defined __extern_always_inline && defined __va_arg_pack | 58 | # if defined __extern_always_inline && defined __va_arg_pack |
| 57 | # include <bits/error.h> | 59 | # include <bits/error.h> |
lib/libc/include/generic-glibc/features.h+1-1| ... | @@ -454,7 +454,7 @@ | ... | @@ -454,7 +454,7 @@ |
| 454 | /* Major and minor version number of the GNU C library package. Use | 454 | /* Major and minor version number of the GNU C library package. Use |
| 455 | these macros to test for features in specific releases. */ | 455 | these macros to test for features in specific releases. */ |
| 456 | #define	__GLIBC__	2 | 456 | #define	__GLIBC__	2 |
| 457 | #define	__GLIBC_MINOR__	31 | 457 | #define	__GLIBC_MINOR__	32 |
| 458 | 458 | ||
| 459 | #define __GLIBC_PREREQ(maj, min) \ | 459 | #define __GLIBC_PREREQ(maj, min) \ |
| 460 | 	((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) | 460 | 	((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) |
lib/libc/include/generic-glibc/fenv.h-4| ... | @@ -140,10 +140,6 @@ extern int fegetmode (femode_t *__modep) __THROW; | ... | @@ -140,10 +140,6 @@ extern int fegetmode (femode_t *__modep) __THROW; |
| 140 | extern int fesetmode (const femode_t *__modep) __THROW; | 140 | extern int fesetmode (const femode_t *__modep) __THROW; |
| 141 | #endif | 141 | #endif |
| 142 | 142 | ||
| 143 | /* Include optimization. */ | ||
| 144 | #ifdef __OPTIMIZE__ | ||
| 145 | # include <bits/fenvinline.h> | ||
| 146 | #endif | ||
| 147 | 143 | ||
| 148 | /* NaN support. */ | 144 | /* NaN support. */ |
| 149 | 145 |
lib/libc/include/generic-glibc/gnu/lib-names-32.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/generic-glibc/gnu/lib-names-hard.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/generic-glibc/gnu/lib-names-n32_hard.h-2| ... | @@ -19,8 +19,6 @@ | ... | @@ -19,8 +19,6 @@ |
| 19 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 19 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 20 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 20 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 21 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 21 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 22 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 23 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 24 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 22 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 25 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 23 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 26 | #define LIBPTHREAD_SO "libpthread.so.0" | 24 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/generic-glibc/gnu/lib-names-n64_hard.h-2| ... | @@ -19,8 +19,6 @@ | ... | @@ -19,8 +19,6 @@ |
| 19 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 19 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 20 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 20 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 21 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 21 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 22 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 23 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 24 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 22 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 25 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 23 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 26 | #define LIBPTHREAD_SO "libpthread.so.0" | 24 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/generic-glibc/gnu/lib-names-o32_hard.h-2| ... | @@ -19,8 +19,6 @@ | ... | @@ -19,8 +19,6 @@ |
| 19 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 19 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 20 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 20 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 21 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 21 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 22 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 23 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 24 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 22 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 25 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 23 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 26 | #define LIBPTHREAD_SO "libpthread.so.0" | 24 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/generic-glibc/gnu/lib-names-soft.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/generic-glibc/gnu/stubs-32.h-2| ... | @@ -10,9 +10,7 @@ | ... | @@ -10,9 +10,7 @@ |
| 10 | #define __stub_chflags | 10 | #define __stub_chflags |
| 11 | #define __stub_fchflags | 11 | #define __stub_fchflags |
| 12 | #define __stub_gtty | 12 | #define __stub_gtty |
| 13 | #define __stub_lchmod | ||
| 14 | #define __stub_revoke | 13 | #define __stub_revoke |
| 15 | #define __stub_setlogin | 14 | #define __stub_setlogin |
| 16 | #define __stub_sigreturn | 15 | #define __stub_sigreturn |
| 17 | #define __stub_sstk | ||
| 18 | #define __stub_stty | 16 | #define __stub_stty |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/gnu/stubs-64.h-2| ... | @@ -10,9 +10,7 @@ | ... | @@ -10,9 +10,7 @@ |
| 10 | #define __stub_chflags | 10 | #define __stub_chflags |
| 11 | #define __stub_fchflags | 11 | #define __stub_fchflags |
| 12 | #define __stub_gtty | 12 | #define __stub_gtty |
| 13 | #define __stub_lchmod | ||
| 14 | #define __stub_revoke | 13 | #define __stub_revoke |
| 15 | #define __stub_setlogin | 14 | #define __stub_setlogin |
| 16 | #define __stub_sigreturn | 15 | #define __stub_sigreturn |
| 17 | #define __stub_sstk | ||
| 18 | #define __stub_stty | 16 | #define __stub_stty |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/gnu/stubs-hard.h-2| ... | @@ -13,9 +13,7 @@ | ... | @@ -13,9 +13,7 @@ |
| 13 | #define __stub_chflags | 13 | #define __stub_chflags |
| 14 | #define __stub_fchflags | 14 | #define __stub_fchflags |
| 15 | #define __stub_gtty | 15 | #define __stub_gtty |
| 16 | #define __stub_lchmod | ||
| 17 | #define __stub_revoke | 16 | #define __stub_revoke |
| 18 | #define __stub_setlogin | 17 | #define __stub_setlogin |
| 19 | #define __stub_sigreturn | 18 | #define __stub_sigreturn |
| 20 | #define __stub_sstk | ||
| 21 | #define __stub_stty | 19 | #define __stub_stty |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/gnu/stubs-n32_hard.h-2| ... | @@ -12,9 +12,7 @@ | ... | @@ -12,9 +12,7 @@ |
| 12 | #define __stub_chflags | 12 | #define __stub_chflags |
| 13 | #define __stub_fchflags | 13 | #define __stub_fchflags |
| 14 | #define __stub_gtty | 14 | #define __stub_gtty |
| 15 | #define __stub_lchmod | ||
| 16 | #define __stub_revoke | 15 | #define __stub_revoke |
| 17 | #define __stub_setlogin | 16 | #define __stub_setlogin |
| 18 | #define __stub_sigreturn | 17 | #define __stub_sigreturn |
| 19 | #define __stub_sstk | ||
| 20 | #define __stub_stty | 18 | #define __stub_stty |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/gnu/stubs-n64_hard.h-2| ... | @@ -12,9 +12,7 @@ | ... | @@ -12,9 +12,7 @@ |
| 12 | #define __stub_chflags | 12 | #define __stub_chflags |
| 13 | #define __stub_fchflags | 13 | #define __stub_fchflags |
| 14 | #define __stub_gtty | 14 | #define __stub_gtty |
| 15 | #define __stub_lchmod | ||
| 16 | #define __stub_revoke | 15 | #define __stub_revoke |
| 17 | #define __stub_setlogin | 16 | #define __stub_setlogin |
| 18 | #define __stub_sigreturn | 17 | #define __stub_sigreturn |
| 19 | #define __stub_sstk | ||
| 20 | #define __stub_stty | 18 | #define __stub_stty |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/gnu/stubs-o32_hard.h-2| ... | @@ -10,9 +10,7 @@ | ... | @@ -10,9 +10,7 @@ |
| 10 | #define __stub_chflags | 10 | #define __stub_chflags |
| 11 | #define __stub_fchflags | 11 | #define __stub_fchflags |
| 12 | #define __stub_gtty | 12 | #define __stub_gtty |
| 13 | #define __stub_lchmod | ||
| 14 | #define __stub_revoke | 13 | #define __stub_revoke |
| 15 | #define __stub_setlogin | 14 | #define __stub_setlogin |
| 16 | #define __stub_sigreturn | 15 | #define __stub_sigreturn |
| 17 | #define __stub_sstk | ||
| 18 | #define __stub_stty | 16 | #define __stub_stty |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/gnu/stubs-soft.h-2| ... | @@ -13,9 +13,7 @@ | ... | @@ -13,9 +13,7 @@ |
| 13 | #define __stub_chflags | 13 | #define __stub_chflags |
| 14 | #define __stub_fchflags | 14 | #define __stub_fchflags |
| 15 | #define __stub_gtty | 15 | #define __stub_gtty |
| 16 | #define __stub_lchmod | ||
| 17 | #define __stub_revoke | 16 | #define __stub_revoke |
| 18 | #define __stub_setlogin | 17 | #define __stub_setlogin |
| 19 | #define __stub_sigreturn | 18 | #define __stub_sigreturn |
| 20 | #define __stub_sstk | ||
| 21 | #define __stub_stty | 19 | #define __stub_stty |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/inttypes.h+24-24| ... | @@ -321,10 +321,10 @@ extern long int __strtol_internal (const char *__restrict __nptr, | ... | @@ -321,10 +321,10 @@ extern long int __strtol_internal (const char *__restrict __nptr, |
| 321 | __THROW __nonnull ((1)) __wur; | 321 | __THROW __nonnull ((1)) __wur; |
| 322 | /* Like `strtol' but convert to `intmax_t'. */ | 322 | /* Like `strtol' but convert to `intmax_t'. */ |
| 323 | __extern_inline intmax_t | 323 | __extern_inline intmax_t |
| 324 | __NTH (strtoimax (const char *__restrict nptr, char **__restrict endptr, | 324 | __NTH (strtoimax (const char *__restrict __nptr, char **__restrict __endptr, |
| 325 | 		 int base)) | 325 | 		 int __base)) |
| 326 | { | 326 | { |
| 327 | return __strtol_internal (nptr, endptr, base, 0); | 327 | return __strtol_internal (__nptr, __endptr, __base, 0); |
| 328 | } | 328 | } |
| 329 | 329 | ||
| 330 | extern unsigned long int __strtoul_internal (const char *__restrict __nptr, | 330 | extern unsigned long int __strtoul_internal (const char *__restrict __nptr, |
| ... | @@ -333,10 +333,10 @@ extern unsigned long int __strtoul_internal (const char *__restrict __nptr, | ... | @@ -333,10 +333,10 @@ extern unsigned long int __strtoul_internal (const char *__restrict __nptr, |
| 333 | __THROW __nonnull ((1)) __wur; | 333 | __THROW __nonnull ((1)) __wur; |
| 334 | /* Like `strtoul' but convert to `uintmax_t'. */ | 334 | /* Like `strtoul' but convert to `uintmax_t'. */ |
| 335 | __extern_inline uintmax_t | 335 | __extern_inline uintmax_t |
| 336 | __NTH (strtoumax (const char *__restrict nptr, char **__restrict endptr, | 336 | __NTH (strtoumax (const char *__restrict __nptr, char **__restrict __endptr, |
| 337 | 		 int base)) | 337 | 		 int __base)) |
| 338 | { | 338 | { |
| 339 | return __strtoul_internal (nptr, endptr, base, 0); | 339 | return __strtoul_internal (__nptr, __endptr, __base, 0); |
| 340 | } | 340 | } |
| 341 | 341 | ||
| 342 | extern long int __wcstol_internal (const __gwchar_t * __restrict __nptr, | 342 | extern long int __wcstol_internal (const __gwchar_t * __restrict __nptr, |
| ... | @@ -345,10 +345,10 @@ extern long int __wcstol_internal (const __gwchar_t * __restrict __nptr, | ... | @@ -345,10 +345,10 @@ extern long int __wcstol_internal (const __gwchar_t * __restrict __nptr, |
| 345 | __THROW __nonnull ((1)) __wur; | 345 | __THROW __nonnull ((1)) __wur; |
| 346 | /* Like `wcstol' but convert to `intmax_t'. */ | 346 | /* Like `wcstol' but convert to `intmax_t'. */ |
| 347 | __extern_inline intmax_t | 347 | __extern_inline intmax_t |
| 348 | __NTH (wcstoimax (const __gwchar_t *__restrict nptr, | 348 | __NTH (wcstoimax (const __gwchar_t *__restrict __nptr, |
| 349 | 		 __gwchar_t **__restrict endptr, int base)) | 349 | 		 __gwchar_t **__restrict __endptr, int __base)) |
| 350 | { | 350 | { |
| 351 | return __wcstol_internal (nptr, endptr, base, 0); | 351 | return __wcstol_internal (__nptr, __endptr, __base, 0); |
| 352 | } | 352 | } |
| 353 | 353 | ||
| 354 | extern unsigned long int __wcstoul_internal (const __gwchar_t * | 354 | extern unsigned long int __wcstoul_internal (const __gwchar_t * |
| ... | @@ -359,10 +359,10 @@ extern unsigned long int __wcstoul_internal (const __gwchar_t * | ... | @@ -359,10 +359,10 @@ extern unsigned long int __wcstoul_internal (const __gwchar_t * |
| 359 | __THROW __nonnull ((1)) __wur; | 359 | __THROW __nonnull ((1)) __wur; |
| 360 | /* Like `wcstoul' but convert to `uintmax_t'. */ | 360 | /* Like `wcstoul' but convert to `uintmax_t'. */ |
| 361 | __extern_inline uintmax_t | 361 | __extern_inline uintmax_t |
| 362 | __NTH (wcstoumax (const __gwchar_t *__restrict nptr, | 362 | __NTH (wcstoumax (const __gwchar_t *__restrict __nptr, |
| 363 | 		 __gwchar_t **__restrict endptr, int base)) | 363 | 		 __gwchar_t **__restrict __endptr, int __base)) |
| 364 | { | 364 | { |
| 365 | return __wcstoul_internal (nptr, endptr, base, 0); | 365 | return __wcstoul_internal (__nptr, __endptr, __base, 0); |
| 366 | } | 366 | } |
| 367 | 367 | ||
| 368 | # else /* __WORDSIZE == 32 */ | 368 | # else /* __WORDSIZE == 32 */ |
| ... | @@ -374,10 +374,10 @@ extern long long int __strtoll_internal (const char *__restrict __nptr, | ... | @@ -374,10 +374,10 @@ extern long long int __strtoll_internal (const char *__restrict __nptr, |
| 374 | __THROW __nonnull ((1)) __wur; | 374 | __THROW __nonnull ((1)) __wur; |
| 375 | /* Like `strtol' but convert to `intmax_t'. */ | 375 | /* Like `strtol' but convert to `intmax_t'. */ |
| 376 | __extern_inline intmax_t | 376 | __extern_inline intmax_t |
| 377 | __NTH (strtoimax (const char *__restrict nptr, char **__restrict endptr, | 377 | __NTH (strtoimax (const char *__restrict __nptr, char **__restrict __endptr, |
| 378 | 		 int base)) | 378 | 		 int __base)) |
| 379 | { | 379 | { |
| 380 | return __strtoll_internal (nptr, endptr, base, 0); | 380 | return __strtoll_internal (__nptr, __endptr, __base, 0); |
| 381 | } | 381 | } |
| 382 | 382 | ||
| 383 | __extension__ | 383 | __extension__ |
| ... | @@ -390,10 +390,10 @@ extern unsigned long long int __strtoull_internal (const char * | ... | @@ -390,10 +390,10 @@ extern unsigned long long int __strtoull_internal (const char * |
| 390 | __THROW __nonnull ((1)) __wur; | 390 | __THROW __nonnull ((1)) __wur; |
| 391 | /* Like `strtoul' but convert to `uintmax_t'. */ | 391 | /* Like `strtoul' but convert to `uintmax_t'. */ |
| 392 | __extern_inline uintmax_t | 392 | __extern_inline uintmax_t |
| 393 | __NTH (strtoumax (const char *__restrict nptr, char **__restrict endptr, | 393 | __NTH (strtoumax (const char *__restrict __nptr, char **__restrict __endptr, |
| 394 | 		 int base)) | 394 | 		 int __base)) |
| 395 | { | 395 | { |
| 396 | return __strtoull_internal (nptr, endptr, base, 0); | 396 | return __strtoull_internal (__nptr, __endptr, __base, 0); |
| 397 | } | 397 | } |
| 398 | 398 | ||
| 399 | __extension__ | 399 | __extension__ |
| ... | @@ -403,10 +403,10 @@ extern long long int __wcstoll_internal (const __gwchar_t *__restrict __nptr, | ... | @@ -403,10 +403,10 @@ extern long long int __wcstoll_internal (const __gwchar_t *__restrict __nptr, |
| 403 | __THROW __nonnull ((1)) __wur; | 403 | __THROW __nonnull ((1)) __wur; |
| 404 | /* Like `wcstol' but convert to `intmax_t'. */ | 404 | /* Like `wcstol' but convert to `intmax_t'. */ |
| 405 | __extern_inline intmax_t | 405 | __extern_inline intmax_t |
| 406 | __NTH (wcstoimax (const __gwchar_t *__restrict nptr, | 406 | __NTH (wcstoimax (const __gwchar_t *__restrict __nptr, |
| 407 | 		 __gwchar_t **__restrict endptr, int base)) | 407 | 		 __gwchar_t **__restrict __endptr, int __base)) |
| 408 | { | 408 | { |
| 409 | return __wcstoll_internal (nptr, endptr, base, 0); | 409 | return __wcstoll_internal (__nptr, __endptr, __base, 0); |
| 410 | } | 410 | } |
| 411 | 411 | ||
| 412 | 412 | ||
| ... | @@ -420,10 +420,10 @@ extern unsigned long long int __wcstoull_internal (const __gwchar_t * | ... | @@ -420,10 +420,10 @@ extern unsigned long long int __wcstoull_internal (const __gwchar_t * |
| 420 | __THROW __nonnull ((1)) __wur; | 420 | __THROW __nonnull ((1)) __wur; |
| 421 | /* Like `wcstoul' but convert to `uintmax_t'. */ | 421 | /* Like `wcstoul' but convert to `uintmax_t'. */ |
| 422 | __extern_inline uintmax_t | 422 | __extern_inline uintmax_t |
| 423 | __NTH (wcstoumax (const __gwchar_t *__restrict nptr, | 423 | __NTH (wcstoumax (const __gwchar_t *__restrict __nptr, |
| 424 | 		 __gwchar_t **__restrict endptr, int base)) | 424 | 		 __gwchar_t **__restrict __endptr, int __base)) |
| 425 | { | 425 | { |
| 426 | return __wcstoull_internal (nptr, endptr, base, 0); | 426 | return __wcstoull_internal (__nptr, __endptr, __base, 0); |
| 427 | } | 427 | } |
| 428 | 428 | ||
| 429 | # endif	/* __WORDSIZE == 32	*/ | 429 | # endif	/* __WORDSIZE == 32	*/ |
lib/libc/include/generic-glibc/malloc.h+4-3| ... | @@ -75,11 +75,11 @@ extern void *pvalloc (size_t __size) __THROW __attribute_malloc__ __wur; | ... | @@ -75,11 +75,11 @@ extern void *pvalloc (size_t __size) __THROW __attribute_malloc__ __wur; |
| 75 | 75 | ||
| 76 | /* Underlying allocation function; successive calls should return | 76 | /* Underlying allocation function; successive calls should return |
| 77 | contiguous pieces of memory. */ | 77 | contiguous pieces of memory. */ |
| 78 | extern void *(*__morecore) (ptrdiff_t __size); | 78 | extern void *(*__morecore) (ptrdiff_t __size) __MALLOC_DEPRECATED; |
| 79 | 79 | ||
| 80 | /* Default value of `__morecore'. */ | 80 | /* Default value of `__morecore'. */ |
| 81 | extern void *__default_morecore (ptrdiff_t __size) | 81 | extern void *__default_morecore (ptrdiff_t __size) |
| 82 | __THROW __attribute_malloc__; | 82 | __THROW __attribute_malloc__ __MALLOC_DEPRECATED; |
| 83 | 83 | ||
| 84 | /* SVID2/XPG mallinfo structure */ | 84 | /* SVID2/XPG mallinfo structure */ |
| 85 | 85 | ||
| ... | @@ -156,7 +156,8 @@ extern void *(*__MALLOC_HOOK_VOLATILE __memalign_hook)(size_t __alignment, | ... | @@ -156,7 +156,8 @@ extern void *(*__MALLOC_HOOK_VOLATILE __memalign_hook)(size_t __alignment, |
| 156 | size_t __size, | 156 | size_t __size, |
| 157 | const void *) | 157 | const void *) |
| 158 | __MALLOC_DEPRECATED; | 158 | __MALLOC_DEPRECATED; |
| 159 | extern void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void); | 159 | extern void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void) |
| 160 | __MALLOC_DEPRECATED; | ||
| 160 | 161 | ||
| 161 | 162 | ||
| 162 | __END_DECLS | 163 | __END_DECLS |
lib/libc/include/generic-glibc/math.h+68-20| ... | @@ -279,8 +279,17 @@ enum | ... | @@ -279,8 +279,17 @@ enum |
| 279 | #define __MATHDECLX(type, function,suffix, args, attrib) \ | 279 | #define __MATHDECLX(type, function,suffix, args, attrib) \ |
| 280 | __MATHDECL_1(type, function,suffix, args) __attribute__ (attrib); \ | 280 | __MATHDECL_1(type, function,suffix, args) __attribute__ (attrib); \ |
| 281 | __MATHDECL_1(type, __CONCAT(__,function),suffix, args) __attribute__ (attrib) | 281 | __MATHDECL_1(type, __CONCAT(__,function),suffix, args) __attribute__ (attrib) |
| 282 | #define __MATHDECL_1(type, function,suffix, args) \ | 282 | #define __MATHDECL_1_IMPL(type, function, suffix, args) \ |
| 283 | extern type __MATH_PRECNAME(function,suffix) args __THROW | 283 | extern type __MATH_PRECNAME(function,suffix) args __THROW |
| 284 | #define __MATHDECL_1(type, function, suffix, args) \ | ||
| 285 | __MATHDECL_1_IMPL(type, function, suffix, args) | ||
| 286 | /* Ignore the alias by default. The alias is only useful with | ||
| 287 | redirections. */ | ||
| 288 | #define __MATHDECL_ALIAS(type, function, suffix, args, alias) \ | ||
| 289 | __MATHDECL_1(type, function, suffix, args) | ||
| 290 | |||
| 291 | #define __MATHREDIR(type, function, suffix, args, to) \ | ||
| 292 | extern type __REDIRECT_NTH (__MATH_PRECNAME (function, suffix), args, to) | ||
| 284 | 293 | ||
| 285 | #define _Mdouble_		double | 294 | #define _Mdouble_		double |
| 286 | #define __MATH_PRECNAME(name,r)	__CONCAT(name,r) | 295 | #define __MATH_PRECNAME(name,r)	__CONCAT(name,r) |
| ... | @@ -331,11 +340,37 @@ extern long double __REDIRECT_NTH (nexttowardl, | ... | @@ -331,11 +340,37 @@ extern long double __REDIRECT_NTH (nexttowardl, |
| 331 | # endif | 340 | # endif |
| 332 | 341 | ||
| 333 | # undef __MATHDECL_1 | 342 | # undef __MATHDECL_1 |
| 334 | # define __MATHDECL_2(type, function,suffix, args, alias) \ | ||
| 335 | extern type __REDIRECT_NTH(__MATH_PRECNAME(function,suffix), \ | ||
| 336 | 			 args, alias) | ||
| 337 | # define __MATHDECL_1(type, function,suffix, args) \ | 343 | # define __MATHDECL_1(type, function,suffix, args) \ |
| 338 | __MATHDECL_2(type, function,suffix, args, __CONCAT(function,suffix)) | 344 | __MATHREDIR(type, function, suffix, args, __CONCAT(function,suffix)) |
| 345 | |||
| 346 | # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 347 | # ifdef __REDIRECT_NTH | ||
| 348 | # ifdef __USE_ISOC99 | ||
| 349 | extern float __REDIRECT_NTH (nexttowardf, (float __x, long double __y), | ||
| 350 | 			 __nexttowardf_to_ieee128) | ||
| 351 | __attribute__ ((__const__)); | ||
| 352 | extern double __REDIRECT_NTH (nexttoward, (double __x, long double __y), | ||
| 353 | 			 __nexttoward_to_ieee128) | ||
| 354 | __attribute__ ((__const__)); | ||
| 355 | |||
| 356 | #define __dremieee128 __remainderieee128 | ||
| 357 | #define __gammaieee128 __lgammaieee128 | ||
| 358 | |||
| 359 | # endif | ||
| 360 | # endif | ||
| 361 | |||
| 362 | # undef __MATHDECL_1 | ||
| 363 | # undef __MATHDECL_ALIAS | ||
| 364 | |||
| 365 | # define __REDIRTO(function, suffix) \ | ||
| 366 | __ ## function ## ieee128 ## suffix | ||
| 367 | # define __REDIRTO_ALT(function, suffix) \ | ||
| 368 | __ ## function ## f128 ## suffix | ||
| 369 | |||
| 370 | # define __MATHDECL_1(type, function, suffix, args) \ | ||
| 371 | __MATHREDIR (type, function, suffix, args, __REDIRTO (function, suffix)) | ||
| 372 | # define __MATHDECL_ALIAS(type, function, suffix, args, alias) \ | ||
| 373 | __MATHREDIR (type, function, suffix, args, __REDIRTO_ALT (alias, suffix)) | ||
| 339 | # endif | 374 | # endif |
| 340 | 375 | ||
| 341 | /* Include the file of declarations again, this time using `long double' | 376 | /* Include the file of declarations again, this time using `long double' |
| ... | @@ -348,11 +383,23 @@ extern long double __REDIRECT_NTH (nexttowardl, | ... | @@ -348,11 +383,23 @@ extern long double __REDIRECT_NTH (nexttowardl, |
| 348 | # define __MATH_DECLARE_LDOUBLE 1 | 383 | # define __MATH_DECLARE_LDOUBLE 1 |
| 349 | # include <bits/mathcalls-helper-functions.h> | 384 | # include <bits/mathcalls-helper-functions.h> |
| 350 | # include <bits/mathcalls.h> | 385 | # include <bits/mathcalls.h> |
| 386 | |||
| 351 | # undef _Mdouble_ | 387 | # undef _Mdouble_ |
| 352 | # undef __MATH_PRECNAME | 388 | # undef __MATH_PRECNAME |
| 353 | # undef __MATH_DECLARING_DOUBLE | 389 | # undef __MATH_DECLARING_DOUBLE |
| 354 | # undef __MATH_DECLARING_FLOATN | 390 | # undef __MATH_DECLARING_FLOATN |
| 355 | 391 | ||
| 392 | # if defined __LDBL_COMPAT \ | ||
| 393 | || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 394 | # undef __REDIRTO | ||
| 395 | # undef __REDIRTO_ALT | ||
| 396 | # undef __MATHDECL_1 | ||
| 397 | # undef __MATHDECL_ALIAS | ||
| 398 | # define __MATHDECL_1(type, function, suffix, args) \ | ||
| 399 | __MATHDECL_1_IMPL(type, function, suffix, args) | ||
| 400 | # define __MATHDECL_ALIAS(type, function, suffix, args, alias) \ | ||
| 401 | __MATHDECL_1(type, function, suffix, args) | ||
| 402 | # endif | ||
| 356 | # endif /* !(__NO_LONG_DOUBLE_MATH && _LIBC) || __LDBL_COMPAT */ | 403 | # endif /* !(__NO_LONG_DOUBLE_MATH && _LIBC) || __LDBL_COMPAT */ |
| 357 | 404 | ||
| 358 | #endif	/* Use ISO C99. */ | 405 | #endif	/* Use ISO C99. */ |
| ... | @@ -479,7 +526,9 @@ extern long double __REDIRECT_NTH (nexttowardl, | ... | @@ -479,7 +526,9 @@ extern long double __REDIRECT_NTH (nexttowardl, |
| 479 | # undef __MATH_DECLARING_FLOATN | 526 | # undef __MATH_DECLARING_FLOATN |
| 480 | #endif /* __HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC). */ | 527 | #endif /* __HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC). */ |
| 481 | 528 | ||
| 529 | #undef	__MATHDECL_1_IMPL | ||
| 482 | #undef	__MATHDECL_1 | 530 | #undef	__MATHDECL_1 |
| 531 | #undef	__MATHDECL_ALIAS | ||
| 483 | #undef	__MATHDECL | 532 | #undef	__MATHDECL |
| 484 | #undef	__MATHCALL | 533 | #undef	__MATHCALL |
| 485 | 534 | ||
| ... | @@ -511,6 +560,11 @@ extern long double __REDIRECT_NTH (nexttowardl, | ... | @@ -511,6 +560,11 @@ extern long double __REDIRECT_NTH (nexttowardl, |
| 511 | # ifdef __LDBL_COMPAT | 560 | # ifdef __LDBL_COMPAT |
| 512 | # define __MATHCALL_REDIR_NAME(name) f ## name | 561 | # define __MATHCALL_REDIR_NAME(name) f ## name |
| 513 | # undef __MATHCALL_NARROW | 562 | # undef __MATHCALL_NARROW |
| 563 | # define __MATHCALL_NARROW(func, redir, nargs) \ | ||
| 564 | __MATHCALL_NARROW_REDIR (func, redir, nargs) | ||
| 565 | # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 566 | # define __MATHCALL_REDIR_NAME(name) __ ## f32 ## name ## ieee128 | ||
| 567 | # undef __MATHCALL_NARROW | ||
| 514 | # define __MATHCALL_NARROW(func, redir, nargs) \ | 568 | # define __MATHCALL_NARROW(func, redir, nargs) \ |
| 515 | __MATHCALL_NARROW_REDIR (func, redir, nargs) | 569 | __MATHCALL_NARROW_REDIR (func, redir, nargs) |
| 516 | # endif | 570 | # endif |
| ... | @@ -518,7 +572,8 @@ extern long double __REDIRECT_NTH (nexttowardl, | ... | @@ -518,7 +572,8 @@ extern long double __REDIRECT_NTH (nexttowardl, |
| 518 | # undef _Mret_ | 572 | # undef _Mret_ |
| 519 | # undef _Marg_ | 573 | # undef _Marg_ |
| 520 | # undef __MATHCALL_NAME | 574 | # undef __MATHCALL_NAME |
| 521 | # ifdef __LDBL_COMPAT | 575 | # if defined __LDBL_COMPAT \ |
| 576 | || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 522 | # undef __MATHCALL_REDIR_NAME | 577 | # undef __MATHCALL_REDIR_NAME |
| 523 | # undef __MATHCALL_NARROW | 578 | # undef __MATHCALL_NARROW |
| 524 | # define __MATHCALL_NARROW(func, redir, nargs) \ | 579 | # define __MATHCALL_NARROW(func, redir, nargs) \ |
| ... | @@ -531,6 +586,11 @@ extern long double __REDIRECT_NTH (nexttowardl, | ... | @@ -531,6 +586,11 @@ extern long double __REDIRECT_NTH (nexttowardl, |
| 531 | # ifdef __LDBL_COMPAT | 586 | # ifdef __LDBL_COMPAT |
| 532 | # define __MATHCALL_REDIR_NAME(name) __nldbl_d ## name ## l | 587 | # define __MATHCALL_REDIR_NAME(name) __nldbl_d ## name ## l |
| 533 | # undef __MATHCALL_NARROW | 588 | # undef __MATHCALL_NARROW |
| 589 | # define __MATHCALL_NARROW(func, redir, nargs) \ | ||
| 590 | __MATHCALL_NARROW_REDIR (func, redir, nargs) | ||
| 591 | # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 592 | # define __MATHCALL_REDIR_NAME(name) __ ## f64 ## name ## ieee128 | ||
| 593 | # undef __MATHCALL_NARROW | ||
| 534 | # define __MATHCALL_NARROW(func, redir, nargs) \ | 594 | # define __MATHCALL_NARROW(func, redir, nargs) \ |
| 535 | __MATHCALL_NARROW_REDIR (func, redir, nargs) | 595 | __MATHCALL_NARROW_REDIR (func, redir, nargs) |
| 536 | # endif | 596 | # endif |
| ... | @@ -538,7 +598,8 @@ extern long double __REDIRECT_NTH (nexttowardl, | ... | @@ -538,7 +598,8 @@ extern long double __REDIRECT_NTH (nexttowardl, |
| 538 | # undef _Mret_ | 598 | # undef _Mret_ |
| 539 | # undef _Marg_ | 599 | # undef _Marg_ |
| 540 | # undef __MATHCALL_NAME | 600 | # undef __MATHCALL_NAME |
| 541 | # ifdef __LDBL_COMPAT | 601 | # if defined __LDBL_COMPAT \ |
| 602 | || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 542 | # undef __MATHCALL_REDIR_NAME | 603 | # undef __MATHCALL_REDIR_NAME |
| 543 | # undef __MATHCALL_NARROW | 604 | # undef __MATHCALL_NARROW |
| 544 | # define __MATHCALL_NARROW(func, redir, nargs) \ | 605 | # define __MATHCALL_NARROW(func, redir, nargs) \ |
| ... | @@ -1196,13 +1257,6 @@ iszero (__T __val) | ... | @@ -1196,13 +1257,6 @@ iszero (__T __val) |
| 1196 | # error "M_* values needed for _Float128x" | 1257 | # error "M_* values needed for _Float128x" |
| 1197 | #endif | 1258 | #endif |
| 1198 | 1259 | ||
| 1199 | /* When compiling in strict ISO C compatible mode we must not use the | ||
| 1200 | inline functions since they, among other things, do not set the | ||
| 1201 | `errno' variable correctly. */ | ||
| 1202 | #if defined __STRICT_ANSI__ && !defined __NO_MATH_INLINES | ||
| 1203 | # define __NO_MATH_INLINES	1 | ||
| 1204 | #endif | ||
| 1205 | |||
| 1206 | #ifdef __USE_ISOC99 | 1260 | #ifdef __USE_ISOC99 |
| 1207 | # if __GNUC_PREREQ (3, 1) | 1261 | # if __GNUC_PREREQ (3, 1) |
| 1208 | /* ISO C99 defines some macros to compare number while taking care for | 1262 | /* ISO C99 defines some macros to compare number while taking care for |
| ... | @@ -1240,12 +1294,6 @@ iszero (__T __val) | ... | @@ -1240,12 +1294,6 @@ iszero (__T __val) |
| 1240 | # endif | 1294 | # endif |
| 1241 | #endif | 1295 | #endif |
| 1242 | 1296 | ||
| 1243 | /* Get machine-dependent inline versions (if there are any). */ | ||
| 1244 | #ifdef __USE_EXTERN_INLINES | ||
| 1245 | # include <bits/mathinline.h> | ||
| 1246 | #endif | ||
| 1247 | |||
| 1248 | |||
| 1249 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) | 1297 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) |
| 1250 | /* An expression whose type has the widest of the evaluation formats | 1298 | /* An expression whose type has the widest of the evaluation formats |
| 1251 | of X and Y (which are of floating-point types). */ | 1299 | of X and Y (which are of floating-point types). */ |
lib/libc/include/generic-glibc/monetary.h+2-1| ... | @@ -50,7 +50,8 @@ extern ssize_t strfmon_l (char *__restrict __s, size_t __maxsize, | ... | @@ -50,7 +50,8 @@ extern ssize_t strfmon_l (char *__restrict __s, size_t __maxsize, |
| 50 | __THROW __attribute_format_strfmon__ (4, 5); | 50 | __THROW __attribute_format_strfmon__ (4, 5); |
| 51 | #endif | 51 | #endif |
| 52 | 52 | ||
| 53 | #ifdef __LDBL_COMPAT | 53 | #include <bits/floatn.h> |
| 54 | #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 54 | # include <bits/monetary-ldbl.h> | 55 | # include <bits/monetary-ldbl.h> |
| 55 | #endif | 56 | #endif |
| 56 | 57 |
lib/libc/include/generic-glibc/netinet/icmp6.h+4-4| ... | @@ -85,16 +85,16 @@ struct icmp6_hdr | ... | @@ -85,16 +85,16 @@ struct icmp6_hdr |
| 85 | #define ICMP6_PARAMPROB_OPTION 2 /* unrecognized IPv6 option */ | 85 | #define ICMP6_PARAMPROB_OPTION 2 /* unrecognized IPv6 option */ |
| 86 | 86 | ||
| 87 | #define ICMP6_FILTER_WILLPASS(type, filterp) \ | 87 | #define ICMP6_FILTER_WILLPASS(type, filterp) \ |
| 88 | 	((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0) | 88 | 	((((filterp)->icmp6_filt[(type) >> 5]) & (1U << ((type) & 31))) == 0) |
| 89 | 89 | ||
| 90 | #define ICMP6_FILTER_WILLBLOCK(type, filterp) \ | 90 | #define ICMP6_FILTER_WILLBLOCK(type, filterp) \ |
| 91 | 	((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0) | 91 | 	((((filterp)->icmp6_filt[(type) >> 5]) & (1U << ((type) & 31))) != 0) |
| 92 | 92 | ||
| 93 | #define ICMP6_FILTER_SETPASS(type, filterp) \ | 93 | #define ICMP6_FILTER_SETPASS(type, filterp) \ |
| 94 | 	((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31)))) | 94 | 	((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1U << ((type) & 31)))) |
| 95 | 95 | ||
| 96 | #define ICMP6_FILTER_SETBLOCK(type, filterp) \ | 96 | #define ICMP6_FILTER_SETBLOCK(type, filterp) \ |
| 97 | 	((((filterp)->icmp6_filt[(type) >> 5]) |= (1 << ((type) & 31)))) | 97 | 	((((filterp)->icmp6_filt[(type) >> 5]) |= (1U << ((type) & 31)))) |
| 98 | 98 | ||
| 99 | #define ICMP6_FILTER_SETPASSALL(filterp) \ | 99 | #define ICMP6_FILTER_SETPASSALL(filterp) \ |
| 100 | 	memset (filterp, 0, sizeof (struct icmp6_filter)); | 100 | 	memset (filterp, 0, sizeof (struct icmp6_filter)); |
lib/libc/include/generic-glibc/netinet/in.h+4| ... | @@ -87,8 +87,12 @@ enum | ... | @@ -87,8 +87,12 @@ enum |
| 87 | #define IPPROTO_UDPLITE		IPPROTO_UDPLITE | 87 | #define IPPROTO_UDPLITE		IPPROTO_UDPLITE |
| 88 | IPPROTO_MPLS = 137, /* MPLS in IP. */ | 88 | IPPROTO_MPLS = 137, /* MPLS in IP. */ |
| 89 | #define IPPROTO_MPLS		IPPROTO_MPLS | 89 | #define IPPROTO_MPLS		IPPROTO_MPLS |
| 90 | IPPROTO_ETHERNET = 143, /* Ethernet-within-IPv6 Encapsulation. */ | ||
| 91 | #define IPPROTO_ETHERNET	IPPROTO_ETHERNET | ||
| 90 | IPPROTO_RAW = 255,	 /* Raw IP packets. */ | 92 | IPPROTO_RAW = 255,	 /* Raw IP packets. */ |
| 91 | #define IPPROTO_RAW		IPPROTO_RAW | 93 | #define IPPROTO_RAW		IPPROTO_RAW |
| 94 | IPPROTO_MPTCP = 262, /* Multipath TCP connection. */ | ||
| 95 | #define IPPROTO_MPTCP		IPPROTO_MPTCP | ||
| 92 | IPPROTO_MAX | 96 | IPPROTO_MAX |
| 93 | }; | 97 | }; |
| 94 | 98 |
lib/libc/include/generic-glibc/nss.h+201-2| ... | @@ -19,10 +19,12 @@ | ... | @@ -19,10 +19,12 @@ |
| 19 | and for implementors of new services. */ | 19 | and for implementors of new services. */ |
| 20 | 20 | ||
| 21 | #ifndef _NSS_H | 21 | #ifndef _NSS_H |
| 22 | #define _NSS_H	1 | 22 | #define _NSS_H 1 |
| 23 | 23 | ||
| 24 | #include <features.h> | 24 | #include <features.h> |
| 25 | #include <stddef.h> | ||
| 25 | #include <stdint.h> | 26 | #include <stdint.h> |
| 27 | #include <sys/types.h> | ||
| 26 | 28 | ||
| 27 | 29 | ||
| 28 | __BEGIN_DECLS | 30 | __BEGIN_DECLS |
| ... | @@ -56,7 +58,204 @@ struct gaih_addrtuple | ... | @@ -56,7 +58,204 @@ struct gaih_addrtuple |
| 56 | Attention: Using this function repeatedly will slowly eat up the | 58 | Attention: Using this function repeatedly will slowly eat up the |
| 57 | whole memory since previous selection data cannot be freed. */ | 59 | whole memory since previous selection data cannot be freed. */ |
| 58 | extern int __nss_configure_lookup (const char *__dbname, | 60 | extern int __nss_configure_lookup (const char *__dbname, |
| 59 | 				 const char *__string) __THROW; | 61 | const char *__string) __THROW; |
| 62 | |||
| 63 | /* NSS-related types. */ | ||
| 64 | struct __netgrent; | ||
| 65 | struct aliasent; | ||
| 66 | struct ether_addr; | ||
| 67 | struct etherent; | ||
| 68 | struct group; | ||
| 69 | struct hostent; | ||
| 70 | struct netent; | ||
| 71 | struct passwd; | ||
| 72 | struct protoent; | ||
| 73 | struct rpcent; | ||
| 74 | struct servent; | ||
| 75 | struct sgrp; | ||
| 76 | struct spwd; | ||
| 77 | struct traced_file; | ||
| 78 | |||
| 79 | /* Types of functions exported from NSS service modules. */ | ||
| 80 | typedef enum nss_status nss_endaliasent (void); | ||
| 81 | typedef enum nss_status nss_endetherent (void); | ||
| 82 | typedef enum nss_status nss_endgrent (void); | ||
| 83 | typedef enum nss_status nss_endhostent (void); | ||
| 84 | typedef enum nss_status nss_endnetent (void); | ||
| 85 | typedef enum nss_status nss_endnetgrent (struct __netgrent *); | ||
| 86 | typedef enum nss_status nss_endprotoent (void); | ||
| 87 | typedef enum nss_status nss_endpwent (void); | ||
| 88 | typedef enum nss_status nss_endrpcent (void); | ||
| 89 | typedef enum nss_status nss_endservent (void); | ||
| 90 | typedef enum nss_status nss_endsgent (void); | ||
| 91 | typedef enum nss_status nss_endspent (void); | ||
| 92 | typedef enum nss_status nss_getaliasbyname_r (const char *, struct aliasent *, | ||
| 93 | char *, size_t, int *); | ||
| 94 | typedef enum nss_status nss_getaliasent_r (struct aliasent *, | ||
| 95 | char *, size_t, int *); | ||
| 96 | typedef enum nss_status nss_getcanonname_r (const char *, char *, size_t, | ||
| 97 | char **, int *, int *); | ||
| 98 | typedef enum nss_status nss_getetherent_r (struct etherent *, | ||
| 99 | char *, size_t, int *); | ||
| 100 | typedef enum nss_status nss_getgrent_r (struct group *, char *, size_t, int *); | ||
| 101 | typedef enum nss_status nss_getgrgid_r (__gid_t, struct group *, | ||
| 102 | char *, size_t, int *); | ||
| 103 | typedef enum nss_status nss_getgrnam_r (const char *, struct group *, | ||
| 104 | char *, size_t, int *); | ||
| 105 | typedef enum nss_status nss_gethostbyaddr2_r (const void *, __socklen_t, int, | ||
| 106 | struct hostent *, char *, size_t, | ||
| 107 | int *, int *, int32_t *); | ||
| 108 | typedef enum nss_status nss_gethostbyaddr_r (const void *, __socklen_t, int, | ||
| 109 | struct hostent *, char *, size_t, | ||
| 110 | int *, int *); | ||
| 111 | typedef enum nss_status nss_gethostbyname2_r (const char *, int, | ||
| 112 | struct hostent *, char *, size_t, | ||
| 113 | int *, int *); | ||
| 114 | typedef enum nss_status nss_gethostbyname3_r (const char *, int, | ||
| 115 | struct hostent *, char *, size_t, | ||
| 116 | int *, int *, int32_t *, | ||
| 117 | char **); | ||
| 118 | typedef enum nss_status nss_gethostbyname4_r (const char *, | ||
| 119 | struct gaih_addrtuple **, | ||
| 120 | char *, size_t, | ||
| 121 | int *, int *, int32_t *); | ||
| 122 | typedef enum nss_status nss_gethostbyname_r (const char *, struct hostent *, | ||
| 123 | char *, size_t, int *, int *); | ||
| 124 | typedef enum nss_status nss_gethostent_r (struct hostent *, char *, size_t, | ||
| 125 | int *, int *); | ||
| 126 | typedef enum nss_status nss_gethostton_r (const char *, struct etherent *, | ||
| 127 | char *, size_t, int *); | ||
| 128 | typedef enum nss_status nss_getnetbyaddr_r (uint32_t, int, struct netent *, | ||
| 129 | char *, size_t, int *, int *); | ||
| 130 | typedef enum nss_status nss_getnetbyname_r (const char *, struct netent *, | ||
| 131 | char *, size_t, int *, int *); | ||
| 132 | typedef enum nss_status nss_getnetent_r (struct netent *, | ||
| 133 | char *, size_t, int *, int *); | ||
| 134 | typedef enum nss_status nss_getnetgrent_r (struct __netgrent *, | ||
| 135 | char *, size_t, int *); | ||
| 136 | typedef enum nss_status nss_getntohost_r (const struct ether_addr *, | ||
| 137 | struct etherent *, char *, size_t, | ||
| 138 | int *); | ||
| 139 | typedef enum nss_status nss_getprotobyname_r (const char *, struct protoent *, | ||
| 140 | char *, size_t, int *); | ||
| 141 | typedef enum nss_status nss_getprotobynumber_r (int, struct protoent *, | ||
| 142 | char *, size_t, int *); | ||
| 143 | typedef enum nss_status nss_getprotoent_r (struct protoent *, | ||
| 144 | char *, size_t, int *); | ||
| 145 | typedef enum nss_status nss_getpublickey (const char *, char *, int *); | ||
| 146 | typedef enum nss_status nss_getpwent_r (struct passwd *, | ||
| 147 | char *, size_t, int *); | ||
| 148 | typedef enum nss_status nss_getpwnam_r (const char *, struct passwd *, | ||
| 149 | char *, size_t, int *); | ||
| 150 | typedef enum nss_status nss_getpwuid_r (__uid_t, struct passwd *, | ||
| 151 | char *, size_t, int *); | ||
| 152 | typedef enum nss_status nss_getrpcbyname_r (const char *, struct rpcent *, | ||
| 153 | char *, size_t, int *); | ||
| 154 | typedef enum nss_status nss_getrpcbynumber_r (int, struct rpcent *, | ||
| 155 | char *, size_t, int *); | ||
| 156 | typedef enum nss_status nss_getrpcent_r (struct rpcent *, | ||
| 157 | char *, size_t, int *); | ||
| 158 | typedef enum nss_status nss_getsecretkey (const char *, char *, char *, int *); | ||
| 159 | typedef enum nss_status nss_getservbyname_r (const char *, const char *, | ||
| 160 | struct servent *, char *, size_t, | ||
| 161 | int *); | ||
| 162 | typedef enum nss_status nss_getservbyport_r (int, const char *, | ||
| 163 | struct servent *, char *, size_t, | ||
| 164 | int *); | ||
| 165 | typedef enum nss_status nss_getservent_r (struct servent *, char *, size_t, | ||
| 166 | int *); | ||
| 167 | typedef enum nss_status nss_getsgent_r (struct sgrp *, char *, size_t, int *); | ||
| 168 | typedef enum nss_status nss_getsgnam_r (const char *, struct sgrp *, | ||
| 169 | char *, size_t, int *); | ||
| 170 | typedef enum nss_status nss_getspent_r (struct spwd *, char *, size_t, int *); | ||
| 171 | typedef enum nss_status nss_getspnam_r (const char *, struct spwd *, | ||
| 172 | char *, size_t, int *); | ||
| 173 | typedef void nss_init (void (*) (size_t, struct traced_file *)); | ||
| 174 | typedef enum nss_status nss_initgroups_dyn (const char *, __gid_t, long int *, | ||
| 175 | long int *, __gid_t **, long int, | ||
| 176 | int *); | ||
| 177 | typedef enum nss_status nss_netname2user (char [], __uid_t *, __gid_t *, | ||
| 178 | int *, __gid_t *, int *); | ||
| 179 | typedef enum nss_status nss_setaliasent (void); | ||
| 180 | typedef enum nss_status nss_setetherent (int); | ||
| 181 | typedef enum nss_status nss_setgrent (int); | ||
| 182 | typedef enum nss_status nss_sethostent (int); | ||
| 183 | typedef enum nss_status nss_setnetent (int); | ||
| 184 | typedef enum nss_status nss_setnetgrent (const char *, struct __netgrent *); | ||
| 185 | typedef enum nss_status nss_setprotoent (int); | ||
| 186 | typedef enum nss_status nss_setpwent (int); | ||
| 187 | typedef enum nss_status nss_setrpcent (int); | ||
| 188 | typedef enum nss_status nss_setservent (int); | ||
| 189 | typedef enum nss_status nss_setsgent (int); | ||
| 190 | typedef enum nss_status nss_setspent (int); | ||
| 191 | |||
| 192 | /* Declare all NSS functions for MODULE. */ | ||
| 193 | #define NSS_DECLARE_MODULE_FUNCTIONS(module) \ | ||
| 194 | extern nss_endaliasent _nss_##module##_endaliasent; \ | ||
| 195 | extern nss_endetherent _nss_##module##_endetherent; \ | ||
| 196 | extern nss_endgrent _nss_##module##_endgrent; \ | ||
| 197 | extern nss_endhostent _nss_##module##_endhostent; \ | ||
| 198 | extern nss_endnetent _nss_##module##_endnetent; \ | ||
| 199 | extern nss_endnetgrent _nss_##module##__endnetgrent; \ | ||
| 200 | extern nss_endprotoent _nss_##module##_endprotoent; \ | ||
| 201 | extern nss_endpwent _nss_##module##_endpwent; \ | ||
| 202 | extern nss_endrpcent _nss_##module##_endrpcent; \ | ||
| 203 | extern nss_endservent _nss_##module##_endservent; \ | ||
| 204 | extern nss_endsgent _nss_##module##_endsgent; \ | ||
| 205 | extern nss_endspent _nss_##module##_endspent; \ | ||
| 206 | extern nss_getaliasbyname_r _nss_##module##_getaliasbyname_r; \ | ||
| 207 | extern nss_getaliasent_r _nss_##module##_getaliasent_r; \ | ||
| 208 | extern nss_getcanonname_r _nss_##module##_getcanonname_r; \ | ||
| 209 | extern nss_getetherent_r _nss_##module##_getetherent_r; \ | ||
| 210 | extern nss_getgrent_r _nss_##module##_getgrent_r; \ | ||
| 211 | extern nss_getgrgid_r _nss_##module##_getgrgid_r; \ | ||
| 212 | extern nss_getgrnam_r _nss_##module##_getgrnam_r; \ | ||
| 213 | extern nss_gethostbyaddr2_r _nss_##module##_gethostbyaddr2_r; \ | ||
| 214 | extern nss_gethostbyaddr_r _nss_##module##_gethostbyaddr_r; \ | ||
| 215 | extern nss_gethostbyname2_r _nss_##module##_gethostbyname2_r; \ | ||
| 216 | extern nss_gethostbyname3_r _nss_##module##_gethostbyname3_r; \ | ||
| 217 | extern nss_gethostbyname4_r _nss_##module##_gethostbyname4_r; \ | ||
| 218 | extern nss_gethostbyname_r _nss_##module##_gethostbyname_r; \ | ||
| 219 | extern nss_gethostent_r _nss_##module##_gethostent_r; \ | ||
| 220 | extern nss_gethostton_r _nss_##module##_gethostton_r; \ | ||
| 221 | extern nss_getnetbyaddr_r _nss_##module##_getnetbyaddr_r; \ | ||
| 222 | extern nss_getnetbyname_r _nss_##module##_getnetbyname_r; \ | ||
| 223 | extern nss_getnetent_r _nss_##module##_getnetent_r; \ | ||
| 224 | extern nss_getnetgrent_r _nss_##module##_getnetgrent_r; \ | ||
| 225 | extern nss_getntohost_r _nss_##module##_getntohost_r; \ | ||
| 226 | extern nss_getprotobyname_r _nss_##module##_getprotobyname_r; \ | ||
| 227 | extern nss_getprotobynumber_r _nss_##module##_getprotobynumber_r; \ | ||
| 228 | extern nss_getprotoent_r _nss_##module##_getprotoent_r; \ | ||
| 229 | extern nss_getpublickey _nss_##module##_getpublickey; \ | ||
| 230 | extern nss_getpwent_r _nss_##module##_getpwent_r; \ | ||
| 231 | extern nss_getpwnam_r _nss_##module##_getpwnam_r; \ | ||
| 232 | extern nss_getpwuid_r _nss_##module##_getpwuid_r; \ | ||
| 233 | extern nss_getrpcbyname_r _nss_##module##_getrpcbyname_r; \ | ||
| 234 | extern nss_getrpcbynumber_r _nss_##module##_getrpcbynumber_r; \ | ||
| 235 | extern nss_getrpcent_r _nss_##module##_getrpcent_r; \ | ||
| 236 | extern nss_getsecretkey _nss_##module##_getsecretkey; \ | ||
| 237 | extern nss_getservbyname_r _nss_##module##_getservbyname_r; \ | ||
| 238 | extern nss_getservbyport_r _nss_##module##_getservbyport_r; \ | ||
| 239 | extern nss_getservent_r _nss_##module##_getservent_r; \ | ||
| 240 | extern nss_getsgent_r _nss_##module##_getsgent_r; \ | ||
| 241 | extern nss_getsgnam_r _nss_##module##_getsgnam_r; \ | ||
| 242 | extern nss_getspent_r _nss_##module##_getspent_r; \ | ||
| 243 | extern nss_getspnam_r _nss_##module##_getspnam_r; \ | ||
| 244 | extern nss_init _nss_##module##_init; \ | ||
| 245 | extern nss_initgroups_dyn _nss_##module##_initgroups_dyn; \ | ||
| 246 | extern nss_netname2user _nss_##module##_netname2user; \ | ||
| 247 | extern nss_setaliasent _nss_##module##_setaliasent; \ | ||
| 248 | extern nss_setetherent _nss_##module##_setetherent; \ | ||
| 249 | extern nss_setgrent _nss_##module##_setgrent; \ | ||
| 250 | extern nss_sethostent _nss_##module##_sethostent; \ | ||
| 251 | extern nss_setnetent _nss_##module##_setnetent; \ | ||
| 252 | extern nss_setnetgrent _nss_##module##_setnetgrent; \ | ||
| 253 | extern nss_setprotoent _nss_##module##_setprotoent; \ | ||
| 254 | extern nss_setpwent _nss_##module##_setpwent; \ | ||
| 255 | extern nss_setrpcent _nss_##module##_setrpcent; \ | ||
| 256 | extern nss_setservent _nss_##module##_setservent; \ | ||
| 257 | extern nss_setsgent _nss_##module##_setsgent; \ | ||
| 258 | extern nss_setspent _nss_##module##_setspent; \ | ||
| 60 | 259 | ||
| 61 | __END_DECLS | 260 | __END_DECLS |
| 62 | 261 |
lib/libc/include/generic-glibc/printf.h+2-1| ... | @@ -182,7 +182,8 @@ extern int printf_size_info (const struct printf_info *__restrict | ... | @@ -182,7 +182,8 @@ extern int printf_size_info (const struct printf_info *__restrict |
| 182 | 			 __info, size_t __n, int *__restrict __argtypes) | 182 | 			 __info, size_t __n, int *__restrict __argtypes) |
| 183 | __THROW; | 183 | __THROW; |
| 184 | 184 | ||
| 185 | #ifdef __LDBL_COMPAT | 185 | #include <bits/floatn.h> |
| 186 | #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 186 | # include <bits/printf-ldbl.h> | 187 | # include <bits/printf-ldbl.h> |
| 187 | #endif | 188 | #endif |
| 188 | 189 |
lib/libc/include/generic-glibc/pthread.h+15| ... | @@ -27,6 +27,7 @@ | ... | @@ -27,6 +27,7 @@ |
| 27 | #include <bits/setjmp.h> | 27 | #include <bits/setjmp.h> |
| 28 | #include <bits/wordsize.h> | 28 | #include <bits/wordsize.h> |
| 29 | #include <bits/types/struct_timespec.h> | 29 | #include <bits/types/struct_timespec.h> |
| 30 | #include <bits/types/__sigset_t.h> | ||
| 30 | 31 | ||
| 31 | 32 | ||
| 32 | /* Detach state. */ | 33 | /* Detach state. */ |
| ... | @@ -385,6 +386,20 @@ extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, | ... | @@ -385,6 +386,20 @@ extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, |
| 385 | extern int pthread_getattr_default_np (pthread_attr_t *__attr) | 386 | extern int pthread_getattr_default_np (pthread_attr_t *__attr) |
| 386 | __THROW __nonnull ((1)); | 387 | __THROW __nonnull ((1)); |
| 387 | 388 | ||
| 389 | /* Store *SIGMASK as the signal mask for the new thread in *ATTR. */ | ||
| 390 | extern int pthread_attr_setsigmask_np (pthread_attr_t *__attr, | ||
| 391 | 				 const __sigset_t *sigmask); | ||
| 392 | |||
| 393 | /* Store the signal mask of *ATTR in *SIGMASK. If there is no signal | ||
| 394 | mask stored, return PTHREAD_ATTR_NOSIGMASK_NP. Return zero on | ||
| 395 | success. */ | ||
| 396 | extern int pthread_attr_getsigmask_np (const pthread_attr_t *__attr, | ||
| 397 | 				 __sigset_t *sigmask); | ||
| 398 | |||
| 399 | /* Special return value from pthread_attr_getsigmask_np if the signal | ||
| 400 | mask has not been set. */ | ||
| 401 | #define PTHREAD_ATTR_NO_SIGMASK_NP (-1) | ||
| 402 | |||
| 388 | /* Set the default attributes to be used by pthread_create in this | 403 | /* Set the default attributes to be used by pthread_create in this |
| 389 | process. */ | 404 | process. */ |
| 390 | extern int pthread_setattr_default_np (const pthread_attr_t *__attr) | 405 | extern int pthread_setattr_default_np (const pthread_attr_t *__attr) |
lib/libc/include/generic-glibc/signal.h+17-14| ... | @@ -27,7 +27,7 @@ | ... | @@ -27,7 +27,7 @@ |
| 27 | __BEGIN_DECLS | 27 | __BEGIN_DECLS |
| 28 | 28 | ||
| 29 | #include <bits/types.h> | 29 | #include <bits/types.h> |
| 30 | #include <bits/signum.h> | 30 | #include <bits/signum-generic.h> |
| 31 | 31 | ||
| 32 | #include <bits/types/sig_atomic_t.h> | 32 | #include <bits/types/sig_atomic_t.h> |
| 33 | 33 | ||
| ... | @@ -148,7 +148,8 @@ extern void psiginfo (const siginfo_t *__pinfo, const char *__s); | ... | @@ -148,7 +148,8 @@ extern void psiginfo (const siginfo_t *__pinfo, const char *__s); |
| 148 | 148 | ||
| 149 | #ifdef __USE_XOPEN_EXTENDED | 149 | #ifdef __USE_XOPEN_EXTENDED |
| 150 | # ifdef __GNUC__ | 150 | # ifdef __GNUC__ |
| 151 | extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); | 151 | extern int sigpause (int __sig) __asm__ ("__xpg_sigpause") |
| 152 | __attribute_deprecated_msg__ ("Use the sigsuspend function instead"); | ||
| 152 | # else | 153 | # else |
| 153 | extern int __sigpause (int __sig_or_mask, int __is_sig); | 154 | extern int __sigpause (int __sig_or_mask, int __is_sig); |
| 154 | /* Remove a signal from the signal mask and suspend the process. */ | 155 | /* Remove a signal from the signal mask and suspend the process. */ |
| ... | @@ -164,7 +165,9 @@ extern int __sigpause (int __sig_or_mask, int __is_sig); | ... | @@ -164,7 +165,9 @@ extern int __sigpause (int __sig_or_mask, int __is_sig); |
| 164 | simply do not work in many situations. Use `sigprocmask' instead. */ | 165 | simply do not work in many situations. Use `sigprocmask' instead. */ |
| 165 | 166 | ||
| 166 | /* Compute mask for signal SIG. */ | 167 | /* Compute mask for signal SIG. */ |
| 167 | # define sigmask(sig) ((int)(1u << ((sig) - 1))) | 168 | # define sigmask(sig) \ |
| 169 | __glibc_macro_warning ("sigmask is deprecated") \ | ||
| 170 | ((int)(1u << ((sig) - 1))) | ||
| 168 | 171 | ||
| 169 | /* Block signals in MASK, returning the old mask. */ | 172 | /* Block signals in MASK, returning the old mask. */ |
| 170 | extern int sigblock (int __mask) __THROW __attribute_deprecated__; | 173 | extern int sigblock (int __mask) __THROW __attribute_deprecated__; |
| ... | @@ -281,12 +284,6 @@ extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val) | ... | @@ -281,12 +284,6 @@ extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val) |
| 281 | 284 | ||
| 282 | #ifdef __USE_MISC | 285 | #ifdef __USE_MISC |
| 283 | 286 | ||
| 284 | /* Names of the signals. This variable exists only for compatibility. | ||
| 285 | Use `strsignal' instead (see <string.h>). */ | ||
| 286 | extern const char *const _sys_siglist[_NSIG]; | ||
| 287 | extern const char *const sys_siglist[_NSIG]; | ||
| 288 | |||
| 289 | |||
| 290 | /* Get machine-dependent `struct sigcontext' and signal subcodes. */ | 287 | /* Get machine-dependent `struct sigcontext' and signal subcodes. */ |
| 291 | # include <bits/sigcontext.h> | 288 | # include <bits/sigcontext.h> |
| 292 | 289 | ||
| ... | @@ -311,7 +308,8 @@ extern int sigreturn (struct sigcontext *__scp) __THROW; | ... | @@ -311,7 +308,8 @@ extern int sigreturn (struct sigcontext *__scp) __THROW; |
| 311 | /* If INTERRUPT is nonzero, make signal SIG interrupt system calls | 308 | /* If INTERRUPT is nonzero, make signal SIG interrupt system calls |
| 312 | (causing them to fail with EINTR); if INTERRUPT is zero, make system | 309 | (causing them to fail with EINTR); if INTERRUPT is zero, make system |
| 313 | calls be restarted after signal SIG. */ | 310 | calls be restarted after signal SIG. */ |
| 314 | extern int siginterrupt (int __sig, int __interrupt) __THROW; | 311 | extern int siginterrupt (int __sig, int __interrupt) __THROW |
| 312 | __attribute_deprecated_msg__ ("Use sigaction with SA_RESTART instead"); | ||
| 315 | 313 | ||
| 316 | # include <bits/sigstack.h> | 314 | # include <bits/sigstack.h> |
| 317 | # include <bits/ss_flags.h> | 315 | # include <bits/ss_flags.h> |
| ... | @@ -340,16 +338,21 @@ extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) | ... | @@ -340,16 +338,21 @@ extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) |
| 340 | /* Simplified interface for signal management. */ | 338 | /* Simplified interface for signal management. */ |
| 341 | 339 | ||
| 342 | /* Add SIG to the calling process' signal mask. */ | 340 | /* Add SIG to the calling process' signal mask. */ |
| 343 | extern int sighold (int __sig) __THROW; | 341 | extern int sighold (int __sig) __THROW |
| 342 | __attribute_deprecated_msg__ ("Use the sigprocmask function instead"); | ||
| 344 | 343 | ||
| 345 | /* Remove SIG from the calling process' signal mask. */ | 344 | /* Remove SIG from the calling process' signal mask. */ |
| 346 | extern int sigrelse (int __sig) __THROW; | 345 | extern int sigrelse (int __sig) __THROW |
| 346 | __attribute_deprecated_msg__ ("Use the sigprocmask function instead"); | ||
| 347 | 347 | ||
| 348 | /* Set the disposition of SIG to SIG_IGN. */ | 348 | /* Set the disposition of SIG to SIG_IGN. */ |
| 349 | extern int sigignore (int __sig) __THROW; | 349 | extern int sigignore (int __sig) __THROW |
| 350 | __attribute_deprecated_msg__ ("Use the signal function instead"); | ||
| 350 | 351 | ||
| 351 | /* Set the disposition of SIG. */ | 352 | /* Set the disposition of SIG. */ |
| 352 | extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __THROW; | 353 | extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __THROW |
| 354 | __attribute_deprecated_msg__ | ||
| 355 | ("Use the signal and sigprocmask functions instead"); | ||
| 353 | #endif | 356 | #endif |
| 354 | 357 | ||
| 355 | #if defined __USE_POSIX199506 || defined __USE_UNIX98 | 358 | #if defined __USE_POSIX199506 || defined __USE_UNIX98 |
lib/libc/include/generic-glibc/stdio.h+14-13| ... | @@ -400,9 +400,12 @@ extern int sscanf (const char *__restrict __s, | ... | @@ -400,9 +400,12 @@ extern int sscanf (const char *__restrict __s, |
| 400 | 		 const char *__restrict __format, ...) __THROW; | 400 | 		 const char *__restrict __format, ...) __THROW; |
| 401 | 401 | ||
| 402 | /* For historical reasons, the C99-compliant versions of the scanf | 402 | /* For historical reasons, the C99-compliant versions of the scanf |
| 403 | functions are at alternative names. When __LDBL_COMPAT is in | 403 | functions are at alternative names. When __LDBL_COMPAT or |
| 404 | effect, this is handled in bits/stdio-ldbl.h. */ | 404 | __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI are in effect, this is handled in |
| 405 | #if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT | 405 | bits/stdio-ldbl.h. */ |
| 406 | #include <bits/floatn.h> | ||
| 407 | #if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \ | ||
| 408 | && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 | ||
| 406 | # ifdef __REDIRECT | 409 | # ifdef __REDIRECT |
| 407 | extern int __REDIRECT (fscanf, (FILE *__restrict __stream, | 410 | extern int __REDIRECT (fscanf, (FILE *__restrict __stream, |
| 408 | 				const char *__restrict __format, ...), | 411 | 				const char *__restrict __format, ...), |
| ... | @@ -447,7 +450,8 @@ extern int vsscanf (const char *__restrict __s, | ... | @@ -447,7 +450,8 @@ extern int vsscanf (const char *__restrict __s, |
| 447 | 450 | ||
| 448 | /* Same redirection as above for the v*scanf family. */ | 451 | /* Same redirection as above for the v*scanf family. */ |
| 449 | # if !__GLIBC_USE (DEPRECATED_SCANF) | 452 | # if !__GLIBC_USE (DEPRECATED_SCANF) |
| 450 | # if defined __REDIRECT && !defined __LDBL_COMPAT | 453 | # if defined __REDIRECT && !defined __LDBL_COMPAT \ |
| 454 | && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 | ||
| 451 | extern int __REDIRECT (vfscanf, | 455 | extern int __REDIRECT (vfscanf, |
| 452 | 		 (FILE *__restrict __s, | 456 | 		 (FILE *__restrict __s, |
| 453 | 			const char *__restrict __format, __gnuc_va_list __arg), | 457 | 			const char *__restrict __format, __gnuc_va_list __arg), |
| ... | @@ -562,7 +566,7 @@ extern int putw (int __w, FILE *__stream); | ... | @@ -562,7 +566,7 @@ extern int putw (int __w, FILE *__stream); |
| 562 | This function is a possible cancellation point and therefore not | 566 | This function is a possible cancellation point and therefore not |
| 563 | marked with __THROW. */ | 567 | marked with __THROW. */ |
| 564 | extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) | 568 | extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) |
| 565 | __wur; | 569 | __wur __attr_access ((__write_only__, 1, 2)); |
| 566 | 570 | ||
| 567 | #if __GLIBC_USE (DEPRECATED_GETS) | 571 | #if __GLIBC_USE (DEPRECATED_GETS) |
| 568 | /* Get a newline-terminated string from stdin, removing the newline. | 572 | /* Get a newline-terminated string from stdin, removing the newline. |
| ... | @@ -585,7 +589,8 @@ extern char *gets (char *__s) __wur __attribute_deprecated__; | ... | @@ -585,7 +589,8 @@ extern char *gets (char *__s) __wur __attribute_deprecated__; |
| 585 | or due to the implementation it is a cancellation point and | 589 | or due to the implementation it is a cancellation point and |
| 586 | therefore not marked with __THROW. */ | 590 | therefore not marked with __THROW. */ |
| 587 | extern char *fgets_unlocked (char *__restrict __s, int __n, | 591 | extern char *fgets_unlocked (char *__restrict __s, int __n, |
| 588 | 			 FILE *__restrict __stream) __wur; | 592 | 			 FILE *__restrict __stream) __wur |
| 593 | __attr_access ((__write_only__, 1, 2)); | ||
| 589 | #endif | 594 | #endif |
| 590 | 595 | ||
| 591 | 596 | ||
| ... | @@ -774,12 +779,6 @@ extern int ferror_unlocked (FILE *__stream) __THROW __wur; | ... | @@ -774,12 +779,6 @@ extern int ferror_unlocked (FILE *__stream) __THROW __wur; |
| 774 | marked with __THROW. */ | 779 | marked with __THROW. */ |
| 775 | extern void perror (const char *__s); | 780 | extern void perror (const char *__s); |
| 776 | 781 | ||
| 777 | /* Provide the declarations for `sys_errlist' and `sys_nerr' if they | ||
| 778 | are available on this system. Even if available, these variables | ||
| 779 | should not be used directly. The `strerror' function provides | ||
| 780 | all the necessary functionality. */ | ||
| 781 | #include <bits/sys_errlist.h> | ||
| 782 | |||
| 783 | 782 | ||
| 784 | #ifdef	__USE_POSIX | 783 | #ifdef	__USE_POSIX |
| 785 | /* Return the system file descriptor for STREAM. */ | 784 | /* Return the system file descriptor for STREAM. */ |
| ... | @@ -866,7 +865,9 @@ extern int __overflow (FILE *, int); | ... | @@ -866,7 +865,9 @@ extern int __overflow (FILE *, int); |
| 866 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function | 865 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function |
| 867 | # include <bits/stdio2.h> | 866 | # include <bits/stdio2.h> |
| 868 | #endif | 867 | #endif |
| 869 | #ifdef __LDBL_COMPAT | 868 | |
| 869 | #include <bits/floatn.h> | ||
| 870 | #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 870 | # include <bits/stdio-ldbl.h> | 871 | # include <bits/stdio-ldbl.h> |
| 871 | #endif | 872 | #endif |
| 872 | 873 |
lib/libc/include/generic-glibc/stdlib.h+9-6| ... | @@ -397,7 +397,7 @@ extern long int a64l (const char *__s) | ... | @@ -397,7 +397,7 @@ extern long int a64l (const char *__s) |
| 397 | `initstate' and `setstate' functions are those from BSD Unices. | 397 | `initstate' and `setstate' functions are those from BSD Unices. |
| 398 | The `rand' and `srand' functions are required by the ANSI standard. | 398 | The `rand' and `srand' functions are required by the ANSI standard. |
| 399 | We provide both interfaces to the same random number generator. */ | 399 | We provide both interfaces to the same random number generator. */ |
| 400 | /* Return a random long integer between 0 and RAND_MAX inclusive. */ | 400 | /* Return a random long integer between 0 and 2^31-1 inclusive. */ |
| 401 | extern long int random (void) __THROW; | 401 | extern long int random (void) __THROW; |
| 402 | 402 | ||
| 403 | /* Seed the random number generator with the given number. */ | 403 | /* Seed the random number generator with the given number. */ |
| ... | @@ -931,12 +931,13 @@ extern int wctomb (char *__s, wchar_t __wchar) __THROW; | ... | @@ -931,12 +931,13 @@ extern int wctomb (char *__s, wchar_t __wchar) __THROW; |
| 931 | 931 | ||
| 932 | /* Convert a multibyte string to a wide char string. */ | 932 | /* Convert a multibyte string to a wide char string. */ |
| 933 | extern size_t mbstowcs (wchar_t *__restrict __pwcs, | 933 | extern size_t mbstowcs (wchar_t *__restrict __pwcs, |
| 934 | 			const char *__restrict __s, size_t __n) __THROW; | 934 | 			const char *__restrict __s, size_t __n) __THROW |
| 935 | __attr_access ((__read_only__, 2)); | ||
| 935 | /* Convert a wide char string to multibyte string. */ | 936 | /* Convert a wide char string to multibyte string. */ |
| 936 | extern size_t wcstombs (char *__restrict __s, | 937 | extern size_t wcstombs (char *__restrict __s, |
| 937 | 			const wchar_t *__restrict __pwcs, size_t __n) | 938 | 			const wchar_t *__restrict __pwcs, size_t __n) |
| 938 | __THROW; | 939 | __THROW |
| 939 | 940 | __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2)); | |
| 940 | 941 | ||
| 941 | #ifdef __USE_MISC | 942 | #ifdef __USE_MISC |
| 942 | /* Determine whether the string value of RESPONSE matches the affirmation | 943 | /* Determine whether the string value of RESPONSE matches the affirmation |
| ... | @@ -990,7 +991,7 @@ extern char *ptsname (int __fd) __THROW __wur; | ... | @@ -990,7 +991,7 @@ extern char *ptsname (int __fd) __THROW __wur; |
| 990 | terminal associated with the master FD is open on in BUF. | 991 | terminal associated with the master FD is open on in BUF. |
| 991 | Return 0 on success, otherwise an error number. */ | 992 | Return 0 on success, otherwise an error number. */ |
| 992 | extern int ptsname_r (int __fd, char *__buf, size_t __buflen) | 993 | extern int ptsname_r (int __fd, char *__buf, size_t __buflen) |
| 993 | __THROW __nonnull ((2)); | 994 | __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); |
| 994 | 995 | ||
| 995 | /* Open a master pseudo terminal and return its file descriptor. */ | 996 | /* Open a master pseudo terminal and return its file descriptor. */ |
| 996 | extern int getpt (void); | 997 | extern int getpt (void); |
| ... | @@ -1016,7 +1017,9 @@ extern int ttyslot (void) __THROW; | ... | @@ -1016,7 +1017,9 @@ extern int ttyslot (void) __THROW; |
| 1016 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function | 1017 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function |
| 1017 | # include <bits/stdlib.h> | 1018 | # include <bits/stdlib.h> |
| 1018 | #endif | 1019 | #endif |
| 1019 | #ifdef __LDBL_COMPAT | 1020 | |
| 1021 | #include <bits/floatn.h> | ||
| 1022 | #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 1020 | # include <bits/stdlib-ldbl.h> | 1023 | # include <bits/stdlib-ldbl.h> |
| 1021 | #endif | 1024 | #endif |
| 1022 | 1025 |
lib/libc/include/generic-glibc/string.h+36-12| ... | @@ -53,7 +53,7 @@ extern void *memmove (void *__dest, const void *__src, size_t __n) | ... | @@ -53,7 +53,7 @@ extern void *memmove (void *__dest, const void *__src, size_t __n) |
| 53 | #if defined __USE_MISC || defined __USE_XOPEN || __GLIBC_USE (ISOC2X) | 53 | #if defined __USE_MISC || defined __USE_XOPEN || __GLIBC_USE (ISOC2X) |
| 54 | extern void *memccpy (void *__restrict __dest, const void *__restrict __src, | 54 | extern void *memccpy (void *__restrict __dest, const void *__restrict __src, |
| 55 | 		 int __c, size_t __n) | 55 | 		 int __c, size_t __n) |
| 56 | __THROW __nonnull ((1, 2)); | 56 | __THROW __nonnull ((1, 2)) __attr_access ((__write_only__, 1, 4)); |
| 57 | #endif /* Misc || X/Open. */ | 57 | #endif /* Misc || X/Open. */ |
| 58 | 58 | ||
| 59 | 59 | ||
| ... | @@ -108,12 +108,15 @@ extern void *rawmemchr (const void *__s, int __c) | ... | @@ -108,12 +108,15 @@ extern void *rawmemchr (const void *__s, int __c) |
| 108 | /* Search N bytes of S for the final occurrence of C. */ | 108 | /* Search N bytes of S for the final occurrence of C. */ |
| 109 | # ifdef __CORRECT_ISO_CPP_STRING_H_PROTO | 109 | # ifdef __CORRECT_ISO_CPP_STRING_H_PROTO |
| 110 | extern "C++" void *memrchr (void *__s, int __c, size_t __n) | 110 | extern "C++" void *memrchr (void *__s, int __c, size_t __n) |
| 111 | __THROW __asm ("memrchr") __attribute_pure__ __nonnull ((1)); | 111 | __THROW __asm ("memrchr") __attribute_pure__ __nonnull ((1)) |
| 112 | __attr_access ((__read_only__, 1, 3)); | ||
| 112 | extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) | 113 | extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) |
| 113 | __THROW __asm ("memrchr") __attribute_pure__ __nonnull ((1)); | 114 | __THROW __asm ("memrchr") __attribute_pure__ __nonnull ((1)) |
| 115 | __attr_access ((__read_only__, 1, 3)); | ||
| 114 | # else | 116 | # else |
| 115 | extern void *memrchr (const void *__s, int __c, size_t __n) | 117 | extern void *memrchr (const void *__s, int __c, size_t __n) |
| 116 | __THROW __attribute_pure__ __nonnull ((1)); | 118 | __THROW __attribute_pure__ __nonnull ((1)) |
| 119 | __attr_access ((__read_only__, 1, 3)); | ||
| 117 | # endif | 120 | # endif |
| 118 | #endif | 121 | #endif |
| 119 | 122 | ||
| ... | @@ -146,7 +149,7 @@ extern int strcoll (const char *__s1, const char *__s2) | ... | @@ -146,7 +149,7 @@ extern int strcoll (const char *__s1, const char *__s2) |
| 146 | /* Put a transformation of SRC into no more than N bytes of DEST. */ | 149 | /* Put a transformation of SRC into no more than N bytes of DEST. */ |
| 147 | extern size_t strxfrm (char *__restrict __dest, | 150 | extern size_t strxfrm (char *__restrict __dest, |
| 148 | 		 const char *__restrict __src, size_t __n) | 151 | 		 const char *__restrict __src, size_t __n) |
| 149 | __THROW __nonnull ((2)); | 152 | __THROW __nonnull ((2)) __attr_access ((__write_only__, 1, 3)); |
| 150 | 153 | ||
| 151 | #ifdef __USE_XOPEN2K8 | 154 | #ifdef __USE_XOPEN2K8 |
| 152 | /* POSIX.1-2008 extended locale interface (see locale.h). */ | 155 | /* POSIX.1-2008 extended locale interface (see locale.h). */ |
| ... | @@ -158,7 +161,8 @@ extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) | ... | @@ -158,7 +161,8 @@ extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) |
| 158 | /* Put a transformation of SRC into no more than N bytes of DEST, | 161 | /* Put a transformation of SRC into no more than N bytes of DEST, |
| 159 | using sorting rules from L. */ | 162 | using sorting rules from L. */ |
| 160 | extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, | 163 | extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, |
| 161 | 			 locale_t __l) __THROW __nonnull ((2, 4)); | 164 | 			 locale_t __l) __THROW __nonnull ((2, 4)) |
| 165 | __attr_access ((__write_only__, 1, 3)); | ||
| 162 | #endif | 166 | #endif |
| 163 | 167 | ||
| 164 | #if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8	\ | 168 | #if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8	\ |
| ... | @@ -368,7 +372,9 @@ extern char *strcasestr (const char *__haystack, const char *__needle) | ... | @@ -368,7 +372,9 @@ extern char *strcasestr (const char *__haystack, const char *__needle) |
| 368 | HAYSTACK is HAYSTACKLEN bytes long. */ | 372 | HAYSTACK is HAYSTACKLEN bytes long. */ |
| 369 | extern void *memmem (const void *__haystack, size_t __haystacklen, | 373 | extern void *memmem (const void *__haystack, size_t __haystacklen, |
| 370 | 		 const void *__needle, size_t __needlelen) | 374 | 		 const void *__needle, size_t __needlelen) |
| 371 | __THROW __attribute_pure__ __nonnull ((1, 3)); | 375 | __THROW __attribute_pure__ __nonnull ((1, 3)) |
| 376 | __attr_access ((__read_only__, 1, 2)) | ||
| 377 | __attr_access ((__read_only__, 3, 4)); | ||
| 372 | 378 | ||
| 373 | /* Copy N bytes of SRC to DEST, return pointer to bytes after the | 379 | /* Copy N bytes of SRC to DEST, return pointer to bytes after the |
| 374 | last written byte. */ | 380 | last written byte. */ |
| ... | @@ -409,17 +415,25 @@ extern char *strerror (int __errnum) __THROW; | ... | @@ -409,17 +415,25 @@ extern char *strerror (int __errnum) __THROW; |
| 409 | # ifdef __REDIRECT_NTH | 415 | # ifdef __REDIRECT_NTH |
| 410 | extern int __REDIRECT_NTH (strerror_r, | 416 | extern int __REDIRECT_NTH (strerror_r, |
| 411 | 			 (int __errnum, char *__buf, size_t __buflen), | 417 | 			 (int __errnum, char *__buf, size_t __buflen), |
| 412 | 			 __xpg_strerror_r) __nonnull ((2)); | 418 | 			 __xpg_strerror_r) __nonnull ((2)) |
| 419 | __attr_access ((__write_only__, 2, 3)); | ||
| 413 | # else | 420 | # else |
| 414 | extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen) | 421 | extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen) |
| 415 | __THROW __nonnull ((2)); | 422 | __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); |
| 416 | # define strerror_r __xpg_strerror_r | 423 | # define strerror_r __xpg_strerror_r |
| 417 | # endif | 424 | # endif |
| 418 | # else | 425 | # else |
| 419 | /* If a temporary buffer is required, at most BUFLEN bytes of BUF will be | 426 | /* If a temporary buffer is required, at most BUFLEN bytes of BUF will be |
| 420 | used. */ | 427 | used. */ |
| 421 | extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) | 428 | extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) |
| 422 | __THROW __nonnull ((2)) __wur; | 429 | __THROW __nonnull ((2)) __wur __attr_access ((__write_only__, 2, 3)); |
| 430 | # endif | ||
| 431 | |||
| 432 | # ifdef __USE_GNU | ||
| 433 | /* Return a string describing the meaning of tthe error in ERR. */ | ||
| 434 | extern const char *strerrordesc_np (int __err) __THROW; | ||
| 435 | /* Return a string with the error name in ERR. */ | ||
| 436 | extern const char *strerrorname_np (int __err) __THROW; | ||
| 423 | # endif | 437 | # endif |
| 424 | #endif | 438 | #endif |
| 425 | 439 | ||
| ... | @@ -433,7 +447,8 @@ extern char *strerror_l (int __errnum, locale_t __l) __THROW; | ... | @@ -433,7 +447,8 @@ extern char *strerror_l (int __errnum, locale_t __l) __THROW; |
| 433 | 447 | ||
| 434 | /* Set N bytes of S to 0. The compiler will not delete a call to this | 448 | /* Set N bytes of S to 0. The compiler will not delete a call to this |
| 435 | function, even if S is dead after the call. */ | 449 | function, even if S is dead after the call. */ |
| 436 | extern void explicit_bzero (void *__s, size_t __n) __THROW __nonnull ((1)); | 450 | extern void explicit_bzero (void *__s, size_t __n) __THROW __nonnull ((1)) |
| 451 | __attr_access ((__write_only__, 1, 2)); | ||
| 437 | 452 | ||
| 438 | /* Return the next DELIM-delimited token from *STRINGP, | 453 | /* Return the next DELIM-delimited token from *STRINGP, |
| 439 | terminating it with a '\0', and update *STRINGP to point past it. */ | 454 | terminating it with a '\0', and update *STRINGP to point past it. */ |
| ... | @@ -446,6 +461,14 @@ extern char *strsep (char **__restrict __stringp, | ... | @@ -446,6 +461,14 @@ extern char *strsep (char **__restrict __stringp, |
| 446 | /* Return a string describing the meaning of the signal number in SIG. */ | 461 | /* Return a string describing the meaning of the signal number in SIG. */ |
| 447 | extern char *strsignal (int __sig) __THROW; | 462 | extern char *strsignal (int __sig) __THROW; |
| 448 | 463 | ||
| 464 | # ifdef __USE_GNU | ||
| 465 | /* Return an abbreviation string for the signal number SIG. */ | ||
| 466 | extern const char *sigabbrev_np (int __sig) __THROW; | ||
| 467 | /* Return a string describing the meaning of the signal number in SIG, | ||
| 468 | the result is not translated. */ | ||
| 469 | extern const char *sigdescr_np (int __sig) __THROW; | ||
| 470 | # endif | ||
| 471 | |||
| 449 | /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */ | 472 | /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */ |
| 450 | extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) | 473 | extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) |
| 451 | __THROW __nonnull ((1, 2)); | 474 | __THROW __nonnull ((1, 2)); |
| ... | @@ -471,7 +494,8 @@ extern int strverscmp (const char *__s1, const char *__s2) | ... | @@ -471,7 +494,8 @@ extern int strverscmp (const char *__s1, const char *__s2) |
| 471 | extern char *strfry (char *__string) __THROW __nonnull ((1)); | 494 | extern char *strfry (char *__string) __THROW __nonnull ((1)); |
| 472 | 495 | ||
| 473 | /* Frobnicate N bytes of S. */ | 496 | /* Frobnicate N bytes of S. */ |
| 474 | extern void *memfrob (void *__s, size_t __n) __THROW __nonnull ((1)); | 497 | extern void *memfrob (void *__s, size_t __n) __THROW __nonnull ((1)) |
| 498 | __attr_access ((__write_only__, 1, 2)); | ||
| 475 | 499 | ||
| 476 | # ifndef basename | 500 | # ifndef basename |
| 477 | /* Return the file name within directory of FILENAME. We don't | 501 | /* Return the file name within directory of FILENAME. We don't |
lib/libc/include/generic-glibc/sys/cdefs.h+47-2| ... | @@ -452,7 +452,37 @@ | ... | @@ -452,7 +452,37 @@ |
| 452 | #include <bits/wordsize.h> | 452 | #include <bits/wordsize.h> |
| 453 | #include <bits/long-double.h> | 453 | #include <bits/long-double.h> |
| 454 | 454 | ||
| 455 | #if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH | 455 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 |
| 456 | # ifdef __REDIRECT | ||
| 457 | |||
| 458 | /* Alias name defined automatically. */ | ||
| 459 | # define __LDBL_REDIR(name, proto) ... unused__ldbl_redir | ||
| 460 | # define __LDBL_REDIR_DECL(name) \ | ||
| 461 | extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128")); | ||
| 462 | |||
| 463 | /* Alias name defined automatically, with leading underscores. */ | ||
| 464 | # define __LDBL_REDIR2_DECL(name) \ | ||
| 465 | extern __typeof (__##name) __##name \ | ||
| 466 | __asm (__ASMNAME ("__" #name "ieee128")); | ||
| 467 | |||
| 468 | /* Alias name defined manually. */ | ||
| 469 | # define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1 | ||
| 470 | # define __LDBL_REDIR1_DECL(name, alias) \ | ||
| 471 | extern __typeof (name) name __asm (__ASMNAME (#alias)); | ||
| 472 | |||
| 473 | # define __LDBL_REDIR1_NTH(name, proto, alias) \ | ||
| 474 | __REDIRECT_NTH (name, proto, alias) | ||
| 475 | # define __REDIRECT_NTH_LDBL(name, proto, alias) \ | ||
| 476 | __LDBL_REDIR1_NTH (name, proto, __##alias##ieee128) | ||
| 477 | |||
| 478 | /* Unused. */ | ||
| 479 | # define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl | ||
| 480 | # define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth | ||
| 481 | |||
| 482 | # else | ||
| 483 | _Static_assert (0, "IEEE 128-bits long double requires redirection on this platform"); | ||
| 484 | # endif | ||
| 485 | #elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH | ||
| 456 | # define __LDBL_COMPAT 1 | 486 | # define __LDBL_COMPAT 1 |
| 457 | # ifdef __REDIRECT | 487 | # ifdef __REDIRECT |
| 458 | # define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) | 488 | # define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) |
| ... | @@ -461,6 +491,8 @@ | ... | @@ -461,6 +491,8 @@ |
| 461 | # define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) | 491 | # define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) |
| 462 | # define __LDBL_REDIR_NTH(name, proto) \ | 492 | # define __LDBL_REDIR_NTH(name, proto) \ |
| 463 | __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) | 493 | __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) |
| 494 | # define __LDBL_REDIR2_DECL(name) \ | ||
| 495 | extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name)); | ||
| 464 | # define __LDBL_REDIR1_DECL(name, alias) \ | 496 | # define __LDBL_REDIR1_DECL(name, alias) \ |
| 465 | extern __typeof (name) name __asm (__ASMNAME (#alias)); | 497 | extern __typeof (name) name __asm (__ASMNAME (#alias)); |
| 466 | # define __LDBL_REDIR_DECL(name) \ | 498 | # define __LDBL_REDIR_DECL(name) \ |
| ... | @@ -471,11 +503,13 @@ | ... | @@ -471,11 +503,13 @@ |
| 471 | __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) | 503 | __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) |
| 472 | # endif | 504 | # endif |
| 473 | #endif | 505 | #endif |
| 474 | #if !defined __LDBL_COMPAT || !defined __REDIRECT | 506 | #if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \ |
| 507 | || !defined __REDIRECT | ||
| 475 | # define __LDBL_REDIR1(name, proto, alias) name proto | 508 | # define __LDBL_REDIR1(name, proto, alias) name proto |
| 476 | # define __LDBL_REDIR(name, proto) name proto | 509 | # define __LDBL_REDIR(name, proto) name proto |
| 477 | # define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW | 510 | # define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW |
| 478 | # define __LDBL_REDIR_NTH(name, proto) name proto __THROW | 511 | # define __LDBL_REDIR_NTH(name, proto) name proto __THROW |
| 512 | # define __LDBL_REDIR2_DECL(name) | ||
| 479 | # define __LDBL_REDIR_DECL(name) | 513 | # define __LDBL_REDIR_DECL(name) |
| 480 | # ifdef __REDIRECT | 514 | # ifdef __REDIRECT |
| 481 | # define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) | 515 | # define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) |
| ... | @@ -514,4 +548,15 @@ | ... | @@ -514,4 +548,15 @@ |
| 514 | # define __HAVE_GENERIC_SELECTION 0 | 548 | # define __HAVE_GENERIC_SELECTION 0 |
| 515 | #endif | 549 | #endif |
| 516 | 550 | ||
| 551 | #if __GNUC_PREREQ (10, 0) | ||
| 552 | /* Designates a 1-based positional argument ref-index of pointer type | ||
| 553 | that can be used to access size-index elements of the pointed-to | ||
| 554 | array according to access mode, or at least one element when | ||
| 555 | size-index is not provided: | ||
| 556 | access (access-mode, <ref-index> [, <size-index>]) */ | ||
| 557 | #define __attr_access(x) __attribute__ ((__access__ x)) | ||
| 558 | #else | ||
| 559 | # define __attr_access(x) | ||
| 560 | #endif | ||
| 561 | |||
| 517 | #endif	 /* sys/cdefs.h */ | 562 | #endif	 /* sys/cdefs.h */ |
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/sys/random.h+1| ... | @@ -25,6 +25,7 @@ | ... | @@ -25,6 +25,7 @@ |
| 25 | /* Flags for use with getrandom. */ | 25 | /* Flags for use with getrandom. */ |
| 26 | #define GRND_NONBLOCK 0x01 | 26 | #define GRND_NONBLOCK 0x01 |
| 27 | #define GRND_RANDOM 0x02 | 27 | #define GRND_RANDOM 0x02 |
| 28 | #define GRND_INSECURE 0x04 | ||
| 28 | 29 | ||
| 29 | __BEGIN_DECLS | 30 | __BEGIN_DECLS |
| 30 | 31 |
lib/libc/include/generic-glibc/sys/single_threaded.h created+33| ... | @@ -0,0 +1,33 @@ | ||
| 1 | /* Support for single-thread optimizations. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SINGLE_THREADED_H | ||
| 20 | #define _SYS_SINGLE_THREADED_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | |||
| 24 | __BEGIN_DECLS | ||
| 25 | |||
| 26 | /* If this variable is non-zero, then the current thread is the only | ||
| 27 | thread in the process image. If it is zero, the process might be | ||
| 28 | multi-threaded. */ | ||
| 29 | extern char __libc_single_threaded; | ||
| 30 | |||
| 31 | __END_DECLS | ||
| 32 | |||
| 33 | #endif /* _SYS_SINGLE_THREADED_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/sys/sysctl.h deleted-76| ... | @@ -1,76 +0,0 @@ | ||
| 1 | /* Copyright (C) 1996-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef	_SYS_SYSCTL_H | ||
| 19 | #define	_SYS_SYSCTL_H	1 | ||
| 20 | |||
| 21 | #warning "The <sys/sysctl.h> header is deprecated and will be removed." | ||
| 22 | |||
| 23 | #include <features.h> | ||
| 24 | #define __need_size_t | ||
| 25 | #include <stddef.h> | ||
| 26 | /* Prevent more kernel headers than necessary to be included. */ | ||
| 27 | #ifndef _LINUX_KERNEL_H | ||
| 28 | # define _LINUX_KERNEL_H	1 | ||
| 29 | # define __undef_LINUX_KERNEL_H | ||
| 30 | #endif | ||
| 31 | #ifndef _LINUX_TYPES_H | ||
| 32 | # define _LINUX_TYPES_H		1 | ||
| 33 | # define __undef_LINUX_TYPES_H | ||
| 34 | #endif | ||
| 35 | #ifndef _LINUX_LIST_H | ||
| 36 | # define _LINUX_LIST_H		1 | ||
| 37 | # define __undef_LINUX_LIST_H | ||
| 38 | #endif | ||
| 39 | #ifndef __LINUX_COMPILER_H | ||
| 40 | # define __LINUX_COMPILER_H	1 | ||
| 41 | # define __user | ||
| 42 | # define __undef__LINUX_COMPILER_H | ||
| 43 | #endif | ||
| 44 | |||
| 45 | #include <linux/sysctl.h> | ||
| 46 | |||
| 47 | #ifdef __undef_LINUX_KERNEL_H | ||
| 48 | # undef _LINUX_KERNEL_H | ||
| 49 | # undef __undef_LINUX_KERNEL_H | ||
| 50 | #endif | ||
| 51 | #ifdef __undef_LINUX_TYPES_H | ||
| 52 | # undef _LINUX_TYPES_H | ||
| 53 | # undef __undef_LINUX_TYPES_H | ||
| 54 | #endif | ||
| 55 | #ifdef __undef_LINUX_LIST_H | ||
| 56 | # undef _LINUX_LIST_H | ||
| 57 | # undef __undef_LINUX_LIST_H | ||
| 58 | #endif | ||
| 59 | #ifdef __undef__LINUX_COMPILER_H | ||
| 60 | # undef __LINUX_COMPILER_H | ||
| 61 | # undef __user | ||
| 62 | # undef __undef__LINUX_COMPILER_H | ||
| 63 | #endif | ||
| 64 | |||
| 65 | #include <bits/sysctl.h> | ||
| 66 | |||
| 67 | __BEGIN_DECLS | ||
| 68 | |||
| 69 | /* Read or write system parameters. */ | ||
| 70 | extern int sysctl (int *__name, int __nlen, void *__oldval, | ||
| 71 | 		 size_t *__oldlenp, void *__newval, size_t __newlen) __THROW | ||
| 72 | __attribute_deprecated__; | ||
| 73 | |||
| 74 | __END_DECLS | ||
| 75 | |||
| 76 | #endif	/* _SYS_SYSCTL_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/generic-glibc/sys/syslog.h+3-1| ... | @@ -206,7 +206,9 @@ extern void vsyslog (int __pri, const char *__fmt, __gnuc_va_list __ap) | ... | @@ -206,7 +206,9 @@ extern void vsyslog (int __pri, const char *__fmt, __gnuc_va_list __ap) |
| 206 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function | 206 | #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function |
| 207 | # include <bits/syslog.h> | 207 | # include <bits/syslog.h> |
| 208 | #endif | 208 | #endif |
| 209 | #ifdef __LDBL_COMPAT | 209 | |
| 210 | #include <bits/floatn.h> | ||
| 211 | #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 210 | # include <bits/syslog-ldbl.h> | 212 | # include <bits/syslog-ldbl.h> |
| 211 | #endif | 213 | #endif |
| 212 | 214 |
lib/libc/include/generic-glibc/threads.h+5-8| ... | @@ -24,7 +24,7 @@ | ... | @@ -24,7 +24,7 @@ |
| 24 | 24 | ||
| 25 | __BEGIN_DECLS | 25 | __BEGIN_DECLS |
| 26 | 26 | ||
| 27 | #include <bits/pthreadtypes-arch.h> | 27 | #include <bits/thread-shared-types.h> |
| 28 | #include <bits/types/struct_timespec.h> | 28 | #include <bits/types/struct_timespec.h> |
| 29 | 29 | ||
| 30 | #ifndef __cplusplus | 30 | #ifndef __cplusplus |
| ... | @@ -32,10 +32,10 @@ __BEGIN_DECLS | ... | @@ -32,10 +32,10 @@ __BEGIN_DECLS |
| 32 | #endif | 32 | #endif |
| 33 | 33 | ||
| 34 | #define TSS_DTOR_ITERATIONS 4 | 34 | #define TSS_DTOR_ITERATIONS 4 |
| 35 | typedef unsigned int tss_t; | 35 | typedef __tss_t tss_t; |
| 36 | typedef void (*tss_dtor_t) (void*); | 36 | typedef void (*tss_dtor_t) (void*); |
| 37 | 37 | ||
| 38 | typedef unsigned long int thrd_t; | 38 | typedef __thrd_t thrd_t; |
| 39 | typedef int (*thrd_start_t) (void*); | 39 | typedef int (*thrd_start_t) (void*); |
| 40 | 40 | ||
| 41 | /* Exit and error codes. */ | 41 | /* Exit and error codes. */ |
| ... | @@ -56,11 +56,8 @@ enum | ... | @@ -56,11 +56,8 @@ enum |
| 56 | mtx_timed = 2 | 56 | mtx_timed = 2 |
| 57 | }; | 57 | }; |
| 58 | 58 | ||
| 59 | typedef struct | 59 | typedef __once_flag once_flag; |
| 60 | { | 60 | #define ONCE_FLAG_INIT __ONCE_FLAG_INIT |
| 61 | int __data __ONCE_ALIGNMENT; | ||
| 62 | } once_flag; | ||
| 63 | #define ONCE_FLAG_INIT { 0 } | ||
| 64 | 61 | ||
| 65 | typedef union | 62 | typedef union |
| 66 | { | 63 | { |
lib/libc/include/generic-glibc/unistd.h+41-24| ... | @@ -357,13 +357,15 @@ extern int close (int __fd); | ... | @@ -357,13 +357,15 @@ extern int close (int __fd); |
| 357 | 357 | ||
| 358 | This function is a cancellation point and therefore not marked with | 358 | This function is a cancellation point and therefore not marked with |
| 359 | __THROW. */ | 359 | __THROW. */ |
| 360 | extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur; | 360 | extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur |
| 361 | __attr_access ((__write_only__, 2, 3)); | ||
| 361 | 362 | ||
| 362 | /* Write N bytes of BUF to FD. Return the number written, or -1. | 363 | /* Write N bytes of BUF to FD. Return the number written, or -1. |
| 363 | 364 | ||
| 364 | This function is a cancellation point and therefore not marked with | 365 | This function is a cancellation point and therefore not marked with |
| 365 | __THROW. */ | 366 | __THROW. */ |
| 366 | extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur; | 367 | extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur |
| 368 | __attr_access ((__read_only__, 2, 3)); | ||
| 367 | 369 | ||
| 368 | #if defined __USE_UNIX98 || defined __USE_XOPEN2K8 | 370 | #if defined __USE_UNIX98 || defined __USE_XOPEN2K8 |
| 369 | # ifndef __USE_FILE_OFFSET64 | 371 | # ifndef __USE_FILE_OFFSET64 |
| ... | @@ -374,7 +376,8 @@ extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur; | ... | @@ -374,7 +376,8 @@ extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur; |
| 374 | This function is a cancellation point and therefore not marked with | 376 | This function is a cancellation point and therefore not marked with |
| 375 | __THROW. */ | 377 | __THROW. */ |
| 376 | extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, | 378 | extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, |
| 377 | 		 __off_t __offset) __wur; | 379 | 		 __off_t __offset) __wur |
| 380 | __attr_access ((__write_only__, 2, 3)); | ||
| 378 | 381 | ||
| 379 | /* Write N bytes of BUF to FD at the given position OFFSET without | 382 | /* Write N bytes of BUF to FD at the given position OFFSET without |
| 380 | changing the file pointer. Return the number written, or -1. | 383 | changing the file pointer. Return the number written, or -1. |
| ... | @@ -382,15 +385,19 @@ extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, | ... | @@ -382,15 +385,19 @@ extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, |
| 382 | This function is a cancellation point and therefore not marked with | 385 | This function is a cancellation point and therefore not marked with |
| 383 | __THROW. */ | 386 | __THROW. */ |
| 384 | extern ssize_t pwrite (int __fd, const void *__buf, size_t __n, | 387 | extern ssize_t pwrite (int __fd, const void *__buf, size_t __n, |
| 385 | 		 __off_t __offset) __wur; | 388 | 		 __off_t __offset) __wur |
| 389 | __attr_access ((__read_only__, 2, 3)); | ||
| 390 | |||
| 386 | # else | 391 | # else |
| 387 | # ifdef __REDIRECT | 392 | # ifdef __REDIRECT |
| 388 | extern ssize_t __REDIRECT (pread, (int __fd, void *__buf, size_t __nbytes, | 393 | extern ssize_t __REDIRECT (pread, (int __fd, void *__buf, size_t __nbytes, |
| 389 | 				 __off64_t __offset), | 394 | 				 __off64_t __offset), |
| 390 | 			 pread64) __wur; | 395 | 			 pread64) __wur |
| 396 | __attr_access ((__write_only__, 2, 3)); | ||
| 391 | extern ssize_t __REDIRECT (pwrite, (int __fd, const void *__buf, | 397 | extern ssize_t __REDIRECT (pwrite, (int __fd, const void *__buf, |
| 392 | 				 size_t __nbytes, __off64_t __offset), | 398 | 				 size_t __nbytes, __off64_t __offset), |
| 393 | 			 pwrite64) __wur; | 399 | 			 pwrite64) __wur |
| 400 | __attr_access ((__read_only__, 2, 3)); | ||
| 394 | # else | 401 | # else |
| 395 | # define pread pread64 | 402 | # define pread pread64 |
| 396 | # define pwrite pwrite64 | 403 | # define pwrite pwrite64 |
| ... | @@ -402,11 +409,13 @@ extern ssize_t __REDIRECT (pwrite, (int __fd, const void *__buf, | ... | @@ -402,11 +409,13 @@ extern ssize_t __REDIRECT (pwrite, (int __fd, const void *__buf, |
| 402 | changing the file pointer. Return the number read, -1 for errors | 409 | changing the file pointer. Return the number read, -1 for errors |
| 403 | or 0 for EOF. */ | 410 | or 0 for EOF. */ |
| 404 | extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, | 411 | extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, |
| 405 | 			__off64_t __offset) __wur; | 412 | 			__off64_t __offset) __wur |
| 413 | __attr_access ((__write_only__, 2, 3)); | ||
| 406 | /* Write N bytes of BUF to FD at the given position OFFSET without | 414 | /* Write N bytes of BUF to FD at the given position OFFSET without |
| 407 | changing the file pointer. Return the number written, or -1. */ | 415 | changing the file pointer. Return the number written, or -1. */ |
| 408 | extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n, | 416 | extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n, |
| 409 | 			 __off64_t __offset) __wur; | 417 | 			 __off64_t __offset) __wur |
| 418 | __attr_access ((__read_only__, 2, 3)); | ||
| 410 | # endif | 419 | # endif |
| 411 | #endif | 420 | #endif |
| 412 | 421 | ||
| ... | @@ -508,7 +517,8 @@ extern int fchdir (int __fd) __THROW __wur; | ... | @@ -508,7 +517,8 @@ extern int fchdir (int __fd) __THROW __wur; |
| 508 | an array is allocated with `malloc'; the array is SIZE | 517 | an array is allocated with `malloc'; the array is SIZE |
| 509 | bytes long, unless SIZE == 0, in which case it is as | 518 | bytes long, unless SIZE == 0, in which case it is as |
| 510 | big as necessary. */ | 519 | big as necessary. */ |
| 511 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur; | 520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur |
| 521 | __attr_access ((__write_only__, 1, 2)); | ||
| 512 | 522 | ||
| 513 | #ifdef	__USE_GNU | 523 | #ifdef	__USE_GNU |
| 514 | /* Return a malloc'd string containing the current directory name. | 524 | /* Return a malloc'd string containing the current directory name. |
| ... | @@ -523,7 +533,8 @@ extern char *get_current_dir_name (void) __THROW; | ... | @@ -523,7 +533,8 @@ extern char *get_current_dir_name (void) __THROW; |
| 523 | If successful, return BUF. If not, put an error message in | 533 | If successful, return BUF. If not, put an error message in |
| 524 | BUF and return NULL. BUF should be at least PATH_MAX bytes long. */ | 534 | BUF and return NULL. BUF should be at least PATH_MAX bytes long. */ |
| 525 | extern char *getwd (char *__buf) | 535 | extern char *getwd (char *__buf) |
| 526 | __THROW __nonnull ((1)) __attribute_deprecated__ __wur; | 536 | __THROW __nonnull ((1)) __attribute_deprecated__ __wur |
| 537 | __attr_access ((__write_only__, 1)); | ||
| 527 | #endif | 538 | #endif |
| 528 | 539 | ||
| 529 | 540 | ||
| ... | @@ -620,7 +631,8 @@ extern long int sysconf (int __name) __THROW; | ... | @@ -620,7 +631,8 @@ extern long int sysconf (int __name) __THROW; |
| 620 | 631 | ||
| 621 | #ifdef	__USE_POSIX2 | 632 | #ifdef	__USE_POSIX2 |
| 622 | /* Get the value of the string-valued system variable NAME. */ | 633 | /* Get the value of the string-valued system variable NAME. */ |
| 623 | extern size_t confstr (int __name, char *__buf, size_t __len) __THROW; | 634 | extern size_t confstr (int __name, char *__buf, size_t __len) __THROW |
| 635 | __attr_access ((__write_only__, 2, 3)); | ||
| 624 | #endif | 636 | #endif |
| 625 | 637 | ||
| 626 | 638 | ||
| ... | @@ -686,8 +698,8 @@ extern __gid_t getegid (void) __THROW; | ... | @@ -686,8 +698,8 @@ extern __gid_t getegid (void) __THROW; |
| 686 | /* If SIZE is zero, return the number of supplementary groups | 698 | /* If SIZE is zero, return the number of supplementary groups |
| 687 | the calling process is in. Otherwise, fill in the group IDs | 699 | the calling process is in. Otherwise, fill in the group IDs |
| 688 | of its supplementary groups in LIST and return the number written. */ | 700 | of its supplementary groups in LIST and return the number written. */ |
| 689 | extern int getgroups (int __size, __gid_t __list[]) __THROW __wur; | 701 | extern int getgroups (int __size, __gid_t __list[]) __THROW __wur |
| 690 | 702 | __attr_access ((__write_only__, 2, 1)); | |
| 691 | #ifdef	__USE_GNU | 703 | #ifdef	__USE_GNU |
| 692 | /* Return nonzero iff the calling process is in group GID. */ | 704 | /* Return nonzero iff the calling process is in group GID. */ |
| 693 | extern int group_member (__gid_t __gid) __THROW; | 705 | extern int group_member (__gid_t __gid) __THROW; |
| ... | @@ -772,7 +784,7 @@ extern char *ttyname (int __fd) __THROW; | ... | @@ -772,7 +784,7 @@ extern char *ttyname (int __fd) __THROW; |
| 772 | /* Store at most BUFLEN characters of the pathname of the terminal FD is | 784 | /* Store at most BUFLEN characters of the pathname of the terminal FD is |
| 773 | open on in BUF. Return 0 on success, otherwise an error number. */ | 785 | open on in BUF. Return 0 on success, otherwise an error number. */ |
| 774 | extern int ttyname_r (int __fd, char *__buf, size_t __buflen) | 786 | extern int ttyname_r (int __fd, char *__buf, size_t __buflen) |
| 775 | __THROW __nonnull ((2)) __wur; | 787 | __THROW __nonnull ((2)) __wur __attr_access ((__write_only__, 2, 3)); |
| 776 | 788 | ||
| 777 | /* Return 1 if FD is a valid descriptor associated | 789 | /* Return 1 if FD is a valid descriptor associated |
| 778 | with a terminal, zero if not. */ | 790 | with a terminal, zero if not. */ |
| ... | @@ -807,7 +819,8 @@ extern int symlink (const char *__from, const char *__to) | ... | @@ -807,7 +819,8 @@ extern int symlink (const char *__from, const char *__to) |
| 807 | Returns the number of characters read, or -1 for errors. */ | 819 | Returns the number of characters read, or -1 for errors. */ |
| 808 | extern ssize_t readlink (const char *__restrict __path, | 820 | extern ssize_t readlink (const char *__restrict __path, |
| 809 | 			 char *__restrict __buf, size_t __len) | 821 | 			 char *__restrict __buf, size_t __len) |
| 810 | __THROW __nonnull ((1, 2)) __wur; | 822 | __THROW __nonnull ((1, 2)) __wur __attr_access ((__write_only__, 2, 3)); |
| 823 | |||
| 811 | #endif /* Use POSIX.1-2001. */ | 824 | #endif /* Use POSIX.1-2001. */ |
| 812 | 825 | ||
| 813 | #ifdef __USE_ATFILE | 826 | #ifdef __USE_ATFILE |
| ... | @@ -818,7 +831,7 @@ extern int symlinkat (const char *__from, int __tofd, | ... | @@ -818,7 +831,7 @@ extern int symlinkat (const char *__from, int __tofd, |
| 818 | /* Like readlink but a relative PATH is interpreted relative to FD. */ | 831 | /* Like readlink but a relative PATH is interpreted relative to FD. */ |
| 819 | extern ssize_t readlinkat (int __fd, const char *__restrict __path, | 832 | extern ssize_t readlinkat (int __fd, const char *__restrict __path, |
| 820 | 			 char *__restrict __buf, size_t __len) | 833 | 			 char *__restrict __buf, size_t __len) |
| 821 | __THROW __nonnull ((2, 3)) __wur; | 834 | __THROW __nonnull ((2, 3)) __wur __attr_access ((__read_only__, 3, 4)); |
| 822 | #endif | 835 | #endif |
| 823 | 836 | ||
| 824 | /* Remove the link NAME. */ | 837 | /* Remove the link NAME. */ |
| ... | @@ -853,7 +866,8 @@ extern char *getlogin (void); | ... | @@ -853,7 +866,8 @@ extern char *getlogin (void); |
| 853 | 866 | ||
| 854 | This function is a possible cancellation point and therefore not | 867 | This function is a possible cancellation point and therefore not |
| 855 | marked with __THROW. */ | 868 | marked with __THROW. */ |
| 856 | extern int getlogin_r (char *__name, size_t __name_len) __nonnull ((1)); | 869 | extern int getlogin_r (char *__name, size_t __name_len) __nonnull ((1)) |
| 870 | __attr_access ((__write_only__, 1, 2)); | ||
| 857 | #endif | 871 | #endif |
| 858 | 872 | ||
| 859 | #ifdef	__USE_MISC | 873 | #ifdef	__USE_MISC |
| ... | @@ -874,7 +888,8 @@ extern int setlogin (const char *__name) __THROW __nonnull ((1)); | ... | @@ -874,7 +888,8 @@ extern int setlogin (const char *__name) __THROW __nonnull ((1)); |
| 874 | /* Put the name of the current host in no more than LEN bytes of NAME. | 888 | /* Put the name of the current host in no more than LEN bytes of NAME. |
| 875 | The result is null-terminated if LEN is large enough for the full | 889 | The result is null-terminated if LEN is large enough for the full |
| 876 | name and the terminator. */ | 890 | name and the terminator. */ |
| 877 | extern int gethostname (char *__name, size_t __len) __THROW __nonnull ((1)); | 891 | extern int gethostname (char *__name, size_t __len) __THROW __nonnull ((1)) |
| 892 | __attr_access ((__write_only__, 1, 2)); | ||
| 878 | #endif | 893 | #endif |
| 879 | 894 | ||
| 880 | 895 | ||
| ... | @@ -882,7 +897,7 @@ extern int gethostname (char *__name, size_t __len) __THROW __nonnull ((1)); | ... | @@ -882,7 +897,7 @@ extern int gethostname (char *__name, size_t __len) __THROW __nonnull ((1)); |
| 882 | /* Set the name of the current host to NAME, which is LEN bytes long. | 897 | /* Set the name of the current host to NAME, which is LEN bytes long. |
| 883 | This call is restricted to the super-user. */ | 898 | This call is restricted to the super-user. */ |
| 884 | extern int sethostname (const char *__name, size_t __len) | 899 | extern int sethostname (const char *__name, size_t __len) |
| 885 | __THROW __nonnull ((1)) __wur; | 900 | __THROW __nonnull ((1)) __wur __attr_access ((__read_only__, 1, 2)); |
| 886 | 901 | ||
| 887 | /* Set the current machine's Internet number to ID. | 902 | /* Set the current machine's Internet number to ID. |
| 888 | This call is restricted to the super-user. */ | 903 | This call is restricted to the super-user. */ |
| ... | @@ -893,10 +908,9 @@ extern int sethostid (long int __id) __THROW __wur; | ... | @@ -893,10 +908,9 @@ extern int sethostid (long int __id) __THROW __wur; |
| 893 | Called just like `gethostname' and `sethostname'. | 908 | Called just like `gethostname' and `sethostname'. |
| 894 | The NIS domain name is usually the empty string when not using NIS. */ | 909 | The NIS domain name is usually the empty string when not using NIS. */ |
| 895 | extern int getdomainname (char *__name, size_t __len) | 910 | extern int getdomainname (char *__name, size_t __len) |
| 896 | __THROW __nonnull ((1)) __wur; | 911 | __THROW __nonnull ((1)) __wur __attr_access ((__write_only__, 1, 2)); |
| 897 | extern int setdomainname (const char *__name, size_t __len) | 912 | extern int setdomainname (const char *__name, size_t __len) |
| 898 | __THROW __nonnull ((1)) __wur; | 913 | __THROW __nonnull ((1)) __wur __attr_access ((__read_only__, 1, 2)); |
| 899 | |||
| 900 | 914 | ||
| 901 | /* Revoke access permissions to all processes currently communicating | 915 | /* Revoke access permissions to all processes currently communicating |
| 902 | with the control terminal, and then send a SIGHUP signal to the process | 916 | with the control terminal, and then send a SIGHUP signal to the process |
| ... | @@ -1131,7 +1145,9 @@ extern char *crypt (const char *__key, const char *__salt) | ... | @@ -1131,7 +1145,9 @@ extern char *crypt (const char *__key, const char *__salt) |
| 1131 | range [FROM - N + 1, FROM - 1]. If N is odd the first byte in FROM | 1145 | range [FROM - N + 1, FROM - 1]. If N is odd the first byte in FROM |
| 1132 | is without partner. */ | 1146 | is without partner. */ |
| 1133 | extern void swab (const void *__restrict __from, void *__restrict __to, | 1147 | extern void swab (const void *__restrict __from, void *__restrict __to, |
| 1134 | 		 ssize_t __n) __THROW __nonnull ((1, 2)); | 1148 | 		 ssize_t __n) __THROW __nonnull ((1, 2)) |
| 1149 | __attr_access ((__read_only__, 1, 3)) | ||
| 1150 | __attr_access ((__write_only__, 2, 3)); | ||
| 1135 | #endif | 1151 | #endif |
| 1136 | 1152 | ||
| 1137 | 1153 | ||
| ... | @@ -1158,7 +1174,8 @@ extern int pthread_atfork (void (*__prepare) (void), | ... | @@ -1158,7 +1174,8 @@ extern int pthread_atfork (void (*__prepare) (void), |
| 1158 | #ifdef __USE_MISC | 1174 | #ifdef __USE_MISC |
| 1159 | /* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on | 1175 | /* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on |
| 1160 | success or -1 on error. */ | 1176 | success or -1 on error. */ |
| 1161 | int getentropy (void *__buffer, size_t __length) __wur; | 1177 | int getentropy (void *__buffer, size_t __length) __wur |
| 1178 | __attr_access ((__write_only__, 1, 2)); | ||
| 1162 | #endif | 1179 | #endif |
| 1163 | 1180 | ||
| 1164 | /* Define some macros helping to catch buffer overflows. */ | 1181 | /* Define some macros helping to catch buffer overflows. */ |
lib/libc/include/generic-glibc/wchar.h+9-5| ... | @@ -633,9 +633,11 @@ extern int swscanf (const wchar_t *__restrict __s, | ... | @@ -633,9 +633,11 @@ extern int swscanf (const wchar_t *__restrict __s, |
| 633 | __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */; | 633 | __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */; |
| 634 | 634 | ||
| 635 | /* For historical reasons, the C99-compliant versions of the scanf | 635 | /* For historical reasons, the C99-compliant versions of the scanf |
| 636 | functions are at alternative names. When __LDBL_COMPAT is in | 636 | functions are at alternative names. When __LDBL_COMPAT or |
| 637 | effect, this is handled in bits/wchar-ldbl.h. */ | 637 | __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI are in effect, this is handled in |
| 638 | #if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT | 638 | bits/wchar-ldbl.h. */ |
| 639 | #if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \ | ||
| 640 | && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 | ||
| 639 | # ifdef __REDIRECT | 641 | # ifdef __REDIRECT |
| 640 | extern int __REDIRECT (fwscanf, (__FILE *__restrict __stream, | 642 | extern int __REDIRECT (fwscanf, (__FILE *__restrict __stream, |
| 641 | 				 const wchar_t *__restrict __format, ...), | 643 | 				 const wchar_t *__restrict __format, ...), |
| ... | @@ -688,7 +690,8 @@ extern int vswscanf (const wchar_t *__restrict __s, | ... | @@ -688,7 +690,8 @@ extern int vswscanf (const wchar_t *__restrict __s, |
| 688 | /* Same redirection as above for the v*wscanf family. */ | 690 | /* Same redirection as above for the v*wscanf family. */ |
| 689 | # if !__GLIBC_USE (DEPRECATED_SCANF) \ | 691 | # if !__GLIBC_USE (DEPRECATED_SCANF) \ |
| 690 | && (!defined __LDBL_COMPAT || !defined __REDIRECT) \ | 692 | && (!defined __LDBL_COMPAT || !defined __REDIRECT) \ |
| 691 | && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K) | 693 | && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K) \ |
| 694 | && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 | ||
| 692 | # ifdef __REDIRECT | 695 | # ifdef __REDIRECT |
| 693 | extern int __REDIRECT (vfwscanf, (__FILE *__restrict __s, | 696 | extern int __REDIRECT (vfwscanf, (__FILE *__restrict __s, |
| 694 | 				 const wchar_t *__restrict __format, | 697 | 				 const wchar_t *__restrict __format, |
| ... | @@ -849,7 +852,8 @@ extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, | ... | @@ -849,7 +852,8 @@ extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, |
| 849 | # include <bits/wchar2.h> | 852 | # include <bits/wchar2.h> |
| 850 | #endif | 853 | #endif |
| 851 | 854 | ||
| 852 | #ifdef __LDBL_COMPAT | 855 | #include <bits/floatn.h> |
| 856 | #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 853 | # include <bits/wchar-ldbl.h> | 857 | # include <bits/wchar-ldbl.h> |
| 854 | #endif | 858 | #endif |
| 855 | 859 |
lib/libc/include/i386-linux-gnu/bits/fenv.h-54| ... | @@ -113,58 +113,4 @@ femode_t; | ... | @@ -113,58 +113,4 @@ femode_t; |
| 113 | 113 | ||
| 114 | /* Default floating-point control modes. */ | 114 | /* Default floating-point control modes. */ |
| 115 | # define FE_DFL_MODE	((const femode_t *) -1L) | 115 | # define FE_DFL_MODE	((const femode_t *) -1L) |
| 116 | #endif | ||
| 117 | |||
| 118 | |||
| 119 | #ifdef __USE_EXTERN_INLINES | ||
| 120 | __BEGIN_DECLS | ||
| 121 | |||
| 122 | /* Optimized versions. */ | ||
| 123 | #ifndef _LIBC | ||
| 124 | extern int __REDIRECT_NTH (__feraiseexcept_renamed, (int), feraiseexcept); | ||
| 125 | #endif | ||
| 126 | __extern_always_inline void | ||
| 127 | __NTH (__feraiseexcept_invalid_divbyzero (int __excepts)) | ||
| 128 | { | ||
| 129 | if ((FE_INVALID & __excepts) != 0) | ||
| 130 | { | ||
| 131 | /* One example of an invalid operation is 0.0 / 0.0. */ | ||
| 132 | float __f = 0.0; | ||
| 133 | |||
| 134 | # ifdef __SSE_MATH__ | ||
| 135 | __asm__ __volatile__ ("divss %0, %0 " : : "x" (__f)); | ||
| 136 | # else | ||
| 137 | __asm__ __volatile__ ("fdiv %%st, %%st(0); fwait" | ||
| 138 | 			 : "=t" (__f) : "0" (__f)); | ||
| 139 | # endif | ||
| 140 | (void) &__f; | ||
| 141 | } | ||
| 142 | if ((FE_DIVBYZERO & __excepts) != 0) | ||
| 143 | { | ||
| 144 | float __f = 1.0; | ||
| 145 | float __g = 0.0; | ||
| 146 | |||
| 147 | # ifdef __SSE_MATH__ | ||
| 148 | __asm__ __volatile__ ("divss %1, %0" : : "x" (__f), "x" (__g)); | ||
| 149 | # else | ||
| 150 | __asm__ __volatile__ ("fdivp %%st, %%st(1); fwait" | ||
| 151 | 			 : "=t" (__f) : "0" (__f), "u" (__g) : "st(1)"); | ||
| 152 | # endif | ||
| 153 | (void) &__f; | ||
| 154 | } | ||
| 155 | } | ||
| 156 | __extern_inline int | ||
| 157 | __NTH (feraiseexcept (int __excepts)) | ||
| 158 | { | ||
| 159 | if (__builtin_constant_p (__excepts) | ||
| 160 | && (__excepts & ~(FE_INVALID | FE_DIVBYZERO)) == 0) | ||
| 161 | { | ||
| 162 | __feraiseexcept_invalid_divbyzero (__excepts); | ||
| 163 | return 0; | ||
| 164 | } | ||
| 165 | |||
| 166 | return __feraiseexcept_renamed (__excepts); | ||
| 167 | } | ||
| 168 | |||
| 169 | __END_DECLS | ||
| 170 | #endif | 116 | #endif |
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/long-double.h+1-1| ... | @@ -18,4 +18,4 @@ | ... | @@ -18,4 +18,4 @@ |
| 18 | 18 | ||
| 19 | /* long double is distinct from double, so there is nothing to | 19 | /* long double is distinct from double, so there is nothing to |
| 20 | define here. */ | 20 | define here. */ |
| 21 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 21 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/select.h deleted-63| ... | @@ -1,63 +0,0 @@ | ||
| 1 | /* Copyright (C) 1997-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SYS_SELECT_H | ||
| 19 | # error "Never use <bits/select.h> directly; include <sys/select.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #include <bits/wordsize.h> | ||
| 23 | |||
| 24 | |||
| 25 | #if defined __GNUC__ && __GNUC__ >= 2 | ||
| 26 | |||
| 27 | # if __WORDSIZE == 64 | ||
| 28 | # define __FD_ZERO_STOS "stosq" | ||
| 29 | # else | ||
| 30 | # define __FD_ZERO_STOS "stosl" | ||
| 31 | # endif | ||
| 32 | |||
| 33 | # define __FD_ZERO(fdsp) \ | ||
| 34 | do {									 \ | ||
| 35 | int __d0, __d1;							 \ | ||
| 36 | __asm__ __volatile__ ("cld; rep; " __FD_ZERO_STOS			 \ | ||
| 37 | 			 : "=c" (__d0), "=D" (__d1)			 \ | ||
| 38 | 			 : "a" (0), "0" (sizeof (fd_set)		 \ | ||
| 39 | 					 / sizeof (__fd_mask)),	 \ | ||
| 40 | 			 "1" (&__FDS_BITS (fdsp)[0])			 \ | ||
| 41 | 			 : "memory");					 \ | ||
| 42 | } while (0) | ||
| 43 | |||
| 44 | #else	/* ! GNU CC */ | ||
| 45 | |||
| 46 | /* We don't use `memset' because this would require a prototype and | ||
| 47 | the array isn't too big. */ | ||
| 48 | # define __FD_ZERO(set) \ | ||
| 49 | do {									 \ | ||
| 50 | unsigned int __i;							 \ | ||
| 51 | fd_set *__arr = (set);						 \ | ||
| 52 | for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)	 \ | ||
| 53 | __FDS_BITS (__arr)[__i] = 0;					 \ | ||
| 54 | } while (0) | ||
| 55 | |||
| 56 | #endif	/* GNU CC */ | ||
| 57 | |||
| 58 | #define __FD_SET(d, set) \ | ||
| 59 | ((void) (__FDS_BITS (set)[__FD_ELT (d)] |= __FD_MASK (d))) | ||
| 60 | #define __FD_CLR(d, set) \ | ||
| 61 | ((void) (__FDS_BITS (set)[__FD_ELT (d)] &= ~__FD_MASK (d))) | ||
| 62 | #define __FD_ISSET(d, set) \ | ||
| 63 | ((__FDS_BITS (set)[__FD_ELT (d)] & __FD_MASK (d)) != 0) | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/sem-pad.h deleted-24| ... | @@ -1,24 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. x86 version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SEM_PAD_AFTER_TIME 1 | ||
| 24 | #define __SEM_PAD_BEFORE_TIME 0 | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/semaphore.h deleted-40| ... | @@ -1,40 +0,0 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SEMAPHORE_H | ||
| 20 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/wordsize.h> | ||
| 24 | |||
| 25 | #if __WORDSIZE == 64 | ||
| 26 | # define __SIZEOF_SEM_T	32 | ||
| 27 | #else | ||
| 28 | # define __SIZEOF_SEM_T	16 | ||
| 29 | #endif | ||
| 30 | |||
| 31 | |||
| 32 | /* Value returned if `sem_open' failed. */ | ||
| 33 | #define SEM_FAILED ((sem_t *) 0) | ||
| 34 | |||
| 35 | |||
| 36 | typedef union | ||
| 37 | { | ||
| 38 | char __size[__SIZEOF_SEM_T]; | ||
| 39 | long int __align; | ||
| 40 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/sysctl.h deleted-20| ... | @@ -1,20 +0,0 @@ | ||
| 1 | /* Copyright (C) 2012-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #if defined __x86_64__ && defined __ILP32__ | ||
| 19 | # error "sysctl system call is unsupported in x32 kernel" | ||
| 20 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/types/struct_semid_ds.h created+34| ... | @@ -0,0 +1,34 @@ | ||
| 1 | /* x86 implementation of the semaphore struct semid_ds. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm; /* operation permission struct */ | ||
| 27 | __time_t sem_otime; /* last semop() time */ | ||
| 28 | __syscall_ulong_t __sem_otime_high; | ||
| 29 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 30 | __syscall_ulong_t __sem_ctime_high; | ||
| 31 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | ||
| 32 | __syscall_ulong_t __glibc_reserved3; | ||
| 33 | __syscall_ulong_t __glibc_reserved4; | ||
| 34 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/typesizes.h+6| ... | @@ -64,6 +64,7 @@ | ... | @@ -64,6 +64,7 @@ |
| 64 | #define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE | 64 | #define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE |
| 65 | #define __USECONDS_T_TYPE	__U32_TYPE | 65 | #define __USECONDS_T_TYPE	__U32_TYPE |
| 66 | #define __SUSECONDS_T_TYPE	__SYSCALL_SLONG_TYPE | 66 | #define __SUSECONDS_T_TYPE	__SYSCALL_SLONG_TYPE |
| 67 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE | ||
| 67 | #define __DADDR_T_TYPE		__S32_TYPE | 68 | #define __DADDR_T_TYPE		__S32_TYPE |
| 68 | #define __KEY_T_TYPE		__S32_TYPE | 69 | #define __KEY_T_TYPE		__S32_TYPE |
| 69 | #define __CLOCKID_T_TYPE	__S32_TYPE | 70 | #define __CLOCKID_T_TYPE	__S32_TYPE |
| ... | @@ -87,10 +88,15 @@ | ... | @@ -87,10 +88,15 @@ |
| 87 | 88 | ||
| 88 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | 89 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ |
| 89 | # define __STATFS_MATCHES_STATFS64 1 | 90 | # define __STATFS_MATCHES_STATFS64 1 |
| 91 | |||
| 92 | /* And for getitimer, setitimer and rusage */ | ||
| 93 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 | ||
| 90 | #else | 94 | #else |
| 91 | # define __RLIM_T_MATCHES_RLIM64_T	0 | 95 | # define __RLIM_T_MATCHES_RLIM64_T	0 |
| 92 | 96 | ||
| 93 | # define __STATFS_MATCHES_STATFS64 0 | 97 | # define __STATFS_MATCHES_STATFS64 0 |
| 98 | |||
| 99 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 94 | #endif | 100 | #endif |
| 95 | 101 | ||
| 96 | /* Number of descriptors that can fit in an `fd_set'. */ | 102 | /* Number of descriptors that can fit in an `fd_set'. */ |
lib/libc/include/mips-linux-gnu/bits/floatn.h created+97| ... | @@ -0,0 +1,97 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on MIPS platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips-linux-gnu/bits/msq-pad.h deleted-31| ... | @@ -1,31 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #ifdef __MIPSEL__ | ||
| 26 | # define __MSQ_PAD_AFTER_TIME (__TIMESIZE == 32) | ||
| 27 | # define __MSQ_PAD_BEFORE_TIME 0 | ||
| 28 | #else | ||
| 29 | # define __MSQ_PAD_AFTER_TIME 0 | ||
| 30 | # define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| 31 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/mips-linux-gnu/bits/resource.h+1-1| ... | @@ -98,7 +98,7 @@ enum __rlimit_resource | ... | @@ -98,7 +98,7 @@ enum __rlimit_resource |
| 98 | __RLIMIT_RTPRIO = 14, | 98 | __RLIMIT_RTPRIO = 14, |
| 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO | 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO |
| 100 | 100 | ||
| 101 | /* Maximum CPU time in µs that a process scheduled under a real-time | 101 | /* Maximum CPU time in microseconds that a process scheduled under a real-time |
| 102 | scheduling policy may consume without making a blocking system | 102 | scheduling policy may consume without making a blocking system |
| 103 | call before being forcibly descheduled. */ | 103 | call before being forcibly descheduled. */ |
| 104 | __RLIMIT_RTTIME = 15, | 104 | __RLIMIT_RTTIME = 15, |
lib/libc/include/mips-linux-gnu/bits/sem-pad.h deleted-24| ... | @@ -1,24 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SEM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SEM_PAD_BEFORE_TIME 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mips-linux-gnu/bits/semaphore.h created+36| ... | @@ -0,0 +1,36 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library. If not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SEMAPHORE_H | ||
| 19 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #if _MIPS_SIM == _ABI64 | ||
| 23 | # define __SIZEOF_SEM_T	32 | ||
| 24 | #else | ||
| 25 | # define __SIZEOF_SEM_T	16 | ||
| 26 | #endif | ||
| 27 | |||
| 28 | /* Value returned if `sem_open' failed. */ | ||
| 29 | #define SEM_FAILED ((sem_t *) 0) | ||
| 30 | |||
| 31 | |||
| 32 | typedef union | ||
| 33 | { | ||
| 34 | char __size[__SIZEOF_SEM_T]; | ||
| 35 | long int __align; | ||
| 36 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/mips-linux-gnu/bits/shm-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SHM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SHM_PAD_BEFORE_TIME 0 | ||
| 25 | #define __SHM_SEGSZ_AFTER_TIME 0 | ||
| 26 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mips-linux-gnu/bits/signum-arch.h created+65| ... | @@ -0,0 +1,65 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | /* Adjustments and additions to the signal number constants for | ||
| 27 | Linux/MIPS. */ | ||
| 28 | |||
| 29 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 30 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 31 | |||
| 32 | /* Historical signals specified by POSIX. */ | ||
| 33 | #define SIGBUS 	10	/* Bus error. */ | ||
| 34 | #define SIGSYS		12	/* Bad system call. */ | ||
| 35 | |||
| 36 | /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ | ||
| 37 | #define SIGURG		21	/* Urgent data is available at a socket. */ | ||
| 38 | #define SIGSTOP		23	/* Stop, unblockable. */ | ||
| 39 | #define SIGTSTP		24	/* Keyboard stop. */ | ||
| 40 | #define SIGCONT		25	/* Continue. */ | ||
| 41 | #define SIGCHLD		18	/* Child terminated or stopped. */ | ||
| 42 | #define SIGTTIN		26	/* Background read from control terminal. */ | ||
| 43 | #define SIGTTOU		27	/* Background write to control terminal. */ | ||
| 44 | #define SIGPOLL		22	/* Pollable event occurred (System V). */ | ||
| 45 | #define SIGXCPU		30	/* CPU time limit exceeded. */ | ||
| 46 | #define SIGVTALRM	28	/* Virtual timer expired. */ | ||
| 47 | #define SIGPROF		29	/* Profiling timer expired. */ | ||
| 48 | #define SIGXFSZ		31	/* File size limit exceeded. */ | ||
| 49 | #define SIGUSR1		16	/* User-defined signal 1. */ | ||
| 50 | #define SIGUSR2		17	/* User-defined signal 2. */ | ||
| 51 | |||
| 52 | /* Nonstandard signals found in all modern POSIX systems | ||
| 53 | (including both BSD and Linux). */ | ||
| 54 | #define SIGWINCH	20	/* Window size change (4.3 BSD, Sun). */ | ||
| 55 | |||
| 56 | /* Archaic names for compatibility. */ | ||
| 57 | #define SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD). */ | ||
| 58 | #define SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11. */ | ||
| 59 | #define SIGCLD		SIGCHLD /* Old System V name */ | ||
| 60 | |||
| 61 | /* By default no real-time signals are supported. */ | ||
| 62 | #define __SIGRTMIN	32 | ||
| 63 | #define __SIGRTMAX	127 | ||
| 64 | |||
| 65 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips-linux-gnu/bits/signum.h deleted-68| ... | @@ -1,68 +0,0 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include <bits/signum-generic.h> | ||
| 27 | |||
| 28 | /* Adjustments and additions to the signal number constants for | ||
| 29 | Linux/MIPS. */ | ||
| 30 | |||
| 31 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 32 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 33 | |||
| 34 | #undef	SIGUSR1 | ||
| 35 | #define SIGUSR1		16 | ||
| 36 | #undef	SIGUSR2 | ||
| 37 | #define SIGUSR2		17 | ||
| 38 | #undef	SIGCHLD | ||
| 39 | #define SIGCHLD		18 | ||
| 40 | #undef	SIGWINCH | ||
| 41 | #define SIGWINCH	20 | ||
| 42 | #undef	SIGURG | ||
| 43 | #define SIGURG		21 | ||
| 44 | #undef	SIGPOLL | ||
| 45 | #define SIGPOLL		22 | ||
| 46 | #undef	SIGSTOP | ||
| 47 | #define SIGSTOP		23 | ||
| 48 | #undef	SIGTSTP | ||
| 49 | #define SIGTSTP		24 | ||
| 50 | #undef	SIGCONT | ||
| 51 | #define SIGCONT		25 | ||
| 52 | #undef	SIGTTIN | ||
| 53 | #define SIGTTIN		26 | ||
| 54 | #undef	SIGTTOU | ||
| 55 | #define SIGTTOU		27 | ||
| 56 | #undef	SIGVTALRM | ||
| 57 | #define SIGVTALRM	28 | ||
| 58 | #undef	SIGPROF | ||
| 59 | #define SIGPROF		29 | ||
| 60 | #undef	SIGXCPU | ||
| 61 | #define SIGXCPU		30 | ||
| 62 | #undef	SIGXFSZ | ||
| 63 | #define SIGXFSZ		31 | ||
| 64 | |||
| 65 | #undef	__SIGRTMAX | ||
| 66 | #define __SIGRTMAX	127 | ||
| 67 | |||
| 68 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips-linux-gnu/bits/types/struct_msqid_ds.h created+56| ... | @@ -0,0 +1,56 @@ | ||
| 1 | /* Linux/MIPS implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | # ifdef __MIPSEL__ | ||
| 30 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 31 | unsigned long int __msg_stime_high; | ||
| 32 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 33 | unsigned long int __msg_rtime_high; | ||
| 34 | __time_t msg_ctime;		/* time of last change */ | ||
| 35 | unsigned long int __msg_ctime_high; | ||
| 36 | # else | ||
| 37 | unsigned long int __msg_stime_high; | ||
| 38 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 39 | unsigned long int __msg_rtime_high; | ||
| 40 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 41 | unsigned long int __msg_ctime_high; | ||
| 42 | __time_t msg_ctime;		/* time of last change */ | ||
| 43 | # endif | ||
| 44 | #else | ||
| 45 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 46 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 47 | __time_t msg_ctime;		/* time of last change */ | ||
| 48 | #endif | ||
| 49 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 50 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 51 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 52 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 53 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 54 | __syscall_ulong_t __glibc_reserved4; | ||
| 55 | __syscall_ulong_t __glibc_reserved5; | ||
| 56 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips-linux-gnu/bits/types/struct_semid_ds.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* MIPS implementation of the semaphore struct semid_ds | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm;		/* operation permission struct */ | ||
| 27 | __time_t sem_otime;	/* last semop() time */ | ||
| 28 | __time_t sem_ctime;	/* last time changed by semctl() */ | ||
| 29 | __syscall_ulong_t sem_nsems;		/* number of semaphores in set */ | ||
| 30 | __syscall_ulong_t __sem_otime_high; | ||
| 31 | __syscall_ulong_t __sem_ctime_high; | ||
| 32 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips-linux-gnu/bits/types/struct_shmid_ds.h created+49| ... | @@ -0,0 +1,49 @@ | ||
| 1 | /* Linux/MIPS implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 31 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 32 | #else | ||
| 33 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 34 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 35 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 36 | #endif | ||
| 37 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 38 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 39 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 40 | #if __TIMESIZE == 32 | ||
| 41 | unsigned short int __shm_atime_high; | ||
| 42 | unsigned short int __shm_dtime_high; | ||
| 43 | unsigned short int __shm_ctime_high; | ||
| 44 | unsigned short int __glibc_reserved4; | ||
| 45 | #else | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | __syscall_ulong_t __glibc_reserved6; | ||
| 48 | #endif | ||
| 49 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabi64/bits/floatn.h created+97| ... | @@ -0,0 +1,97 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on MIPS platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabi64/bits/msq-pad.h deleted-31| ... | @@ -1,31 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #ifdef __MIPSEL__ | ||
| 26 | # define __MSQ_PAD_AFTER_TIME (__TIMESIZE == 32) | ||
| 27 | # define __MSQ_PAD_BEFORE_TIME 0 | ||
| 28 | #else | ||
| 29 | # define __MSQ_PAD_AFTER_TIME 0 | ||
| 30 | # define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| 31 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabi64/bits/resource.h+1-1| ... | @@ -98,7 +98,7 @@ enum __rlimit_resource | ... | @@ -98,7 +98,7 @@ enum __rlimit_resource |
| 98 | __RLIMIT_RTPRIO = 14, | 98 | __RLIMIT_RTPRIO = 14, |
| 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO | 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO |
| 100 | 100 | ||
| 101 | /* Maximum CPU time in µs that a process scheduled under a real-time | 101 | /* Maximum CPU time in microseconds that a process scheduled under a real-time |
| 102 | scheduling policy may consume without making a blocking system | 102 | scheduling policy may consume without making a blocking system |
| 103 | call before being forcibly descheduled. */ | 103 | call before being forcibly descheduled. */ |
| 104 | __RLIMIT_RTTIME = 15, | 104 | __RLIMIT_RTTIME = 15, |
lib/libc/include/mips64-linux-gnuabi64/bits/sem-pad.h deleted-24| ... | @@ -1,24 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SEM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SEM_PAD_BEFORE_TIME 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabi64/bits/semaphore.h created+36| ... | @@ -0,0 +1,36 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library. If not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SEMAPHORE_H | ||
| 19 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #if _MIPS_SIM == _ABI64 | ||
| 23 | # define __SIZEOF_SEM_T	32 | ||
| 24 | #else | ||
| 25 | # define __SIZEOF_SEM_T	16 | ||
| 26 | #endif | ||
| 27 | |||
| 28 | /* Value returned if `sem_open' failed. */ | ||
| 29 | #define SEM_FAILED ((sem_t *) 0) | ||
| 30 | |||
| 31 | |||
| 32 | typedef union | ||
| 33 | { | ||
| 34 | char __size[__SIZEOF_SEM_T]; | ||
| 35 | long int __align; | ||
| 36 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabi64/bits/shm-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SHM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SHM_PAD_BEFORE_TIME 0 | ||
| 25 | #define __SHM_SEGSZ_AFTER_TIME 0 | ||
| 26 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabi64/bits/signum-arch.h created+65| ... | @@ -0,0 +1,65 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | /* Adjustments and additions to the signal number constants for | ||
| 27 | Linux/MIPS. */ | ||
| 28 | |||
| 29 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 30 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 31 | |||
| 32 | /* Historical signals specified by POSIX. */ | ||
| 33 | #define SIGBUS 	10	/* Bus error. */ | ||
| 34 | #define SIGSYS		12	/* Bad system call. */ | ||
| 35 | |||
| 36 | /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ | ||
| 37 | #define SIGURG		21	/* Urgent data is available at a socket. */ | ||
| 38 | #define SIGSTOP		23	/* Stop, unblockable. */ | ||
| 39 | #define SIGTSTP		24	/* Keyboard stop. */ | ||
| 40 | #define SIGCONT		25	/* Continue. */ | ||
| 41 | #define SIGCHLD		18	/* Child terminated or stopped. */ | ||
| 42 | #define SIGTTIN		26	/* Background read from control terminal. */ | ||
| 43 | #define SIGTTOU		27	/* Background write to control terminal. */ | ||
| 44 | #define SIGPOLL		22	/* Pollable event occurred (System V). */ | ||
| 45 | #define SIGXCPU		30	/* CPU time limit exceeded. */ | ||
| 46 | #define SIGVTALRM	28	/* Virtual timer expired. */ | ||
| 47 | #define SIGPROF		29	/* Profiling timer expired. */ | ||
| 48 | #define SIGXFSZ		31	/* File size limit exceeded. */ | ||
| 49 | #define SIGUSR1		16	/* User-defined signal 1. */ | ||
| 50 | #define SIGUSR2		17	/* User-defined signal 2. */ | ||
| 51 | |||
| 52 | /* Nonstandard signals found in all modern POSIX systems | ||
| 53 | (including both BSD and Linux). */ | ||
| 54 | #define SIGWINCH	20	/* Window size change (4.3 BSD, Sun). */ | ||
| 55 | |||
| 56 | /* Archaic names for compatibility. */ | ||
| 57 | #define SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD). */ | ||
| 58 | #define SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11. */ | ||
| 59 | #define SIGCLD		SIGCHLD /* Old System V name */ | ||
| 60 | |||
| 61 | /* By default no real-time signals are supported. */ | ||
| 62 | #define __SIGRTMIN	32 | ||
| 63 | #define __SIGRTMAX	127 | ||
| 64 | |||
| 65 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabi64/bits/signum.h deleted-68| ... | @@ -1,68 +0,0 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include <bits/signum-generic.h> | ||
| 27 | |||
| 28 | /* Adjustments and additions to the signal number constants for | ||
| 29 | Linux/MIPS. */ | ||
| 30 | |||
| 31 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 32 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 33 | |||
| 34 | #undef	SIGUSR1 | ||
| 35 | #define SIGUSR1		16 | ||
| 36 | #undef	SIGUSR2 | ||
| 37 | #define SIGUSR2		17 | ||
| 38 | #undef	SIGCHLD | ||
| 39 | #define SIGCHLD		18 | ||
| 40 | #undef	SIGWINCH | ||
| 41 | #define SIGWINCH	20 | ||
| 42 | #undef	SIGURG | ||
| 43 | #define SIGURG		21 | ||
| 44 | #undef	SIGPOLL | ||
| 45 | #define SIGPOLL		22 | ||
| 46 | #undef	SIGSTOP | ||
| 47 | #define SIGSTOP		23 | ||
| 48 | #undef	SIGTSTP | ||
| 49 | #define SIGTSTP		24 | ||
| 50 | #undef	SIGCONT | ||
| 51 | #define SIGCONT		25 | ||
| 52 | #undef	SIGTTIN | ||
| 53 | #define SIGTTIN		26 | ||
| 54 | #undef	SIGTTOU | ||
| 55 | #define SIGTTOU		27 | ||
| 56 | #undef	SIGVTALRM | ||
| 57 | #define SIGVTALRM	28 | ||
| 58 | #undef	SIGPROF | ||
| 59 | #define SIGPROF		29 | ||
| 60 | #undef	SIGXCPU | ||
| 61 | #define SIGXCPU		30 | ||
| 62 | #undef	SIGXFSZ | ||
| 63 | #define SIGXFSZ		31 | ||
| 64 | |||
| 65 | #undef	__SIGRTMAX | ||
| 66 | #define __SIGRTMAX	127 | ||
| 67 | |||
| 68 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabi64/bits/types/struct_msqid_ds.h created+56| ... | @@ -0,0 +1,56 @@ | ||
| 1 | /* Linux/MIPS implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | # ifdef __MIPSEL__ | ||
| 30 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 31 | unsigned long int __msg_stime_high; | ||
| 32 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 33 | unsigned long int __msg_rtime_high; | ||
| 34 | __time_t msg_ctime;		/* time of last change */ | ||
| 35 | unsigned long int __msg_ctime_high; | ||
| 36 | # else | ||
| 37 | unsigned long int __msg_stime_high; | ||
| 38 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 39 | unsigned long int __msg_rtime_high; | ||
| 40 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 41 | unsigned long int __msg_ctime_high; | ||
| 42 | __time_t msg_ctime;		/* time of last change */ | ||
| 43 | # endif | ||
| 44 | #else | ||
| 45 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 46 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 47 | __time_t msg_ctime;		/* time of last change */ | ||
| 48 | #endif | ||
| 49 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 50 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 51 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 52 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 53 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 54 | __syscall_ulong_t __glibc_reserved4; | ||
| 55 | __syscall_ulong_t __glibc_reserved5; | ||
| 56 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabi64/bits/types/struct_semid_ds.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* MIPS implementation of the semaphore struct semid_ds | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm;		/* operation permission struct */ | ||
| 27 | __time_t sem_otime;	/* last semop() time */ | ||
| 28 | __time_t sem_ctime;	/* last time changed by semctl() */ | ||
| 29 | __syscall_ulong_t sem_nsems;		/* number of semaphores in set */ | ||
| 30 | __syscall_ulong_t __sem_otime_high; | ||
| 31 | __syscall_ulong_t __sem_ctime_high; | ||
| 32 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabi64/bits/types/struct_shmid_ds.h created+49| ... | @@ -0,0 +1,49 @@ | ||
| 1 | /* Linux/MIPS implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 31 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 32 | #else | ||
| 33 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 34 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 35 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 36 | #endif | ||
| 37 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 38 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 39 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 40 | #if __TIMESIZE == 32 | ||
| 41 | unsigned short int __shm_atime_high; | ||
| 42 | unsigned short int __shm_dtime_high; | ||
| 43 | unsigned short int __shm_ctime_high; | ||
| 44 | unsigned short int __glibc_reserved4; | ||
| 45 | #else | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | __syscall_ulong_t __glibc_reserved6; | ||
| 48 | #endif | ||
| 49 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabin32/bits/floatn.h created+97| ... | @@ -0,0 +1,97 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on MIPS platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabin32/bits/msq-pad.h deleted-31| ... | @@ -1,31 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #ifdef __MIPSEL__ | ||
| 26 | # define __MSQ_PAD_AFTER_TIME (__TIMESIZE == 32) | ||
| 27 | # define __MSQ_PAD_BEFORE_TIME 0 | ||
| 28 | #else | ||
| 29 | # define __MSQ_PAD_AFTER_TIME 0 | ||
| 30 | # define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| 31 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabin32/bits/resource.h+1-1| ... | @@ -98,7 +98,7 @@ enum __rlimit_resource | ... | @@ -98,7 +98,7 @@ enum __rlimit_resource |
| 98 | __RLIMIT_RTPRIO = 14, | 98 | __RLIMIT_RTPRIO = 14, |
| 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO | 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO |
| 100 | 100 | ||
| 101 | /* Maximum CPU time in µs that a process scheduled under a real-time | 101 | /* Maximum CPU time in microseconds that a process scheduled under a real-time |
| 102 | scheduling policy may consume without making a blocking system | 102 | scheduling policy may consume without making a blocking system |
| 103 | call before being forcibly descheduled. */ | 103 | call before being forcibly descheduled. */ |
| 104 | __RLIMIT_RTTIME = 15, | 104 | __RLIMIT_RTTIME = 15, |
lib/libc/include/mips64-linux-gnuabin32/bits/sem-pad.h deleted-24| ... | @@ -1,24 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SEM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SEM_PAD_BEFORE_TIME 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabin32/bits/semaphore.h created+36| ... | @@ -0,0 +1,36 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library. If not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SEMAPHORE_H | ||
| 19 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #if _MIPS_SIM == _ABI64 | ||
| 23 | # define __SIZEOF_SEM_T	32 | ||
| 24 | #else | ||
| 25 | # define __SIZEOF_SEM_T	16 | ||
| 26 | #endif | ||
| 27 | |||
| 28 | /* Value returned if `sem_open' failed. */ | ||
| 29 | #define SEM_FAILED ((sem_t *) 0) | ||
| 30 | |||
| 31 | |||
| 32 | typedef union | ||
| 33 | { | ||
| 34 | char __size[__SIZEOF_SEM_T]; | ||
| 35 | long int __align; | ||
| 36 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabin32/bits/shm-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SHM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SHM_PAD_BEFORE_TIME 0 | ||
| 25 | #define __SHM_SEGSZ_AFTER_TIME 0 | ||
| 26 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabin32/bits/signum-arch.h created+65| ... | @@ -0,0 +1,65 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | /* Adjustments and additions to the signal number constants for | ||
| 27 | Linux/MIPS. */ | ||
| 28 | |||
| 29 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 30 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 31 | |||
| 32 | /* Historical signals specified by POSIX. */ | ||
| 33 | #define SIGBUS 	10	/* Bus error. */ | ||
| 34 | #define SIGSYS		12	/* Bad system call. */ | ||
| 35 | |||
| 36 | /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ | ||
| 37 | #define SIGURG		21	/* Urgent data is available at a socket. */ | ||
| 38 | #define SIGSTOP		23	/* Stop, unblockable. */ | ||
| 39 | #define SIGTSTP		24	/* Keyboard stop. */ | ||
| 40 | #define SIGCONT		25	/* Continue. */ | ||
| 41 | #define SIGCHLD		18	/* Child terminated or stopped. */ | ||
| 42 | #define SIGTTIN		26	/* Background read from control terminal. */ | ||
| 43 | #define SIGTTOU		27	/* Background write to control terminal. */ | ||
| 44 | #define SIGPOLL		22	/* Pollable event occurred (System V). */ | ||
| 45 | #define SIGXCPU		30	/* CPU time limit exceeded. */ | ||
| 46 | #define SIGVTALRM	28	/* Virtual timer expired. */ | ||
| 47 | #define SIGPROF		29	/* Profiling timer expired. */ | ||
| 48 | #define SIGXFSZ		31	/* File size limit exceeded. */ | ||
| 49 | #define SIGUSR1		16	/* User-defined signal 1. */ | ||
| 50 | #define SIGUSR2		17	/* User-defined signal 2. */ | ||
| 51 | |||
| 52 | /* Nonstandard signals found in all modern POSIX systems | ||
| 53 | (including both BSD and Linux). */ | ||
| 54 | #define SIGWINCH	20	/* Window size change (4.3 BSD, Sun). */ | ||
| 55 | |||
| 56 | /* Archaic names for compatibility. */ | ||
| 57 | #define SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD). */ | ||
| 58 | #define SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11. */ | ||
| 59 | #define SIGCLD		SIGCHLD /* Old System V name */ | ||
| 60 | |||
| 61 | /* By default no real-time signals are supported. */ | ||
| 62 | #define __SIGRTMIN	32 | ||
| 63 | #define __SIGRTMAX	127 | ||
| 64 | |||
| 65 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabin32/bits/signum.h deleted-68| ... | @@ -1,68 +0,0 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include <bits/signum-generic.h> | ||
| 27 | |||
| 28 | /* Adjustments and additions to the signal number constants for | ||
| 29 | Linux/MIPS. */ | ||
| 30 | |||
| 31 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 32 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 33 | |||
| 34 | #undef	SIGUSR1 | ||
| 35 | #define SIGUSR1		16 | ||
| 36 | #undef	SIGUSR2 | ||
| 37 | #define SIGUSR2		17 | ||
| 38 | #undef	SIGCHLD | ||
| 39 | #define SIGCHLD		18 | ||
| 40 | #undef	SIGWINCH | ||
| 41 | #define SIGWINCH	20 | ||
| 42 | #undef	SIGURG | ||
| 43 | #define SIGURG		21 | ||
| 44 | #undef	SIGPOLL | ||
| 45 | #define SIGPOLL		22 | ||
| 46 | #undef	SIGSTOP | ||
| 47 | #define SIGSTOP		23 | ||
| 48 | #undef	SIGTSTP | ||
| 49 | #define SIGTSTP		24 | ||
| 50 | #undef	SIGCONT | ||
| 51 | #define SIGCONT		25 | ||
| 52 | #undef	SIGTTIN | ||
| 53 | #define SIGTTIN		26 | ||
| 54 | #undef	SIGTTOU | ||
| 55 | #define SIGTTOU		27 | ||
| 56 | #undef	SIGVTALRM | ||
| 57 | #define SIGVTALRM	28 | ||
| 58 | #undef	SIGPROF | ||
| 59 | #define SIGPROF		29 | ||
| 60 | #undef	SIGXCPU | ||
| 61 | #define SIGXCPU		30 | ||
| 62 | #undef	SIGXFSZ | ||
| 63 | #define SIGXFSZ		31 | ||
| 64 | |||
| 65 | #undef	__SIGRTMAX | ||
| 66 | #define __SIGRTMAX	127 | ||
| 67 | |||
| 68 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabin32/bits/types/struct_msqid_ds.h created+56| ... | @@ -0,0 +1,56 @@ | ||
| 1 | /* Linux/MIPS implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | # ifdef __MIPSEL__ | ||
| 30 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 31 | unsigned long int __msg_stime_high; | ||
| 32 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 33 | unsigned long int __msg_rtime_high; | ||
| 34 | __time_t msg_ctime;		/* time of last change */ | ||
| 35 | unsigned long int __msg_ctime_high; | ||
| 36 | # else | ||
| 37 | unsigned long int __msg_stime_high; | ||
| 38 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 39 | unsigned long int __msg_rtime_high; | ||
| 40 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 41 | unsigned long int __msg_ctime_high; | ||
| 42 | __time_t msg_ctime;		/* time of last change */ | ||
| 43 | # endif | ||
| 44 | #else | ||
| 45 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 46 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 47 | __time_t msg_ctime;		/* time of last change */ | ||
| 48 | #endif | ||
| 49 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 50 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 51 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 52 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 53 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 54 | __syscall_ulong_t __glibc_reserved4; | ||
| 55 | __syscall_ulong_t __glibc_reserved5; | ||
| 56 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabin32/bits/types/struct_semid_ds.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* MIPS implementation of the semaphore struct semid_ds | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm;		/* operation permission struct */ | ||
| 27 | __time_t sem_otime;	/* last semop() time */ | ||
| 28 | __time_t sem_ctime;	/* last time changed by semctl() */ | ||
| 29 | __syscall_ulong_t sem_nsems;		/* number of semaphores in set */ | ||
| 30 | __syscall_ulong_t __sem_otime_high; | ||
| 31 | __syscall_ulong_t __sem_ctime_high; | ||
| 32 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64-linux-gnuabin32/bits/types/struct_shmid_ds.h created+49| ... | @@ -0,0 +1,49 @@ | ||
| 1 | /* Linux/MIPS implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 31 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 32 | #else | ||
| 33 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 34 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 35 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 36 | #endif | ||
| 37 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 38 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 39 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 40 | #if __TIMESIZE == 32 | ||
| 41 | unsigned short int __shm_atime_high; | ||
| 42 | unsigned short int __shm_dtime_high; | ||
| 43 | unsigned short int __shm_ctime_high; | ||
| 44 | unsigned short int __glibc_reserved4; | ||
| 45 | #else | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | __syscall_ulong_t __glibc_reserved6; | ||
| 48 | #endif | ||
| 49 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabi64/bits/floatn.h created+97| ... | @@ -0,0 +1,97 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on MIPS platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabi64/bits/msq-pad.h deleted-31| ... | @@ -1,31 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #ifdef __MIPSEL__ | ||
| 26 | # define __MSQ_PAD_AFTER_TIME (__TIMESIZE == 32) | ||
| 27 | # define __MSQ_PAD_BEFORE_TIME 0 | ||
| 28 | #else | ||
| 29 | # define __MSQ_PAD_AFTER_TIME 0 | ||
| 30 | # define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| 31 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabi64/bits/resource.h+1-1| ... | @@ -98,7 +98,7 @@ enum __rlimit_resource | ... | @@ -98,7 +98,7 @@ enum __rlimit_resource |
| 98 | __RLIMIT_RTPRIO = 14, | 98 | __RLIMIT_RTPRIO = 14, |
| 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO | 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO |
| 100 | 100 | ||
| 101 | /* Maximum CPU time in µs that a process scheduled under a real-time | 101 | /* Maximum CPU time in microseconds that a process scheduled under a real-time |
| 102 | scheduling policy may consume without making a blocking system | 102 | scheduling policy may consume without making a blocking system |
| 103 | call before being forcibly descheduled. */ | 103 | call before being forcibly descheduled. */ |
| 104 | __RLIMIT_RTTIME = 15, | 104 | __RLIMIT_RTTIME = 15, |
lib/libc/include/mips64el-linux-gnuabi64/bits/sem-pad.h deleted-24| ... | @@ -1,24 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SEM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SEM_PAD_BEFORE_TIME 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabi64/bits/semaphore.h created+36| ... | @@ -0,0 +1,36 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library. If not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SEMAPHORE_H | ||
| 19 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #if _MIPS_SIM == _ABI64 | ||
| 23 | # define __SIZEOF_SEM_T	32 | ||
| 24 | #else | ||
| 25 | # define __SIZEOF_SEM_T	16 | ||
| 26 | #endif | ||
| 27 | |||
| 28 | /* Value returned if `sem_open' failed. */ | ||
| 29 | #define SEM_FAILED ((sem_t *) 0) | ||
| 30 | |||
| 31 | |||
| 32 | typedef union | ||
| 33 | { | ||
| 34 | char __size[__SIZEOF_SEM_T]; | ||
| 35 | long int __align; | ||
| 36 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabi64/bits/shm-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SHM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SHM_PAD_BEFORE_TIME 0 | ||
| 25 | #define __SHM_SEGSZ_AFTER_TIME 0 | ||
| 26 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabi64/bits/signum-arch.h created+65| ... | @@ -0,0 +1,65 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | /* Adjustments and additions to the signal number constants for | ||
| 27 | Linux/MIPS. */ | ||
| 28 | |||
| 29 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 30 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 31 | |||
| 32 | /* Historical signals specified by POSIX. */ | ||
| 33 | #define SIGBUS 	10	/* Bus error. */ | ||
| 34 | #define SIGSYS		12	/* Bad system call. */ | ||
| 35 | |||
| 36 | /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ | ||
| 37 | #define SIGURG		21	/* Urgent data is available at a socket. */ | ||
| 38 | #define SIGSTOP		23	/* Stop, unblockable. */ | ||
| 39 | #define SIGTSTP		24	/* Keyboard stop. */ | ||
| 40 | #define SIGCONT		25	/* Continue. */ | ||
| 41 | #define SIGCHLD		18	/* Child terminated or stopped. */ | ||
| 42 | #define SIGTTIN		26	/* Background read from control terminal. */ | ||
| 43 | #define SIGTTOU		27	/* Background write to control terminal. */ | ||
| 44 | #define SIGPOLL		22	/* Pollable event occurred (System V). */ | ||
| 45 | #define SIGXCPU		30	/* CPU time limit exceeded. */ | ||
| 46 | #define SIGVTALRM	28	/* Virtual timer expired. */ | ||
| 47 | #define SIGPROF		29	/* Profiling timer expired. */ | ||
| 48 | #define SIGXFSZ		31	/* File size limit exceeded. */ | ||
| 49 | #define SIGUSR1		16	/* User-defined signal 1. */ | ||
| 50 | #define SIGUSR2		17	/* User-defined signal 2. */ | ||
| 51 | |||
| 52 | /* Nonstandard signals found in all modern POSIX systems | ||
| 53 | (including both BSD and Linux). */ | ||
| 54 | #define SIGWINCH	20	/* Window size change (4.3 BSD, Sun). */ | ||
| 55 | |||
| 56 | /* Archaic names for compatibility. */ | ||
| 57 | #define SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD). */ | ||
| 58 | #define SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11. */ | ||
| 59 | #define SIGCLD		SIGCHLD /* Old System V name */ | ||
| 60 | |||
| 61 | /* By default no real-time signals are supported. */ | ||
| 62 | #define __SIGRTMIN	32 | ||
| 63 | #define __SIGRTMAX	127 | ||
| 64 | |||
| 65 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabi64/bits/signum.h deleted-68| ... | @@ -1,68 +0,0 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include <bits/signum-generic.h> | ||
| 27 | |||
| 28 | /* Adjustments and additions to the signal number constants for | ||
| 29 | Linux/MIPS. */ | ||
| 30 | |||
| 31 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 32 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 33 | |||
| 34 | #undef	SIGUSR1 | ||
| 35 | #define SIGUSR1		16 | ||
| 36 | #undef	SIGUSR2 | ||
| 37 | #define SIGUSR2		17 | ||
| 38 | #undef	SIGCHLD | ||
| 39 | #define SIGCHLD		18 | ||
| 40 | #undef	SIGWINCH | ||
| 41 | #define SIGWINCH	20 | ||
| 42 | #undef	SIGURG | ||
| 43 | #define SIGURG		21 | ||
| 44 | #undef	SIGPOLL | ||
| 45 | #define SIGPOLL		22 | ||
| 46 | #undef	SIGSTOP | ||
| 47 | #define SIGSTOP		23 | ||
| 48 | #undef	SIGTSTP | ||
| 49 | #define SIGTSTP		24 | ||
| 50 | #undef	SIGCONT | ||
| 51 | #define SIGCONT		25 | ||
| 52 | #undef	SIGTTIN | ||
| 53 | #define SIGTTIN		26 | ||
| 54 | #undef	SIGTTOU | ||
| 55 | #define SIGTTOU		27 | ||
| 56 | #undef	SIGVTALRM | ||
| 57 | #define SIGVTALRM	28 | ||
| 58 | #undef	SIGPROF | ||
| 59 | #define SIGPROF		29 | ||
| 60 | #undef	SIGXCPU | ||
| 61 | #define SIGXCPU		30 | ||
| 62 | #undef	SIGXFSZ | ||
| 63 | #define SIGXFSZ		31 | ||
| 64 | |||
| 65 | #undef	__SIGRTMAX | ||
| 66 | #define __SIGRTMAX	127 | ||
| 67 | |||
| 68 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabi64/bits/types/struct_msqid_ds.h created+56| ... | @@ -0,0 +1,56 @@ | ||
| 1 | /* Linux/MIPS implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | # ifdef __MIPSEL__ | ||
| 30 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 31 | unsigned long int __msg_stime_high; | ||
| 32 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 33 | unsigned long int __msg_rtime_high; | ||
| 34 | __time_t msg_ctime;		/* time of last change */ | ||
| 35 | unsigned long int __msg_ctime_high; | ||
| 36 | # else | ||
| 37 | unsigned long int __msg_stime_high; | ||
| 38 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 39 | unsigned long int __msg_rtime_high; | ||
| 40 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 41 | unsigned long int __msg_ctime_high; | ||
| 42 | __time_t msg_ctime;		/* time of last change */ | ||
| 43 | # endif | ||
| 44 | #else | ||
| 45 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 46 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 47 | __time_t msg_ctime;		/* time of last change */ | ||
| 48 | #endif | ||
| 49 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 50 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 51 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 52 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 53 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 54 | __syscall_ulong_t __glibc_reserved4; | ||
| 55 | __syscall_ulong_t __glibc_reserved5; | ||
| 56 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabi64/bits/types/struct_semid_ds.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* MIPS implementation of the semaphore struct semid_ds | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm;		/* operation permission struct */ | ||
| 27 | __time_t sem_otime;	/* last semop() time */ | ||
| 28 | __time_t sem_ctime;	/* last time changed by semctl() */ | ||
| 29 | __syscall_ulong_t sem_nsems;		/* number of semaphores in set */ | ||
| 30 | __syscall_ulong_t __sem_otime_high; | ||
| 31 | __syscall_ulong_t __sem_ctime_high; | ||
| 32 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabi64/bits/types/struct_shmid_ds.h created+49| ... | @@ -0,0 +1,49 @@ | ||
| 1 | /* Linux/MIPS implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 31 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 32 | #else | ||
| 33 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 34 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 35 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 36 | #endif | ||
| 37 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 38 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 39 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 40 | #if __TIMESIZE == 32 | ||
| 41 | unsigned short int __shm_atime_high; | ||
| 42 | unsigned short int __shm_dtime_high; | ||
| 43 | unsigned short int __shm_ctime_high; | ||
| 44 | unsigned short int __glibc_reserved4; | ||
| 45 | #else | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | __syscall_ulong_t __glibc_reserved6; | ||
| 48 | #endif | ||
| 49 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabin32/bits/floatn.h created+97| ... | @@ -0,0 +1,97 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on MIPS platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabin32/bits/msq-pad.h deleted-31| ... | @@ -1,31 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #ifdef __MIPSEL__ | ||
| 26 | # define __MSQ_PAD_AFTER_TIME (__TIMESIZE == 32) | ||
| 27 | # define __MSQ_PAD_BEFORE_TIME 0 | ||
| 28 | #else | ||
| 29 | # define __MSQ_PAD_AFTER_TIME 0 | ||
| 30 | # define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| 31 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabin32/bits/resource.h+1-1| ... | @@ -98,7 +98,7 @@ enum __rlimit_resource | ... | @@ -98,7 +98,7 @@ enum __rlimit_resource |
| 98 | __RLIMIT_RTPRIO = 14, | 98 | __RLIMIT_RTPRIO = 14, |
| 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO | 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO |
| 100 | 100 | ||
| 101 | /* Maximum CPU time in µs that a process scheduled under a real-time | 101 | /* Maximum CPU time in microseconds that a process scheduled under a real-time |
| 102 | scheduling policy may consume without making a blocking system | 102 | scheduling policy may consume without making a blocking system |
| 103 | call before being forcibly descheduled. */ | 103 | call before being forcibly descheduled. */ |
| 104 | __RLIMIT_RTTIME = 15, | 104 | __RLIMIT_RTTIME = 15, |
lib/libc/include/mips64el-linux-gnuabin32/bits/sem-pad.h deleted-24| ... | @@ -1,24 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SEM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SEM_PAD_BEFORE_TIME 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabin32/bits/semaphore.h created+36| ... | @@ -0,0 +1,36 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library. If not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SEMAPHORE_H | ||
| 19 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #if _MIPS_SIM == _ABI64 | ||
| 23 | # define __SIZEOF_SEM_T	32 | ||
| 24 | #else | ||
| 25 | # define __SIZEOF_SEM_T	16 | ||
| 26 | #endif | ||
| 27 | |||
| 28 | /* Value returned if `sem_open' failed. */ | ||
| 29 | #define SEM_FAILED ((sem_t *) 0) | ||
| 30 | |||
| 31 | |||
| 32 | typedef union | ||
| 33 | { | ||
| 34 | char __size[__SIZEOF_SEM_T]; | ||
| 35 | long int __align; | ||
| 36 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabin32/bits/shm-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SHM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SHM_PAD_BEFORE_TIME 0 | ||
| 25 | #define __SHM_SEGSZ_AFTER_TIME 0 | ||
| 26 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabin32/bits/signum-arch.h created+65| ... | @@ -0,0 +1,65 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | /* Adjustments and additions to the signal number constants for | ||
| 27 | Linux/MIPS. */ | ||
| 28 | |||
| 29 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 30 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 31 | |||
| 32 | /* Historical signals specified by POSIX. */ | ||
| 33 | #define SIGBUS 	10	/* Bus error. */ | ||
| 34 | #define SIGSYS		12	/* Bad system call. */ | ||
| 35 | |||
| 36 | /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ | ||
| 37 | #define SIGURG		21	/* Urgent data is available at a socket. */ | ||
| 38 | #define SIGSTOP		23	/* Stop, unblockable. */ | ||
| 39 | #define SIGTSTP		24	/* Keyboard stop. */ | ||
| 40 | #define SIGCONT		25	/* Continue. */ | ||
| 41 | #define SIGCHLD		18	/* Child terminated or stopped. */ | ||
| 42 | #define SIGTTIN		26	/* Background read from control terminal. */ | ||
| 43 | #define SIGTTOU		27	/* Background write to control terminal. */ | ||
| 44 | #define SIGPOLL		22	/* Pollable event occurred (System V). */ | ||
| 45 | #define SIGXCPU		30	/* CPU time limit exceeded. */ | ||
| 46 | #define SIGVTALRM	28	/* Virtual timer expired. */ | ||
| 47 | #define SIGPROF		29	/* Profiling timer expired. */ | ||
| 48 | #define SIGXFSZ		31	/* File size limit exceeded. */ | ||
| 49 | #define SIGUSR1		16	/* User-defined signal 1. */ | ||
| 50 | #define SIGUSR2		17	/* User-defined signal 2. */ | ||
| 51 | |||
| 52 | /* Nonstandard signals found in all modern POSIX systems | ||
| 53 | (including both BSD and Linux). */ | ||
| 54 | #define SIGWINCH	20	/* Window size change (4.3 BSD, Sun). */ | ||
| 55 | |||
| 56 | /* Archaic names for compatibility. */ | ||
| 57 | #define SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD). */ | ||
| 58 | #define SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11. */ | ||
| 59 | #define SIGCLD		SIGCHLD /* Old System V name */ | ||
| 60 | |||
| 61 | /* By default no real-time signals are supported. */ | ||
| 62 | #define __SIGRTMIN	32 | ||
| 63 | #define __SIGRTMAX	127 | ||
| 64 | |||
| 65 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabin32/bits/signum.h deleted-68| ... | @@ -1,68 +0,0 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include <bits/signum-generic.h> | ||
| 27 | |||
| 28 | /* Adjustments and additions to the signal number constants for | ||
| 29 | Linux/MIPS. */ | ||
| 30 | |||
| 31 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 32 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 33 | |||
| 34 | #undef	SIGUSR1 | ||
| 35 | #define SIGUSR1		16 | ||
| 36 | #undef	SIGUSR2 | ||
| 37 | #define SIGUSR2		17 | ||
| 38 | #undef	SIGCHLD | ||
| 39 | #define SIGCHLD		18 | ||
| 40 | #undef	SIGWINCH | ||
| 41 | #define SIGWINCH	20 | ||
| 42 | #undef	SIGURG | ||
| 43 | #define SIGURG		21 | ||
| 44 | #undef	SIGPOLL | ||
| 45 | #define SIGPOLL		22 | ||
| 46 | #undef	SIGSTOP | ||
| 47 | #define SIGSTOP		23 | ||
| 48 | #undef	SIGTSTP | ||
| 49 | #define SIGTSTP		24 | ||
| 50 | #undef	SIGCONT | ||
| 51 | #define SIGCONT		25 | ||
| 52 | #undef	SIGTTIN | ||
| 53 | #define SIGTTIN		26 | ||
| 54 | #undef	SIGTTOU | ||
| 55 | #define SIGTTOU		27 | ||
| 56 | #undef	SIGVTALRM | ||
| 57 | #define SIGVTALRM	28 | ||
| 58 | #undef	SIGPROF | ||
| 59 | #define SIGPROF		29 | ||
| 60 | #undef	SIGXCPU | ||
| 61 | #define SIGXCPU		30 | ||
| 62 | #undef	SIGXFSZ | ||
| 63 | #define SIGXFSZ		31 | ||
| 64 | |||
| 65 | #undef	__SIGRTMAX | ||
| 66 | #define __SIGRTMAX	127 | ||
| 67 | |||
| 68 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabin32/bits/types/struct_msqid_ds.h created+56| ... | @@ -0,0 +1,56 @@ | ||
| 1 | /* Linux/MIPS implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | # ifdef __MIPSEL__ | ||
| 30 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 31 | unsigned long int __msg_stime_high; | ||
| 32 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 33 | unsigned long int __msg_rtime_high; | ||
| 34 | __time_t msg_ctime;		/* time of last change */ | ||
| 35 | unsigned long int __msg_ctime_high; | ||
| 36 | # else | ||
| 37 | unsigned long int __msg_stime_high; | ||
| 38 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 39 | unsigned long int __msg_rtime_high; | ||
| 40 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 41 | unsigned long int __msg_ctime_high; | ||
| 42 | __time_t msg_ctime;		/* time of last change */ | ||
| 43 | # endif | ||
| 44 | #else | ||
| 45 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 46 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 47 | __time_t msg_ctime;		/* time of last change */ | ||
| 48 | #endif | ||
| 49 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 50 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 51 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 52 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 53 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 54 | __syscall_ulong_t __glibc_reserved4; | ||
| 55 | __syscall_ulong_t __glibc_reserved5; | ||
| 56 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabin32/bits/types/struct_semid_ds.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* MIPS implementation of the semaphore struct semid_ds | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm;		/* operation permission struct */ | ||
| 27 | __time_t sem_otime;	/* last semop() time */ | ||
| 28 | __time_t sem_ctime;	/* last time changed by semctl() */ | ||
| 29 | __syscall_ulong_t sem_nsems;		/* number of semaphores in set */ | ||
| 30 | __syscall_ulong_t __sem_otime_high; | ||
| 31 | __syscall_ulong_t __sem_ctime_high; | ||
| 32 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mips64el-linux-gnuabin32/bits/types/struct_shmid_ds.h created+49| ... | @@ -0,0 +1,49 @@ | ||
| 1 | /* Linux/MIPS implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 31 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 32 | #else | ||
| 33 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 34 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 35 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 36 | #endif | ||
| 37 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 38 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 39 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 40 | #if __TIMESIZE == 32 | ||
| 41 | unsigned short int __shm_atime_high; | ||
| 42 | unsigned short int __shm_dtime_high; | ||
| 43 | unsigned short int __shm_ctime_high; | ||
| 44 | unsigned short int __glibc_reserved4; | ||
| 45 | #else | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | __syscall_ulong_t __glibc_reserved6; | ||
| 48 | #endif | ||
| 49 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mipsel-linux-gnu/bits/floatn.h created+97| ... | @@ -0,0 +1,97 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on MIPS platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/mipsel-linux-gnu/bits/msq-pad.h deleted-31| ... | @@ -1,31 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #ifdef __MIPSEL__ | ||
| 26 | # define __MSQ_PAD_AFTER_TIME (__TIMESIZE == 32) | ||
| 27 | # define __MSQ_PAD_BEFORE_TIME 0 | ||
| 28 | #else | ||
| 29 | # define __MSQ_PAD_AFTER_TIME 0 | ||
| 30 | # define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| 31 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/mipsel-linux-gnu/bits/resource.h+1-1| ... | @@ -98,7 +98,7 @@ enum __rlimit_resource | ... | @@ -98,7 +98,7 @@ enum __rlimit_resource |
| 98 | __RLIMIT_RTPRIO = 14, | 98 | __RLIMIT_RTPRIO = 14, |
| 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO | 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO |
| 100 | 100 | ||
| 101 | /* Maximum CPU time in µs that a process scheduled under a real-time | 101 | /* Maximum CPU time in microseconds that a process scheduled under a real-time |
| 102 | scheduling policy may consume without making a blocking system | 102 | scheduling policy may consume without making a blocking system |
| 103 | call before being forcibly descheduled. */ | 103 | call before being forcibly descheduled. */ |
| 104 | __RLIMIT_RTTIME = 15, | 104 | __RLIMIT_RTTIME = 15, |
lib/libc/include/mipsel-linux-gnu/bits/sem-pad.h deleted-24| ... | @@ -1,24 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SEM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SEM_PAD_BEFORE_TIME 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mipsel-linux-gnu/bits/semaphore.h created+36| ... | @@ -0,0 +1,36 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library. If not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SEMAPHORE_H | ||
| 19 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #if _MIPS_SIM == _ABI64 | ||
| 23 | # define __SIZEOF_SEM_T	32 | ||
| 24 | #else | ||
| 25 | # define __SIZEOF_SEM_T	16 | ||
| 26 | #endif | ||
| 27 | |||
| 28 | /* Value returned if `sem_open' failed. */ | ||
| 29 | #define SEM_FAILED ((sem_t *) 0) | ||
| 30 | |||
| 31 | |||
| 32 | typedef union | ||
| 33 | { | ||
| 34 | char __size[__SIZEOF_SEM_T]; | ||
| 35 | long int __align; | ||
| 36 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/mipsel-linux-gnu/bits/shm-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. MIPS version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SHM_PAD_AFTER_TIME 0 | ||
| 24 | #define __SHM_PAD_BEFORE_TIME 0 | ||
| 25 | #define __SHM_SEGSZ_AFTER_TIME 0 | ||
| 26 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0 | ||
| \ No newline at end of file | |||
lib/libc/include/mipsel-linux-gnu/bits/signum-arch.h created+65| ... | @@ -0,0 +1,65 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | /* Adjustments and additions to the signal number constants for | ||
| 27 | Linux/MIPS. */ | ||
| 28 | |||
| 29 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 30 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 31 | |||
| 32 | /* Historical signals specified by POSIX. */ | ||
| 33 | #define SIGBUS 	10	/* Bus error. */ | ||
| 34 | #define SIGSYS		12	/* Bad system call. */ | ||
| 35 | |||
| 36 | /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ | ||
| 37 | #define SIGURG		21	/* Urgent data is available at a socket. */ | ||
| 38 | #define SIGSTOP		23	/* Stop, unblockable. */ | ||
| 39 | #define SIGTSTP		24	/* Keyboard stop. */ | ||
| 40 | #define SIGCONT		25	/* Continue. */ | ||
| 41 | #define SIGCHLD		18	/* Child terminated or stopped. */ | ||
| 42 | #define SIGTTIN		26	/* Background read from control terminal. */ | ||
| 43 | #define SIGTTOU		27	/* Background write to control terminal. */ | ||
| 44 | #define SIGPOLL		22	/* Pollable event occurred (System V). */ | ||
| 45 | #define SIGXCPU		30	/* CPU time limit exceeded. */ | ||
| 46 | #define SIGVTALRM	28	/* Virtual timer expired. */ | ||
| 47 | #define SIGPROF		29	/* Profiling timer expired. */ | ||
| 48 | #define SIGXFSZ		31	/* File size limit exceeded. */ | ||
| 49 | #define SIGUSR1		16	/* User-defined signal 1. */ | ||
| 50 | #define SIGUSR2		17	/* User-defined signal 2. */ | ||
| 51 | |||
| 52 | /* Nonstandard signals found in all modern POSIX systems | ||
| 53 | (including both BSD and Linux). */ | ||
| 54 | #define SIGWINCH	20	/* Window size change (4.3 BSD, Sun). */ | ||
| 55 | |||
| 56 | /* Archaic names for compatibility. */ | ||
| 57 | #define SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD). */ | ||
| 58 | #define SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11. */ | ||
| 59 | #define SIGCLD		SIGCHLD /* Old System V name */ | ||
| 60 | |||
| 61 | /* By default no real-time signals are supported. */ | ||
| 62 | #define __SIGRTMIN	32 | ||
| 63 | #define __SIGRTMAX	127 | ||
| 64 | |||
| 65 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mipsel-linux-gnu/bits/signum.h deleted-68| ... | @@ -1,68 +0,0 @@ | ||
| 1 | /* Signal number definitions. Linux/MIPS version. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include <bits/signum-generic.h> | ||
| 27 | |||
| 28 | /* Adjustments and additions to the signal number constants for | ||
| 29 | Linux/MIPS. */ | ||
| 30 | |||
| 31 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 32 | #define SIGPWR		19	/* Power failure imminent. */ | ||
| 33 | |||
| 34 | #undef	SIGUSR1 | ||
| 35 | #define SIGUSR1		16 | ||
| 36 | #undef	SIGUSR2 | ||
| 37 | #define SIGUSR2		17 | ||
| 38 | #undef	SIGCHLD | ||
| 39 | #define SIGCHLD		18 | ||
| 40 | #undef	SIGWINCH | ||
| 41 | #define SIGWINCH	20 | ||
| 42 | #undef	SIGURG | ||
| 43 | #define SIGURG		21 | ||
| 44 | #undef	SIGPOLL | ||
| 45 | #define SIGPOLL		22 | ||
| 46 | #undef	SIGSTOP | ||
| 47 | #define SIGSTOP		23 | ||
| 48 | #undef	SIGTSTP | ||
| 49 | #define SIGTSTP		24 | ||
| 50 | #undef	SIGCONT | ||
| 51 | #define SIGCONT		25 | ||
| 52 | #undef	SIGTTIN | ||
| 53 | #define SIGTTIN		26 | ||
| 54 | #undef	SIGTTOU | ||
| 55 | #define SIGTTOU		27 | ||
| 56 | #undef	SIGVTALRM | ||
| 57 | #define SIGVTALRM	28 | ||
| 58 | #undef	SIGPROF | ||
| 59 | #define SIGPROF		29 | ||
| 60 | #undef	SIGXCPU | ||
| 61 | #define SIGXCPU		30 | ||
| 62 | #undef	SIGXFSZ | ||
| 63 | #define SIGXFSZ		31 | ||
| 64 | |||
| 65 | #undef	__SIGRTMAX | ||
| 66 | #define __SIGRTMAX	127 | ||
| 67 | |||
| 68 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/mipsel-linux-gnu/bits/types/struct_msqid_ds.h created+56| ... | @@ -0,0 +1,56 @@ | ||
| 1 | /* Linux/MIPS implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | # ifdef __MIPSEL__ | ||
| 30 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 31 | unsigned long int __msg_stime_high; | ||
| 32 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 33 | unsigned long int __msg_rtime_high; | ||
| 34 | __time_t msg_ctime;		/* time of last change */ | ||
| 35 | unsigned long int __msg_ctime_high; | ||
| 36 | # else | ||
| 37 | unsigned long int __msg_stime_high; | ||
| 38 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 39 | unsigned long int __msg_rtime_high; | ||
| 40 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 41 | unsigned long int __msg_ctime_high; | ||
| 42 | __time_t msg_ctime;		/* time of last change */ | ||
| 43 | # endif | ||
| 44 | #else | ||
| 45 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 46 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 47 | __time_t msg_ctime;		/* time of last change */ | ||
| 48 | #endif | ||
| 49 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 50 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 51 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 52 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 53 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 54 | __syscall_ulong_t __glibc_reserved4; | ||
| 55 | __syscall_ulong_t __glibc_reserved5; | ||
| 56 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mipsel-linux-gnu/bits/types/struct_semid_ds.h created+32| ... | @@ -0,0 +1,32 @@ | ||
| 1 | /* MIPS implementation of the semaphore struct semid_ds | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm;		/* operation permission struct */ | ||
| 27 | __time_t sem_otime;	/* last semop() time */ | ||
| 28 | __time_t sem_ctime;	/* last time changed by semctl() */ | ||
| 29 | __syscall_ulong_t sem_nsems;		/* number of semaphores in set */ | ||
| 30 | __syscall_ulong_t __sem_otime_high; | ||
| 31 | __syscall_ulong_t __sem_ctime_high; | ||
| 32 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/mipsel-linux-gnu/bits/types/struct_shmid_ds.h created+49| ... | @@ -0,0 +1,49 @@ | ||
| 1 | /* Linux/MIPS implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 31 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 32 | #else | ||
| 33 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 34 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 35 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 36 | #endif | ||
| 37 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 38 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 39 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 40 | #if __TIMESIZE == 32 | ||
| 41 | unsigned short int __shm_atime_high; | ||
| 42 | unsigned short int __shm_dtime_high; | ||
| 43 | unsigned short int __shm_ctime_high; | ||
| 44 | unsigned short int __glibc_reserved4; | ||
| 45 | #else | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | __syscall_ulong_t __glibc_reserved6; | ||
| 48 | #endif | ||
| 49 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc-linux-gnu/bits/fenvinline.h deleted-102| ... | @@ -1,102 +0,0 @@ | ||
| 1 | /* Inline floating-point environment handling functions for powerpc. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #if defined __GNUC__ && !defined _SOFT_FLOAT && !defined __NO_FPRS__ | ||
| 20 | |||
| 21 | /* Inline definitions for fegetround. */ | ||
| 22 | # define __fegetround_ISA300()						\ | ||
| 23 | (__extension__ ({							\ | ||
| 24 | union { double __d; unsigned long long __ll; } __u;			\ | ||
| 25 | __asm__ __volatile__ (						\ | ||
| 26 | ".machine push; .machine \"power9\"; mffsl %0; .machine pop"	\ | ||
| 27 | : "=f" (__u.__d));						\ | ||
| 28 | __u.__ll & 0x0000000000000003LL;					\ | ||
| 29 | })) | ||
| 30 | |||
| 31 | # define __fegetround_ISA2()						\ | ||
| 32 | (__extension__ ({							\ | ||
| 33 | int __fegetround_result;						\ | ||
| 34 | __asm__ __volatile__ ("mcrfs 7,7 ; mfcr %0"			\ | ||
| 35 | 			 : "=r"(__fegetround_result) : : "cr7");	\ | ||
| 36 | __fegetround_result & 3;						\ | ||
| 37 | })) | ||
| 38 | |||
| 39 | # ifdef _ARCH_PWR9 | ||
| 40 | # define __fegetround() __fegetround_ISA300() | ||
| 41 | # elif defined __BUILTIN_CPU_SUPPORTS__ | ||
| 42 | # define __fegetround()						\ | ||
| 43 | (__glibc_likely (__builtin_cpu_supports ("arch_3_00"))		\ | ||
| 44 | ? __fegetround_ISA300()						\ | ||
| 45 | : __fegetround_ISA2()						\ | ||
| 46 | ) | ||
| 47 | # else | ||
| 48 | # define __fegetround() __fegetround_ISA2() | ||
| 49 | # endif | ||
| 50 | |||
| 51 | # define fegetround() __fegetround () | ||
| 52 | |||
| 53 | # ifndef __NO_MATH_INLINES | ||
| 54 | /* The weird 'i#*X' constraints on the following suppress a gcc | ||
| 55 | warning when __excepts is not a constant. Otherwise, they mean the | ||
| 56 | same as just plain 'i'. */ | ||
| 57 | |||
| 58 | # if __GNUC_PREREQ(3, 4) | ||
| 59 | |||
| 60 | /* Inline definition for feraiseexcept. */ | ||
| 61 | # define feraiseexcept(__excepts) \ | ||
| 62 | (__extension__ ({ 							 \ | ||
| 63 | int __e = __excepts;						 \ | ||
| 64 | int __ret;								 \ | ||
| 65 | if (__builtin_constant_p (__e)					 \ | ||
| 66 | && (__e & (__e - 1)) == 0					 \ | ||
| 67 | && __e != FE_INVALID)						 \ | ||
| 68 | {									 \ | ||
| 69 | 	if (__e != 0)							 \ | ||
| 70 | 	 __asm__ __volatile__ ("mtfsb1 %0"				 \ | ||
| 71 | 				: : "i#*X" (__builtin_clz (__e)));	 \ | ||
| 72 | __ret = 0;							 \ | ||
| 73 | }									 \ | ||
| 74 | else								 \ | ||
| 75 | __ret = feraiseexcept (__e);					 \ | ||
| 76 | __ret;								 \ | ||
| 77 | })) | ||
| 78 | |||
| 79 | /* Inline definition for feclearexcept. */ | ||
| 80 | # define feclearexcept(__excepts) \ | ||
| 81 | (__extension__ ({ 							 \ | ||
| 82 | int __e = __excepts;						 \ | ||
| 83 | int __ret;								 \ | ||
| 84 | if (__builtin_constant_p (__e)					 \ | ||
| 85 | && (__e & (__e - 1)) == 0					 \ | ||
| 86 | && __e != FE_INVALID)						 \ | ||
| 87 | {									 \ | ||
| 88 | 	if (__e != 0)							 \ | ||
| 89 | 	 __asm__ __volatile__ ("mtfsb0 %0"				 \ | ||
| 90 | 				: : "i#*X" (__builtin_clz (__e)));	 \ | ||
| 91 | __ret = 0;							 \ | ||
| 92 | }									 \ | ||
| 93 | else								 \ | ||
| 94 | __ret = feclearexcept (__e);					 \ | ||
| 95 | __ret;								 \ | ||
| 96 | })) | ||
| 97 | |||
| 98 | # endif /* __GNUC_PREREQ(3, 4). */ | ||
| 99 | |||
| 100 | # endif /* !__NO_MATH_INLINES. */ | ||
| 101 | |||
| 102 | #endif /* __GNUC__ && !_SOFT_FLOAT && !__NO_FPRS__ */ | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc-linux-gnu/bits/hwcap.h+3-1| ... | @@ -73,4 +73,6 @@ | ... | @@ -73,4 +73,6 @@ |
| 73 | #define PPC_FEATURE2_DARN	 0x00200000 /* darn instruction. */ | 73 | #define PPC_FEATURE2_DARN	 0x00200000 /* darn instruction. */ |
| 74 | #define PPC_FEATURE2_SCV	 0x00100000 /* scv syscall. */ | 74 | #define PPC_FEATURE2_SCV	 0x00100000 /* scv syscall. */ |
| 75 | #define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000 /* TM without suspended | 75 | #define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000 /* TM without suspended |
| 76 | 						 state. */ | ||
| \ No newline at end of file | |||
| 76 | 						 state. */ | ||
| 77 | #define PPC_FEATURE2_ARCH_3_1	 0x00040000 /* ISA 3.1. */ | ||
| 78 | #define PPC_FEATURE2_MMA	 0x00020000 /* Matrix-Multiply Assist. */ | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc-linux-gnu/bits/iscanonical.h+1-1| ... | @@ -20,7 +20,7 @@ | ... | @@ -20,7 +20,7 @@ |
| 20 | # error "Never use <bits/iscanonical.h> directly; include <math.h> instead." | 20 | # error "Never use <bits/iscanonical.h> directly; include <math.h> instead." |
| 21 | #endif | 21 | #endif |
| 22 | 22 | ||
| 23 | #ifdef __NO_LONG_DOUBLE_MATH | 23 | #if defined (__NO_LONG_DOUBLE_MATH) || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 |
| 24 | # define iscanonical(x) ((void) (__typeof (x)) (x), 1) | 24 | # define iscanonical(x) ((void) (__typeof (x)) (x), 1) |
| 25 | #else | 25 | #else |
| 26 | extern int __iscanonicall (long double __x) | 26 | extern int __iscanonicall (long double __x) |
lib/libc/include/powerpc-linux-gnu/bits/long-double.h+1-1| ... | @@ -22,4 +22,4 @@ | ... | @@ -22,4 +22,4 @@ |
| 22 | # define __NO_LONG_DOUBLE_MATH		1 | 22 | # define __NO_LONG_DOUBLE_MATH		1 |
| 23 | # endif | 23 | # endif |
| 24 | #endif | 24 | #endif |
| 25 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 25 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc-linux-gnu/bits/msq-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. PowerPC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __MSQ_PAD_AFTER_TIME 0 | ||
| 26 | #define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc-linux-gnu/bits/sem-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. PowerPC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __SEM_PAD_AFTER_TIME 0 | ||
| 26 | #define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc-linux-gnu/bits/semaphore.h deleted-40| ... | @@ -1,40 +0,0 @@ | ||
| 1 | /* Machine-specific POSIX semaphore type layouts. PowerPC version. | ||
| 2 | Copyright (C) 2003-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <https://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _SEMAPHORE_H | ||
| 21 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 22 | #endif | ||
| 23 | |||
| 24 | #include <bits/wordsize.h> | ||
| 25 | |||
| 26 | #if __WORDSIZE == 64 | ||
| 27 | # define __SIZEOF_SEM_T	32 | ||
| 28 | #else | ||
| 29 | # define __SIZEOF_SEM_T	16 | ||
| 30 | #endif | ||
| 31 | |||
| 32 | /* Value returned if `sem_open' failed. */ | ||
| 33 | #define SEM_FAILED ((sem_t *) 0) | ||
| 34 | |||
| 35 | |||
| 36 | typedef union | ||
| 37 | { | ||
| 38 | char __size[__SIZEOF_SEM_T]; | ||
| 39 | long int __align; | ||
| 40 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc-linux-gnu/bits/shm-pad.h deleted-28| ... | @@ -1,28 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. PowerPC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __SHM_PAD_AFTER_TIME 0 | ||
| 26 | #define __SHM_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| 27 | #define __SHM_SEGSZ_AFTER_TIME 1 | ||
| 28 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc-linux-gnu/bits/types/struct_msqid_ds.h created+47| ... | @@ -0,0 +1,47 @@ | ||
| 1 | /* Linux/PowerPC implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | unsigned long int __msg_stime_high; | ||
| 30 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 31 | unsigned long int __msg_rtime_high; | ||
| 32 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 33 | unsigned long int __msg_ctime_high; | ||
| 34 | __time_t msg_ctime;		/* time of last change */ | ||
| 35 | #else | ||
| 36 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 37 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 38 | __time_t msg_ctime;		/* time of last change */ | ||
| 39 | #endif | ||
| 40 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 41 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 42 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 43 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 44 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 45 | __syscall_ulong_t __glibc_reserved4; | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc-linux-gnu/bits/types/struct_semid_ds.h created+39| ... | @@ -0,0 +1,39 @@ | ||
| 1 | /* PowerPC implementation of the semaphore struct semid_ds. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm; /* operation permission struct */ | ||
| 27 | #if __TIMESIZE == 32 | ||
| 28 | __syscall_ulong_t __sem_otime_high; | ||
| 29 | __time_t sem_otime; /* last semop() time */ | ||
| 30 | __syscall_ulong_t __sem_ctime_high; | ||
| 31 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 32 | #else | ||
| 33 | __time_t sem_otime; /* last semop() time */ | ||
| 34 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 35 | #endif | ||
| 36 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | ||
| 37 | __syscall_ulong_t __glibc_reserved3; | ||
| 38 | __syscall_ulong_t __glibc_reserved4; | ||
| 39 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc-linux-gnu/bits/types/struct_shmid_ds.h created+46| ... | @@ -0,0 +1,46 @@ | ||
| 1 | /* Linux/PowerPC implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | #if __TIMESIZE == 32 | ||
| 28 | unsigned long int __shm_atime_high; | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | unsigned long int __shm_dtime_high; | ||
| 31 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 32 | unsigned long int __shm_ctime_high; | ||
| 33 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 34 | unsigned long int __glibc_reserved4; | ||
| 35 | #else | ||
| 36 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 37 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 38 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 39 | #endif | ||
| 40 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 41 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 42 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 43 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 44 | __syscall_ulong_t __glibc_reserved5; | ||
| 45 | __syscall_ulong_t __glibc_reserved6; | ||
| 46 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc-linux-gnu/gnu/lib-names-32.h-2| ... | @@ -19,8 +19,6 @@ | ... | @@ -19,8 +19,6 @@ |
| 19 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 19 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 20 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 20 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 21 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 21 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 22 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 23 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 24 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 22 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 25 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 23 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 26 | #define LIBPTHREAD_SO "libpthread.so.0" | 24 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/powerpc-linux-gnu/ieee754.h+66-2| ... | @@ -21,6 +21,7 @@ | ... | @@ -21,6 +21,7 @@ |
| 21 | #include <features.h> | 21 | #include <features.h> |
| 22 | 22 | ||
| 23 | #include <bits/endian.h> | 23 | #include <bits/endian.h> |
| 24 | #include <bits/floatn.h> | ||
| 24 | 25 | ||
| 25 | __BEGIN_DECLS | 26 | __BEGIN_DECLS |
| 26 | 27 | ||
| ... | @@ -111,6 +112,65 @@ union ieee754_double | ... | @@ -111,6 +112,65 @@ union ieee754_double |
| 111 | #define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent. */ | 112 | #define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent. */ |
| 112 | 113 | ||
| 113 | 114 | ||
| 115 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 116 | /* long double is IEEE 128 bit */ | ||
| 117 | union ieee854_long_double | ||
| 118 | { | ||
| 119 | long double d; | ||
| 120 | |||
| 121 | /* This is the IEEE 854 quad-precision format. */ | ||
| 122 | struct | ||
| 123 | { | ||
| 124 | #if	__BYTE_ORDER == __BIG_ENDIAN | ||
| 125 | 	unsigned int negative:1; | ||
| 126 | 	unsigned int exponent:15; | ||
| 127 | 	/* Together these comprise the mantissa. */ | ||
| 128 | 	unsigned int mantissa0:16; | ||
| 129 | 	unsigned int mantissa1:32; | ||
| 130 | 	unsigned int mantissa2:32; | ||
| 131 | 	unsigned int mantissa3:32; | ||
| 132 | #endif				/* Big endian. */ | ||
| 133 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | ||
| 134 | 	/* Together these comprise the mantissa. */ | ||
| 135 | 	unsigned int mantissa3:32; | ||
| 136 | 	unsigned int mantissa2:32; | ||
| 137 | 	unsigned int mantissa1:32; | ||
| 138 | 	unsigned int mantissa0:16; | ||
| 139 | 	unsigned int exponent:15; | ||
| 140 | 	unsigned int negative:1; | ||
| 141 | #endif				/* Little endian. */ | ||
| 142 | } ieee; | ||
| 143 | |||
| 144 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | ||
| 145 | struct | ||
| 146 | { | ||
| 147 | #if	__BYTE_ORDER == __BIG_ENDIAN | ||
| 148 | 	unsigned int negative:1; | ||
| 149 | 	unsigned int exponent:15; | ||
| 150 | 	unsigned int quiet_nan:1; | ||
| 151 | 	/* Together these comprise the mantissa. */ | ||
| 152 | 	unsigned int mantissa0:15; | ||
| 153 | 	unsigned int mantissa1:32; | ||
| 154 | 	unsigned int mantissa2:32; | ||
| 155 | 	unsigned int mantissa3:32; | ||
| 156 | #else | ||
| 157 | 	/* Together these comprise the mantissa. */ | ||
| 158 | 	unsigned int mantissa3:32; | ||
| 159 | 	unsigned int mantissa2:32; | ||
| 160 | 	unsigned int mantissa1:32; | ||
| 161 | 	unsigned int mantissa0:15; | ||
| 162 | 	unsigned int quiet_nan:1; | ||
| 163 | 	unsigned int exponent:15; | ||
| 164 | 	unsigned int negative:1; | ||
| 165 | #endif | ||
| 166 | } ieee_nan; | ||
| 167 | }; | ||
| 168 | |||
| 169 | #define IEEE854_LONG_DOUBLE_BIAS 0x3fff /* Added to exponent. */ | ||
| 170 | #endif | ||
| 171 | |||
| 172 | |||
| 173 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 || __GNUC_PREREQ (7, 0) | ||
| 114 | /* IBM extended format for long double. | 174 | /* IBM extended format for long double. |
| 115 | 175 | ||
| 116 | Each long double is made up of two IEEE doubles. The value of the | 176 | Each long double is made up of two IEEE doubles. The value of the |
| ... | @@ -121,12 +181,16 @@ union ieee754_double | ... | @@ -121,12 +181,16 @@ union ieee754_double |
| 121 | -0.0. No other requirements are made; so, for example, 1.0 may be | 181 | -0.0. No other requirements are made; so, for example, 1.0 may be |
| 122 | represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a | 182 | represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a |
| 123 | NaN is don't-care. */ | 183 | NaN is don't-care. */ |
| 124 | |||
| 125 | union ibm_extended_long_double | 184 | union ibm_extended_long_double |
| 126 | { | 185 | { |
| 127 | long double ld; | 186 | # if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 && __GNUC_PREREQ (7, 0) |
| 187 | __ibm128 ld; | ||
| 188 | # else | ||
| 189 | long double ld; | ||
| 190 | # endif | ||
| 128 | union ieee754_double d[2]; | 191 | union ieee754_double d[2]; |
| 129 | }; | 192 | }; |
| 193 | #endif | ||
| 130 | 194 | ||
| 131 | __END_DECLS | 195 | __END_DECLS |
| 132 | 196 |
lib/libc/include/powerpc64-linux-gnu/bits/fenvinline.h deleted-102| ... | @@ -1,102 +0,0 @@ | ||
| 1 | /* Inline floating-point environment handling functions for powerpc. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #if defined __GNUC__ && !defined _SOFT_FLOAT && !defined __NO_FPRS__ | ||
| 20 | |||
| 21 | /* Inline definitions for fegetround. */ | ||
| 22 | # define __fegetround_ISA300()						\ | ||
| 23 | (__extension__ ({							\ | ||
| 24 | union { double __d; unsigned long long __ll; } __u;			\ | ||
| 25 | __asm__ __volatile__ (						\ | ||
| 26 | ".machine push; .machine \"power9\"; mffsl %0; .machine pop"	\ | ||
| 27 | : "=f" (__u.__d));						\ | ||
| 28 | __u.__ll & 0x0000000000000003LL;					\ | ||
| 29 | })) | ||
| 30 | |||
| 31 | # define __fegetround_ISA2()						\ | ||
| 32 | (__extension__ ({							\ | ||
| 33 | int __fegetround_result;						\ | ||
| 34 | __asm__ __volatile__ ("mcrfs 7,7 ; mfcr %0"			\ | ||
| 35 | 			 : "=r"(__fegetround_result) : : "cr7");	\ | ||
| 36 | __fegetround_result & 3;						\ | ||
| 37 | })) | ||
| 38 | |||
| 39 | # ifdef _ARCH_PWR9 | ||
| 40 | # define __fegetround() __fegetround_ISA300() | ||
| 41 | # elif defined __BUILTIN_CPU_SUPPORTS__ | ||
| 42 | # define __fegetround()						\ | ||
| 43 | (__glibc_likely (__builtin_cpu_supports ("arch_3_00"))		\ | ||
| 44 | ? __fegetround_ISA300()						\ | ||
| 45 | : __fegetround_ISA2()						\ | ||
| 46 | ) | ||
| 47 | # else | ||
| 48 | # define __fegetround() __fegetround_ISA2() | ||
| 49 | # endif | ||
| 50 | |||
| 51 | # define fegetround() __fegetround () | ||
| 52 | |||
| 53 | # ifndef __NO_MATH_INLINES | ||
| 54 | /* The weird 'i#*X' constraints on the following suppress a gcc | ||
| 55 | warning when __excepts is not a constant. Otherwise, they mean the | ||
| 56 | same as just plain 'i'. */ | ||
| 57 | |||
| 58 | # if __GNUC_PREREQ(3, 4) | ||
| 59 | |||
| 60 | /* Inline definition for feraiseexcept. */ | ||
| 61 | # define feraiseexcept(__excepts) \ | ||
| 62 | (__extension__ ({ 							 \ | ||
| 63 | int __e = __excepts;						 \ | ||
| 64 | int __ret;								 \ | ||
| 65 | if (__builtin_constant_p (__e)					 \ | ||
| 66 | && (__e & (__e - 1)) == 0					 \ | ||
| 67 | && __e != FE_INVALID)						 \ | ||
| 68 | {									 \ | ||
| 69 | 	if (__e != 0)							 \ | ||
| 70 | 	 __asm__ __volatile__ ("mtfsb1 %0"				 \ | ||
| 71 | 				: : "i#*X" (__builtin_clz (__e)));	 \ | ||
| 72 | __ret = 0;							 \ | ||
| 73 | }									 \ | ||
| 74 | else								 \ | ||
| 75 | __ret = feraiseexcept (__e);					 \ | ||
| 76 | __ret;								 \ | ||
| 77 | })) | ||
| 78 | |||
| 79 | /* Inline definition for feclearexcept. */ | ||
| 80 | # define feclearexcept(__excepts) \ | ||
| 81 | (__extension__ ({ 							 \ | ||
| 82 | int __e = __excepts;						 \ | ||
| 83 | int __ret;								 \ | ||
| 84 | if (__builtin_constant_p (__e)					 \ | ||
| 85 | && (__e & (__e - 1)) == 0					 \ | ||
| 86 | && __e != FE_INVALID)						 \ | ||
| 87 | {									 \ | ||
| 88 | 	if (__e != 0)							 \ | ||
| 89 | 	 __asm__ __volatile__ ("mtfsb0 %0"				 \ | ||
| 90 | 				: : "i#*X" (__builtin_clz (__e)));	 \ | ||
| 91 | __ret = 0;							 \ | ||
| 92 | }									 \ | ||
| 93 | else								 \ | ||
| 94 | __ret = feclearexcept (__e);					 \ | ||
| 95 | __ret;								 \ | ||
| 96 | })) | ||
| 97 | |||
| 98 | # endif /* __GNUC_PREREQ(3, 4). */ | ||
| 99 | |||
| 100 | # endif /* !__NO_MATH_INLINES. */ | ||
| 101 | |||
| 102 | #endif /* __GNUC__ && !_SOFT_FLOAT && !__NO_FPRS__ */ | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64-linux-gnu/bits/hwcap.h+3-1| ... | @@ -73,4 +73,6 @@ | ... | @@ -73,4 +73,6 @@ |
| 73 | #define PPC_FEATURE2_DARN	 0x00200000 /* darn instruction. */ | 73 | #define PPC_FEATURE2_DARN	 0x00200000 /* darn instruction. */ |
| 74 | #define PPC_FEATURE2_SCV	 0x00100000 /* scv syscall. */ | 74 | #define PPC_FEATURE2_SCV	 0x00100000 /* scv syscall. */ |
| 75 | #define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000 /* TM without suspended | 75 | #define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000 /* TM without suspended |
| 76 | 						 state. */ | ||
| \ No newline at end of file | |||
| 76 | 						 state. */ | ||
| 77 | #define PPC_FEATURE2_ARCH_3_1	 0x00040000 /* ISA 3.1. */ | ||
| 78 | #define PPC_FEATURE2_MMA	 0x00020000 /* Matrix-Multiply Assist. */ | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64-linux-gnu/bits/iscanonical.h+1-1| ... | @@ -20,7 +20,7 @@ | ... | @@ -20,7 +20,7 @@ |
| 20 | # error "Never use <bits/iscanonical.h> directly; include <math.h> instead." | 20 | # error "Never use <bits/iscanonical.h> directly; include <math.h> instead." |
| 21 | #endif | 21 | #endif |
| 22 | 22 | ||
| 23 | #ifdef __NO_LONG_DOUBLE_MATH | 23 | #if defined (__NO_LONG_DOUBLE_MATH) || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 |
| 24 | # define iscanonical(x) ((void) (__typeof (x)) (x), 1) | 24 | # define iscanonical(x) ((void) (__typeof (x)) (x), 1) |
| 25 | #else | 25 | #else |
| 26 | extern int __iscanonicall (long double __x) | 26 | extern int __iscanonicall (long double __x) |
lib/libc/include/powerpc64-linux-gnu/bits/long-double.h+1-1| ... | @@ -22,4 +22,4 @@ | ... | @@ -22,4 +22,4 @@ |
| 22 | # define __NO_LONG_DOUBLE_MATH		1 | 22 | # define __NO_LONG_DOUBLE_MATH		1 |
| 23 | # endif | 23 | # endif |
| 24 | #endif | 24 | #endif |
| 25 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 25 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64-linux-gnu/bits/msq-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. PowerPC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __MSQ_PAD_AFTER_TIME 0 | ||
| 26 | #define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64-linux-gnu/bits/sem-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. PowerPC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __SEM_PAD_AFTER_TIME 0 | ||
| 26 | #define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64-linux-gnu/bits/semaphore.h deleted-40| ... | @@ -1,40 +0,0 @@ | ||
| 1 | /* Machine-specific POSIX semaphore type layouts. PowerPC version. | ||
| 2 | Copyright (C) 2003-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <https://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _SEMAPHORE_H | ||
| 21 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 22 | #endif | ||
| 23 | |||
| 24 | #include <bits/wordsize.h> | ||
| 25 | |||
| 26 | #if __WORDSIZE == 64 | ||
| 27 | # define __SIZEOF_SEM_T	32 | ||
| 28 | #else | ||
| 29 | # define __SIZEOF_SEM_T	16 | ||
| 30 | #endif | ||
| 31 | |||
| 32 | /* Value returned if `sem_open' failed. */ | ||
| 33 | #define SEM_FAILED ((sem_t *) 0) | ||
| 34 | |||
| 35 | |||
| 36 | typedef union | ||
| 37 | { | ||
| 38 | char __size[__SIZEOF_SEM_T]; | ||
| 39 | long int __align; | ||
| 40 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64-linux-gnu/bits/shm-pad.h deleted-28| ... | @@ -1,28 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. PowerPC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __SHM_PAD_AFTER_TIME 0 | ||
| 26 | #define __SHM_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| 27 | #define __SHM_SEGSZ_AFTER_TIME 1 | ||
| 28 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64-linux-gnu/bits/types/struct_msqid_ds.h created+47| ... | @@ -0,0 +1,47 @@ | ||
| 1 | /* Linux/PowerPC implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | unsigned long int __msg_stime_high; | ||
| 30 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 31 | unsigned long int __msg_rtime_high; | ||
| 32 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 33 | unsigned long int __msg_ctime_high; | ||
| 34 | __time_t msg_ctime;		/* time of last change */ | ||
| 35 | #else | ||
| 36 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 37 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 38 | __time_t msg_ctime;		/* time of last change */ | ||
| 39 | #endif | ||
| 40 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 41 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 42 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 43 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 44 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 45 | __syscall_ulong_t __glibc_reserved4; | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64-linux-gnu/bits/types/struct_semid_ds.h created+39| ... | @@ -0,0 +1,39 @@ | ||
| 1 | /* PowerPC implementation of the semaphore struct semid_ds. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm; /* operation permission struct */ | ||
| 27 | #if __TIMESIZE == 32 | ||
| 28 | __syscall_ulong_t __sem_otime_high; | ||
| 29 | __time_t sem_otime; /* last semop() time */ | ||
| 30 | __syscall_ulong_t __sem_ctime_high; | ||
| 31 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 32 | #else | ||
| 33 | __time_t sem_otime; /* last semop() time */ | ||
| 34 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 35 | #endif | ||
| 36 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | ||
| 37 | __syscall_ulong_t __glibc_reserved3; | ||
| 38 | __syscall_ulong_t __glibc_reserved4; | ||
| 39 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64-linux-gnu/bits/types/struct_shmid_ds.h created+46| ... | @@ -0,0 +1,46 @@ | ||
| 1 | /* Linux/PowerPC implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | #if __TIMESIZE == 32 | ||
| 28 | unsigned long int __shm_atime_high; | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | unsigned long int __shm_dtime_high; | ||
| 31 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 32 | unsigned long int __shm_ctime_high; | ||
| 33 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 34 | unsigned long int __glibc_reserved4; | ||
| 35 | #else | ||
| 36 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 37 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 38 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 39 | #endif | ||
| 40 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 41 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 42 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 43 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 44 | __syscall_ulong_t __glibc_reserved5; | ||
| 45 | __syscall_ulong_t __glibc_reserved6; | ||
| 46 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64-linux-gnu/gnu/lib-names-64-v1.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/powerpc64-linux-gnu/gnu/stubs-64-v1.h-2| ... | @@ -10,9 +10,7 @@ | ... | @@ -10,9 +10,7 @@ |
| 10 | #define __stub_chflags | 10 | #define __stub_chflags |
| 11 | #define __stub_fchflags | 11 | #define __stub_fchflags |
| 12 | #define __stub_gtty | 12 | #define __stub_gtty |
| 13 | #define __stub_lchmod | ||
| 14 | #define __stub_revoke | 13 | #define __stub_revoke |
| 15 | #define __stub_setlogin | 14 | #define __stub_setlogin |
| 16 | #define __stub_sigreturn | 15 | #define __stub_sigreturn |
| 17 | #define __stub_sstk | ||
| 18 | #define __stub_stty | 16 | #define __stub_stty |
| \ No newline at end of file | |||
lib/libc/include/powerpc64-linux-gnu/ieee754.h+66-2| ... | @@ -21,6 +21,7 @@ | ... | @@ -21,6 +21,7 @@ |
| 21 | #include <features.h> | 21 | #include <features.h> |
| 22 | 22 | ||
| 23 | #include <bits/endian.h> | 23 | #include <bits/endian.h> |
| 24 | #include <bits/floatn.h> | ||
| 24 | 25 | ||
| 25 | __BEGIN_DECLS | 26 | __BEGIN_DECLS |
| 26 | 27 | ||
| ... | @@ -111,6 +112,65 @@ union ieee754_double | ... | @@ -111,6 +112,65 @@ union ieee754_double |
| 111 | #define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent. */ | 112 | #define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent. */ |
| 112 | 113 | ||
| 113 | 114 | ||
| 115 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 116 | /* long double is IEEE 128 bit */ | ||
| 117 | union ieee854_long_double | ||
| 118 | { | ||
| 119 | long double d; | ||
| 120 | |||
| 121 | /* This is the IEEE 854 quad-precision format. */ | ||
| 122 | struct | ||
| 123 | { | ||
| 124 | #if	__BYTE_ORDER == __BIG_ENDIAN | ||
| 125 | 	unsigned int negative:1; | ||
| 126 | 	unsigned int exponent:15; | ||
| 127 | 	/* Together these comprise the mantissa. */ | ||
| 128 | 	unsigned int mantissa0:16; | ||
| 129 | 	unsigned int mantissa1:32; | ||
| 130 | 	unsigned int mantissa2:32; | ||
| 131 | 	unsigned int mantissa3:32; | ||
| 132 | #endif				/* Big endian. */ | ||
| 133 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | ||
| 134 | 	/* Together these comprise the mantissa. */ | ||
| 135 | 	unsigned int mantissa3:32; | ||
| 136 | 	unsigned int mantissa2:32; | ||
| 137 | 	unsigned int mantissa1:32; | ||
| 138 | 	unsigned int mantissa0:16; | ||
| 139 | 	unsigned int exponent:15; | ||
| 140 | 	unsigned int negative:1; | ||
| 141 | #endif				/* Little endian. */ | ||
| 142 | } ieee; | ||
| 143 | |||
| 144 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | ||
| 145 | struct | ||
| 146 | { | ||
| 147 | #if	__BYTE_ORDER == __BIG_ENDIAN | ||
| 148 | 	unsigned int negative:1; | ||
| 149 | 	unsigned int exponent:15; | ||
| 150 | 	unsigned int quiet_nan:1; | ||
| 151 | 	/* Together these comprise the mantissa. */ | ||
| 152 | 	unsigned int mantissa0:15; | ||
| 153 | 	unsigned int mantissa1:32; | ||
| 154 | 	unsigned int mantissa2:32; | ||
| 155 | 	unsigned int mantissa3:32; | ||
| 156 | #else | ||
| 157 | 	/* Together these comprise the mantissa. */ | ||
| 158 | 	unsigned int mantissa3:32; | ||
| 159 | 	unsigned int mantissa2:32; | ||
| 160 | 	unsigned int mantissa1:32; | ||
| 161 | 	unsigned int mantissa0:15; | ||
| 162 | 	unsigned int quiet_nan:1; | ||
| 163 | 	unsigned int exponent:15; | ||
| 164 | 	unsigned int negative:1; | ||
| 165 | #endif | ||
| 166 | } ieee_nan; | ||
| 167 | }; | ||
| 168 | |||
| 169 | #define IEEE854_LONG_DOUBLE_BIAS 0x3fff /* Added to exponent. */ | ||
| 170 | #endif | ||
| 171 | |||
| 172 | |||
| 173 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 || __GNUC_PREREQ (7, 0) | ||
| 114 | /* IBM extended format for long double. | 174 | /* IBM extended format for long double. |
| 115 | 175 | ||
| 116 | Each long double is made up of two IEEE doubles. The value of the | 176 | Each long double is made up of two IEEE doubles. The value of the |
| ... | @@ -121,12 +181,16 @@ union ieee754_double | ... | @@ -121,12 +181,16 @@ union ieee754_double |
| 121 | -0.0. No other requirements are made; so, for example, 1.0 may be | 181 | -0.0. No other requirements are made; so, for example, 1.0 may be |
| 122 | represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a | 182 | represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a |
| 123 | NaN is don't-care. */ | 183 | NaN is don't-care. */ |
| 124 | |||
| 125 | union ibm_extended_long_double | 184 | union ibm_extended_long_double |
| 126 | { | 185 | { |
| 127 | long double ld; | 186 | # if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 && __GNUC_PREREQ (7, 0) |
| 187 | __ibm128 ld; | ||
| 188 | # else | ||
| 189 | long double ld; | ||
| 190 | # endif | ||
| 128 | union ieee754_double d[2]; | 191 | union ieee754_double d[2]; |
| 129 | }; | 192 | }; |
| 193 | #endif | ||
| 130 | 194 | ||
| 131 | __END_DECLS | 195 | __END_DECLS |
| 132 | 196 |
lib/libc/include/powerpc64le-linux-gnu/bits/fenvinline.h deleted-102| ... | @@ -1,102 +0,0 @@ | ||
| 1 | /* Inline floating-point environment handling functions for powerpc. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #if defined __GNUC__ && !defined _SOFT_FLOAT && !defined __NO_FPRS__ | ||
| 20 | |||
| 21 | /* Inline definitions for fegetround. */ | ||
| 22 | # define __fegetround_ISA300()						\ | ||
| 23 | (__extension__ ({							\ | ||
| 24 | union { double __d; unsigned long long __ll; } __u;			\ | ||
| 25 | __asm__ __volatile__ (						\ | ||
| 26 | ".machine push; .machine \"power9\"; mffsl %0; .machine pop"	\ | ||
| 27 | : "=f" (__u.__d));						\ | ||
| 28 | __u.__ll & 0x0000000000000003LL;					\ | ||
| 29 | })) | ||
| 30 | |||
| 31 | # define __fegetround_ISA2()						\ | ||
| 32 | (__extension__ ({							\ | ||
| 33 | int __fegetround_result;						\ | ||
| 34 | __asm__ __volatile__ ("mcrfs 7,7 ; mfcr %0"			\ | ||
| 35 | 			 : "=r"(__fegetround_result) : : "cr7");	\ | ||
| 36 | __fegetround_result & 3;						\ | ||
| 37 | })) | ||
| 38 | |||
| 39 | # ifdef _ARCH_PWR9 | ||
| 40 | # define __fegetround() __fegetround_ISA300() | ||
| 41 | # elif defined __BUILTIN_CPU_SUPPORTS__ | ||
| 42 | # define __fegetround()						\ | ||
| 43 | (__glibc_likely (__builtin_cpu_supports ("arch_3_00"))		\ | ||
| 44 | ? __fegetround_ISA300()						\ | ||
| 45 | : __fegetround_ISA2()						\ | ||
| 46 | ) | ||
| 47 | # else | ||
| 48 | # define __fegetround() __fegetround_ISA2() | ||
| 49 | # endif | ||
| 50 | |||
| 51 | # define fegetround() __fegetround () | ||
| 52 | |||
| 53 | # ifndef __NO_MATH_INLINES | ||
| 54 | /* The weird 'i#*X' constraints on the following suppress a gcc | ||
| 55 | warning when __excepts is not a constant. Otherwise, they mean the | ||
| 56 | same as just plain 'i'. */ | ||
| 57 | |||
| 58 | # if __GNUC_PREREQ(3, 4) | ||
| 59 | |||
| 60 | /* Inline definition for feraiseexcept. */ | ||
| 61 | # define feraiseexcept(__excepts) \ | ||
| 62 | (__extension__ ({ 							 \ | ||
| 63 | int __e = __excepts;						 \ | ||
| 64 | int __ret;								 \ | ||
| 65 | if (__builtin_constant_p (__e)					 \ | ||
| 66 | && (__e & (__e - 1)) == 0					 \ | ||
| 67 | && __e != FE_INVALID)						 \ | ||
| 68 | {									 \ | ||
| 69 | 	if (__e != 0)							 \ | ||
| 70 | 	 __asm__ __volatile__ ("mtfsb1 %0"				 \ | ||
| 71 | 				: : "i#*X" (__builtin_clz (__e)));	 \ | ||
| 72 | __ret = 0;							 \ | ||
| 73 | }									 \ | ||
| 74 | else								 \ | ||
| 75 | __ret = feraiseexcept (__e);					 \ | ||
| 76 | __ret;								 \ | ||
| 77 | })) | ||
| 78 | |||
| 79 | /* Inline definition for feclearexcept. */ | ||
| 80 | # define feclearexcept(__excepts) \ | ||
| 81 | (__extension__ ({ 							 \ | ||
| 82 | int __e = __excepts;						 \ | ||
| 83 | int __ret;								 \ | ||
| 84 | if (__builtin_constant_p (__e)					 \ | ||
| 85 | && (__e & (__e - 1)) == 0					 \ | ||
| 86 | && __e != FE_INVALID)						 \ | ||
| 87 | {									 \ | ||
| 88 | 	if (__e != 0)							 \ | ||
| 89 | 	 __asm__ __volatile__ ("mtfsb0 %0"				 \ | ||
| 90 | 				: : "i#*X" (__builtin_clz (__e)));	 \ | ||
| 91 | __ret = 0;							 \ | ||
| 92 | }									 \ | ||
| 93 | else								 \ | ||
| 94 | __ret = feclearexcept (__e);					 \ | ||
| 95 | __ret;								 \ | ||
| 96 | })) | ||
| 97 | |||
| 98 | # endif /* __GNUC_PREREQ(3, 4). */ | ||
| 99 | |||
| 100 | # endif /* !__NO_MATH_INLINES. */ | ||
| 101 | |||
| 102 | #endif /* __GNUC__ && !_SOFT_FLOAT && !__NO_FPRS__ */ | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64le-linux-gnu/bits/hwcap.h+3-1| ... | @@ -73,4 +73,6 @@ | ... | @@ -73,4 +73,6 @@ |
| 73 | #define PPC_FEATURE2_DARN	 0x00200000 /* darn instruction. */ | 73 | #define PPC_FEATURE2_DARN	 0x00200000 /* darn instruction. */ |
| 74 | #define PPC_FEATURE2_SCV	 0x00100000 /* scv syscall. */ | 74 | #define PPC_FEATURE2_SCV	 0x00100000 /* scv syscall. */ |
| 75 | #define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000 /* TM without suspended | 75 | #define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000 /* TM without suspended |
| 76 | 						 state. */ | ||
| \ No newline at end of file | |||
| 76 | 						 state. */ | ||
| 77 | #define PPC_FEATURE2_ARCH_3_1	 0x00040000 /* ISA 3.1. */ | ||
| 78 | #define PPC_FEATURE2_MMA	 0x00020000 /* Matrix-Multiply Assist. */ | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64le-linux-gnu/bits/iscanonical.h+1-1| ... | @@ -20,7 +20,7 @@ | ... | @@ -20,7 +20,7 @@ |
| 20 | # error "Never use <bits/iscanonical.h> directly; include <math.h> instead." | 20 | # error "Never use <bits/iscanonical.h> directly; include <math.h> instead." |
| 21 | #endif | 21 | #endif |
| 22 | 22 | ||
| 23 | #ifdef __NO_LONG_DOUBLE_MATH | 23 | #if defined (__NO_LONG_DOUBLE_MATH) || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 |
| 24 | # define iscanonical(x) ((void) (__typeof (x)) (x), 1) | 24 | # define iscanonical(x) ((void) (__typeof (x)) (x), 1) |
| 25 | #else | 25 | #else |
| 26 | extern int __iscanonicall (long double __x) | 26 | extern int __iscanonicall (long double __x) |
lib/libc/include/powerpc64le-linux-gnu/bits/long-double.h+3-2| ... | @@ -1,5 +1,5 @@ | ... | @@ -1,5 +1,5 @@ |
| 1 | /* Properties of long double type. ldbl-opt version. | 1 | /* Properties of long double type. ldbl-opt version. |
| 2 | Copyright (C) 2016-2020 Free Software Foundation, Inc. | 2 | Copyright (C) 2019-2020 Free Software Foundation, Inc. |
| 3 | This file is part of the GNU C Library. | 3 | This file is part of the GNU C Library. |
| 4 | 4 | ||
| 5 | The GNU C Library is free software; you can redistribute it and/or | 5 | The GNU C Library is free software; you can redistribute it and/or |
| ... | @@ -22,4 +22,5 @@ | ... | @@ -22,4 +22,5 @@ |
| 22 | # define __NO_LONG_DOUBLE_MATH		1 | 22 | # define __NO_LONG_DOUBLE_MATH		1 |
| 23 | # endif | 23 | # endif |
| 24 | #endif | 24 | #endif |
| 25 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 25 | |||
| 26 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI (__LDBL_MANT_DIG__ == 113) | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64le-linux-gnu/bits/msq-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. PowerPC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __MSQ_PAD_AFTER_TIME 0 | ||
| 26 | #define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64le-linux-gnu/bits/sem-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. PowerPC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __SEM_PAD_AFTER_TIME 0 | ||
| 26 | #define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64le-linux-gnu/bits/semaphore.h deleted-40| ... | @@ -1,40 +0,0 @@ | ||
| 1 | /* Machine-specific POSIX semaphore type layouts. PowerPC version. | ||
| 2 | Copyright (C) 2003-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <https://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _SEMAPHORE_H | ||
| 21 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 22 | #endif | ||
| 23 | |||
| 24 | #include <bits/wordsize.h> | ||
| 25 | |||
| 26 | #if __WORDSIZE == 64 | ||
| 27 | # define __SIZEOF_SEM_T	32 | ||
| 28 | #else | ||
| 29 | # define __SIZEOF_SEM_T	16 | ||
| 30 | #endif | ||
| 31 | |||
| 32 | /* Value returned if `sem_open' failed. */ | ||
| 33 | #define SEM_FAILED ((sem_t *) 0) | ||
| 34 | |||
| 35 | |||
| 36 | typedef union | ||
| 37 | { | ||
| 38 | char __size[__SIZEOF_SEM_T]; | ||
| 39 | long int __align; | ||
| 40 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64le-linux-gnu/bits/shm-pad.h deleted-28| ... | @@ -1,28 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. PowerPC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __SHM_PAD_AFTER_TIME 0 | ||
| 26 | #define __SHM_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| 27 | #define __SHM_SEGSZ_AFTER_TIME 1 | ||
| 28 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64le-linux-gnu/bits/types/struct_msqid_ds.h created+47| ... | @@ -0,0 +1,47 @@ | ||
| 1 | /* Linux/PowerPC implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | unsigned long int __msg_stime_high; | ||
| 30 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 31 | unsigned long int __msg_rtime_high; | ||
| 32 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 33 | unsigned long int __msg_ctime_high; | ||
| 34 | __time_t msg_ctime;		/* time of last change */ | ||
| 35 | #else | ||
| 36 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 37 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 38 | __time_t msg_ctime;		/* time of last change */ | ||
| 39 | #endif | ||
| 40 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 41 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 42 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 43 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 44 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 45 | __syscall_ulong_t __glibc_reserved4; | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64le-linux-gnu/bits/types/struct_semid_ds.h created+39| ... | @@ -0,0 +1,39 @@ | ||
| 1 | /* PowerPC implementation of the semaphore struct semid_ds. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm; /* operation permission struct */ | ||
| 27 | #if __TIMESIZE == 32 | ||
| 28 | __syscall_ulong_t __sem_otime_high; | ||
| 29 | __time_t sem_otime; /* last semop() time */ | ||
| 30 | __syscall_ulong_t __sem_ctime_high; | ||
| 31 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 32 | #else | ||
| 33 | __time_t sem_otime; /* last semop() time */ | ||
| 34 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 35 | #endif | ||
| 36 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | ||
| 37 | __syscall_ulong_t __glibc_reserved3; | ||
| 38 | __syscall_ulong_t __glibc_reserved4; | ||
| 39 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64le-linux-gnu/bits/types/struct_shmid_ds.h created+46| ... | @@ -0,0 +1,46 @@ | ||
| 1 | /* Linux/PowerPC implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | #if __TIMESIZE == 32 | ||
| 28 | unsigned long int __shm_atime_high; | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | unsigned long int __shm_dtime_high; | ||
| 31 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 32 | unsigned long int __shm_ctime_high; | ||
| 33 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 34 | unsigned long int __glibc_reserved4; | ||
| 35 | #else | ||
| 36 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 37 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 38 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 39 | #endif | ||
| 40 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 41 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 42 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 43 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 44 | __syscall_ulong_t __glibc_reserved5; | ||
| 45 | __syscall_ulong_t __glibc_reserved6; | ||
| 46 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/powerpc64le-linux-gnu/gnu/lib-names-64-v2.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/powerpc64le-linux-gnu/gnu/stubs-64-v2.h-2| ... | @@ -10,9 +10,7 @@ | ... | @@ -10,9 +10,7 @@ |
| 10 | #define __stub_chflags | 10 | #define __stub_chflags |
| 11 | #define __stub_fchflags | 11 | #define __stub_fchflags |
| 12 | #define __stub_gtty | 12 | #define __stub_gtty |
| 13 | #define __stub_lchmod | ||
| 14 | #define __stub_revoke | 13 | #define __stub_revoke |
| 15 | #define __stub_setlogin | 14 | #define __stub_setlogin |
| 16 | #define __stub_sigreturn | 15 | #define __stub_sigreturn |
| 17 | #define __stub_sstk | ||
| 18 | #define __stub_stty | 16 | #define __stub_stty |
| \ No newline at end of file | |||
lib/libc/include/powerpc64le-linux-gnu/ieee754.h+66-2| ... | @@ -21,6 +21,7 @@ | ... | @@ -21,6 +21,7 @@ |
| 21 | #include <features.h> | 21 | #include <features.h> |
| 22 | 22 | ||
| 23 | #include <bits/endian.h> | 23 | #include <bits/endian.h> |
| 24 | #include <bits/floatn.h> | ||
| 24 | 25 | ||
| 25 | __BEGIN_DECLS | 26 | __BEGIN_DECLS |
| 26 | 27 | ||
| ... | @@ -111,6 +112,65 @@ union ieee754_double | ... | @@ -111,6 +112,65 @@ union ieee754_double |
| 111 | #define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent. */ | 112 | #define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent. */ |
| 112 | 113 | ||
| 113 | 114 | ||
| 115 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | ||
| 116 | /* long double is IEEE 128 bit */ | ||
| 117 | union ieee854_long_double | ||
| 118 | { | ||
| 119 | long double d; | ||
| 120 | |||
| 121 | /* This is the IEEE 854 quad-precision format. */ | ||
| 122 | struct | ||
| 123 | { | ||
| 124 | #if	__BYTE_ORDER == __BIG_ENDIAN | ||
| 125 | 	unsigned int negative:1; | ||
| 126 | 	unsigned int exponent:15; | ||
| 127 | 	/* Together these comprise the mantissa. */ | ||
| 128 | 	unsigned int mantissa0:16; | ||
| 129 | 	unsigned int mantissa1:32; | ||
| 130 | 	unsigned int mantissa2:32; | ||
| 131 | 	unsigned int mantissa3:32; | ||
| 132 | #endif				/* Big endian. */ | ||
| 133 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | ||
| 134 | 	/* Together these comprise the mantissa. */ | ||
| 135 | 	unsigned int mantissa3:32; | ||
| 136 | 	unsigned int mantissa2:32; | ||
| 137 | 	unsigned int mantissa1:32; | ||
| 138 | 	unsigned int mantissa0:16; | ||
| 139 | 	unsigned int exponent:15; | ||
| 140 | 	unsigned int negative:1; | ||
| 141 | #endif				/* Little endian. */ | ||
| 142 | } ieee; | ||
| 143 | |||
| 144 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | ||
| 145 | struct | ||
| 146 | { | ||
| 147 | #if	__BYTE_ORDER == __BIG_ENDIAN | ||
| 148 | 	unsigned int negative:1; | ||
| 149 | 	unsigned int exponent:15; | ||
| 150 | 	unsigned int quiet_nan:1; | ||
| 151 | 	/* Together these comprise the mantissa. */ | ||
| 152 | 	unsigned int mantissa0:15; | ||
| 153 | 	unsigned int mantissa1:32; | ||
| 154 | 	unsigned int mantissa2:32; | ||
| 155 | 	unsigned int mantissa3:32; | ||
| 156 | #else | ||
| 157 | 	/* Together these comprise the mantissa. */ | ||
| 158 | 	unsigned int mantissa3:32; | ||
| 159 | 	unsigned int mantissa2:32; | ||
| 160 | 	unsigned int mantissa1:32; | ||
| 161 | 	unsigned int mantissa0:15; | ||
| 162 | 	unsigned int quiet_nan:1; | ||
| 163 | 	unsigned int exponent:15; | ||
| 164 | 	unsigned int negative:1; | ||
| 165 | #endif | ||
| 166 | } ieee_nan; | ||
| 167 | }; | ||
| 168 | |||
| 169 | #define IEEE854_LONG_DOUBLE_BIAS 0x3fff /* Added to exponent. */ | ||
| 170 | #endif | ||
| 171 | |||
| 172 | |||
| 173 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 || __GNUC_PREREQ (7, 0) | ||
| 114 | /* IBM extended format for long double. | 174 | /* IBM extended format for long double. |
| 115 | 175 | ||
| 116 | Each long double is made up of two IEEE doubles. The value of the | 176 | Each long double is made up of two IEEE doubles. The value of the |
| ... | @@ -121,12 +181,16 @@ union ieee754_double | ... | @@ -121,12 +181,16 @@ union ieee754_double |
| 121 | -0.0. No other requirements are made; so, for example, 1.0 may be | 181 | -0.0. No other requirements are made; so, for example, 1.0 may be |
| 122 | represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a | 182 | represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a |
| 123 | NaN is don't-care. */ | 183 | NaN is don't-care. */ |
| 124 | |||
| 125 | union ibm_extended_long_double | 184 | union ibm_extended_long_double |
| 126 | { | 185 | { |
| 127 | long double ld; | 186 | # if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 && __GNUC_PREREQ (7, 0) |
| 187 | __ibm128 ld; | ||
| 188 | # else | ||
| 189 | long double ld; | ||
| 190 | # endif | ||
| 128 | union ieee754_double d[2]; | 191 | union ieee754_double d[2]; |
| 129 | }; | 192 | }; |
| 193 | #endif | ||
| 130 | 194 | ||
| 131 | __END_DECLS | 195 | __END_DECLS |
| 132 | 196 |
lib/libc/include/riscv64-linux-gnu/bits/floatn.h deleted-97| ... | @@ -1,97 +0,0 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on ldbl-128 platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/riscv64-linux-gnu/bits/long-double.h+1-1| ... | @@ -18,4 +18,4 @@ | ... | @@ -18,4 +18,4 @@ |
| 18 | 18 | ||
| 19 | /* long double is distinct from double, so there is nothing to | 19 | /* long double is distinct from double, so there is nothing to |
| 20 | define here. */ | 20 | define here. */ |
| 21 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 21 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/riscv64-linux-gnu/bits/semaphore.h deleted-33| ... | @@ -1,33 +0,0 @@ | ||
| 1 | /* Machine-specific POSIX semaphore type layouts. RISC-V version. | ||
| 2 | Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SEMAPHORE_H | ||
| 20 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SIZEOF_SEM_T	(4 * __SIZEOF_POINTER__) | ||
| 24 | |||
| 25 | /* Value returned if `sem_open' failed. */ | ||
| 26 | #define SEM_FAILED ((sem_t *) 0) | ||
| 27 | |||
| 28 | |||
| 29 | typedef union | ||
| 30 | { | ||
| 31 | char __size[__SIZEOF_SEM_T]; | ||
| 32 | long int __align; | ||
| 33 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/riscv64-linux-gnu/bits/typesizes.h+29-9| ... | @@ -26,31 +26,45 @@ | ... | @@ -26,31 +26,45 @@ |
| 26 | 26 | ||
| 27 | /* See <bits/types.h> for the meaning of these macros. This file exists so | 27 | /* See <bits/types.h> for the meaning of these macros. This file exists so |
| 28 | that <bits/types.h> need not vary across different GNU platforms. */ | 28 | that <bits/types.h> need not vary across different GNU platforms. */ |
| 29 | #if __TIMESIZE == 64 && __WORDSIZE == 32 | ||
| 30 | /* These are the "new" y2038 types defined for architectures added after | ||
| 31 | the 5.1 kernel. */ | ||
| 32 | # define __INO_T_TYPE		__UQUAD_TYPE | ||
| 33 | # define __OFF_T_TYPE		__SQUAD_TYPE | ||
| 34 | # define __RLIM_T_TYPE		__UQUAD_TYPE | ||
| 35 | # define __BLKCNT_T_TYPE	__SQUAD_TYPE | ||
| 36 | # define __FSBLKCNT_T_TYPE	__UQUAD_TYPE | ||
| 37 | # define __FSFILCNT_T_TYPE	__UQUAD_TYPE | ||
| 38 | # define __TIME_T_TYPE		__SQUAD_TYPE | ||
| 39 | # define __SUSECONDS_T_TYPE	__SQUAD_TYPE | ||
| 40 | #else | ||
| 41 | # define __INO_T_TYPE		__ULONGWORD_TYPE | ||
| 42 | # define __OFF_T_TYPE		__SLONGWORD_TYPE | ||
| 43 | # define __RLIM_T_TYPE		__ULONGWORD_TYPE | ||
| 44 | # define __BLKCNT_T_TYPE	__SLONGWORD_TYPE | ||
| 45 | # define __FSBLKCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 46 | # define __FSFILCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 47 | # define __TIME_T_TYPE		__SLONGWORD_TYPE | ||
| 48 | # define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE | ||
| 49 | #endif | ||
| 29 | 50 | ||
| 30 | #define __DEV_T_TYPE		__UQUAD_TYPE | 51 | #define __DEV_T_TYPE		__UQUAD_TYPE |
| 31 | #define __UID_T_TYPE		__U32_TYPE | 52 | #define __UID_T_TYPE		__U32_TYPE |
| 32 | #define __GID_T_TYPE		__U32_TYPE | 53 | #define __GID_T_TYPE		__U32_TYPE |
| 33 | #define __INO_T_TYPE		__ULONGWORD_TYPE | ||
| 34 | #define __INO64_T_TYPE		__UQUAD_TYPE | 54 | #define __INO64_T_TYPE		__UQUAD_TYPE |
| 35 | #define __MODE_T_TYPE		__U32_TYPE | 55 | #define __MODE_T_TYPE		__U32_TYPE |
| 36 | #define __NLINK_T_TYPE		__U32_TYPE | 56 | #define __NLINK_T_TYPE		__U32_TYPE |
| 37 | #define __OFF_T_TYPE		__SLONGWORD_TYPE | ||
| 38 | #define __OFF64_T_TYPE		__SQUAD_TYPE | 57 | #define __OFF64_T_TYPE		__SQUAD_TYPE |
| 39 | #define __PID_T_TYPE		__S32_TYPE | 58 | #define __PID_T_TYPE		__S32_TYPE |
| 40 | #define __RLIM_T_TYPE		__ULONGWORD_TYPE | ||
| 41 | #define __RLIM64_T_TYPE		__UQUAD_TYPE | 59 | #define __RLIM64_T_TYPE		__UQUAD_TYPE |
| 42 | #define	__BLKCNT_T_TYPE		__SLONGWORD_TYPE | ||
| 43 | #define	__BLKCNT64_T_TYPE	__SQUAD_TYPE | 60 | #define	__BLKCNT64_T_TYPE	__SQUAD_TYPE |
| 44 | #define	__FSBLKCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 45 | #define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE | 61 | #define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE |
| 46 | #define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE | ||
| 47 | #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE | 62 | #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE |
| 48 | #define	__FSWORD_T_TYPE		__SWORD_TYPE | 63 | #define	__FSWORD_T_TYPE		__SWORD_TYPE |
| 49 | #define	__ID_T_TYPE		__U32_TYPE | 64 | #define	__ID_T_TYPE		__U32_TYPE |
| 50 | #define __CLOCK_T_TYPE		__SLONGWORD_TYPE | 65 | #define __CLOCK_T_TYPE		__SLONGWORD_TYPE |
| 51 | #define __TIME_T_TYPE		__SLONGWORD_TYPE | ||
| 52 | #define __USECONDS_T_TYPE	__U32_TYPE | 66 | #define __USECONDS_T_TYPE	__U32_TYPE |
| 53 | #define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE | 67 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE |
| 54 | #define __DADDR_T_TYPE		__S32_TYPE | 68 | #define __DADDR_T_TYPE		__S32_TYPE |
| 55 | #define __KEY_T_TYPE		__S32_TYPE | 69 | #define __KEY_T_TYPE		__S32_TYPE |
| 56 | #define __CLOCKID_T_TYPE	__S32_TYPE | 70 | #define __CLOCKID_T_TYPE	__S32_TYPE |
| ... | @@ -62,7 +76,7 @@ | ... | @@ -62,7 +76,7 @@ |
| 62 | #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE | 76 | #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE |
| 63 | #define __CPU_MASK_TYPE 	__ULONGWORD_TYPE | 77 | #define __CPU_MASK_TYPE 	__ULONGWORD_TYPE |
| 64 | 78 | ||
| 65 | #ifdef __LP64__ | 79 | #if defined __LP64__ || (__TIMESIZE == 64 && __WORDSIZE == 32) |
| 66 | /* Tell the libc code that off_t and off64_t are actually the same type | 80 | /* Tell the libc code that off_t and off64_t are actually the same type |
| 67 | for all ABI purposes, even if possibly expressed as different base types | 81 | for all ABI purposes, even if possibly expressed as different base types |
| 68 | for C type-checking purposes. */ | 82 | for C type-checking purposes. */ |
| ... | @@ -76,11 +90,17 @@ | ... | @@ -76,11 +90,17 @@ |
| 76 | 90 | ||
| 77 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | 91 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ |
| 78 | # define __STATFS_MATCHES_STATFS64 1 | 92 | # define __STATFS_MATCHES_STATFS64 1 |
| 93 | |||
| 94 | /* And for getitimer, setitimer and rusage */ | ||
| 95 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 (__WORDSIZE == 64) | ||
| 79 | #else | 96 | #else |
| 80 | # define __RLIM_T_MATCHES_RLIM64_T	0 | 97 | # define __RLIM_T_MATCHES_RLIM64_T	0 |
| 81 | 98 | ||
| 82 | # define __STATFS_MATCHES_STATFS64 0 | 99 | # define __STATFS_MATCHES_STATFS64 0 |
| 100 | |||
| 101 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 83 | #endif | 102 | #endif |
| 103 | |||
| 84 | /* Number of descriptors that can fit in an `fd_set'. */ | 104 | /* Number of descriptors that can fit in an `fd_set'. */ |
| 85 | #define	__FD_SETSIZE		1024 | 105 | #define	__FD_SETSIZE		1024 |
| 86 | 106 |
lib/libc/include/riscv64-linux-gnu/gnu/lib-names-lp64.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/riscv64-linux-gnu/gnu/stubs-lp64.h+1-4| ... | @@ -32,10 +32,7 @@ | ... | @@ -32,10 +32,7 @@ |
| 32 | #define __stub_fetestexcept | 32 | #define __stub_fetestexcept |
| 33 | #define __stub_feupdateenv | 33 | #define __stub_feupdateenv |
| 34 | #define __stub_gtty | 34 | #define __stub_gtty |
| 35 | #define __stub_lchmod | ||
| 36 | #define __stub_revoke | 35 | #define __stub_revoke |
| 37 | #define __stub_setlogin | 36 | #define __stub_setlogin |
| 38 | #define __stub_sigreturn | 37 | #define __stub_sigreturn |
| 39 | #define __stub_sstk | ||
| 40 | #define __stub_stty | ||
| 41 | #define __stub_sysctl | ||
| \ No newline at end of file | |||
| 38 | #define __stub_stty | ||
| \ No newline at end of file | |||
lib/libc/include/s390x-linux-gnu/bits/fenv.h+2-2| ... | @@ -73,14 +73,14 @@ typedef unsigned int fexcept_t; /* size of fpc */ | ... | @@ -73,14 +73,14 @@ typedef unsigned int fexcept_t; /* size of fpc */ |
| 73 | 73 | ||
| 74 | 74 | ||
| 75 | /* Type representing floating-point environment. This function corresponds | 75 | /* Type representing floating-point environment. This function corresponds |
| 76 | to the layout of the block written by the `fstenv'. */ | 76 | to the layout of the block used by fegetenv and fesetenv. */ |
| 77 | typedef struct | 77 | typedef struct |
| 78 | { | 78 | { |
| 79 | fexcept_t __fpc; | 79 | fexcept_t __fpc; |
| 80 | void *__unused; | 80 | void *__unused; |
| 81 | /* The field __unused (formerly __ieee_instruction_pointer) is a relict from | 81 | /* The field __unused (formerly __ieee_instruction_pointer) is a relict from |
| 82 | commit "Remove PTRACE_PEEKUSER" (87b9b50f0d4b92248905e95a06a13c513dc45e59) | 82 | commit "Remove PTRACE_PEEKUSER" (87b9b50f0d4b92248905e95a06a13c513dc45e59) |
| 83 | and isn´t used anymore. */ | 83 | and isn't used anymore. */ |
| 84 | } fenv_t; | 84 | } fenv_t; |
| 85 | 85 | ||
| 86 | /* If the default argument is used we use this value. */ | 86 | /* If the default argument is used we use this value. */ |
lib/libc/include/s390x-linux-gnu/bits/floatn.h deleted-97| ... | @@ -1,97 +0,0 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on ldbl-128 platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/s390x-linux-gnu/bits/long-double.h+1-1| ... | @@ -22,4 +22,4 @@ | ... | @@ -22,4 +22,4 @@ |
| 22 | # define __NO_LONG_DOUBLE_MATH		1 | 22 | # define __NO_LONG_DOUBLE_MATH		1 |
| 23 | # endif | 23 | # endif |
| 24 | #endif | 24 | #endif |
| 25 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 25 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/s390x-linux-gnu/bits/semaphore.h deleted-39| ... | @@ -1,39 +0,0 @@ | ||
| 1 | /* Copyright (C) 2003-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SEMAPHORE_H | ||
| 20 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/wordsize.h> | ||
| 24 | |||
| 25 | #if __WORDSIZE == 64 | ||
| 26 | # define __SIZEOF_SEM_T	32 | ||
| 27 | #else | ||
| 28 | # define __SIZEOF_SEM_T	16 | ||
| 29 | #endif | ||
| 30 | |||
| 31 | /* Value returned if `sem_open' failed. */ | ||
| 32 | #define SEM_FAILED ((sem_t *) 0) | ||
| 33 | |||
| 34 | |||
| 35 | typedef union | ||
| 36 | { | ||
| 37 | char __size[__SIZEOF_SEM_T]; | ||
| 38 | long int __align; | ||
| 39 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/s390x-linux-gnu/bits/typesizes.h+7| ... | @@ -50,6 +50,7 @@ | ... | @@ -50,6 +50,7 @@ |
| 50 | #define __TIME_T_TYPE		__SLONGWORD_TYPE | 50 | #define __TIME_T_TYPE		__SLONGWORD_TYPE |
| 51 | #define __USECONDS_T_TYPE	__U32_TYPE | 51 | #define __USECONDS_T_TYPE	__U32_TYPE |
| 52 | #define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE | 52 | #define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE |
| 53 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE | ||
| 53 | #define __DADDR_T_TYPE		__S32_TYPE | 54 | #define __DADDR_T_TYPE		__S32_TYPE |
| 54 | #define __KEY_T_TYPE		__S32_TYPE | 55 | #define __KEY_T_TYPE		__S32_TYPE |
| 55 | #define __CLOCKID_T_TYPE	__S32_TYPE | 56 | #define __CLOCKID_T_TYPE	__S32_TYPE |
| ... | @@ -81,10 +82,16 @@ | ... | @@ -81,10 +82,16 @@ |
| 81 | 82 | ||
| 82 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | 83 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ |
| 83 | # define __STATFS_MATCHES_STATFS64 1 | 84 | # define __STATFS_MATCHES_STATFS64 1 |
| 85 | |||
| 86 | /* And for getitimer, setitimer and rusage */ | ||
| 87 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 | ||
| 84 | #else | 88 | #else |
| 85 | # define __RLIM_T_MATCHES_RLIM64_T	0 | 89 | # define __RLIM_T_MATCHES_RLIM64_T	0 |
| 86 | 90 | ||
| 87 | # define __STATFS_MATCHES_STATFS64 0 | 91 | # define __STATFS_MATCHES_STATFS64 0 |
| 92 | |||
| 93 | /* And for getitimer, setitimer and rusage */ | ||
| 94 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 88 | #endif | 95 | #endif |
| 89 | 96 | ||
| 90 | /* Number of descriptors that can fit in an `fd_set'. */ | 97 | /* Number of descriptors that can fit in an `fd_set'. */ |
lib/libc/include/s390x-linux-gnu/gnu/lib-names-64.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/sparc-linux-gnu/bits/fenv.h-9| ... | @@ -83,15 +83,6 @@ typedef unsigned long int fenv_t; | ... | @@ -83,15 +83,6 @@ typedef unsigned long int fenv_t; |
| 83 | # define FE_NOMASK_ENV	((const fenv_t *) -2) | 83 | # define FE_NOMASK_ENV	((const fenv_t *) -2) |
| 84 | #endif | 84 | #endif |
| 85 | 85 | ||
| 86 | /* For internal use only: access the fp state register. */ | ||
| 87 | #if __WORDSIZE == 64 | ||
| 88 | # define __fenv_stfsr(X) __asm__ __volatile__ ("stx %%fsr,%0" : "=m" (X)) | ||
| 89 | # define __fenv_ldfsr(X) __asm__ __volatile__ ("ldx %0,%%fsr" : : "m" (X)) | ||
| 90 | #else | ||
| 91 | # define __fenv_stfsr(X) __asm__ __volatile__ ("st %%fsr,%0" : "=m" (X)) | ||
| 92 | # define __fenv_ldfsr(X) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X)) | ||
| 93 | #endif | ||
| 94 | |||
| 95 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) | 86 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) |
| 96 | /* Type representing floating-point control modes. */ | 87 | /* Type representing floating-point control modes. */ |
| 97 | typedef unsigned long int femode_t; | 88 | typedef unsigned long int femode_t; |
lib/libc/include/sparc-linux-gnu/bits/floatn.h deleted-97| ... | @@ -1,97 +0,0 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on ldbl-128 platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/sparc-linux-gnu/bits/long-double.h+1-1| ... | @@ -24,4 +24,4 @@ | ... | @@ -24,4 +24,4 @@ |
| 24 | # define __NO_LONG_DOUBLE_MATH 1 | 24 | # define __NO_LONG_DOUBLE_MATH 1 |
| 25 | # endif | 25 | # endif |
| 26 | #endif | 26 | #endif |
| 27 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 27 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/sparc-linux-gnu/bits/msq-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. SPARC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __MSQ_PAD_AFTER_TIME 0 | ||
| 26 | #define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/sparc-linux-gnu/bits/resource.h+1-1| ... | @@ -98,7 +98,7 @@ enum __rlimit_resource | ... | @@ -98,7 +98,7 @@ enum __rlimit_resource |
| 98 | __RLIMIT_RTPRIO = 14, | 98 | __RLIMIT_RTPRIO = 14, |
| 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO | 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO |
| 100 | 100 | ||
| 101 | /* Maximum CPU time in µs that a process scheduled under a real-time | 101 | /* Maximum CPU time in microseconds that a process scheduled under a real-time |
| 102 | scheduling policy may consume without making a blocking system | 102 | scheduling policy may consume without making a blocking system |
| 103 | call before being forcibly descheduled. */ | 103 | call before being forcibly descheduled. */ |
| 104 | __RLIMIT_RTTIME = 15, | 104 | __RLIMIT_RTTIME = 15, |
lib/libc/include/sparc-linux-gnu/bits/sem-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. SPARC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __SEM_PAD_AFTER_TIME 0 | ||
| 26 | #define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/sparc-linux-gnu/bits/semaphore.h deleted-40| ... | @@ -1,40 +0,0 @@ | ||
| 1 | /* Machine-specific POSIX semaphore type layouts. SPARC version. | ||
| 2 | Copyright (C) 2003-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <https://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _SEMAPHORE_H | ||
| 21 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 22 | #endif | ||
| 23 | |||
| 24 | #include <bits/wordsize.h> | ||
| 25 | |||
| 26 | #if __WORDSIZE == 64 | ||
| 27 | # define __SIZEOF_SEM_T	32 | ||
| 28 | #else | ||
| 29 | # define __SIZEOF_SEM_T	16 | ||
| 30 | #endif | ||
| 31 | |||
| 32 | /* Value returned if `sem_open' failed. */ | ||
| 33 | #define SEM_FAILED ((sem_t *) 0) | ||
| 34 | |||
| 35 | |||
| 36 | typedef union | ||
| 37 | { | ||
| 38 | char __size[__SIZEOF_SEM_T]; | ||
| 39 | long int __align; | ||
| 40 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/sparc-linux-gnu/bits/shm-pad.h deleted-28| ... | @@ -1,28 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. SPARC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __SHM_PAD_AFTER_TIME 0 | ||
| 26 | #define __SHM_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| 27 | #define __SHM_SEGSZ_AFTER_TIME 1 | ||
| 28 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0 | ||
| \ No newline at end of file | |||
lib/libc/include/sparc-linux-gnu/bits/signum-arch.h created+66| ... | @@ -0,0 +1,66 @@ | ||
| 1 | /* Signal number definitions. Linux/SPARC version. | ||
| 2 | Copyright (C) 1996-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_ARCH_H | ||
| 20 | #define _BITS_SIGNUM_ARCH_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum-arch.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | /* Adjustments and additions to the signal number constants for | ||
| 27 | Linux/SPARC systems. Signal values on this platform were chosen | ||
| 28 | for SunOS binary compatibility. */ | ||
| 29 | |||
| 30 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 31 | #define SIGLOST		29	/* Resource lost (Sun); server died (GNU). */ | ||
| 32 | #define SIGPWR		SIGLOST	/* Power failure imminent (SysV). */ | ||
| 33 | |||
| 34 | /* Historical signals specified by POSIX. */ | ||
| 35 | #define SIGBUS		10	/* Bus error. */ | ||
| 36 | #define SIGSYS		12	/* Bad system call. */ | ||
| 37 | |||
| 38 | /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ | ||
| 39 | #define SIGURG		16	/* Urgent data is available at a socket. */ | ||
| 40 | #define SIGSTOP		17	/* Stop, unblockable. */ | ||
| 41 | #define SIGTSTP		18	/* Keyboard stop. */ | ||
| 42 | #define SIGCONT		19	/* Continue. */ | ||
| 43 | #define SIGCHLD		20	/* Child terminated or stopped. */ | ||
| 44 | #define SIGTTIN		21	/* Background read from control terminal. */ | ||
| 45 | #define SIGTTOU		22	/* Background write to control terminal. */ | ||
| 46 | #define SIGPOLL		23	/* Pollable event occurred (System V). */ | ||
| 47 | #define SIGXCPU		24	/* CPU time limit exceeded. */ | ||
| 48 | #define SIGVTALRM	26	/* Virtual timer expired. */ | ||
| 49 | #define SIGPROF		27	/* Profiling timer expired. */ | ||
| 50 | #define SIGXFSZ		25	/* File size limit exceeded. */ | ||
| 51 | #define SIGUSR1		30	/* User-defined signal 1. */ | ||
| 52 | #define SIGUSR2		31	/* User-defined signal 2. */ | ||
| 53 | |||
| 54 | /* Nonstandard signals found in all modern POSIX systems | ||
| 55 | (including both BSD and Linux). */ | ||
| 56 | #define SIGWINCH	28	/* Window size change (4.3 BSD, Sun). */ | ||
| 57 | |||
| 58 | /* Archaic names for compatibility. */ | ||
| 59 | #define SIGIO		SIGPOLL /* I/O now possible (4.2 BSD). */ | ||
| 60 | #define SIGIOT		SIGABRT /* IOT instruction, abort() on a PDP-11. */ | ||
| 61 | #define SIGCLD		SIGCHLD /* Old System V name */ | ||
| 62 | |||
| 63 | #define __SIGRTMIN	32 | ||
| 64 | #define __SIGRTMAX	64 | ||
| 65 | |||
| 66 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/sparc-linux-gnu/bits/signum.h deleted-39| ... | @@ -1,39 +0,0 @@ | ||
| 1 | /* Signal number definitions. Linux/SPARC version. | ||
| 2 | Copyright (C) 1996-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include <bits/signum-generic.h> | ||
| 27 | |||
| 28 | /* Adjustments and additions to the signal number constants for | ||
| 29 | Linux/SPARC systems. Signal values on this platform were chosen | ||
| 30 | for SunOS binary compatibility. */ | ||
| 31 | |||
| 32 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 33 | #define SIGLOST		29	/* Resource lost (Sun); server died (GNU). */ | ||
| 34 | #define SIGPWR		SIGLOST	/* Power failure imminent (SysV). */ | ||
| 35 | |||
| 36 | #undef	__SIGRTMAX | ||
| 37 | #define __SIGRTMAX	64 | ||
| 38 | |||
| 39 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/sparc-linux-gnu/bits/types/struct_msqid_ds.h created+47| ... | @@ -0,0 +1,47 @@ | ||
| 1 | /* Linux/SPARC implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | unsigned long int __msg_stime_high; | ||
| 30 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 31 | unsigned long int __msg_rtime_high; | ||
| 32 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 33 | unsigned long int __msg_ctime_high; | ||
| 34 | __time_t msg_ctime;		/* time of last change */ | ||
| 35 | #else | ||
| 36 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 37 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 38 | __time_t msg_ctime;		/* time of last change */ | ||
| 39 | #endif | ||
| 40 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 41 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 42 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 43 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 44 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 45 | __syscall_ulong_t __glibc_reserved4; | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/sparc-linux-gnu/bits/types/struct_semid_ds.h created+39| ... | @@ -0,0 +1,39 @@ | ||
| 1 | /* Sparc implementation of the semaphore struct semid_ds | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm; /* operation permission struct */ | ||
| 27 | #if __TIMESIZE == 32 | ||
| 28 | __syscall_ulong_t __sem_otime_high; | ||
| 29 | __time_t sem_otime; /* last semop() time */ | ||
| 30 | __syscall_ulong_t __sem_ctime_high; | ||
| 31 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 32 | #else | ||
| 33 | __time_t sem_otime; /* last semop() time */ | ||
| 34 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 35 | #endif | ||
| 36 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | ||
| 37 | __syscall_ulong_t __glibc_reserved3; | ||
| 38 | __syscall_ulong_t __glibc_reserved4; | ||
| 39 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/sparc-linux-gnu/bits/types/struct_shmid_ds.h created+45| ... | @@ -0,0 +1,45 @@ | ||
| 1 | /* Linux/SPARC implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | #if __TIMESIZE == 32 | ||
| 28 | unsigned long int __shm_atime_high; | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | unsigned long int __shm_dtime_high; | ||
| 31 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 32 | unsigned long int __shm_ctime_high; | ||
| 33 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 34 | #else | ||
| 35 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 36 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 37 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 38 | #endif | ||
| 39 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 40 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 41 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 42 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 43 | __syscall_ulong_t __glibc_reserved5; | ||
| 44 | __syscall_ulong_t __glibc_reserved6; | ||
| 45 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/sparc-linux-gnu/bits/typesizes.h+7| ... | @@ -50,6 +50,7 @@ | ... | @@ -50,6 +50,7 @@ |
| 50 | #define __TIME_T_TYPE		__SLONGWORD_TYPE | 50 | #define __TIME_T_TYPE		__SLONGWORD_TYPE |
| 51 | #define __USECONDS_T_TYPE	__U32_TYPE | 51 | #define __USECONDS_T_TYPE	__U32_TYPE |
| 52 | #define __SUSECONDS_T_TYPE	__S32_TYPE | 52 | #define __SUSECONDS_T_TYPE	__S32_TYPE |
| 53 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE | ||
| 53 | #define __DADDR_T_TYPE		__S32_TYPE | 54 | #define __DADDR_T_TYPE		__S32_TYPE |
| 54 | #define __KEY_T_TYPE		__S32_TYPE | 55 | #define __KEY_T_TYPE		__S32_TYPE |
| 55 | #define __CLOCKID_T_TYPE	__S32_TYPE | 56 | #define __CLOCKID_T_TYPE	__S32_TYPE |
| ... | @@ -75,10 +76,16 @@ | ... | @@ -75,10 +76,16 @@ |
| 75 | 76 | ||
| 76 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | 77 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ |
| 77 | # define __STATFS_MATCHES_STATFS64 1 | 78 | # define __STATFS_MATCHES_STATFS64 1 |
| 79 | |||
| 80 | /* And for getitimer, setitimer and rusage */ | ||
| 81 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 | ||
| 78 | #else | 82 | #else |
| 79 | # define __RLIM_T_MATCHES_RLIM64_T	0 | 83 | # define __RLIM_T_MATCHES_RLIM64_T	0 |
| 80 | 84 | ||
| 81 | # define __STATFS_MATCHES_STATFS64 0 | 85 | # define __STATFS_MATCHES_STATFS64 0 |
| 86 | |||
| 87 | /* And for getitimer, setitimer and rusage */ | ||
| 88 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 82 | #endif | 89 | #endif |
| 83 | 90 | ||
| 84 | /* Number of descriptors that can fit in an `fd_set'. */ | 91 | /* Number of descriptors that can fit in an `fd_set'. */ |
lib/libc/include/sparc-linux-gnu/gnu/lib-names-64.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/sparcv9-linux-gnu/bits/fenv.h-9| ... | @@ -83,15 +83,6 @@ typedef unsigned long int fenv_t; | ... | @@ -83,15 +83,6 @@ typedef unsigned long int fenv_t; |
| 83 | # define FE_NOMASK_ENV	((const fenv_t *) -2) | 83 | # define FE_NOMASK_ENV	((const fenv_t *) -2) |
| 84 | #endif | 84 | #endif |
| 85 | 85 | ||
| 86 | /* For internal use only: access the fp state register. */ | ||
| 87 | #if __WORDSIZE == 64 | ||
| 88 | # define __fenv_stfsr(X) __asm__ __volatile__ ("stx %%fsr,%0" : "=m" (X)) | ||
| 89 | # define __fenv_ldfsr(X) __asm__ __volatile__ ("ldx %0,%%fsr" : : "m" (X)) | ||
| 90 | #else | ||
| 91 | # define __fenv_stfsr(X) __asm__ __volatile__ ("st %%fsr,%0" : "=m" (X)) | ||
| 92 | # define __fenv_ldfsr(X) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X)) | ||
| 93 | #endif | ||
| 94 | |||
| 95 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) | 86 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) |
| 96 | /* Type representing floating-point control modes. */ | 87 | /* Type representing floating-point control modes. */ |
| 97 | typedef unsigned long int femode_t; | 88 | typedef unsigned long int femode_t; |
lib/libc/include/sparcv9-linux-gnu/bits/floatn.h deleted-97| ... | @@ -1,97 +0,0 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on ldbl-128 platforms. | ||
| 2 | Copyright (C) 2017-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | #include <bits/long-double.h> | ||
| 24 | |||
| 25 | /* Defined to 1 if the current compiler invocation provides a | ||
| 26 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 27 | glibc includes corresponding *f128 interfaces for it. */ | ||
| 28 | #ifndef __NO_LONG_DOUBLE_MATH | ||
| 29 | # define __HAVE_FLOAT128 1 | ||
| 30 | #else | ||
| 31 | /* glibc does not support _Float128 for platforms where long double is | ||
| 32 | normally binary128 when building with long double as binary64. | ||
| 33 | GCC's default for supported scalar modes does not support it either | ||
| 34 | in that case. */ | ||
| 35 | # define __HAVE_FLOAT128 0 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 39 | from the default float, double and long double types in this glibc. */ | ||
| 40 | #define __HAVE_DISTINCT_FLOAT128 0 | ||
| 41 | |||
| 42 | /* Defined to 1 if the current compiler invocation provides a | ||
| 43 | floating-point type with the right format for _Float64x, and this | ||
| 44 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 45 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | ||
| 46 | |||
| 47 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 48 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 49 | the format of _Float128, which must be different from that of long | ||
| 50 | double. */ | ||
| 51 | #define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 | ||
| 52 | |||
| 53 | #ifndef __ASSEMBLER__ | ||
| 54 | |||
| 55 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 56 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 57 | # if __HAVE_FLOAT128 | ||
| 58 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 59 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 60 | # define __f128(x) x##l | ||
| 61 | # else | ||
| 62 | # define __f128(x) x##f128 | ||
| 63 | # endif | ||
| 64 | # endif | ||
| 65 | |||
| 66 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 67 | # if __HAVE_FLOAT128 | ||
| 68 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 69 | # define __CFLOAT128 _Complex long double | ||
| 70 | # else | ||
| 71 | # define __CFLOAT128 _Complex _Float128 | ||
| 72 | # endif | ||
| 73 | # endif | ||
| 74 | |||
| 75 | /* The remaining of this file provides support for older compilers. */ | ||
| 76 | # if __HAVE_FLOAT128 | ||
| 77 | |||
| 78 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 79 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 80 | typedef long double _Float128; | ||
| 81 | # endif | ||
| 82 | |||
| 83 | /* Various built-in functions do not exist before GCC 7.0. */ | ||
| 84 | # if !__GNUC_PREREQ (7, 0) | ||
| 85 | # define __builtin_huge_valf128() (__builtin_huge_vall ()) | ||
| 86 | # define __builtin_inff128() (__builtin_infl ()) | ||
| 87 | # define __builtin_nanf128(x) (__builtin_nanl (x)) | ||
| 88 | # define __builtin_nansf128(x) (__builtin_nansl (x)) | ||
| 89 | # endif | ||
| 90 | |||
| 91 | # endif | ||
| 92 | |||
| 93 | #endif /* !__ASSEMBLER__. */ | ||
| 94 | |||
| 95 | #include <bits/floatn-common.h> | ||
| 96 | |||
| 97 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/sparcv9-linux-gnu/bits/long-double.h+1-1| ... | @@ -24,4 +24,4 @@ | ... | @@ -24,4 +24,4 @@ |
| 24 | # define __NO_LONG_DOUBLE_MATH 1 | 24 | # define __NO_LONG_DOUBLE_MATH 1 |
| 25 | # endif | 25 | # endif |
| 26 | #endif | 26 | #endif |
| 27 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 27 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/sparcv9-linux-gnu/bits/msq-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct msqid_ds. SPARC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __MSQ_PAD_AFTER_TIME 0 | ||
| 26 | #define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/sparcv9-linux-gnu/bits/resource.h+1-1| ... | @@ -98,7 +98,7 @@ enum __rlimit_resource | ... | @@ -98,7 +98,7 @@ enum __rlimit_resource |
| 98 | __RLIMIT_RTPRIO = 14, | 98 | __RLIMIT_RTPRIO = 14, |
| 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO | 99 | #define RLIMIT_RTPRIO __RLIMIT_RTPRIO |
| 100 | 100 | ||
| 101 | /* Maximum CPU time in µs that a process scheduled under a real-time | 101 | /* Maximum CPU time in microseconds that a process scheduled under a real-time |
| 102 | scheduling policy may consume without making a blocking system | 102 | scheduling policy may consume without making a blocking system |
| 103 | call before being forcibly descheduled. */ | 103 | call before being forcibly descheduled. */ |
| 104 | __RLIMIT_RTTIME = 15, | 104 | __RLIMIT_RTTIME = 15, |
lib/libc/include/sparcv9-linux-gnu/bits/sem-pad.h deleted-26| ... | @@ -1,26 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. SPARC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __SEM_PAD_AFTER_TIME 0 | ||
| 26 | #define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| \ No newline at end of file | |||
lib/libc/include/sparcv9-linux-gnu/bits/semaphore.h deleted-40| ... | @@ -1,40 +0,0 @@ | ||
| 1 | /* Machine-specific POSIX semaphore type layouts. SPARC version. | ||
| 2 | Copyright (C) 2003-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <https://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _SEMAPHORE_H | ||
| 21 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 22 | #endif | ||
| 23 | |||
| 24 | #include <bits/wordsize.h> | ||
| 25 | |||
| 26 | #if __WORDSIZE == 64 | ||
| 27 | # define __SIZEOF_SEM_T	32 | ||
| 28 | #else | ||
| 29 | # define __SIZEOF_SEM_T	16 | ||
| 30 | #endif | ||
| 31 | |||
| 32 | /* Value returned if `sem_open' failed. */ | ||
| 33 | #define SEM_FAILED ((sem_t *) 0) | ||
| 34 | |||
| 35 | |||
| 36 | typedef union | ||
| 37 | { | ||
| 38 | char __size[__SIZEOF_SEM_T]; | ||
| 39 | long int __align; | ||
| 40 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/sparcv9-linux-gnu/bits/shm-pad.h deleted-28| ... | @@ -1,28 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct shmid_ds. SPARC version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/timesize.h> | ||
| 24 | |||
| 25 | #define __SHM_PAD_AFTER_TIME 0 | ||
| 26 | #define __SHM_PAD_BEFORE_TIME (__TIMESIZE == 32) | ||
| 27 | #define __SHM_SEGSZ_AFTER_TIME 1 | ||
| 28 | #define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0 | ||
| \ No newline at end of file | |||
lib/libc/include/sparcv9-linux-gnu/bits/signum-arch.h created+66| ... | @@ -0,0 +1,66 @@ | ||
| 1 | /* Signal number definitions. Linux/SPARC version. | ||
| 2 | Copyright (C) 1996-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_ARCH_H | ||
| 20 | #define _BITS_SIGNUM_ARCH_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum-arch.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | /* Adjustments and additions to the signal number constants for | ||
| 27 | Linux/SPARC systems. Signal values on this platform were chosen | ||
| 28 | for SunOS binary compatibility. */ | ||
| 29 | |||
| 30 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 31 | #define SIGLOST		29	/* Resource lost (Sun); server died (GNU). */ | ||
| 32 | #define SIGPWR		SIGLOST	/* Power failure imminent (SysV). */ | ||
| 33 | |||
| 34 | /* Historical signals specified by POSIX. */ | ||
| 35 | #define SIGBUS		10	/* Bus error. */ | ||
| 36 | #define SIGSYS		12	/* Bad system call. */ | ||
| 37 | |||
| 38 | /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ | ||
| 39 | #define SIGURG		16	/* Urgent data is available at a socket. */ | ||
| 40 | #define SIGSTOP		17	/* Stop, unblockable. */ | ||
| 41 | #define SIGTSTP		18	/* Keyboard stop. */ | ||
| 42 | #define SIGCONT		19	/* Continue. */ | ||
| 43 | #define SIGCHLD		20	/* Child terminated or stopped. */ | ||
| 44 | #define SIGTTIN		21	/* Background read from control terminal. */ | ||
| 45 | #define SIGTTOU		22	/* Background write to control terminal. */ | ||
| 46 | #define SIGPOLL		23	/* Pollable event occurred (System V). */ | ||
| 47 | #define SIGXCPU		24	/* CPU time limit exceeded. */ | ||
| 48 | #define SIGVTALRM	26	/* Virtual timer expired. */ | ||
| 49 | #define SIGPROF		27	/* Profiling timer expired. */ | ||
| 50 | #define SIGXFSZ		25	/* File size limit exceeded. */ | ||
| 51 | #define SIGUSR1		30	/* User-defined signal 1. */ | ||
| 52 | #define SIGUSR2		31	/* User-defined signal 2. */ | ||
| 53 | |||
| 54 | /* Nonstandard signals found in all modern POSIX systems | ||
| 55 | (including both BSD and Linux). */ | ||
| 56 | #define SIGWINCH	28	/* Window size change (4.3 BSD, Sun). */ | ||
| 57 | |||
| 58 | /* Archaic names for compatibility. */ | ||
| 59 | #define SIGIO		SIGPOLL /* I/O now possible (4.2 BSD). */ | ||
| 60 | #define SIGIOT		SIGABRT /* IOT instruction, abort() on a PDP-11. */ | ||
| 61 | #define SIGCLD		SIGCHLD /* Old System V name */ | ||
| 62 | |||
| 63 | #define __SIGRTMIN	32 | ||
| 64 | #define __SIGRTMAX	64 | ||
| 65 | |||
| 66 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/sparcv9-linux-gnu/bits/signum.h deleted-39| ... | @@ -1,39 +0,0 @@ | ||
| 1 | /* Signal number definitions. Linux/SPARC version. | ||
| 2 | Copyright (C) 1996-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_SIGNUM_H | ||
| 20 | #define _BITS_SIGNUM_H 1 | ||
| 21 | |||
| 22 | #ifndef _SIGNAL_H | ||
| 23 | #error "Never include <bits/signum.h> directly; use <signal.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include <bits/signum-generic.h> | ||
| 27 | |||
| 28 | /* Adjustments and additions to the signal number constants for | ||
| 29 | Linux/SPARC systems. Signal values on this platform were chosen | ||
| 30 | for SunOS binary compatibility. */ | ||
| 31 | |||
| 32 | #define SIGEMT		 7	/* Emulator trap. */ | ||
| 33 | #define SIGLOST		29	/* Resource lost (Sun); server died (GNU). */ | ||
| 34 | #define SIGPWR		SIGLOST	/* Power failure imminent (SysV). */ | ||
| 35 | |||
| 36 | #undef	__SIGRTMAX | ||
| 37 | #define __SIGRTMAX	64 | ||
| 38 | |||
| 39 | #endif	/* <signal.h> included. */ | ||
| \ No newline at end of file | |||
lib/libc/include/sparcv9-linux-gnu/bits/types/struct_msqid_ds.h created+47| ... | @@ -0,0 +1,47 @@ | ||
| 1 | /* Linux/SPARC implementation of the SysV message struct msqid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MSG_H | ||
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Structure of record for one message inside the kernel. | ||
| 24 | The type `struct msg' is opaque. */ | ||
| 25 | struct msqid_ds | ||
| 26 | { | ||
| 27 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | ||
| 28 | #if __TIMESIZE == 32 | ||
| 29 | unsigned long int __msg_stime_high; | ||
| 30 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 31 | unsigned long int __msg_rtime_high; | ||
| 32 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 33 | unsigned long int __msg_ctime_high; | ||
| 34 | __time_t msg_ctime;		/* time of last change */ | ||
| 35 | #else | ||
| 36 | __time_t msg_stime;		/* time of last msgsnd command */ | ||
| 37 | __time_t msg_rtime;		/* time of last msgsnd command */ | ||
| 38 | __time_t msg_ctime;		/* time of last change */ | ||
| 39 | #endif | ||
| 40 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | ||
| 41 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | ||
| 42 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | ||
| 43 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | ||
| 44 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | ||
| 45 | __syscall_ulong_t __glibc_reserved4; | ||
| 46 | __syscall_ulong_t __glibc_reserved5; | ||
| 47 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/sparcv9-linux-gnu/bits/types/struct_semid_ds.h created+39| ... | @@ -0,0 +1,39 @@ | ||
| 1 | /* Sparc implementation of the semaphore struct semid_ds | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm; /* operation permission struct */ | ||
| 27 | #if __TIMESIZE == 32 | ||
| 28 | __syscall_ulong_t __sem_otime_high; | ||
| 29 | __time_t sem_otime; /* last semop() time */ | ||
| 30 | __syscall_ulong_t __sem_ctime_high; | ||
| 31 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 32 | #else | ||
| 33 | __time_t sem_otime; /* last semop() time */ | ||
| 34 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 35 | #endif | ||
| 36 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | ||
| 37 | __syscall_ulong_t __glibc_reserved3; | ||
| 38 | __syscall_ulong_t __glibc_reserved4; | ||
| 39 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/sparcv9-linux-gnu/bits/types/struct_shmid_ds.h created+45| ... | @@ -0,0 +1,45 @@ | ||
| 1 | /* Linux/SPARC implementation of the shared memory struct shmid_ds. | ||
| 2 | Copyright (C) 2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SHM_H | ||
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a shared memory segment. */ | ||
| 24 | struct shmid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm shm_perm;		/* operation permission struct */ | ||
| 27 | #if __TIMESIZE == 32 | ||
| 28 | unsigned long int __shm_atime_high; | ||
| 29 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 30 | unsigned long int __shm_dtime_high; | ||
| 31 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 32 | unsigned long int __shm_ctime_high; | ||
| 33 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 34 | #else | ||
| 35 | __time_t shm_atime;			/* time of last shmat() */ | ||
| 36 | __time_t shm_dtime;			/* time of last shmdt() */ | ||
| 37 | __time_t shm_ctime;			/* time of last change by shmctl() */ | ||
| 38 | #endif | ||
| 39 | size_t shm_segsz;			/* size of segment in bytes */ | ||
| 40 | __pid_t shm_cpid;			/* pid of creator */ | ||
| 41 | __pid_t shm_lpid;			/* pid of last shmop */ | ||
| 42 | shmatt_t shm_nattch;		/* number of current attaches */ | ||
| 43 | __syscall_ulong_t __glibc_reserved5; | ||
| 44 | __syscall_ulong_t __glibc_reserved6; | ||
| 45 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/sparcv9-linux-gnu/bits/typesizes.h+7| ... | @@ -50,6 +50,7 @@ | ... | @@ -50,6 +50,7 @@ |
| 50 | #define __TIME_T_TYPE		__SLONGWORD_TYPE | 50 | #define __TIME_T_TYPE		__SLONGWORD_TYPE |
| 51 | #define __USECONDS_T_TYPE	__U32_TYPE | 51 | #define __USECONDS_T_TYPE	__U32_TYPE |
| 52 | #define __SUSECONDS_T_TYPE	__S32_TYPE | 52 | #define __SUSECONDS_T_TYPE	__S32_TYPE |
| 53 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE | ||
| 53 | #define __DADDR_T_TYPE		__S32_TYPE | 54 | #define __DADDR_T_TYPE		__S32_TYPE |
| 54 | #define __KEY_T_TYPE		__S32_TYPE | 55 | #define __KEY_T_TYPE		__S32_TYPE |
| 55 | #define __CLOCKID_T_TYPE	__S32_TYPE | 56 | #define __CLOCKID_T_TYPE	__S32_TYPE |
| ... | @@ -75,10 +76,16 @@ | ... | @@ -75,10 +76,16 @@ |
| 75 | 76 | ||
| 76 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | 77 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ |
| 77 | # define __STATFS_MATCHES_STATFS64 1 | 78 | # define __STATFS_MATCHES_STATFS64 1 |
| 79 | |||
| 80 | /* And for getitimer, setitimer and rusage */ | ||
| 81 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 | ||
| 78 | #else | 82 | #else |
| 79 | # define __RLIM_T_MATCHES_RLIM64_T	0 | 83 | # define __RLIM_T_MATCHES_RLIM64_T	0 |
| 80 | 84 | ||
| 81 | # define __STATFS_MATCHES_STATFS64 0 | 85 | # define __STATFS_MATCHES_STATFS64 0 |
| 86 | |||
| 87 | /* And for getitimer, setitimer and rusage */ | ||
| 88 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 82 | #endif | 89 | #endif |
| 83 | 90 | ||
| 84 | /* Number of descriptors that can fit in an `fd_set'. */ | 91 | /* Number of descriptors that can fit in an `fd_set'. */ |
lib/libc/include/x86_64-linux-gnu/bits/fenv.h-54| ... | @@ -113,58 +113,4 @@ femode_t; | ... | @@ -113,58 +113,4 @@ femode_t; |
| 113 | 113 | ||
| 114 | /* Default floating-point control modes. */ | 114 | /* Default floating-point control modes. */ |
| 115 | # define FE_DFL_MODE	((const femode_t *) -1L) | 115 | # define FE_DFL_MODE	((const femode_t *) -1L) |
| 116 | #endif | ||
| 117 | |||
| 118 | |||
| 119 | #ifdef __USE_EXTERN_INLINES | ||
| 120 | __BEGIN_DECLS | ||
| 121 | |||
| 122 | /* Optimized versions. */ | ||
| 123 | #ifndef _LIBC | ||
| 124 | extern int __REDIRECT_NTH (__feraiseexcept_renamed, (int), feraiseexcept); | ||
| 125 | #endif | ||
| 126 | __extern_always_inline void | ||
| 127 | __NTH (__feraiseexcept_invalid_divbyzero (int __excepts)) | ||
| 128 | { | ||
| 129 | if ((FE_INVALID & __excepts) != 0) | ||
| 130 | { | ||
| 131 | /* One example of an invalid operation is 0.0 / 0.0. */ | ||
| 132 | float __f = 0.0; | ||
| 133 | |||
| 134 | # ifdef __SSE_MATH__ | ||
| 135 | __asm__ __volatile__ ("divss %0, %0 " : : "x" (__f)); | ||
| 136 | # else | ||
| 137 | __asm__ __volatile__ ("fdiv %%st, %%st(0); fwait" | ||
| 138 | 			 : "=t" (__f) : "0" (__f)); | ||
| 139 | # endif | ||
| 140 | (void) &__f; | ||
| 141 | } | ||
| 142 | if ((FE_DIVBYZERO & __excepts) != 0) | ||
| 143 | { | ||
| 144 | float __f = 1.0; | ||
| 145 | float __g = 0.0; | ||
| 146 | |||
| 147 | # ifdef __SSE_MATH__ | ||
| 148 | __asm__ __volatile__ ("divss %1, %0" : : "x" (__f), "x" (__g)); | ||
| 149 | # else | ||
| 150 | __asm__ __volatile__ ("fdivp %%st, %%st(1); fwait" | ||
| 151 | 			 : "=t" (__f) : "0" (__f), "u" (__g) : "st(1)"); | ||
| 152 | # endif | ||
| 153 | (void) &__f; | ||
| 154 | } | ||
| 155 | } | ||
| 156 | __extern_inline int | ||
| 157 | __NTH (feraiseexcept (int __excepts)) | ||
| 158 | { | ||
| 159 | if (__builtin_constant_p (__excepts) | ||
| 160 | && (__excepts & ~(FE_INVALID | FE_DIVBYZERO)) == 0) | ||
| 161 | { | ||
| 162 | __feraiseexcept_invalid_divbyzero (__excepts); | ||
| 163 | return 0; | ||
| 164 | } | ||
| 165 | |||
| 166 | return __feraiseexcept_renamed (__excepts); | ||
| 167 | } | ||
| 168 | |||
| 169 | __END_DECLS | ||
| 170 | #endif | 116 | #endif |
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnu/bits/long-double.h+1-1| ... | @@ -18,4 +18,4 @@ | ... | @@ -18,4 +18,4 @@ |
| 18 | 18 | ||
| 19 | /* long double is distinct from double, so there is nothing to | 19 | /* long double is distinct from double, so there is nothing to |
| 20 | define here. */ | 20 | define here. */ |
| 21 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 21 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnu/bits/select.h deleted-63| ... | @@ -1,63 +0,0 @@ | ||
| 1 | /* Copyright (C) 1997-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SYS_SELECT_H | ||
| 19 | # error "Never use <bits/select.h> directly; include <sys/select.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #include <bits/wordsize.h> | ||
| 23 | |||
| 24 | |||
| 25 | #if defined __GNUC__ && __GNUC__ >= 2 | ||
| 26 | |||
| 27 | # if __WORDSIZE == 64 | ||
| 28 | # define __FD_ZERO_STOS "stosq" | ||
| 29 | # else | ||
| 30 | # define __FD_ZERO_STOS "stosl" | ||
| 31 | # endif | ||
| 32 | |||
| 33 | # define __FD_ZERO(fdsp) \ | ||
| 34 | do {									 \ | ||
| 35 | int __d0, __d1;							 \ | ||
| 36 | __asm__ __volatile__ ("cld; rep; " __FD_ZERO_STOS			 \ | ||
| 37 | 			 : "=c" (__d0), "=D" (__d1)			 \ | ||
| 38 | 			 : "a" (0), "0" (sizeof (fd_set)		 \ | ||
| 39 | 					 / sizeof (__fd_mask)),	 \ | ||
| 40 | 			 "1" (&__FDS_BITS (fdsp)[0])			 \ | ||
| 41 | 			 : "memory");					 \ | ||
| 42 | } while (0) | ||
| 43 | |||
| 44 | #else	/* ! GNU CC */ | ||
| 45 | |||
| 46 | /* We don't use `memset' because this would require a prototype and | ||
| 47 | the array isn't too big. */ | ||
| 48 | # define __FD_ZERO(set) \ | ||
| 49 | do {									 \ | ||
| 50 | unsigned int __i;							 \ | ||
| 51 | fd_set *__arr = (set);						 \ | ||
| 52 | for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)	 \ | ||
| 53 | __FDS_BITS (__arr)[__i] = 0;					 \ | ||
| 54 | } while (0) | ||
| 55 | |||
| 56 | #endif	/* GNU CC */ | ||
| 57 | |||
| 58 | #define __FD_SET(d, set) \ | ||
| 59 | ((void) (__FDS_BITS (set)[__FD_ELT (d)] |= __FD_MASK (d))) | ||
| 60 | #define __FD_CLR(d, set) \ | ||
| 61 | ((void) (__FDS_BITS (set)[__FD_ELT (d)] &= ~__FD_MASK (d))) | ||
| 62 | #define __FD_ISSET(d, set) \ | ||
| 63 | ((__FDS_BITS (set)[__FD_ELT (d)] & __FD_MASK (d)) != 0) | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnu/bits/sem-pad.h deleted-24| ... | @@ -1,24 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. x86 version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SEM_PAD_AFTER_TIME 1 | ||
| 24 | #define __SEM_PAD_BEFORE_TIME 0 | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnu/bits/semaphore.h deleted-40| ... | @@ -1,40 +0,0 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SEMAPHORE_H | ||
| 20 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/wordsize.h> | ||
| 24 | |||
| 25 | #if __WORDSIZE == 64 | ||
| 26 | # define __SIZEOF_SEM_T	32 | ||
| 27 | #else | ||
| 28 | # define __SIZEOF_SEM_T	16 | ||
| 29 | #endif | ||
| 30 | |||
| 31 | |||
| 32 | /* Value returned if `sem_open' failed. */ | ||
| 33 | #define SEM_FAILED ((sem_t *) 0) | ||
| 34 | |||
| 35 | |||
| 36 | typedef union | ||
| 37 | { | ||
| 38 | char __size[__SIZEOF_SEM_T]; | ||
| 39 | long int __align; | ||
| 40 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnu/bits/sysctl.h deleted-20| ... | @@ -1,20 +0,0 @@ | ||
| 1 | /* Copyright (C) 2012-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #if defined __x86_64__ && defined __ILP32__ | ||
| 19 | # error "sysctl system call is unsupported in x32 kernel" | ||
| 20 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnu/bits/types/struct_semid_ds.h created+34| ... | @@ -0,0 +1,34 @@ | ||
| 1 | /* x86 implementation of the semaphore struct semid_ds. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm; /* operation permission struct */ | ||
| 27 | __time_t sem_otime; /* last semop() time */ | ||
| 28 | __syscall_ulong_t __sem_otime_high; | ||
| 29 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 30 | __syscall_ulong_t __sem_ctime_high; | ||
| 31 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | ||
| 32 | __syscall_ulong_t __glibc_reserved3; | ||
| 33 | __syscall_ulong_t __glibc_reserved4; | ||
| 34 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnu/bits/typesizes.h+6| ... | @@ -64,6 +64,7 @@ | ... | @@ -64,6 +64,7 @@ |
| 64 | #define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE | 64 | #define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE |
| 65 | #define __USECONDS_T_TYPE	__U32_TYPE | 65 | #define __USECONDS_T_TYPE	__U32_TYPE |
| 66 | #define __SUSECONDS_T_TYPE	__SYSCALL_SLONG_TYPE | 66 | #define __SUSECONDS_T_TYPE	__SYSCALL_SLONG_TYPE |
| 67 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE | ||
| 67 | #define __DADDR_T_TYPE		__S32_TYPE | 68 | #define __DADDR_T_TYPE		__S32_TYPE |
| 68 | #define __KEY_T_TYPE		__S32_TYPE | 69 | #define __KEY_T_TYPE		__S32_TYPE |
| 69 | #define __CLOCKID_T_TYPE	__S32_TYPE | 70 | #define __CLOCKID_T_TYPE	__S32_TYPE |
| ... | @@ -87,10 +88,15 @@ | ... | @@ -87,10 +88,15 @@ |
| 87 | 88 | ||
| 88 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | 89 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ |
| 89 | # define __STATFS_MATCHES_STATFS64 1 | 90 | # define __STATFS_MATCHES_STATFS64 1 |
| 91 | |||
| 92 | /* And for getitimer, setitimer and rusage */ | ||
| 93 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 | ||
| 90 | #else | 94 | #else |
| 91 | # define __RLIM_T_MATCHES_RLIM64_T	0 | 95 | # define __RLIM_T_MATCHES_RLIM64_T	0 |
| 92 | 96 | ||
| 93 | # define __STATFS_MATCHES_STATFS64 0 | 97 | # define __STATFS_MATCHES_STATFS64 0 |
| 98 | |||
| 99 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 94 | #endif | 100 | #endif |
| 95 | 101 | ||
| 96 | /* Number of descriptors that can fit in an `fd_set'. */ | 102 | /* Number of descriptors that can fit in an `fd_set'. */ |
lib/libc/include/x86_64-linux-gnu/gnu/lib-names-64.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/x86_64-linux-gnu/gnu/stubs-64.h-2| ... | @@ -11,9 +11,7 @@ | ... | @@ -11,9 +11,7 @@ |
| 11 | #define __stub_chflags | 11 | #define __stub_chflags |
| 12 | #define __stub_fchflags | 12 | #define __stub_fchflags |
| 13 | #define __stub_gtty | 13 | #define __stub_gtty |
| 14 | #define __stub_lchmod | ||
| 15 | #define __stub_revoke | 14 | #define __stub_revoke |
| 16 | #define __stub_setlogin | 15 | #define __stub_setlogin |
| 17 | #define __stub_sigreturn | 16 | #define __stub_sigreturn |
| 18 | #define __stub_sstk | ||
| 19 | #define __stub_stty | 17 | #define __stub_stty |
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnux32/bits/fenv.h-54| ... | @@ -113,58 +113,4 @@ femode_t; | ... | @@ -113,58 +113,4 @@ femode_t; |
| 113 | 113 | ||
| 114 | /* Default floating-point control modes. */ | 114 | /* Default floating-point control modes. */ |
| 115 | # define FE_DFL_MODE	((const femode_t *) -1L) | 115 | # define FE_DFL_MODE	((const femode_t *) -1L) |
| 116 | #endif | ||
| 117 | |||
| 118 | |||
| 119 | #ifdef __USE_EXTERN_INLINES | ||
| 120 | __BEGIN_DECLS | ||
| 121 | |||
| 122 | /* Optimized versions. */ | ||
| 123 | #ifndef _LIBC | ||
| 124 | extern int __REDIRECT_NTH (__feraiseexcept_renamed, (int), feraiseexcept); | ||
| 125 | #endif | ||
| 126 | __extern_always_inline void | ||
| 127 | __NTH (__feraiseexcept_invalid_divbyzero (int __excepts)) | ||
| 128 | { | ||
| 129 | if ((FE_INVALID & __excepts) != 0) | ||
| 130 | { | ||
| 131 | /* One example of an invalid operation is 0.0 / 0.0. */ | ||
| 132 | float __f = 0.0; | ||
| 133 | |||
| 134 | # ifdef __SSE_MATH__ | ||
| 135 | __asm__ __volatile__ ("divss %0, %0 " : : "x" (__f)); | ||
| 136 | # else | ||
| 137 | __asm__ __volatile__ ("fdiv %%st, %%st(0); fwait" | ||
| 138 | 			 : "=t" (__f) : "0" (__f)); | ||
| 139 | # endif | ||
| 140 | (void) &__f; | ||
| 141 | } | ||
| 142 | if ((FE_DIVBYZERO & __excepts) != 0) | ||
| 143 | { | ||
| 144 | float __f = 1.0; | ||
| 145 | float __g = 0.0; | ||
| 146 | |||
| 147 | # ifdef __SSE_MATH__ | ||
| 148 | __asm__ __volatile__ ("divss %1, %0" : : "x" (__f), "x" (__g)); | ||
| 149 | # else | ||
| 150 | __asm__ __volatile__ ("fdivp %%st, %%st(1); fwait" | ||
| 151 | 			 : "=t" (__f) : "0" (__f), "u" (__g) : "st(1)"); | ||
| 152 | # endif | ||
| 153 | (void) &__f; | ||
| 154 | } | ||
| 155 | } | ||
| 156 | __extern_inline int | ||
| 157 | __NTH (feraiseexcept (int __excepts)) | ||
| 158 | { | ||
| 159 | if (__builtin_constant_p (__excepts) | ||
| 160 | && (__excepts & ~(FE_INVALID | FE_DIVBYZERO)) == 0) | ||
| 161 | { | ||
| 162 | __feraiseexcept_invalid_divbyzero (__excepts); | ||
| 163 | return 0; | ||
| 164 | } | ||
| 165 | |||
| 166 | return __feraiseexcept_renamed (__excepts); | ||
| 167 | } | ||
| 168 | |||
| 169 | __END_DECLS | ||
| 170 | #endif | 116 | #endif |
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnux32/bits/long-double.h+1-1| ... | @@ -18,4 +18,4 @@ | ... | @@ -18,4 +18,4 @@ |
| 18 | 18 | ||
| 19 | /* long double is distinct from double, so there is nothing to | 19 | /* long double is distinct from double, so there is nothing to |
| 20 | define here. */ | 20 | define here. */ |
| 21 | #define __LONG_DOUBLE_USES_FLOAT128 0 | ||
| \ No newline at end of file | |||
| 21 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnux32/bits/select.h deleted-63| ... | @@ -1,63 +0,0 @@ | ||
| 1 | /* Copyright (C) 1997-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SYS_SELECT_H | ||
| 19 | # error "Never use <bits/select.h> directly; include <sys/select.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #include <bits/wordsize.h> | ||
| 23 | |||
| 24 | |||
| 25 | #if defined __GNUC__ && __GNUC__ >= 2 | ||
| 26 | |||
| 27 | # if __WORDSIZE == 64 | ||
| 28 | # define __FD_ZERO_STOS "stosq" | ||
| 29 | # else | ||
| 30 | # define __FD_ZERO_STOS "stosl" | ||
| 31 | # endif | ||
| 32 | |||
| 33 | # define __FD_ZERO(fdsp) \ | ||
| 34 | do {									 \ | ||
| 35 | int __d0, __d1;							 \ | ||
| 36 | __asm__ __volatile__ ("cld; rep; " __FD_ZERO_STOS			 \ | ||
| 37 | 			 : "=c" (__d0), "=D" (__d1)			 \ | ||
| 38 | 			 : "a" (0), "0" (sizeof (fd_set)		 \ | ||
| 39 | 					 / sizeof (__fd_mask)),	 \ | ||
| 40 | 			 "1" (&__FDS_BITS (fdsp)[0])			 \ | ||
| 41 | 			 : "memory");					 \ | ||
| 42 | } while (0) | ||
| 43 | |||
| 44 | #else	/* ! GNU CC */ | ||
| 45 | |||
| 46 | /* We don't use `memset' because this would require a prototype and | ||
| 47 | the array isn't too big. */ | ||
| 48 | # define __FD_ZERO(set) \ | ||
| 49 | do {									 \ | ||
| 50 | unsigned int __i;							 \ | ||
| 51 | fd_set *__arr = (set);						 \ | ||
| 52 | for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)	 \ | ||
| 53 | __FDS_BITS (__arr)[__i] = 0;					 \ | ||
| 54 | } while (0) | ||
| 55 | |||
| 56 | #endif	/* GNU CC */ | ||
| 57 | |||
| 58 | #define __FD_SET(d, set) \ | ||
| 59 | ((void) (__FDS_BITS (set)[__FD_ELT (d)] |= __FD_MASK (d))) | ||
| 60 | #define __FD_CLR(d, set) \ | ||
| 61 | ((void) (__FDS_BITS (set)[__FD_ELT (d)] &= ~__FD_MASK (d))) | ||
| 62 | #define __FD_ISSET(d, set) \ | ||
| 63 | ((__FDS_BITS (set)[__FD_ELT (d)] & __FD_MASK (d)) != 0) | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnux32/bits/sem-pad.h deleted-24| ... | @@ -1,24 +0,0 @@ | ||
| 1 | /* Define where padding goes in struct semid_ds. x86 version. | ||
| 2 | Copyright (C) 2018-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __SEM_PAD_AFTER_TIME 1 | ||
| 24 | #define __SEM_PAD_BEFORE_TIME 0 | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnux32/bits/semaphore.h deleted-40| ... | @@ -1,40 +0,0 @@ | ||
| 1 | /* Copyright (C) 2002-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SEMAPHORE_H | ||
| 20 | # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #include <bits/wordsize.h> | ||
| 24 | |||
| 25 | #if __WORDSIZE == 64 | ||
| 26 | # define __SIZEOF_SEM_T	32 | ||
| 27 | #else | ||
| 28 | # define __SIZEOF_SEM_T	16 | ||
| 29 | #endif | ||
| 30 | |||
| 31 | |||
| 32 | /* Value returned if `sem_open' failed. */ | ||
| 33 | #define SEM_FAILED ((sem_t *) 0) | ||
| 34 | |||
| 35 | |||
| 36 | typedef union | ||
| 37 | { | ||
| 38 | char __size[__SIZEOF_SEM_T]; | ||
| 39 | long int __align; | ||
| 40 | } sem_t; | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnux32/bits/sysctl.h deleted-20| ... | @@ -1,20 +0,0 @@ | ||
| 1 | /* Copyright (C) 2012-2020 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #if defined __x86_64__ && defined __ILP32__ | ||
| 19 | # error "sysctl system call is unsupported in x32 kernel" | ||
| 20 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnux32/bits/types/struct_semid_ds.h created+34| ... | @@ -0,0 +1,34 @@ | ||
| 1 | /* x86 implementation of the semaphore struct semid_ds. | ||
| 2 | Copyright (C) 1995-2020 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | struct ipc_perm sem_perm; /* operation permission struct */ | ||
| 27 | __time_t sem_otime; /* last semop() time */ | ||
| 28 | __syscall_ulong_t __sem_otime_high; | ||
| 29 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 30 | __syscall_ulong_t __sem_ctime_high; | ||
| 31 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | ||
| 32 | __syscall_ulong_t __glibc_reserved3; | ||
| 33 | __syscall_ulong_t __glibc_reserved4; | ||
| 34 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/x86_64-linux-gnux32/bits/typesizes.h+6| ... | @@ -64,6 +64,7 @@ | ... | @@ -64,6 +64,7 @@ |
| 64 | #define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE | 64 | #define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE |
| 65 | #define __USECONDS_T_TYPE	__U32_TYPE | 65 | #define __USECONDS_T_TYPE	__U32_TYPE |
| 66 | #define __SUSECONDS_T_TYPE	__SYSCALL_SLONG_TYPE | 66 | #define __SUSECONDS_T_TYPE	__SYSCALL_SLONG_TYPE |
| 67 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE | ||
| 67 | #define __DADDR_T_TYPE		__S32_TYPE | 68 | #define __DADDR_T_TYPE		__S32_TYPE |
| 68 | #define __KEY_T_TYPE		__S32_TYPE | 69 | #define __KEY_T_TYPE		__S32_TYPE |
| 69 | #define __CLOCKID_T_TYPE	__S32_TYPE | 70 | #define __CLOCKID_T_TYPE	__S32_TYPE |
| ... | @@ -87,10 +88,15 @@ | ... | @@ -87,10 +88,15 @@ |
| 87 | 88 | ||
| 88 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | 89 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ |
| 89 | # define __STATFS_MATCHES_STATFS64 1 | 90 | # define __STATFS_MATCHES_STATFS64 1 |
| 91 | |||
| 92 | /* And for getitimer, setitimer and rusage */ | ||
| 93 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 | ||
| 90 | #else | 94 | #else |
| 91 | # define __RLIM_T_MATCHES_RLIM64_T	0 | 95 | # define __RLIM_T_MATCHES_RLIM64_T	0 |
| 92 | 96 | ||
| 93 | # define __STATFS_MATCHES_STATFS64 0 | 97 | # define __STATFS_MATCHES_STATFS64 0 |
| 98 | |||
| 99 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 94 | #endif | 100 | #endif |
| 95 | 101 | ||
| 96 | /* Number of descriptors that can fit in an `fd_set'. */ | 102 | /* Number of descriptors that can fit in an `fd_set'. */ |
lib/libc/include/x86_64-linux-gnux32/gnu/lib-names-x32.h-2| ... | @@ -20,8 +20,6 @@ | ... | @@ -20,8 +20,6 @@ |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" |
| 23 | #define LIBNSS_NISPLUS_SO "libnss_nisplus.so.2" | ||
| 24 | #define LIBNSS_NIS_SO "libnss_nis.so.2" | ||
| 25 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" |
| 26 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" |
| 27 | #define LIBPTHREAD_SO "libpthread.so.0" | 25 | #define LIBPTHREAD_SO "libpthread.so.0" |
lib/libc/include/x86_64-linux-gnux32/gnu/stubs-x32.h-2| ... | @@ -16,9 +16,7 @@ | ... | @@ -16,9 +16,7 @@ |
| 16 | #define __stub_chflags | 16 | #define __stub_chflags |
| 17 | #define __stub_fchflags | 17 | #define __stub_fchflags |
| 18 | #define __stub_gtty | 18 | #define __stub_gtty |
| 19 | #define __stub_lchmod | ||
| 20 | #define __stub_revoke | 19 | #define __stub_revoke |
| 21 | #define __stub_setlogin | 20 | #define __stub_setlogin |
| 22 | #define __stub_sigreturn | 21 | #define __stub_sigreturn |
| 23 | #define __stub_sstk | ||
| 24 | #define __stub_stty | 22 | #define __stub_stty |
| \ No newline at end of file | |||
lib/std/child_process.zig+2-2| ... | @@ -396,12 +396,12 @@ pub const ChildProcess = struct { | ... | @@ -396,12 +396,12 @@ pub const ChildProcess = struct { |
| 396 | // and execve from the child process to the parent process. | 396 | // and execve from the child process to the parent process. |
| 397 | const err_pipe = blk: { | 397 | const err_pipe = blk: { |
| 398 | if (builtin.os.tag == .linux) { | 398 | if (builtin.os.tag == .linux) { |
| 399 | const fd = try os.eventfd(0, 0); | 399 | const fd = try os.eventfd(0, os.EFD_CLOEXEC); |
| 400 | // There's no distinction between the readable and the writeable | 400 | // There's no distinction between the readable and the writeable |
| 401 | // end with eventfd | 401 | // end with eventfd |
| 402 | break :blk [2]os.fd_t{ fd, fd }; | 402 | break :blk [2]os.fd_t{ fd, fd }; |
| 403 | } else { | 403 | } else { |
| 404 | break :blk try os.pipe(); | 404 | break :blk try os.pipe2(os.O_CLOEXEC); |
| 405 | } | 405 | } |
| 406 | }; | 406 | }; |
| 407 | errdefer destroyPipe(err_pipe); | 407 | errdefer destroyPipe(err_pipe); |
lib/std/crypto/benchmark.zig+59-13| ... | @@ -7,6 +7,7 @@ | ... | @@ -7,6 +7,7 @@ |
| 7 | 7 | ||
| 8 | const builtin = @import("builtin"); | 8 | const builtin = @import("builtin"); |
| 9 | const std = @import("std"); | 9 | const std = @import("std"); |
| 10 | const mem = std.mem; | ||
| 10 | const time = std.time; | 11 | const time = std.time; |
| 11 | const Timer = time.Timer; | 12 | const Timer = time.Timer; |
| 12 | const crypto = std.crypto; | 13 | const crypto = std.crypto; |
| ... | @@ -46,6 +47,7 @@ pub fn benchmarkHash(comptime Hash: anytype, comptime bytes: comptime_int) !u64 | ... | @@ -46,6 +47,7 @@ pub fn benchmarkHash(comptime Hash: anytype, comptime bytes: comptime_int) !u64 |
| 46 | while (offset < bytes) : (offset += block.len) { | 47 | while (offset < bytes) : (offset += block.len) { |
| 47 | h.update(block[0..]); | 48 | h.update(block[0..]); |
| 48 | } | 49 | } |
| 50 | mem.doNotOptimizeAway(&h); | ||
| 49 | const end = timer.read(); | 51 | const end = timer.read(); |
| 50 | 52 | ||
| 51 | const elapsed_s = @intToFloat(f64, end - start) / time.ns_per_s; | 53 | const elapsed_s = @intToFloat(f64, end - start) / time.ns_per_s; |
| ... | @@ -67,19 +69,20 @@ const macs = [_]Crypto{ | ... | @@ -67,19 +69,20 @@ const macs = [_]Crypto{ |
| 67 | }; | 69 | }; |
| 68 | 70 | ||
| 69 | pub fn benchmarkMac(comptime Mac: anytype, comptime bytes: comptime_int) !u64 { | 71 | pub fn benchmarkMac(comptime Mac: anytype, comptime bytes: comptime_int) !u64 { |
| 70 | std.debug.assert(64 >= Mac.mac_length and 32 >= Mac.minimum_key_length); | 72 | var in: [512 * KiB]u8 = undefined; |
| 71 | |||
| 72 | var in: [1 * MiB]u8 = undefined; | ||
| 73 | prng.random.bytes(in[0..]); | 73 | prng.random.bytes(in[0..]); |
| 74 | 74 | ||
| 75 | var key: [64]u8 = undefined; | 75 | const key_length = if (Mac.minimum_key_length == 0) 32 else Mac.minimum_key_length; |
| 76 | var key: [key_length]u8 = undefined; | ||
| 76 | prng.random.bytes(key[0..]); | 77 | prng.random.bytes(key[0..]); |
| 77 | 78 | ||
| 79 | var mac: [Mac.mac_length]u8 = undefined; | ||
| 78 | var offset: usize = 0; | 80 | var offset: usize = 0; |
| 79 | var timer = try Timer.start(); | 81 | var timer = try Timer.start(); |
| 80 | const start = timer.lap(); | 82 | const start = timer.lap(); |
| 81 | while (offset < bytes) : (offset += in.len) { | 83 | while (offset < bytes) : (offset += in.len) { |
| 82 | Mac.create(key[0..], in[0..], key[0..]); | 84 | Mac.create(mac[0..], in[0..], key[0..]); |
| 85 | mem.doNotOptimizeAway(&mac); | ||
| 83 | } | 86 | } |
| 84 | const end = timer.read(); | 87 | const end = timer.read(); |
| 85 | 88 | ||
| ... | @@ -106,6 +109,7 @@ pub fn benchmarkKeyExchange(comptime DhKeyExchange: anytype, comptime exchange_c | ... | @@ -106,6 +109,7 @@ pub fn benchmarkKeyExchange(comptime DhKeyExchange: anytype, comptime exchange_c |
| 106 | var i: usize = 0; | 109 | var i: usize = 0; |
| 107 | while (i < exchange_count) : (i += 1) { | 110 | while (i < exchange_count) : (i += 1) { |
| 108 | _ = DhKeyExchange.create(out[0..], out[0..], in[0..]); | 111 | _ = DhKeyExchange.create(out[0..], out[0..], in[0..]); |
| 112 | mem.doNotOptimizeAway(&out); | ||
| 109 | } | 113 | } |
| 110 | } | 114 | } |
| 111 | const end = timer.read(); | 115 | const end = timer.read(); |
| ... | @@ -118,7 +122,7 @@ pub fn benchmarkKeyExchange(comptime DhKeyExchange: anytype, comptime exchange_c | ... | @@ -118,7 +122,7 @@ pub fn benchmarkKeyExchange(comptime DhKeyExchange: anytype, comptime exchange_c |
| 118 | 122 | ||
| 119 | const signatures = [_]Crypto{Crypto{ .ty = crypto.sign.Ed25519, .name = "ed25519" }}; | 123 | const signatures = [_]Crypto{Crypto{ .ty = crypto.sign.Ed25519, .name = "ed25519" }}; |
| 120 | 124 | ||
| 121 | pub fn benchmarkSignatures(comptime Signature: anytype, comptime signatures_count: comptime_int) !u64 { | 125 | pub fn benchmarkSignature(comptime Signature: anytype, comptime signatures_count: comptime_int) !u64 { |
| 122 | var seed: [Signature.seed_length]u8 = undefined; | 126 | var seed: [Signature.seed_length]u8 = undefined; |
| 123 | prng.random.bytes(seed[0..]); | 127 | prng.random.bytes(seed[0..]); |
| 124 | const msg = [_]u8{0} ** 64; | 128 | const msg = [_]u8{0} ** 64; |
| ... | @@ -129,7 +133,8 @@ pub fn benchmarkSignatures(comptime Signature: anytype, comptime signatures_coun | ... | @@ -129,7 +133,8 @@ pub fn benchmarkSignatures(comptime Signature: anytype, comptime signatures_coun |
| 129 | { | 133 | { |
| 130 | var i: usize = 0; | 134 | var i: usize = 0; |
| 131 | while (i < signatures_count) : (i += 1) { | 135 | while (i < signatures_count) : (i += 1) { |
| 132 | _ = try Signature.sign(&msg, key_pair, null); | 136 | const s = try Signature.sign(&msg, key_pair, null); |
| 137 | mem.doNotOptimizeAway(&s); | ||
| 133 | } | 138 | } |
| 134 | } | 139 | } |
| 135 | const end = timer.read(); | 140 | const end = timer.read(); |
| ... | @@ -140,6 +145,40 @@ pub fn benchmarkSignatures(comptime Signature: anytype, comptime signatures_coun | ... | @@ -140,6 +145,40 @@ pub fn benchmarkSignatures(comptime Signature: anytype, comptime signatures_coun |
| 140 | return throughput; | 145 | return throughput; |
| 141 | } | 146 | } |
| 142 | 147 | ||
| 148 | const aeads = [_]Crypto{ | ||
| 149 | Crypto{ .ty = crypto.aead.ChaCha20Poly1305, .name = "chacha20Poly1305" }, | ||
| 150 | Crypto{ .ty = crypto.aead.XChaCha20Poly1305, .name = "xchacha20Poly1305" }, | ||
| 151 | Crypto{ .ty = crypto.aead.Gimli, .name = "gimli-aead" }, | ||
| 152 | }; | ||
| 153 | |||
| 154 | pub fn benchmarkAead(comptime Aead: anytype, comptime bytes: comptime_int) !u64 { | ||
| 155 | var in: [512 * KiB]u8 = undefined; | ||
| 156 | prng.random.bytes(in[0..]); | ||
| 157 | |||
| 158 | var tag: [Aead.tag_length]u8 = undefined; | ||
| 159 | |||
| 160 | var key: [Aead.key_length]u8 = undefined; | ||
| 161 | prng.random.bytes(key[0..]); | ||
| 162 | |||
| 163 | var nonce: [Aead.nonce_length]u8 = undefined; | ||
| 164 | prng.random.bytes(nonce[0..]); | ||
| 165 | |||
| 166 | var offset: usize = 0; | ||
| 167 | var timer = try Timer.start(); | ||
| 168 | const start = timer.lap(); | ||
| 169 | while (offset < bytes) : (offset += in.len) { | ||
| 170 | Aead.encrypt(in[0..], tag[0..], in[0..], &[_]u8{}, nonce, key); | ||
| 171 | Aead.decrypt(in[0..], in[0..], tag, &[_]u8{}, nonce, key) catch unreachable; | ||
| 172 | } | ||
| 173 | mem.doNotOptimizeAway(&in); | ||
| 174 | const end = timer.read(); | ||
| 175 | |||
| 176 | const elapsed_s = @intToFloat(f64, end - start) / time.ns_per_s; | ||
| 177 | const throughput = @floatToInt(u64, 2 * bytes / elapsed_s); | ||
| 178 | |||
| 179 | return throughput; | ||
| 180 | } | ||
| 181 | |||
| 143 | fn usage() void { | 182 | fn usage() void { |
| 144 | std.debug.warn( | 183 | std.debug.warn( |
| 145 | \\throughput_test [options] | 184 | \\throughput_test [options] |
| ... | @@ -198,29 +237,36 @@ pub fn main() !void { | ... | @@ -198,29 +237,36 @@ pub fn main() !void { |
| 198 | 237 | ||
| 199 | inline for (hashes) |H| { | 238 | inline for (hashes) |H| { |
| 200 | if (filter == null or std.mem.indexOf(u8, H.name, filter.?) != null) { | 239 | if (filter == null or std.mem.indexOf(u8, H.name, filter.?) != null) { |
| 201 | const throughput = try benchmarkHash(H.ty, mode(32 * MiB)); | 240 | const throughput = try benchmarkHash(H.ty, mode(128 * MiB)); |
| 202 | try stdout.print("{:>11}: {:5} MiB/s\n", .{ H.name, throughput / (1 * MiB) }); | 241 | try stdout.print("{:>17}: {:7} MiB/s\n", .{ H.name, throughput / (1 * MiB) }); |
| 203 | } | 242 | } |
| 204 | } | 243 | } |
| 205 | 244 | ||
| 206 | inline for (macs) |M| { | 245 | inline for (macs) |M| { |
| 207 | if (filter == null or std.mem.indexOf(u8, M.name, filter.?) != null) { | 246 | if (filter == null or std.mem.indexOf(u8, M.name, filter.?) != null) { |
| 208 | const throughput = try benchmarkMac(M.ty, mode(128 * MiB)); | 247 | const throughput = try benchmarkMac(M.ty, mode(128 * MiB)); |
| 209 | try stdout.print("{:>11}: {:5} MiB/s\n", .{ M.name, throughput / (1 * MiB) }); | 248 | try stdout.print("{:>17}: {:7} MiB/s\n", .{ M.name, throughput / (1 * MiB) }); |
| 210 | } | 249 | } |
| 211 | } | 250 | } |
| 212 | 251 | ||
| 213 | inline for (exchanges) |E| { | 252 | inline for (exchanges) |E| { |
| 214 | if (filter == null or std.mem.indexOf(u8, E.name, filter.?) != null) { | 253 | if (filter == null or std.mem.indexOf(u8, E.name, filter.?) != null) { |
| 215 | const throughput = try benchmarkKeyExchange(E.ty, mode(1000)); | 254 | const throughput = try benchmarkKeyExchange(E.ty, mode(1000)); |
| 216 | try stdout.print("{:>11}: {:5} exchanges/s\n", .{ E.name, throughput }); | 255 | try stdout.print("{:>17}: {:7} exchanges/s\n", .{ E.name, throughput }); |
| 217 | } | 256 | } |
| 218 | } | 257 | } |
| 219 | 258 | ||
| 220 | inline for (signatures) |E| { | 259 | inline for (signatures) |E| { |
| 221 | if (filter == null or std.mem.indexOf(u8, E.name, filter.?) != null) { | 260 | if (filter == null or std.mem.indexOf(u8, E.name, filter.?) != null) { |
| 222 | const throughput = try benchmarkSignatures(E.ty, mode(1000)); | 261 | const throughput = try benchmarkSignature(E.ty, mode(1000)); |
| 223 | try stdout.print("{:>11}: {:5} signatures/s\n", .{ E.name, throughput }); | 262 | try stdout.print("{:>17}: {:7} signatures/s\n", .{ E.name, throughput }); |
| 263 | } | ||
| 264 | } | ||
| 265 | |||
| 266 | inline for (aeads) |E| { | ||
| 267 | if (filter == null or std.mem.indexOf(u8, E.name, filter.?) != null) { | ||
| 268 | const throughput = try benchmarkAead(E.ty, mode(128 * MiB)); | ||
| 269 | try stdout.print("{:>17}: {:7} MiB/s\n", .{ E.name, throughput / (1 * MiB) }); | ||
| 224 | } | 270 | } |
| 225 | } | 271 | } |
| 226 | } | 272 | } |
lib/std/crypto/chacha20.zig+13-13| ... | @@ -47,7 +47,7 @@ fn initContext(key: [8]u32, d: [4]u32) [16]u32 { | ... | @@ -47,7 +47,7 @@ fn initContext(key: [8]u32, d: [4]u32) [16]u32 { |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | // The chacha family of ciphers are based on the salsa family. | 49 | // The chacha family of ciphers are based on the salsa family. |
| 50 | fn chacha20Core(x: []u32, input: [16]u32) void { | 50 | inline fn chacha20Core(x: []u32, input: [16]u32) void { |
| 51 | for (x) |_, i| | 51 | for (x) |_, i| |
| 52 | x[i] = input[i]; | 52 | x[i] = input[i]; |
| 53 | 53 | ||
| ... | @@ -744,26 +744,26 @@ pub const Chacha20Poly1305 = struct { | ... | @@ -744,26 +744,26 @@ pub const Chacha20Poly1305 = struct { |
| 744 | pub const key_length = 32; | 744 | pub const key_length = 32; |
| 745 | 745 | ||
| 746 | /// c: ciphertext: output buffer should be of size m.len | 746 | /// c: ciphertext: output buffer should be of size m.len |
| 747 | /// at: authentication tag: output MAC | 747 | /// tag: authentication tag: output MAC |
| 748 | /// m: message | 748 | /// m: message |
| 749 | /// ad: Associated Data | 749 | /// ad: Associated Data |
| 750 | /// npub: public nonce | 750 | /// npub: public nonce |
| 751 | /// k: private key | 751 | /// k: private key |
| 752 | pub fn encrypt(c: []u8, at: *[tag_length]u8, m: []const u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) void { | 752 | pub fn encrypt(c: []u8, tag: *[tag_length]u8, m: []const u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) void { |
| 753 | assert(c.len == m.len); | 753 | assert(c.len == m.len); |
| 754 | return chacha20poly1305SealDetached(c, at, m, ad, k, npub); | 754 | return chacha20poly1305SealDetached(c, tag, m, ad, k, npub); |
| 755 | } | 755 | } |
| 756 | 756 | ||
| 757 | /// m: message: output buffer should be of size c.len | 757 | /// m: message: output buffer should be of size c.len |
| 758 | /// c: ciphertext | 758 | /// c: ciphertext |
| 759 | /// at: authentication tag | 759 | /// tag: authentication tag |
| 760 | /// ad: Associated Data | 760 | /// ad: Associated Data |
| 761 | /// npub: public nonce | 761 | /// npub: public nonce |
| 762 | /// k: private key | 762 | /// k: private key |
| 763 | /// NOTE: the check of the authentication tag is currently not done in constant time | 763 | /// NOTE: the check of the authentication tag is currently not done in constant time |
| 764 | pub fn decrypt(m: []u8, c: []const u8, at: [tag_length]u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) !void { | 764 | pub fn decrypt(m: []u8, c: []const u8, tag: [tag_length]u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) !void { |
| 765 | assert(c.len == m.len); | 765 | assert(c.len == m.len); |
| 766 | return try chacha20poly1305OpenDetached(m, c, at[0..], ad, k, npub); | 766 | return try chacha20poly1305OpenDetached(m, c, tag[0..], ad, k, npub); |
| 767 | } | 767 | } |
| 768 | }; | 768 | }; |
| 769 | 769 | ||
| ... | @@ -773,26 +773,26 @@ pub const XChacha20Poly1305 = struct { | ... | @@ -773,26 +773,26 @@ pub const XChacha20Poly1305 = struct { |
| 773 | pub const key_length = 32; | 773 | pub const key_length = 32; |
| 774 | 774 | ||
| 775 | /// c: ciphertext: output buffer should be of size m.len | 775 | /// c: ciphertext: output buffer should be of size m.len |
| 776 | /// at: authentication tag: output MAC | 776 | /// tag: authentication tag: output MAC |
| 777 | /// m: message | 777 | /// m: message |
| 778 | /// ad: Associated Data | 778 | /// ad: Associated Data |
| 779 | /// npub: public nonce | 779 | /// npub: public nonce |
| 780 | /// k: private key | 780 | /// k: private key |
| 781 | pub fn encrypt(c: []u8, at: *[tag_length]u8, m: []const u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) void { | 781 | pub fn encrypt(c: []u8, tag: *[tag_length]u8, m: []const u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) void { |
| 782 | assert(c.len == m.len); | 782 | assert(c.len == m.len); |
| 783 | return xchacha20poly1305SealDetached(c, at, m, ad, k, npub); | 783 | return xchacha20poly1305SealDetached(c, tag, m, ad, k, npub); |
| 784 | } | 784 | } |
| 785 | 785 | ||
| 786 | /// m: message: output buffer should be of size c.len | 786 | /// m: message: output buffer should be of size c.len |
| 787 | /// c: ciphertext | 787 | /// c: ciphertext |
| 788 | /// at: authentication tag | 788 | /// tag: authentication tag |
| 789 | /// ad: Associated Data | 789 | /// ad: Associated Data |
| 790 | /// npub: public nonce | 790 | /// npub: public nonce |
| 791 | /// k: private key | 791 | /// k: private key |
| 792 | /// NOTE: the check of the authentication tag is currently not done in constant time | 792 | /// NOTE: the check of the authentication tag is currently not done in constant time |
| 793 | pub fn decrypt(m: []u8, c: []const u8, at: [tag_length]u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) !void { | 793 | pub fn decrypt(m: []u8, c: []const u8, tag: [tag_length]u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) !void { |
| 794 | assert(c.len == m.len); | 794 | assert(c.len == m.len); |
| 795 | return try xchacha20poly1305OpenDetached(m, c, at[0..], ad, k, npub); | 795 | return try xchacha20poly1305OpenDetached(m, c, tag[0..], ad, k, npub); |
| 796 | } | 796 | } |
| 797 | }; | 797 | }; |
| 798 | 798 |
lib/std/crypto/gimli.zig+31-27| ... | @@ -180,10 +180,14 @@ test "hash" { | ... | @@ -180,10 +180,14 @@ test "hash" { |
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | pub const Aead = struct { | 182 | pub const Aead = struct { |
| 183 | pub const tag_length = State.RATE; | ||
| 184 | pub const nonce_length = 16; | ||
| 185 | pub const key_length = 32; | ||
| 186 | |||
| 183 | /// ad: Associated Data | 187 | /// ad: Associated Data |
| 184 | /// npub: public nonce | 188 | /// npub: public nonce |
| 185 | /// k: private key | 189 | /// k: private key |
| 186 | fn init(ad: []const u8, npub: [16]u8, k: [32]u8) State { | 190 | fn init(ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) State { |
| 187 | var state = State{ | 191 | var state = State{ |
| 188 | .data = undefined, | 192 | .data = undefined, |
| 189 | }; | 193 | }; |
| ... | @@ -224,12 +228,12 @@ pub const Aead = struct { | ... | @@ -224,12 +228,12 @@ pub const Aead = struct { |
| 224 | } | 228 | } |
| 225 | 229 | ||
| 226 | /// c: ciphertext: output buffer should be of size m.len | 230 | /// c: ciphertext: output buffer should be of size m.len |
| 227 | /// at: authentication tag: output MAC | 231 | /// tag: authentication tag: output MAC |
| 228 | /// m: message | 232 | /// m: message |
| 229 | /// ad: Associated Data | 233 | /// ad: Associated Data |
| 230 | /// npub: public nonce | 234 | /// npub: public nonce |
| 231 | /// k: private key | 235 | /// k: private key |
| 232 | pub fn encrypt(c: []u8, at: *[State.RATE]u8, m: []const u8, ad: []const u8, npub: [16]u8, k: [32]u8) void { | 236 | pub fn encrypt(c: []u8, tag: *[tag_length]u8, m: []const u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) void { |
| 233 | assert(c.len == m.len); | 237 | assert(c.len == m.len); |
| 234 | 238 | ||
| 235 | var state = Aead.init(ad, npub, k); | 239 | var state = Aead.init(ad, npub, k); |
| ... | @@ -265,17 +269,17 @@ pub const Aead = struct { | ... | @@ -265,17 +269,17 @@ pub const Aead = struct { |
| 265 | 269 | ||
| 266 | // After the final non-full block of plaintext, the first 16 bytes | 270 | // After the final non-full block of plaintext, the first 16 bytes |
| 267 | // of the state are output as an authentication tag. | 271 | // of the state are output as an authentication tag. |
| 268 | std.mem.copy(u8, at, buf[0..State.RATE]); | 272 | std.mem.copy(u8, tag, buf[0..State.RATE]); |
| 269 | } | 273 | } |
| 270 | 274 | ||
| 271 | /// m: message: output buffer should be of size c.len | 275 | /// m: message: output buffer should be of size c.len |
| 272 | /// c: ciphertext | 276 | /// c: ciphertext |
| 273 | /// at: authentication tag | 277 | /// tag: authentication tag |
| 274 | /// ad: Associated Data | 278 | /// ad: Associated Data |
| 275 | /// npub: public nonce | 279 | /// npub: public nonce |
| 276 | /// k: private key | 280 | /// k: private key |
| 277 | /// NOTE: the check of the authentication tag is currently not done in constant time | 281 | /// NOTE: the check of the authentication tag is currently not done in constant time |
| 278 | pub fn decrypt(m: []u8, c: []const u8, at: [State.RATE]u8, ad: []const u8, npub: [16]u8, k: [32]u8) !void { | 282 | pub fn decrypt(m: []u8, c: []const u8, tag: [tag_length]u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) !void { |
| 279 | assert(c.len == m.len); | 283 | assert(c.len == m.len); |
| 280 | 284 | ||
| 281 | var state = Aead.init(ad, npub, k); | 285 | var state = Aead.init(ad, npub, k); |
| ... | @@ -308,7 +312,7 @@ pub const Aead = struct { | ... | @@ -308,7 +312,7 @@ pub const Aead = struct { |
| 308 | // After the final non-full block of plaintext, the first 16 bytes | 312 | // After the final non-full block of plaintext, the first 16 bytes |
| 309 | // of the state are the authentication tag. | 313 | // of the state are the authentication tag. |
| 310 | // TODO: use a constant-time equality check here, see https://github.com/ziglang/zig/issues/1776 | 314 | // TODO: use a constant-time equality check here, see https://github.com/ziglang/zig/issues/1776 |
| 311 | if (!mem.eql(u8, buf[0..State.RATE], &at)) { | 315 | if (!mem.eql(u8, buf[0..State.RATE], &tag)) { |
| 312 | @memset(m.ptr, undefined, m.len); | 316 | @memset(m.ptr, undefined, m.len); |
| 313 | return error.InvalidMessage; | 317 | return error.InvalidMessage; |
| 314 | } | 318 | } |
| ... | @@ -328,13 +332,13 @@ test "cipher" { | ... | @@ -328,13 +332,13 @@ test "cipher" { |
| 328 | const pt: [0]u8 = undefined; | 332 | const pt: [0]u8 = undefined; |
| 329 | 333 | ||
| 330 | var ct: [pt.len]u8 = undefined; | 334 | var ct: [pt.len]u8 = undefined; |
| 331 | var at: [16]u8 = undefined; | 335 | var tag: [16]u8 = undefined; |
| 332 | Aead.encrypt(&ct, &at, &pt, &ad, nonce, key); | 336 | Aead.encrypt(&ct, &tag, &pt, &ad, nonce, key); |
| 333 | htest.assertEqual("", &ct); | 337 | htest.assertEqual("", &ct); |
| 334 | htest.assertEqual("14DA9BB7120BF58B985A8E00FDEBA15B", &at); | 338 | htest.assertEqual("14DA9BB7120BF58B985A8E00FDEBA15B", &tag); |
| 335 | 339 | ||
| 336 | var pt2: [pt.len]u8 = undefined; | 340 | var pt2: [pt.len]u8 = undefined; |
| 337 | try Aead.decrypt(&pt2, &ct, at, &ad, nonce, key); | 341 | try Aead.decrypt(&pt2, &ct, tag, &ad, nonce, key); |
| 338 | testing.expectEqualSlices(u8, &pt, &pt2); | 342 | testing.expectEqualSlices(u8, &pt, &pt2); |
| 339 | } | 343 | } |
| 340 | { // test vector (34) from NIST KAT submission. | 344 | { // test vector (34) from NIST KAT submission. |
| ... | @@ -343,13 +347,13 @@ test "cipher" { | ... | @@ -343,13 +347,13 @@ test "cipher" { |
| 343 | try std.fmt.hexToBytes(&pt, "00"); | 347 | try std.fmt.hexToBytes(&pt, "00"); |
| 344 | 348 | ||
| 345 | var ct: [pt.len]u8 = undefined; | 349 | var ct: [pt.len]u8 = undefined; |
| 346 | var at: [16]u8 = undefined; | 350 | var tag: [16]u8 = undefined; |
| 347 | Aead.encrypt(&ct, &at, &pt, &ad, nonce, key); | 351 | Aead.encrypt(&ct, &tag, &pt, &ad, nonce, key); |
| 348 | htest.assertEqual("7F", &ct); | 352 | htest.assertEqual("7F", &ct); |
| 349 | htest.assertEqual("80492C317B1CD58A1EDC3A0D3E9876FC", &at); | 353 | htest.assertEqual("80492C317B1CD58A1EDC3A0D3E9876FC", &tag); |
| 350 | 354 | ||
| 351 | var pt2: [pt.len]u8 = undefined; | 355 | var pt2: [pt.len]u8 = undefined; |
| 352 | try Aead.decrypt(&pt2, &ct, at, &ad, nonce, key); | 356 | try Aead.decrypt(&pt2, &ct, tag, &ad, nonce, key); |
| 353 | testing.expectEqualSlices(u8, &pt, &pt2); | 357 | testing.expectEqualSlices(u8, &pt, &pt2); |
| 354 | } | 358 | } |
| 355 | { // test vector (106) from NIST KAT submission. | 359 | { // test vector (106) from NIST KAT submission. |
| ... | @@ -359,13 +363,13 @@ test "cipher" { | ... | @@ -359,13 +363,13 @@ test "cipher" { |
| 359 | try std.fmt.hexToBytes(&pt, "000102"); | 363 | try std.fmt.hexToBytes(&pt, "000102"); |
| 360 | 364 | ||
| 361 | var ct: [pt.len]u8 = undefined; | 365 | var ct: [pt.len]u8 = undefined; |
| 362 | var at: [16]u8 = undefined; | 366 | var tag: [16]u8 = undefined; |
| 363 | Aead.encrypt(&ct, &at, &pt, &ad, nonce, key); | 367 | Aead.encrypt(&ct, &tag, &pt, &ad, nonce, key); |
| 364 | htest.assertEqual("484D35", &ct); | 368 | htest.assertEqual("484D35", &ct); |
| 365 | htest.assertEqual("030BBEA23B61C00CED60A923BDCF9147", &at); | 369 | htest.assertEqual("030BBEA23B61C00CED60A923BDCF9147", &tag); |
| 366 | 370 | ||
| 367 | var pt2: [pt.len]u8 = undefined; | 371 | var pt2: [pt.len]u8 = undefined; |
| 368 | try Aead.decrypt(&pt2, &ct, at, &ad, nonce, key); | 372 | try Aead.decrypt(&pt2, &ct, tag, &ad, nonce, key); |
| 369 | testing.expectEqualSlices(u8, &pt, &pt2); | 373 | testing.expectEqualSlices(u8, &pt, &pt2); |
| 370 | } | 374 | } |
| 371 | { // test vector (790) from NIST KAT submission. | 375 | { // test vector (790) from NIST KAT submission. |
| ... | @@ -375,13 +379,13 @@ test "cipher" { | ... | @@ -375,13 +379,13 @@ test "cipher" { |
| 375 | try std.fmt.hexToBytes(&pt, "000102030405060708090A0B0C0D0E0F10111213141516"); | 379 | try std.fmt.hexToBytes(&pt, "000102030405060708090A0B0C0D0E0F10111213141516"); |
| 376 | 380 | ||
| 377 | var ct: [pt.len]u8 = undefined; | 381 | var ct: [pt.len]u8 = undefined; |
| 378 | var at: [16]u8 = undefined; | 382 | var tag: [16]u8 = undefined; |
| 379 | Aead.encrypt(&ct, &at, &pt, &ad, nonce, key); | 383 | Aead.encrypt(&ct, &tag, &pt, &ad, nonce, key); |
| 380 | htest.assertEqual("6815B4A0ECDAD01596EAD87D9E690697475D234C6A13D1", &ct); | 384 | htest.assertEqual("6815B4A0ECDAD01596EAD87D9E690697475D234C6A13D1", &ct); |
| 381 | htest.assertEqual("DFE23F1642508290D68245279558B2FB", &at); | 385 | htest.assertEqual("DFE23F1642508290D68245279558B2FB", &tag); |
| 382 | 386 | ||
| 383 | var pt2: [pt.len]u8 = undefined; | 387 | var pt2: [pt.len]u8 = undefined; |
| 384 | try Aead.decrypt(&pt2, &ct, at, &ad, nonce, key); | 388 | try Aead.decrypt(&pt2, &ct, tag, &ad, nonce, key); |
| 385 | testing.expectEqualSlices(u8, &pt, &pt2); | 389 | testing.expectEqualSlices(u8, &pt, &pt2); |
| 386 | } | 390 | } |
| 387 | { // test vector (1057) from NIST KAT submission. | 391 | { // test vector (1057) from NIST KAT submission. |
| ... | @@ -390,13 +394,13 @@ test "cipher" { | ... | @@ -390,13 +394,13 @@ test "cipher" { |
| 390 | try std.fmt.hexToBytes(&pt, "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"); | 394 | try std.fmt.hexToBytes(&pt, "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"); |
| 391 | 395 | ||
| 392 | var ct: [pt.len]u8 = undefined; | 396 | var ct: [pt.len]u8 = undefined; |
| 393 | var at: [16]u8 = undefined; | 397 | var tag: [16]u8 = undefined; |
| 394 | Aead.encrypt(&ct, &at, &pt, &ad, nonce, key); | 398 | Aead.encrypt(&ct, &tag, &pt, &ad, nonce, key); |
| 395 | htest.assertEqual("7F8A2CF4F52AA4D6B2E74105C30A2777B9D0C8AEFDD555DE35861BD3011F652F", &ct); | 399 | htest.assertEqual("7F8A2CF4F52AA4D6B2E74105C30A2777B9D0C8AEFDD555DE35861BD3011F652F", &ct); |
| 396 | htest.assertEqual("7256456FA935AC34BBF55AE135F33257", &at); | 400 | htest.assertEqual("7256456FA935AC34BBF55AE135F33257", &tag); |
| 397 | 401 | ||
| 398 | var pt2: [pt.len]u8 = undefined; | 402 | var pt2: [pt.len]u8 = undefined; |
| 399 | try Aead.decrypt(&pt2, &ct, at, &ad, nonce, key); | 403 | try Aead.decrypt(&pt2, &ct, tag, &ad, nonce, key); |
| 400 | testing.expectEqualSlices(u8, &pt, &pt2); | 404 | testing.expectEqualSlices(u8, &pt, &pt2); |
| 401 | } | 405 | } |
| 402 | } | 406 | } |
lib/std/fs/test.zig+20-4| ... | @@ -25,12 +25,20 @@ test "Dir.readLink" { | ... | @@ -25,12 +25,20 @@ test "Dir.readLink" { |
| 25 | 25 | ||
| 26 | { | 26 | { |
| 27 | // Create symbolic link by path | 27 | // Create symbolic link by path |
| 28 | try tmp.dir.symLink("file.txt", "symlink1", .{}); | 28 | tmp.dir.symLink("file.txt", "symlink1", .{}) catch |err| switch (err) { |
| 29 | // Symlink requires admin privileges on windows, so this test can legitimately fail. | ||
| 30 | error.AccessDenied => return error.SkipZigTest, | ||
| 31 | else => return err, | ||
| 32 | }; | ||
| 29 | try testReadLink(tmp.dir, "file.txt", "symlink1"); | 33 | try testReadLink(tmp.dir, "file.txt", "symlink1"); |
| 30 | } | 34 | } |
| 31 | { | 35 | { |
| 32 | // Create symbolic link by path | 36 | // Create symbolic link by path |
| 33 | try tmp.dir.symLink("subdir", "symlink2", .{ .is_directory = true }); | 37 | tmp.dir.symLink("subdir", "symlink2", .{ .is_directory = true }) catch |err| switch (err) { |
| 38 | // Symlink requires admin privileges on windows, so this test can legitimately fail. | ||
| 39 | error.AccessDenied => return error.SkipZigTest, | ||
| 40 | else => return err, | ||
| 41 | }; | ||
| 34 | try testReadLink(tmp.dir, "subdir", "symlink2"); | 42 | try testReadLink(tmp.dir, "subdir", "symlink2"); |
| 35 | } | 43 | } |
| 36 | } | 44 | } |
| ... | @@ -66,7 +74,11 @@ test "readLinkAbsolute" { | ... | @@ -66,7 +74,11 @@ test "readLinkAbsolute" { |
| 66 | const symlink_path = try fs.path.join(allocator, &[_][]const u8{ base_path, "symlink1" }); | 74 | const symlink_path = try fs.path.join(allocator, &[_][]const u8{ base_path, "symlink1" }); |
| 67 | 75 | ||
| 68 | // Create symbolic link by path | 76 | // Create symbolic link by path |
| 69 | try fs.symLinkAbsolute(target_path, symlink_path, .{}); | 77 | fs.symLinkAbsolute(target_path, symlink_path, .{}) catch |err| switch (err) { |
| 78 | // Symlink requires admin privileges on windows, so this test can legitimately fail. | ||
| 79 | error.AccessDenied => return error.SkipZigTest, | ||
| 80 | else => return err, | ||
| 81 | }; | ||
| 70 | try testReadLinkAbsolute(target_path, symlink_path); | 82 | try testReadLinkAbsolute(target_path, symlink_path); |
| 71 | } | 83 | } |
| 72 | { | 84 | { |
| ... | @@ -74,7 +86,11 @@ test "readLinkAbsolute" { | ... | @@ -74,7 +86,11 @@ test "readLinkAbsolute" { |
| 74 | const symlink_path = try fs.path.join(allocator, &[_][]const u8{ base_path, "symlink2" }); | 86 | const symlink_path = try fs.path.join(allocator, &[_][]const u8{ base_path, "symlink2" }); |
| 75 | 87 | ||
| 76 | // Create symbolic link by path | 88 | // Create symbolic link by path |
| 77 | try fs.symLinkAbsolute(target_path, symlink_path, .{ .is_directory = true }); | 89 | fs.symLinkAbsolute(target_path, symlink_path, .{ .is_directory = true }) catch |err| switch (err) { |
| 90 | // Symlink requires admin privileges on windows, so this test can legitimately fail. | ||
| 91 | error.AccessDenied => return error.SkipZigTest, | ||
| 92 | else => return err, | ||
| 93 | }; | ||
| 78 | try testReadLinkAbsolute(target_path, symlink_path); | 94 | try testReadLinkAbsolute(target_path, symlink_path); |
| 79 | } | 95 | } |
| 80 | } | 96 | } |
lib/std/heap/general_purpose_allocator.zig+30-16| ... | @@ -561,24 +561,25 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type { | ... | @@ -561,24 +561,25 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type { |
| 561 | return error.OutOfMemory; | 561 | return error.OutOfMemory; |
| 562 | } | 562 | } |
| 563 | 563 | ||
| 564 | // Returns true if an allocation of `size` bytes is within the specified | ||
| 565 | // limits if enable_memory_limit is true | ||
| 566 | fn isAllocationAllowed(self: *Self, size: usize) bool { | ||
| 567 | if (config.enable_memory_limit) { | ||
| 568 | const new_req_bytes = self.total_requested_bytes + size; | ||
| 569 | if (new_req_bytes > self.requested_memory_limit) | ||
| 570 | return false; | ||
| 571 | self.total_requested_bytes = new_req_bytes; | ||
| 572 | } | ||
| 573 | |||
| 574 | return true; | ||
| 575 | } | ||
| 576 | |||
| 564 | fn alloc(allocator: *Allocator, len: usize, ptr_align: u29, len_align: u29, ret_addr: usize) Error![]u8 { | 577 | fn alloc(allocator: *Allocator, len: usize, ptr_align: u29, len_align: u29, ret_addr: usize) Error![]u8 { |
| 565 | const self = @fieldParentPtr(Self, "allocator", allocator); | 578 | const self = @fieldParentPtr(Self, "allocator", allocator); |
| 566 | 579 | ||
| 567 | const held = self.mutex.acquire(); | 580 | const held = self.mutex.acquire(); |
| 568 | defer held.release(); | 581 | defer held.release(); |
| 569 | 582 | ||
| 570 | const prev_req_bytes = self.total_requested_bytes; | ||
| 571 | if (config.enable_memory_limit) { | ||
| 572 | const new_req_bytes = prev_req_bytes + len; | ||
| 573 | if (new_req_bytes > self.requested_memory_limit) { | ||
| 574 | return error.OutOfMemory; | ||
| 575 | } | ||
| 576 | self.total_requested_bytes = new_req_bytes; | ||
| 577 | } | ||
| 578 | errdefer if (config.enable_memory_limit) { | ||
| 579 | self.total_requested_bytes = prev_req_bytes; | ||
| 580 | }; | ||
| 581 | |||
| 582 | const new_aligned_size = math.max(len, ptr_align); | 583 | const new_aligned_size = math.max(len, ptr_align); |
| 583 | if (new_aligned_size > largest_bucket_object_size) { | 584 | if (new_aligned_size > largest_bucket_object_size) { |
| 584 | try self.large_allocations.ensureCapacity( | 585 | try self.large_allocations.ensureCapacity( |
| ... | @@ -588,17 +589,30 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type { | ... | @@ -588,17 +589,30 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type { |
| 588 | 589 | ||
| 589 | const slice = try self.backing_allocator.allocFn(self.backing_allocator, len, ptr_align, len_align, ret_addr); | 590 | const slice = try self.backing_allocator.allocFn(self.backing_allocator, len, ptr_align, len_align, ret_addr); |
| 590 | 591 | ||
| 592 | // The backing allocator may return a memory block bigger than | ||
| 593 | // `len`, use the effective size for bookkeeping purposes | ||
| 594 | if (!self.isAllocationAllowed(slice.len)) { | ||
| 595 | // Free the block so no memory is leaked | ||
| 596 | const new_len = try self.backing_allocator.resizeFn(self.backing_allocator, slice, ptr_align, 0, 0, ret_addr); | ||
| 597 | assert(new_len == 0); | ||
| 598 | return error.OutOfMemory; | ||
| 599 | } | ||
| 600 | |||
| 591 | const gop = self.large_allocations.getOrPutAssumeCapacity(@ptrToInt(slice.ptr)); | 601 | const gop = self.large_allocations.getOrPutAssumeCapacity(@ptrToInt(slice.ptr)); |
| 592 | assert(!gop.found_existing); // This would mean the kernel double-mapped pages. | 602 | assert(!gop.found_existing); // This would mean the kernel double-mapped pages. |
| 593 | gop.entry.value.bytes = slice; | 603 | gop.entry.value.bytes = slice; |
| 594 | collectStackTrace(ret_addr, &gop.entry.value.stack_addresses); | 604 | collectStackTrace(ret_addr, &gop.entry.value.stack_addresses); |
| 595 | 605 | ||
| 596 | return slice; | 606 | return slice; |
| 597 | } else { | ||
| 598 | const new_size_class = math.ceilPowerOfTwoAssert(usize, new_aligned_size); | ||
| 599 | const ptr = try self.allocSlot(new_size_class, ret_addr); | ||
| 600 | return ptr[0..len]; | ||
| 601 | } | 607 | } |
| 608 | |||
| 609 | if (!self.isAllocationAllowed(len)) { | ||
| 610 | return error.OutOfMemory; | ||
| 611 | } | ||
| 612 | |||
| 613 | const new_size_class = math.ceilPowerOfTwoAssert(usize, new_aligned_size); | ||
| 614 | const ptr = try self.allocSlot(new_size_class, ret_addr); | ||
| 615 | return ptr[0..len]; | ||
| 602 | } | 616 | } |
| 603 | 617 | ||
| 604 | fn createBucket(self: *Self, size_class: usize, bucket_index: usize) Error!*BucketHeader { | 618 | fn createBucket(self: *Self, size_class: usize, bucket_index: usize) Error!*BucketHeader { |
lib/std/io/reader.zig+22-4| ... | @@ -231,10 +231,20 @@ pub fn Reader( | ... | @@ -231,10 +231,20 @@ pub fn Reader( |
| 231 | return mem.readVarInt(ReturnType, bytes, endian); | 231 | return mem.readVarInt(ReturnType, bytes, endian); |
| 232 | } | 232 | } |
| 233 | 233 | ||
| 234 | pub fn skipBytes(self: Self, num_bytes: u64) !void { | 234 | /// Optional parameters for `skipBytes` |
| 235 | var i: u64 = 0; | 235 | pub const SkipBytesOptions = struct { |
| 236 | while (i < num_bytes) : (i += 1) { | 236 | buf_size: usize = 512, |
| 237 | _ = try self.readByte(); | 237 | }; |
| 238 | |||
| 239 | /// Reads `num_bytes` bytes from the stream and discards them | ||
| 240 | pub fn skipBytes(self: Self, num_bytes: usize, comptime options: SkipBytesOptions) !void { | ||
| 241 | var buf: [options.buf_size]u8 = undefined; | ||
| 242 | var remaining = num_bytes; | ||
| 243 | |||
| 244 | while (remaining > 0) { | ||
| 245 | const amt = std.math.min(remaining, options.buf_size); | ||
| 246 | try self.readNoEof(buf[0..amt]); | ||
| 247 | remaining -= amt; | ||
| 238 | } | 248 | } |
| 239 | } | 249 | } |
| 240 | 250 | ||
| ... | @@ -298,3 +308,11 @@ test "Reader.isBytes" { | ... | @@ -298,3 +308,11 @@ test "Reader.isBytes" { |
| 298 | testing.expectEqual(true, try reader.isBytes("foo")); | 308 | testing.expectEqual(true, try reader.isBytes("foo")); |
| 299 | testing.expectEqual(false, try reader.isBytes("qux")); | 309 | testing.expectEqual(false, try reader.isBytes("qux")); |
| 300 | } | 310 | } |
| 311 | |||
| 312 | test "Reader.skipBytes" { | ||
| 313 | const reader = std.io.fixedBufferStream("foobar").reader(); | ||
| 314 | try reader.skipBytes(3, .{}); | ||
| 315 | testing.expect(try reader.isBytes("bar")); | ||
| 316 | try reader.skipBytes(0, .{}); | ||
| 317 | testing.expectError(error.EndOfStream, reader.skipBytes(1, .{})); | ||
| 318 | } |
lib/std/macho.zig+357| ... | @@ -81,6 +81,182 @@ pub const symtab_command = extern struct { | ... | @@ -81,6 +81,182 @@ pub const symtab_command = extern struct { |
| 81 | strsize: u32, | 81 | strsize: u32, |
| 82 | }; | 82 | }; |
| 83 | 83 | ||
| 84 | /// This is the second set of the symbolic information which is used to support | ||
| 85 | /// the data structures for the dynamically link editor. | ||
| 86 | /// | ||
| 87 | /// The original set of symbolic information in the symtab_command which contains | ||
| 88 | /// the symbol and string tables must also be present when this load command is | ||
| 89 | /// present. When this load command is present the symbol table is organized | ||
| 90 | /// into three groups of symbols: | ||
| 91 | /// local symbols (static and debugging symbols) - grouped by module | ||
| 92 | /// defined external symbols - grouped by module (sorted by name if not lib) | ||
| 93 | /// undefined external symbols (sorted by name if MH_BINDATLOAD is not set, | ||
| 94 | /// 			 and in order the were seen by the static | ||
| 95 | /// 			 linker if MH_BINDATLOAD is set) | ||
| 96 | /// In this load command there are offsets and counts to each of the three groups | ||
| 97 | /// of symbols. | ||
| 98 | /// | ||
| 99 | /// This load command contains a the offsets and sizes of the following new | ||
| 100 | /// symbolic information tables: | ||
| 101 | /// table of contents | ||
| 102 | /// module table | ||
| 103 | /// reference symbol table | ||
| 104 | /// indirect symbol table | ||
| 105 | /// The first three tables above (the table of contents, module table and | ||
| 106 | /// reference symbol table) are only present if the file is a dynamically linked | ||
| 107 | /// shared library. For executable and object modules, which are files | ||
| 108 | /// containing only one module, the information that would be in these three | ||
| 109 | /// tables is determined as follows: | ||
| 110 | /// 	table of contents - the defined external symbols are sorted by name | ||
| 111 | /// module table - the file contains only one module so everything in the | ||
| 112 | /// 	 file is part of the module. | ||
| 113 | /// reference symbol table - is the defined and undefined external symbols | ||
| 114 | /// | ||
| 115 | /// For dynamically linked shared library files this load command also contains | ||
| 116 | /// offsets and sizes to the pool of relocation entries for all sections | ||
| 117 | /// separated into two groups: | ||
| 118 | /// external relocation entries | ||
| 119 | /// local relocation entries | ||
| 120 | /// For executable and object modules the relocation entries continue to hang | ||
| 121 | /// off the section structures. | ||
| 122 | pub const dysymtab_command = extern struct { | ||
| 123 | /// LC_DYSYMTAB | ||
| 124 | cmd: u32, | ||
| 125 | |||
| 126 | /// sizeof(struct dysymtab_command) | ||
| 127 | cmdsize: u32, | ||
| 128 | |||
| 129 | // The symbols indicated by symoff and nsyms of the LC_SYMTAB load command | ||
| 130 | // are grouped into the following three groups: | ||
| 131 | // local symbols (further grouped by the module they are from) | ||
| 132 | // defined external symbols (further grouped by the module they are from) | ||
| 133 | // undefined symbols | ||
| 134 | // | ||
| 135 | // The local symbols are used only for debugging. The dynamic binding | ||
| 136 | // process may have to use them to indicate to the debugger the local | ||
| 137 | // symbols for a module that is being bound. | ||
| 138 | // | ||
| 139 | // The last two groups are used by the dynamic binding process to do the | ||
| 140 | // binding (indirectly through the module table and the reference symbol | ||
| 141 | // table when this is a dynamically linked shared library file). | ||
| 142 | |||
| 143 | /// index of local symbols | ||
| 144 | ilocalsym: u32, | ||
| 145 | |||
| 146 | /// number of local symbols | ||
| 147 | nlocalsym: u32, | ||
| 148 | |||
| 149 | /// index to externally defined symbols | ||
| 150 | iextdefsym: u32, | ||
| 151 | |||
| 152 | /// number of externally defined symbols | ||
| 153 | nextdefsym: u32, | ||
| 154 | |||
| 155 | /// index to undefined symbols | ||
| 156 | iundefsym: u32, | ||
| 157 | |||
| 158 | /// number of undefined symbols | ||
| 159 | nundefsym: u32, | ||
| 160 | |||
| 161 | // For the for the dynamic binding process to find which module a symbol | ||
| 162 | // is defined in the table of contents is used (analogous to the ranlib | ||
| 163 | // structure in an archive) which maps defined external symbols to modules | ||
| 164 | // they are defined in. This exists only in a dynamically linked shared | ||
| 165 | // library file. For executable and object modules the defined external | ||
| 166 | // symbols are sorted by name and is use as the table of contents. | ||
| 167 | |||
| 168 | /// file offset to table of contents | ||
| 169 | tocoff: u32, | ||
| 170 | |||
| 171 | /// number of entries in table of contents | ||
| 172 | ntoc: u32, | ||
| 173 | |||
| 174 | // To support dynamic binding of "modules" (whole object files) the symbol | ||
| 175 | // table must reflect the modules that the file was created from. This is | ||
| 176 | // done by having a module table that has indexes and counts into the merged | ||
| 177 | // tables for each module. The module structure that these two entries | ||
| 178 | // refer to is described below. This exists only in a dynamically linked | ||
| 179 | // shared library file. For executable and object modules the file only | ||
| 180 | // contains one module so everything in the file belongs to the module. | ||
| 181 | |||
| 182 | /// file offset to module table | ||
| 183 | modtaboff: u32, | ||
| 184 | |||
| 185 | /// number of module table entries | ||
| 186 | nmodtab: u32, | ||
| 187 | |||
| 188 | // To support dynamic module binding the module structure for each module | ||
| 189 | // indicates the external references (defined and undefined) each module | ||
| 190 | // makes. For each module there is an offset and a count into the | ||
| 191 | // reference symbol table for the symbols that the module references. | ||
| 192 | // This exists only in a dynamically linked shared library file. For | ||
| 193 | // executable and object modules the defined external symbols and the | ||
| 194 | // undefined external symbols indicates the external references. | ||
| 195 | |||
| 196 | /// offset to referenced symbol table | ||
| 197 | extrefsymoff: u32, | ||
| 198 | |||
| 199 | /// number of referenced symbol table entries | ||
| 200 | nextrefsyms: u32, | ||
| 201 | |||
| 202 | // The sections that contain "symbol pointers" and "routine stubs" have | ||
| 203 | // indexes and (implied counts based on the size of the section and fixed | ||
| 204 | // size of the entry) into the "indirect symbol" table for each pointer | ||
| 205 | // and stub. For every section of these two types the index into the | ||
| 206 | // indirect symbol table is stored in the section header in the field | ||
| 207 | // reserved1. An indirect symbol table entry is simply a 32bit index into | ||
| 208 | // the symbol table to the symbol that the pointer or stub is referring to. | ||
| 209 | // The indirect symbol table is ordered to match the entries in the section. | ||
| 210 | |||
| 211 | /// file offset to the indirect symbol table | ||
| 212 | indirectsymoff: u32, | ||
| 213 | |||
| 214 | /// number of indirect symbol table entries | ||
| 215 | nindirectsyms: u32, | ||
| 216 | |||
| 217 | // To support relocating an individual module in a library file quickly the | ||
| 218 | // external relocation entries for each module in the library need to be | ||
| 219 | // accessed efficiently. Since the relocation entries can't be accessed | ||
| 220 | // through the section headers for a library file they are separated into | ||
| 221 | // groups of local and external entries further grouped by module. In this | ||
| 222 | // case the presents of this load command who's extreloff, nextrel, | ||
| 223 | // locreloff and nlocrel fields are non-zero indicates that the relocation | ||
| 224 | // entries of non-merged sections are not referenced through the section | ||
| 225 | // structures (and the reloff and nreloc fields in the section headers are | ||
| 226 | // set to zero). | ||
| 227 | // | ||
| 228 | // Since the relocation entries are not accessed through the section headers | ||
| 229 | // this requires the r_address field to be something other than a section | ||
| 230 | // offset to identify the item to be relocated. In this case r_address is | ||
| 231 | // set to the offset from the vmaddr of the first LC_SEGMENT command. | ||
| 232 | // For MH_SPLIT_SEGS images r_address is set to the the offset from the | ||
| 233 | // vmaddr of the first read-write LC_SEGMENT command. | ||
| 234 | // | ||
| 235 | // The relocation entries are grouped by module and the module table | ||
| 236 | // entries have indexes and counts into them for the group of external | ||
| 237 | // relocation entries for that the module. | ||
| 238 | // | ||
| 239 | // For sections that are merged across modules there must not be any | ||
| 240 | // remaining external relocation entries for them (for merged sections | ||
| 241 | // remaining relocation entries must be local). | ||
| 242 | |||
| 243 | /// offset to external relocation entries | ||
| 244 | extreloff: u32, | ||
| 245 | |||
| 246 | /// number of external relocation entries | ||
| 247 | nextrel: u32, | ||
| 248 | |||
| 249 | // All the local relocation entries are grouped together (they are not | ||
| 250 | // grouped by their module since they are only used if the object is moved | ||
| 251 | // from it staticly link edited address). | ||
| 252 | |||
| 253 | /// offset to local relocation entries | ||
| 254 | locreloff: u32, | ||
| 255 | |||
| 256 | /// number of local relocation entries | ||
| 257 | nlocrel: u32, | ||
| 258 | }; | ||
| 259 | |||
| 84 | /// The linkedit_data_command contains the offsets and sizes of a blob | 260 | /// The linkedit_data_command contains the offsets and sizes of a blob |
| 85 | /// of data in the __LINKEDIT segment. | 261 | /// of data in the __LINKEDIT segment. |
| 86 | pub const linkedit_data_command = extern struct { | 262 | pub const linkedit_data_command = extern struct { |
| ... | @@ -97,6 +273,127 @@ pub const linkedit_data_command = extern struct { | ... | @@ -97,6 +273,127 @@ pub const linkedit_data_command = extern struct { |
| 97 | datasize: u32, | 273 | datasize: u32, |
| 98 | }; | 274 | }; |
| 99 | 275 | ||
| 276 | /// The dyld_info_command contains the file offsets and sizes of | ||
| 277 | /// the new compressed form of the information dyld needs to | ||
| 278 | /// load the image. This information is used by dyld on Mac OS X | ||
| 279 | /// 10.6 and later. All information pointed to by this command | ||
| 280 | /// is encoded using byte streams, so no endian swapping is needed | ||
| 281 | /// to interpret it. | ||
| 282 | pub const dyld_info_command = extern struct { | ||
| 283 | /// LC_DYLD_INFO or LC_DYLD_INFO_ONLY | ||
| 284 | cmd: u32, | ||
| 285 | |||
| 286 | /// sizeof(struct dyld_info_command) | ||
| 287 | cmdsize: u32, | ||
| 288 | |||
| 289 | // Dyld rebases an image whenever dyld loads it at an address different | ||
| 290 | // from its preferred address. The rebase information is a stream | ||
| 291 | // of byte sized opcodes whose symbolic names start with REBASE_OPCODE_. | ||
| 292 | // Conceptually the rebase information is a table of tuples: | ||
| 293 | // <seg-index, seg-offset, type> | ||
| 294 | // The opcodes are a compressed way to encode the table by only | ||
| 295 | // encoding when a column changes. In addition simple patterns | ||
| 296 | // like "every n'th offset for m times" can be encoded in a few | ||
| 297 | // bytes. | ||
| 298 | |||
| 299 | /// file offset to rebase info | ||
| 300 | rebase_off: u32, | ||
| 301 | |||
| 302 | /// size of rebase info | ||
| 303 | rebase_size: u32, | ||
| 304 | |||
| 305 | // Dyld binds an image during the loading process, if the image | ||
| 306 | // requires any pointers to be initialized to symbols in other images. | ||
| 307 | // The bind information is a stream of byte sized | ||
| 308 | // opcodes whose symbolic names start with BIND_OPCODE_. | ||
| 309 | // Conceptually the bind information is a table of tuples: | ||
| 310 | // <seg-index, seg-offset, type, symbol-library-ordinal, symbol-name, addend> | ||
| 311 | // The opcodes are a compressed way to encode the table by only | ||
| 312 | // encoding when a column changes. In addition simple patterns | ||
| 313 | // like for runs of pointers initialzed to the same value can be | ||
| 314 | // encoded in a few bytes. | ||
| 315 | |||
| 316 | /// file offset to binding info | ||
| 317 | bind_off: u32, | ||
| 318 | |||
| 319 | /// size of binding info | ||
| 320 | bind_size: u32, | ||
| 321 | |||
| 322 | // Some C++ programs require dyld to unique symbols so that all | ||
| 323 | // images in the process use the same copy of some code/data. | ||
| 324 | // This step is done after binding. The content of the weak_bind | ||
| 325 | // info is an opcode stream like the bind_info. But it is sorted | ||
| 326 | // alphabetically by symbol name. This enable dyld to walk | ||
| 327 | // all images with weak binding information in order and look | ||
| 328 | // for collisions. If there are no collisions, dyld does | ||
| 329 | // no updating. That means that some fixups are also encoded | ||
| 330 | // in the bind_info. For instance, all calls to "operator new" | ||
| 331 | // are first bound to libstdc++.dylib using the information | ||
| 332 | // in bind_info. Then if some image overrides operator new | ||
| 333 | // that is detected when the weak_bind information is processed | ||
| 334 | // and the call to operator new is then rebound. | ||
| 335 | |||
| 336 | /// file offset to weak binding info | ||
| 337 | weak_bind_off: u32, | ||
| 338 | |||
| 339 | /// size of weak binding info | ||
| 340 | weak_bind_size: u32, | ||
| 341 | |||
| 342 | // Some uses of external symbols do not need to be bound immediately. | ||
| 343 | // Instead they can be lazily bound on first use. The lazy_bind | ||
| 344 | // are contains a stream of BIND opcodes to bind all lazy symbols. | ||
| 345 | // Normal use is that dyld ignores the lazy_bind section when | ||
| 346 | // loading an image. Instead the static linker arranged for the | ||
| 347 | // lazy pointer to initially point to a helper function which | ||
| 348 | // pushes the offset into the lazy_bind area for the symbol | ||
| 349 | // needing to be bound, then jumps to dyld which simply adds | ||
| 350 | // the offset to lazy_bind_off to get the information on what | ||
| 351 | // to bind. | ||
| 352 | |||
| 353 | /// file offset to lazy binding info | ||
| 354 | lazy_bind_off: u32, | ||
| 355 | |||
| 356 | /// size of lazy binding info | ||
| 357 | lazy_bind_size: u32, | ||
| 358 | |||
| 359 | // The symbols exported by a dylib are encoded in a trie. This | ||
| 360 | // is a compact representation that factors out common prefixes. | ||
| 361 | // It also reduces LINKEDIT pages in RAM because it encodes all | ||
| 362 | // information (name, address, flags) in one small, contiguous range. | ||
| 363 | // The export area is a stream of nodes. The first node sequentially | ||
| 364 | // is the start node for the trie. | ||
| 365 | // | ||
| 366 | // Nodes for a symbol start with a uleb128 that is the length of | ||
| 367 | // the exported symbol information for the string so far. | ||
| 368 | // If there is no exported symbol, the node starts with a zero byte. | ||
| 369 | // If there is exported info, it follows the length. | ||
| 370 | // | ||
| 371 | // First is a uleb128 containing flags. Normally, it is followed by | ||
| 372 | // a uleb128 encoded offset which is location of the content named | ||
| 373 | // by the symbol from the mach_header for the image. If the flags | ||
| 374 | // is EXPORT_SYMBOL_FLAGS_REEXPORT, then following the flags is | ||
| 375 | // a uleb128 encoded library ordinal, then a zero terminated | ||
| 376 | // UTF8 string. If the string is zero length, then the symbol | ||
| 377 | // is re-export from the specified dylib with the same name. | ||
| 378 | // If the flags is EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER, then following | ||
| 379 | // the flags is two uleb128s: the stub offset and the resolver offset. | ||
| 380 | // The stub is used by non-lazy pointers. The resolver is used | ||
| 381 | // by lazy pointers and must be called to get the actual address to use. | ||
| 382 | // | ||
| 383 | // After the optional exported symbol information is a byte of | ||
| 384 | // how many edges (0-255) that this node has leaving it, | ||
| 385 | // followed by each edge. | ||
| 386 | // Each edge is a zero terminated UTF8 of the addition chars | ||
| 387 | // in the symbol, followed by a uleb128 offset for the node that | ||
| 388 | // edge points to. | ||
| 389 | |||
| 390 | /// file offset to lazy binding info | ||
| 391 | export_off: u32, | ||
| 392 | |||
| 393 | /// size of lazy binding info | ||
| 394 | export_size: u32, | ||
| 395 | }; | ||
| 396 | |||
| 100 | /// A program that uses a dynamic linker contains a dylinker_command to identify | 397 | /// A program that uses a dynamic linker contains a dylinker_command to identify |
| 101 | /// the name of the dynamic linker (LC_LOAD_DYLINKER). And a dynamic linker | 398 | /// the name of the dynamic linker (LC_LOAD_DYLINKER). And a dynamic linker |
| 102 | /// contains a dylinker_command to identify the dynamic linker (LC_ID_DYLINKER). | 399 | /// contains a dylinker_command to identify the dynamic linker (LC_ID_DYLINKER). |
| ... | @@ -681,6 +978,24 @@ pub const N_TYPE = 0x0e; | ... | @@ -681,6 +978,24 @@ pub const N_TYPE = 0x0e; |
| 681 | /// external symbol bit, set for external symbols | 978 | /// external symbol bit, set for external symbols |
| 682 | pub const N_EXT = 0x01; | 979 | pub const N_EXT = 0x01; |
| 683 | 980 | ||
| 981 | /// symbol is undefined | ||
| 982 | pub const N_UNDF = 0x0; | ||
| 983 | |||
| 984 | /// symbol is absolute | ||
| 985 | pub const N_ABS = 0x2; | ||
| 986 | |||
| 987 | /// symbol is defined in the section number given in n_sect | ||
| 988 | pub const N_SECT = 0xe; | ||
| 989 | |||
| 990 | /// symbol is undefined and the image is using a prebound | ||
| 991 | /// value for the symbol | ||
| 992 | pub const N_PBUD = 0xc; | ||
| 993 | |||
| 994 | /// symbol is defined to be the same as another symbol; the n_value | ||
| 995 | /// field is an index into the string table specifying the name of the | ||
| 996 | /// other symbol | ||
| 997 | pub const N_INDR = 0xa; | ||
| 998 | |||
| 684 | /// global symbol: name,,NO_SECT,type,0 | 999 | /// global symbol: name,,NO_SECT,type,0 |
| 685 | pub const N_GSYM = 0x20; | 1000 | pub const N_GSYM = 0x20; |
| 686 | 1001 | ||
| ... | @@ -781,6 +1096,35 @@ pub const N_LENG = 0xfe; | ... | @@ -781,6 +1096,35 @@ pub const N_LENG = 0xfe; |
| 781 | /// a debug section | 1096 | /// a debug section |
| 782 | pub const S_ATTR_DEBUG = 0x02000000; | 1097 | pub const S_ATTR_DEBUG = 0x02000000; |
| 783 | 1098 | ||
| 1099 | /// section contains only true machine instructions | ||
| 1100 | pub const S_ATTR_PURE_INSTRUCTIONS = 0x80000000; | ||
| 1101 | |||
| 1102 | /// section contains coalesced symbols that are not to be in a ranlib | ||
| 1103 | /// table of contents | ||
| 1104 | pub const S_ATTR_NO_TOC = 0x40000000; | ||
| 1105 | |||
| 1106 | /// ok to strip static symbols in this section in files with the | ||
| 1107 | /// MH_DYLDLINK flag | ||
| 1108 | pub const S_ATTR_STRIP_STATIC_SYMS = 0x20000000; | ||
| 1109 | |||
| 1110 | /// no dead stripping | ||
| 1111 | pub const S_ATTR_NO_DEAD_STRIP = 0x10000000; | ||
| 1112 | |||
| 1113 | /// blocks are live if they reference live blocks | ||
| 1114 | pub const S_ATTR_LIVE_SUPPORT = 0x8000000; | ||
| 1115 | |||
| 1116 | /// used with i386 code stubs written on by dyld | ||
| 1117 | pub const S_ATTR_SELF_MODIFYING_CODE = 0x4000000; | ||
| 1118 | |||
| 1119 | /// section contains some machine instructions | ||
| 1120 | pub const S_ATTR_SOME_INSTRUCTIONS = 0x400; | ||
| 1121 | |||
| 1122 | /// section has external relocation entries | ||
| 1123 | pub const S_ATTR_EXT_RELOC = 0x200; | ||
| 1124 | |||
| 1125 | /// section has local relocation entries | ||
| 1126 | pub const S_ATTR_LOC_RELOC = 0x100; | ||
| 1127 | |||
| 784 | pub const cpu_type_t = integer_t; | 1128 | pub const cpu_type_t = integer_t; |
| 785 | pub const cpu_subtype_t = integer_t; | 1129 | pub const cpu_subtype_t = integer_t; |
| 786 | pub const integer_t = c_int; | 1130 | pub const integer_t = c_int; |
| ... | @@ -797,3 +1141,16 @@ pub const CPU_SUBTYPE_X86_64_ALL: cpu_subtype_t = 0x3; | ... | @@ -797,3 +1141,16 @@ pub const CPU_SUBTYPE_X86_64_ALL: cpu_subtype_t = 0x3; |
| 797 | 1141 | ||
| 798 | /// All ARM-based Macs | 1142 | /// All ARM-based Macs |
| 799 | pub const CPU_SUBTYPE_ARM_ALL: cpu_subtype_t = 0x0; | 1143 | pub const CPU_SUBTYPE_ARM_ALL: cpu_subtype_t = 0x0; |
| 1144 | |||
| 1145 | // Protection values defined as bits within the vm_prot_t type | ||
| 1146 | /// No VM protection | ||
| 1147 | pub const VM_PROT_NONE: vm_prot_t = 0x0; | ||
| 1148 | |||
| 1149 | /// VM read permission | ||
| 1150 | pub const VM_PROT_READ: vm_prot_t = 0x1; | ||
| 1151 | |||
| 1152 | /// VM write permission | ||
| 1153 | pub const VM_PROT_WRITE: vm_prot_t = 0x2; | ||
| 1154 | |||
| 1155 | /// VM execute permission | ||
| 1156 | pub const VM_PROT_EXECUTE: vm_prot_t = 0x4; |
lib/std/math.zig+56-28| ... | @@ -5,6 +5,7 @@ | ... | @@ -5,6 +5,7 @@ |
| 5 | // and substantial portions of the software. | 5 | // and substantial portions of the software. |
| 6 | const std = @import("std.zig"); | 6 | const std = @import("std.zig"); |
| 7 | const assert = std.debug.assert; | 7 | const assert = std.debug.assert; |
| 8 | const mem = std.mem; | ||
| 8 | const testing = std.testing; | 9 | const testing = std.testing; |
| 9 | 10 | ||
| 10 | /// Euler's number (e) | 11 | /// Euler's number (e) |
| ... | @@ -108,34 +109,8 @@ pub fn approxEq(comptime T: type, x: T, y: T, epsilon: T) bool { | ... | @@ -108,34 +109,8 @@ pub fn approxEq(comptime T: type, x: T, y: T, epsilon: T) bool { |
| 108 | return fabs(x - y) < epsilon; | 109 | return fabs(x - y) < epsilon; |
| 109 | } | 110 | } |
| 110 | 111 | ||
| 111 | // TODO: Hide the following in an internal module. | 112 | pub fn doNotOptimizeAway(value: anytype) void { |
| 112 | pub fn forceEval(value: anytype) void { | 113 | mem.doNotOptimizeAway(value); |
| 113 | const T = @TypeOf(value); | ||
| 114 | switch (T) { | ||
| 115 | f16 => { | ||
| 116 | var x: f16 = undefined; | ||
| 117 | const p = @ptrCast(*volatile f16, &x); | ||
| 118 | p.* = x; | ||
| 119 | }, | ||
| 120 | f32 => { | ||
| 121 | var x: f32 = undefined; | ||
| 122 | const p = @ptrCast(*volatile f32, &x); | ||
| 123 | p.* = x; | ||
| 124 | }, | ||
| 125 | f64 => { | ||
| 126 | var x: f64 = undefined; | ||
| 127 | const p = @ptrCast(*volatile f64, &x); | ||
| 128 | p.* = x; | ||
| 129 | }, | ||
| 130 | f128 => { | ||
| 131 | var x: f128 = undefined; | ||
| 132 | const p = @ptrCast(*volatile f128, &x); | ||
| 133 | p.* = x; | ||
| 134 | }, | ||
| 135 | else => { | ||
| 136 | @compileError("forceEval not implemented for " ++ @typeName(T)); | ||
| 137 | }, | ||
| 138 | } | ||
| 139 | } | 114 | } |
| 140 | 115 | ||
| 141 | pub fn raiseInvalid() void { | 116 | pub fn raiseInvalid() void { |
| ... | @@ -621,6 +596,59 @@ fn testDivFloor() void { | ... | @@ -621,6 +596,59 @@ fn testDivFloor() void { |
| 621 | testing.expect((divFloor(f32, -5.0, 3.0) catch unreachable) == -2.0); | 596 | testing.expect((divFloor(f32, -5.0, 3.0) catch unreachable) == -2.0); |
| 622 | } | 597 | } |
| 623 | 598 | ||
| 599 | pub fn divCeil(comptime T: type, numerator: T, denominator: T) !T { | ||
| 600 | @setRuntimeSafety(false); | ||
| 601 | if (comptime std.meta.trait.isNumber(T) and denominator == 0) return error.DivisionByZero; | ||
| 602 | const info = @typeInfo(T); | ||
| 603 | switch (info) { | ||
| 604 | .ComptimeFloat, .Float => return @ceil(numerator / denominator), | ||
| 605 | .ComptimeInt, .Int => { | ||
| 606 | if (numerator < 0 and denominator < 0) { | ||
| 607 | if (info == .Int and numerator == minInt(T) and denominator == -1) | ||
| 608 | return error.Overflow; | ||
| 609 | return @divFloor(numerator + 1, denominator) + 1; | ||
| 610 | } | ||
| 611 | if (numerator > 0 and denominator > 0) | ||
| 612 | return @divFloor(numerator - 1, denominator) + 1; | ||
| 613 | return @divTrunc(numerator, denominator); | ||
| 614 | }, | ||
| 615 | else => @compileError("divCeil unsupported on " ++ @typeName(T)), | ||
| 616 | } | ||
| 617 | } | ||
| 618 | |||
| 619 | test "math.divCeil" { | ||
| 620 | testDivCeil(); | ||
| 621 | comptime testDivCeil(); | ||
| 622 | } | ||
| 623 | fn testDivCeil() void { | ||
| 624 | testing.expectEqual(@as(i32, 2), divCeil(i32, 5, 3) catch unreachable); | ||
| 625 | testing.expectEqual(@as(i32, -1), divCeil(i32, -5, 3) catch unreachable); | ||
| 626 | testing.expectEqual(@as(i32, -1), divCeil(i32, 5, -3) catch unreachable); | ||
| 627 | testing.expectEqual(@as(i32, 2), divCeil(i32, -5, -3) catch unreachable); | ||
| 628 | testing.expectEqual(@as(i32, 0), divCeil(i32, 0, 5) catch unreachable); | ||
| 629 | testing.expectEqual(@as(u32, 0), divCeil(u32, 0, 5) catch unreachable); | ||
| 630 | testing.expectError(error.DivisionByZero, divCeil(i8, -5, 0)); | ||
| 631 | testing.expectError(error.Overflow, divCeil(i8, -128, -1)); | ||
| 632 | |||
| 633 | testing.expectEqual(@as(f32, 0.0), divCeil(f32, 0.0, 5.0) catch unreachable); | ||
| 634 | testing.expectEqual(@as(f32, 2.0), divCeil(f32, 5.0, 3.0) catch unreachable); | ||
| 635 | testing.expectEqual(@as(f32, -1.0), divCeil(f32, -5.0, 3.0) catch unreachable); | ||
| 636 | testing.expectEqual(@as(f32, -1.0), divCeil(f32, 5.0, -3.0) catch unreachable); | ||
| 637 | testing.expectEqual(@as(f32, 2.0), divCeil(f32, -5.0, -3.0) catch unreachable); | ||
| 638 | |||
| 639 | testing.expectEqual(6, divCeil(comptime_int, 23, 4) catch unreachable); | ||
| 640 | testing.expectEqual(-5, divCeil(comptime_int, -23, 4) catch unreachable); | ||
| 641 | testing.expectEqual(-5, divCeil(comptime_int, 23, -4) catch unreachable); | ||
| 642 | testing.expectEqual(6, divCeil(comptime_int, -23, -4) catch unreachable); | ||
| 643 | testing.expectError(error.DivisionByZero, divCeil(comptime_int, 23, 0)); | ||
| 644 | |||
| 645 | testing.expectEqual(6.0, divCeil(comptime_float, 23.0, 4.0) catch unreachable); | ||
| 646 | testing.expectEqual(-5.0, divCeil(comptime_float, -23.0, 4.0) catch unreachable); | ||
| 647 | testing.expectEqual(-5.0, divCeil(comptime_float, 23.0, -4.0) catch unreachable); | ||
| 648 | testing.expectEqual(6.0, divCeil(comptime_float, -23.0, -4.0) catch unreachable); | ||
| 649 | testing.expectError(error.DivisionByZero, divCeil(comptime_float, 23.0, 0.0)); | ||
| 650 | } | ||
| 651 | |||
| 624 | pub fn divExact(comptime T: type, numerator: T, denominator: T) !T { | 652 | pub fn divExact(comptime T: type, numerator: T, denominator: T) !T { |
| 625 | @setRuntimeSafety(false); | 653 | @setRuntimeSafety(false); |
| 626 | if (denominator == 0) return error.DivisionByZero; | 654 | if (denominator == 0) return error.DivisionByZero; |
lib/std/math/asinh.zig+2-2| ... | @@ -56,7 +56,7 @@ fn asinh32(x: f32) f32 { | ... | @@ -56,7 +56,7 @@ fn asinh32(x: f32) f32 { |
| 56 | } | 56 | } |
| 57 | // |x| < 0x1p-12, inexact if x != 0 | 57 | // |x| < 0x1p-12, inexact if x != 0 |
| 58 | else { | 58 | else { |
| 59 | math.forceEval(x + 0x1.0p120); | 59 | math.doNotOptimizeAway(x + 0x1.0p120); |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | return if (s != 0) -rx else rx; | 62 | return if (s != 0) -rx else rx; |
| ... | @@ -87,7 +87,7 @@ fn asinh64(x: f64) f64 { | ... | @@ -87,7 +87,7 @@ fn asinh64(x: f64) f64 { |
| 87 | } | 87 | } |
| 88 | // |x| < 0x1p-12, inexact if x != 0 | 88 | // |x| < 0x1p-12, inexact if x != 0 |
| 89 | else { | 89 | else { |
| 90 | math.forceEval(x + 0x1.0p120); | 90 | math.doNotOptimizeAway(x + 0x1.0p120); |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | return if (s != 0) -rx else rx; | 93 | return if (s != 0) -rx else rx; |
lib/std/math/atan.zig+2-2| ... | @@ -72,7 +72,7 @@ fn atan32(x_: f32) f32 { | ... | @@ -72,7 +72,7 @@ fn atan32(x_: f32) f32 { |
| 72 | // |x| < 2^(-12) | 72 | // |x| < 2^(-12) |
| 73 | if (ix < 0x39800000) { | 73 | if (ix < 0x39800000) { |
| 74 | if (ix < 0x00800000) { | 74 | if (ix < 0x00800000) { |
| 75 | math.forceEval(x * x); | 75 | math.doNotOptimizeAway(x * x); |
| 76 | } | 76 | } |
| 77 | return x; | 77 | return x; |
| 78 | } | 78 | } |
| ... | @@ -170,7 +170,7 @@ fn atan64(x_: f64) f64 { | ... | @@ -170,7 +170,7 @@ fn atan64(x_: f64) f64 { |
| 170 | // |x| < 2^(-27) | 170 | // |x| < 2^(-27) |
| 171 | if (ix < 0x3E400000) { | 171 | if (ix < 0x3E400000) { |
| 172 | if (ix < 0x00100000) { | 172 | if (ix < 0x00100000) { |
| 173 | math.forceEval(@floatCast(f32, x)); | 173 | math.doNotOptimizeAway(@floatCast(f32, x)); |
| 174 | } | 174 | } |
| 175 | return x; | 175 | return x; |
| 176 | } | 176 | } |
lib/std/math/atanh.zig+2-2| ... | @@ -45,7 +45,7 @@ fn atanh_32(x: f32) f32 { | ... | @@ -45,7 +45,7 @@ fn atanh_32(x: f32) f32 { |
| 45 | if (u < 0x3F800000 - (32 << 23)) { | 45 | if (u < 0x3F800000 - (32 << 23)) { |
| 46 | // underflow | 46 | // underflow |
| 47 | if (u < (1 << 23)) { | 47 | if (u < (1 << 23)) { |
| 48 | math.forceEval(y * y); | 48 | math.doNotOptimizeAway(y * y); |
| 49 | } | 49 | } |
| 50 | } | 50 | } |
| 51 | // |x| < 0.5 | 51 | // |x| < 0.5 |
| ... | @@ -74,7 +74,7 @@ fn atanh_64(x: f64) f64 { | ... | @@ -74,7 +74,7 @@ fn atanh_64(x: f64) f64 { |
| 74 | if (e < 0x3FF - 32) { | 74 | if (e < 0x3FF - 32) { |
| 75 | // underflow | 75 | // underflow |
| 76 | if (e == 0) { | 76 | if (e == 0) { |
| 77 | math.forceEval(@floatCast(f32, y)); | 77 | math.doNotOptimizeAway(@floatCast(f32, y)); |
| 78 | } | 78 | } |
| 79 | } | 79 | } |
| 80 | // |x| < 0.5 | 80 | // |x| < 0.5 |
lib/std/math/ceil.zig+4-4| ... | @@ -47,14 +47,14 @@ fn ceil32(x: f32) f32 { | ... | @@ -47,14 +47,14 @@ fn ceil32(x: f32) f32 { |
| 47 | if (u & m == 0) { | 47 | if (u & m == 0) { |
| 48 | return x; | 48 | return x; |
| 49 | } | 49 | } |
| 50 | math.forceEval(x + 0x1.0p120); | 50 | math.doNotOptimizeAway(x + 0x1.0p120); |
| 51 | if (u >> 31 == 0) { | 51 | if (u >> 31 == 0) { |
| 52 | u += m; | 52 | u += m; |
| 53 | } | 53 | } |
| 54 | u &= ~m; | 54 | u &= ~m; |
| 55 | return @bitCast(f32, u); | 55 | return @bitCast(f32, u); |
| 56 | } else { | 56 | } else { |
| 57 | math.forceEval(x + 0x1.0p120); | 57 | math.doNotOptimizeAway(x + 0x1.0p120); |
| 58 | if (u >> 31 != 0) { | 58 | if (u >> 31 != 0) { |
| 59 | return -0.0; | 59 | return -0.0; |
| 60 | } else { | 60 | } else { |
| ... | @@ -79,7 +79,7 @@ fn ceil64(x: f64) f64 { | ... | @@ -79,7 +79,7 @@ fn ceil64(x: f64) f64 { |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | if (e <= 0x3FF - 1) { | 81 | if (e <= 0x3FF - 1) { |
| 82 | math.forceEval(y); | 82 | math.doNotOptimizeAway(y); |
| 83 | if (u >> 63 != 0) { | 83 | if (u >> 63 != 0) { |
| 84 | return -0.0; | 84 | return -0.0; |
| 85 | } else { | 85 | } else { |
| ... | @@ -106,7 +106,7 @@ fn ceil128(x: f128) f128 { | ... | @@ -106,7 +106,7 @@ fn ceil128(x: f128) f128 { |
| 106 | } | 106 | } |
| 107 | 107 | ||
| 108 | if (e <= 0x3FFF - 1) { | 108 | if (e <= 0x3FFF - 1) { |
| 109 | math.forceEval(y); | 109 | math.doNotOptimizeAway(y); |
| 110 | if (u >> 127 != 0) { | 110 | if (u >> 127 != 0) { |
| 111 | return -0.0; | 111 | return -0.0; |
| 112 | } else { | 112 | } else { |
lib/std/math/exp.zig+4-4| ... | @@ -56,7 +56,7 @@ fn exp32(x_: f32) f32 { | ... | @@ -56,7 +56,7 @@ fn exp32(x_: f32) f32 { |
| 56 | return x * 0x1.0p127; | 56 | return x * 0x1.0p127; |
| 57 | } | 57 | } |
| 58 | if (sign != 0) { | 58 | if (sign != 0) { |
| 59 | math.forceEval(-0x1.0p-149 / x); // overflow | 59 | math.doNotOptimizeAway(-0x1.0p-149 / x); // overflow |
| 60 | // x <= -103.972084 | 60 | // x <= -103.972084 |
| 61 | if (hx >= 0x42CFF1B5) { | 61 | if (hx >= 0x42CFF1B5) { |
| 62 | return 0; | 62 | return 0; |
| ... | @@ -88,7 +88,7 @@ fn exp32(x_: f32) f32 { | ... | @@ -88,7 +88,7 @@ fn exp32(x_: f32) f32 { |
| 88 | hi = x; | 88 | hi = x; |
| 89 | lo = 0; | 89 | lo = 0; |
| 90 | } else { | 90 | } else { |
| 91 | math.forceEval(0x1.0p127 + x); // inexact | 91 | math.doNotOptimizeAway(0x1.0p127 + x); // inexact |
| 92 | return 1 + x; | 92 | return 1 + x; |
| 93 | } | 93 | } |
| 94 | 94 | ||
| ... | @@ -139,7 +139,7 @@ fn exp64(x_: f64) f64 { | ... | @@ -139,7 +139,7 @@ fn exp64(x_: f64) f64 { |
| 139 | } | 139 | } |
| 140 | if (x < -708.39641853226410622) { | 140 | if (x < -708.39641853226410622) { |
| 141 | // underflow if x != -inf | 141 | // underflow if x != -inf |
| 142 | // math.forceEval(@as(f32, -0x1.0p-149 / x)); | 142 | // math.doNotOptimizeAway(@as(f32, -0x1.0p-149 / x)); |
| 143 | if (x < -745.13321910194110842) { | 143 | if (x < -745.13321910194110842) { |
| 144 | return 0; | 144 | return 0; |
| 145 | } | 145 | } |
| ... | @@ -172,7 +172,7 @@ fn exp64(x_: f64) f64 { | ... | @@ -172,7 +172,7 @@ fn exp64(x_: f64) f64 { |
| 172 | lo = 0; | 172 | lo = 0; |
| 173 | } else { | 173 | } else { |
| 174 | // inexact if x != 0 | 174 | // inexact if x != 0 |
| 175 | // math.forceEval(0x1.0p1023 + x); | 175 | // math.doNotOptimizeAway(0x1.0p1023 + x); |
| 176 | return 1 + x; | 176 | return 1 + x; |
| 177 | } | 177 | } |
| 178 | 178 |
lib/std/math/exp2.zig+2-2| ... | @@ -70,7 +70,7 @@ fn exp2_32(x: f32) f32 { | ... | @@ -70,7 +70,7 @@ fn exp2_32(x: f32) f32 { |
| 70 | // x < -126 | 70 | // x < -126 |
| 71 | if (u >= 0x80000000) { | 71 | if (u >= 0x80000000) { |
| 72 | if (u >= 0xC3160000 or u & 0x000FFFF != 0) { | 72 | if (u >= 0xC3160000 or u & 0x000FFFF != 0) { |
| 73 | math.forceEval(-0x1.0p-149 / x); | 73 | math.doNotOptimizeAway(-0x1.0p-149 / x); |
| 74 | } | 74 | } |
| 75 | // x <= -150 | 75 | // x <= -150 |
| 76 | if (u >= 0x3160000) { | 76 | if (u >= 0x3160000) { |
| ... | @@ -393,7 +393,7 @@ fn exp2_64(x: f64) f64 { | ... | @@ -393,7 +393,7 @@ fn exp2_64(x: f64) f64 { |
| 393 | if (ux >> 63 != 0) { | 393 | if (ux >> 63 != 0) { |
| 394 | // underflow | 394 | // underflow |
| 395 | if (x <= -1075 or x - 0x1.0p52 + 0x1.0p52 != x) { | 395 | if (x <= -1075 or x - 0x1.0p52 + 0x1.0p52 != x) { |
| 396 | math.forceEval(@floatCast(f32, -0x1.0p-149 / x)); | 396 | math.doNotOptimizeAway(@floatCast(f32, -0x1.0p-149 / x)); |
| 397 | } | 397 | } |
| 398 | if (x <= -1075) { | 398 | if (x <= -1075) { |
| 399 | return 0; | 399 | return 0; |
lib/std/math/expm1.zig+2-2| ... | @@ -106,7 +106,7 @@ fn expm1_32(x_: f32) f32 { | ... | @@ -106,7 +106,7 @@ fn expm1_32(x_: f32) f32 { |
| 106 | // |x| < 2^(-25) | 106 | // |x| < 2^(-25) |
| 107 | else if (hx < 0x33000000) { | 107 | else if (hx < 0x33000000) { |
| 108 | if (hx < 0x00800000) { | 108 | if (hx < 0x00800000) { |
| 109 | math.forceEval(x * x); | 109 | math.doNotOptimizeAway(x * x); |
| 110 | } | 110 | } |
| 111 | return x; | 111 | return x; |
| 112 | } else { | 112 | } else { |
| ... | @@ -237,7 +237,7 @@ fn expm1_64(x_: f64) f64 { | ... | @@ -237,7 +237,7 @@ fn expm1_64(x_: f64) f64 { |
| 237 | // |x| < 2^(-54) | 237 | // |x| < 2^(-54) |
| 238 | else if (hx < 0x3C900000) { | 238 | else if (hx < 0x3C900000) { |
| 239 | if (hx < 0x00100000) { | 239 | if (hx < 0x00100000) { |
| 240 | math.forceEval(@floatCast(f32, x)); | 240 | math.doNotOptimizeAway(@floatCast(f32, x)); |
| 241 | } | 241 | } |
| 242 | return x; | 242 | return x; |
| 243 | } else { | 243 | } else { |
lib/std/math/floor.zig+6-6| ... | @@ -50,13 +50,13 @@ fn floor16(x: f16) f16 { | ... | @@ -50,13 +50,13 @@ fn floor16(x: f16) f16 { |
| 50 | if (u & m == 0) { | 50 | if (u & m == 0) { |
| 51 | return x; | 51 | return x; |
| 52 | } | 52 | } |
| 53 | math.forceEval(x + 0x1.0p120); | 53 | math.doNotOptimizeAway(x + 0x1.0p120); |
| 54 | if (u >> 15 != 0) { | 54 | if (u >> 15 != 0) { |
| 55 | u += m; | 55 | u += m; |
| 56 | } | 56 | } |
| 57 | return @bitCast(f16, u & ~m); | 57 | return @bitCast(f16, u & ~m); |
| 58 | } else { | 58 | } else { |
| 59 | math.forceEval(x + 0x1.0p120); | 59 | math.doNotOptimizeAway(x + 0x1.0p120); |
| 60 | if (u >> 15 == 0) { | 60 | if (u >> 15 == 0) { |
| 61 | return 0.0; | 61 | return 0.0; |
| 62 | } else { | 62 | } else { |
| ... | @@ -84,13 +84,13 @@ fn floor32(x: f32) f32 { | ... | @@ -84,13 +84,13 @@ fn floor32(x: f32) f32 { |
| 84 | if (u & m == 0) { | 84 | if (u & m == 0) { |
| 85 | return x; | 85 | return x; |
| 86 | } | 86 | } |
| 87 | math.forceEval(x + 0x1.0p120); | 87 | math.doNotOptimizeAway(x + 0x1.0p120); |
| 88 | if (u >> 31 != 0) { | 88 | if (u >> 31 != 0) { |
| 89 | u += m; | 89 | u += m; |
| 90 | } | 90 | } |
| 91 | return @bitCast(f32, u & ~m); | 91 | return @bitCast(f32, u & ~m); |
| 92 | } else { | 92 | } else { |
| 93 | math.forceEval(x + 0x1.0p120); | 93 | math.doNotOptimizeAway(x + 0x1.0p120); |
| 94 | if (u >> 31 == 0) { | 94 | if (u >> 31 == 0) { |
| 95 | return 0.0; | 95 | return 0.0; |
| 96 | } else { | 96 | } else { |
| ... | @@ -115,7 +115,7 @@ fn floor64(x: f64) f64 { | ... | @@ -115,7 +115,7 @@ fn floor64(x: f64) f64 { |
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | if (e <= 0x3FF - 1) { | 117 | if (e <= 0x3FF - 1) { |
| 118 | math.forceEval(y); | 118 | math.doNotOptimizeAway(y); |
| 119 | if (u >> 63 != 0) { | 119 | if (u >> 63 != 0) { |
| 120 | return -1.0; | 120 | return -1.0; |
| 121 | } else { | 121 | } else { |
| ... | @@ -142,7 +142,7 @@ fn floor128(x: f128) f128 { | ... | @@ -142,7 +142,7 @@ fn floor128(x: f128) f128 { |
| 142 | } | 142 | } |
| 143 | 143 | ||
| 144 | if (e <= 0x3FFF - 1) { | 144 | if (e <= 0x3FFF - 1) { |
| 145 | math.forceEval(y); | 145 | math.doNotOptimizeAway(y); |
| 146 | if (u >> 127 != 0) { | 146 | if (u >> 127 != 0) { |
| 147 | return -1.0; | 147 | return -1.0; |
| 148 | } else { | 148 | } else { |
lib/std/math/log1p.zig+1-1| ... | @@ -62,7 +62,7 @@ fn log1p_32(x: f32) f32 { | ... | @@ -62,7 +62,7 @@ fn log1p_32(x: f32) f32 { |
| 62 | if ((ix << 1) < (0x33800000 << 1)) { | 62 | if ((ix << 1) < (0x33800000 << 1)) { |
| 63 | // underflow if subnormal | 63 | // underflow if subnormal |
| 64 | if (ix & 0x7F800000 == 0) { | 64 | if (ix & 0x7F800000 == 0) { |
| 65 | math.forceEval(x * x); | 65 | math.doNotOptimizeAway(x * x); |
| 66 | } | 66 | } |
| 67 | return x; | 67 | return x; |
| 68 | } | 68 | } |
lib/std/math/round.zig+3-3| ... | @@ -43,7 +43,7 @@ fn round32(x_: f32) f32 { | ... | @@ -43,7 +43,7 @@ fn round32(x_: f32) f32 { |
| 43 | x = -x; | 43 | x = -x; |
| 44 | } | 44 | } |
| 45 | if (e < 0x7F - 1) { | 45 | if (e < 0x7F - 1) { |
| 46 | math.forceEval(x + math.f32_toint); | 46 | math.doNotOptimizeAway(x + math.f32_toint); |
| 47 | return 0 * @bitCast(f32, u); | 47 | return 0 * @bitCast(f32, u); |
| 48 | } | 48 | } |
| 49 | 49 | ||
| ... | @@ -76,7 +76,7 @@ fn round64(x_: f64) f64 { | ... | @@ -76,7 +76,7 @@ fn round64(x_: f64) f64 { |
| 76 | x = -x; | 76 | x = -x; |
| 77 | } | 77 | } |
| 78 | if (e < 0x3ff - 1) { | 78 | if (e < 0x3ff - 1) { |
| 79 | math.forceEval(x + math.f64_toint); | 79 | math.doNotOptimizeAway(x + math.f64_toint); |
| 80 | return 0 * @bitCast(f64, u); | 80 | return 0 * @bitCast(f64, u); |
| 81 | } | 81 | } |
| 82 | 82 | ||
| ... | @@ -109,7 +109,7 @@ fn round128(x_: f128) f128 { | ... | @@ -109,7 +109,7 @@ fn round128(x_: f128) f128 { |
| 109 | x = -x; | 109 | x = -x; |
| 110 | } | 110 | } |
| 111 | if (e < 0x3FFF - 1) { | 111 | if (e < 0x3FFF - 1) { |
| 112 | math.forceEval(x + math.f64_toint); | 112 | math.doNotOptimizeAway(x + math.f64_toint); |
| 113 | return 0 * @bitCast(f128, u); | 113 | return 0 * @bitCast(f128, u); |
| 114 | } | 114 | } |
| 115 | 115 |
lib/std/math/tanh.zig+2-2| ... | @@ -67,7 +67,7 @@ fn tanh32(x: f32) f32 { | ... | @@ -67,7 +67,7 @@ fn tanh32(x: f32) f32 { |
| 67 | } | 67 | } |
| 68 | // |x| is subnormal | 68 | // |x| is subnormal |
| 69 | else { | 69 | else { |
| 70 | math.forceEval(x * x); | 70 | math.doNotOptimizeAway(x * x); |
| 71 | t = x; | 71 | t = x; |
| 72 | } | 72 | } |
| 73 | 73 | ||
| ... | @@ -112,7 +112,7 @@ fn tanh64(x: f64) f64 { | ... | @@ -112,7 +112,7 @@ fn tanh64(x: f64) f64 { |
| 112 | } | 112 | } |
| 113 | // |x| is subnormal | 113 | // |x| is subnormal |
| 114 | else { | 114 | else { |
| 115 | math.forceEval(@floatCast(f32, x)); | 115 | math.doNotOptimizeAway(@floatCast(f32, x)); |
| 116 | t = x; | 116 | t = x; |
| 117 | } | 117 | } |
| 118 | 118 |
lib/std/math/trunc.zig+3-3| ... | @@ -46,7 +46,7 @@ fn trunc32(x: f32) f32 { | ... | @@ -46,7 +46,7 @@ fn trunc32(x: f32) f32 { |
| 46 | if (u & m == 0) { | 46 | if (u & m == 0) { |
| 47 | return x; | 47 | return x; |
| 48 | } else { | 48 | } else { |
| 49 | math.forceEval(x + 0x1p120); | 49 | math.doNotOptimizeAway(x + 0x1p120); |
| 50 | return @bitCast(f32, u & ~m); | 50 | return @bitCast(f32, u & ~m); |
| 51 | } | 51 | } |
| 52 | } | 52 | } |
| ... | @@ -67,7 +67,7 @@ fn trunc64(x: f64) f64 { | ... | @@ -67,7 +67,7 @@ fn trunc64(x: f64) f64 { |
| 67 | if (u & m == 0) { | 67 | if (u & m == 0) { |
| 68 | return x; | 68 | return x; |
| 69 | } else { | 69 | } else { |
| 70 | math.forceEval(x + 0x1p120); | 70 | math.doNotOptimizeAway(x + 0x1p120); |
| 71 | return @bitCast(f64, u & ~m); | 71 | return @bitCast(f64, u & ~m); |
| 72 | } | 72 | } |
| 73 | } | 73 | } |
| ... | @@ -88,7 +88,7 @@ fn trunc128(x: f128) f128 { | ... | @@ -88,7 +88,7 @@ fn trunc128(x: f128) f128 { |
| 88 | if (u & m == 0) { | 88 | if (u & m == 0) { |
| 89 | return x; | 89 | return x; |
| 90 | } else { | 90 | } else { |
| 91 | math.forceEval(x + 0x1p120); | 91 | math.doNotOptimizeAway(x + 0x1p120); |
| 92 | return @bitCast(f128, u & ~m); | 92 | return @bitCast(f128, u & ~m); |
| 93 | } | 93 | } |
| 94 | } | 94 | } |
lib/std/mem.zig+41| ... | @@ -893,6 +893,36 @@ test "mem.indexOf" { | ... | @@ -893,6 +893,36 @@ test "mem.indexOf" { |
| 893 | testing.expect(lastIndexOfScalar(u8, "boo", 'o').? == 2); | 893 | testing.expect(lastIndexOfScalar(u8, "boo", 'o').? == 2); |
| 894 | } | 894 | } |
| 895 | 895 | ||
| 896 | /// Returns the number of needles inside the haystack | ||
| 897 | /// needle.len must be > 0 | ||
| 898 | /// does not count overlapping needles | ||
| 899 | pub fn count(comptime T: type, haystack: []const T, needle: []const T) usize { | ||
| 900 | assert(needle.len > 0); | ||
| 901 | var i: usize = 0; | ||
| 902 | var found: usize = 0; | ||
| 903 | |||
| 904 | while (indexOfPos(T, haystack, i, needle)) |idx| { | ||
| 905 | i = idx + needle.len; | ||
| 906 | found += 1; | ||
| 907 | } | ||
| 908 | |||
| 909 | return found; | ||
| 910 | } | ||
| 911 | |||
| 912 | test "mem.count" { | ||
| 913 | testing.expect(count(u8, "", "h") == 0); | ||
| 914 | testing.expect(count(u8, "h", "h") == 1); | ||
| 915 | testing.expect(count(u8, "hh", "h") == 2); | ||
| 916 | testing.expect(count(u8, "world!", "hello") == 0); | ||
| 917 | testing.expect(count(u8, "hello world!", "hello") == 1); | ||
| 918 | testing.expect(count(u8, " abcabc abc", "abc") == 3); | ||
| 919 | testing.expect(count(u8, "udexdcbvbruhasdrw", "bruh") == 1); | ||
| 920 | testing.expect(count(u8, "foo bar", "o bar") == 1); | ||
| 921 | testing.expect(count(u8, "foofoofoo", "foo") == 3); | ||
| 922 | testing.expect(count(u8, "fffffff", "ff") == 3); | ||
| 923 | testing.expect(count(u8, "owowowu", "owowu") == 1); | ||
| 924 | } | ||
| 925 | |||
| 896 | /// Reads an integer from memory with size equal to bytes.len. | 926 | /// Reads an integer from memory with size equal to bytes.len. |
| 897 | /// T specifies the return type, which must be large enough to store | 927 | /// T specifies the return type, which must be large enough to store |
| 898 | /// the result. | 928 | /// the result. |
| ... | @@ -2158,6 +2188,17 @@ pub fn alignForwardGeneric(comptime T: type, addr: T, alignment: T) T { | ... | @@ -2158,6 +2188,17 @@ pub fn alignForwardGeneric(comptime T: type, addr: T, alignment: T) T { |
| 2158 | return alignBackwardGeneric(T, addr + (alignment - 1), alignment); | 2188 | return alignBackwardGeneric(T, addr + (alignment - 1), alignment); |
| 2159 | } | 2189 | } |
| 2160 | 2190 | ||
| 2191 | /// Force an evaluation of the expression; this tries to prevent | ||
| 2192 | /// the compiler from optimizing the computation away even if the | ||
| 2193 | /// result eventually gets discarded. | ||
| 2194 | pub fn doNotOptimizeAway(val: anytype) void { | ||
| 2195 | asm volatile ("" | ||
| 2196 | : | ||
| 2197 | : [val] "rm" (val) | ||
| 2198 | : "memory" | ||
| 2199 | ); | ||
| 2200 | } | ||
| 2201 | |||
| 2161 | test "alignForward" { | 2202 | test "alignForward" { |
| 2162 | testing.expect(alignForward(1, 1) == 1); | 2203 | testing.expect(alignForward(1, 1) == 1); |
| 2163 | testing.expect(alignForward(2, 1) == 2); | 2204 | testing.expect(alignForward(2, 1) == 2); |
lib/std/meta/trailer_flags.zig+86-49| ... | @@ -8,6 +8,7 @@ const meta = std.meta; | ... | @@ -8,6 +8,7 @@ const meta = std.meta; |
| 8 | const testing = std.testing; | 8 | const testing = std.testing; |
| 9 | const mem = std.mem; | 9 | const mem = std.mem; |
| 10 | const assert = std.debug.assert; | 10 | const assert = std.debug.assert; |
| 11 | const TypeInfo = std.builtin.TypeInfo; | ||
| 11 | 12 | ||
| 12 | /// This is useful for saving memory when allocating an object that has many | 13 | /// This is useful for saving memory when allocating an object that has many |
| 13 | /// optional components. The optional objects are allocated sequentially in | 14 | /// optional components. The optional objects are allocated sequentially in |
| ... | @@ -17,91 +18,125 @@ pub fn TrailerFlags(comptime Fields: type) type { | ... | @@ -17,91 +18,125 @@ pub fn TrailerFlags(comptime Fields: type) type { |
| 17 | return struct { | 18 | return struct { |
| 18 | bits: Int, | 19 | bits: Int, |
| 19 | 20 | ||
| 20 | pub const Int = @Type(.{ .Int = .{ .bits = bit_count, .is_signed = false } }); | 21 | pub const Int = meta.Int(false, bit_count); |
| 21 | pub const bit_count = @typeInfo(Fields).Struct.fields.len; | 22 | pub const bit_count = @typeInfo(Fields).Struct.fields.len; |
| 22 | 23 | ||
| 24 | pub const FieldEnum = blk: { | ||
| 25 | comptime var fields: [bit_count]TypeInfo.EnumField = undefined; | ||
| 26 | inline for (@typeInfo(Fields).Struct.fields) |struct_field, i| | ||
| 27 | fields[i] = .{ .name = struct_field.name, .value = i }; | ||
| 28 | break :blk @Type(.{ | ||
| 29 | .Enum = .{ | ||
| 30 | .layout = .Auto, | ||
| 31 | .tag_type = std.math.IntFittingRange(0, bit_count - 1), | ||
| 32 | .fields = &fields, | ||
| 33 | .decls = &[_]TypeInfo.Declaration{}, | ||
| 34 | .is_exhaustive = true, | ||
| 35 | }, | ||
| 36 | }); | ||
| 37 | }; | ||
| 38 | |||
| 39 | pub const InitStruct = blk: { | ||
| 40 | comptime var fields: [bit_count]TypeInfo.StructField = undefined; | ||
| 41 | inline for (@typeInfo(Fields).Struct.fields) |struct_field, i| { | ||
| 42 | fields[i] = TypeInfo.StructField{ | ||
| 43 | .name = struct_field.name, | ||
| 44 | .field_type = ?struct_field.field_type, | ||
| 45 | .default_value = @as( | ||
| 46 | ??struct_field.field_type, | ||
| 47 | @as(?struct_field.field_type, null), | ||
| 48 | ), | ||
| 49 | }; | ||
| 50 | } | ||
| 51 | break :blk @Type(.{ | ||
| 52 | .Struct = .{ | ||
| 53 | .layout = .Auto, | ||
| 54 | .fields = &fields, | ||
| 55 | .decls = &[_]TypeInfo.Declaration{}, | ||
| 56 | .is_tuple = false, | ||
| 57 | }, | ||
| 58 | }); | ||
| 59 | }; | ||
| 60 | |||
| 23 | pub const Self = @This(); | 61 | pub const Self = @This(); |
| 24 | 62 | ||
| 25 | pub fn has(self: Self, comptime name: []const u8) bool { | 63 | pub fn has(self: Self, comptime field: FieldEnum) bool { |
| 26 | const field_index = meta.fieldIndex(Fields, name).?; | 64 | const field_index = @enumToInt(field); |
| 27 | return (self.bits & (1 << field_index)) != 0; | 65 | return (self.bits & (1 << field_index)) != 0; |
| 28 | } | 66 | } |
| 29 | 67 | ||
| 30 | pub fn get(self: Self, p: [*]align(@alignOf(Fields)) const u8, comptime name: []const u8) ?Field(name) { | 68 | pub fn get(self: Self, p: [*]align(@alignOf(Fields)) const u8, comptime field: FieldEnum) ?Field(field) { |
| 31 | if (!self.has(name)) | 69 | if (!self.has(field)) |
| 32 | return null; | 70 | return null; |
| 33 | return self.ptrConst(p, name).*; | 71 | return self.ptrConst(p, field).*; |
| 34 | } | 72 | } |
| 35 | 73 | ||
| 36 | pub fn setFlag(self: *Self, comptime name: []const u8) void { | 74 | pub fn setFlag(self: *Self, comptime field: FieldEnum) void { |
| 37 | const field_index = meta.fieldIndex(Fields, name).?; | 75 | const field_index = @enumToInt(field); |
| 38 | self.bits |= 1 << field_index; | 76 | self.bits |= 1 << field_index; |
| 39 | } | 77 | } |
| 40 | 78 | ||
| 41 | /// `fields` is a struct with each field set to an optional value. | 79 | /// `fields` is a struct with each field set to an optional value. |
| 42 | /// Missing fields are assumed to be `null`. | ||
| 43 | /// Only the non-null bits are observed and are used to set the flag bits. | 80 | /// Only the non-null bits are observed and are used to set the flag bits. |
| 44 | pub fn init(fields: anytype) Self { | 81 | pub fn init(fields: InitStruct) Self { |
| 45 | var self: Self = .{ .bits = 0 }; | 82 | var self: Self = .{ .bits = 0 }; |
| 46 | inline for (@typeInfo(@TypeOf(fields)).Struct.fields) |field| { | 83 | inline for (@typeInfo(Fields).Struct.fields) |field, i| { |
| 47 | const opt: ?Field(field.name) = @field(fields, field.name); | 84 | if (@field(fields, field.name)) |_| |
| 48 | const field_index = meta.fieldIndex(Fields, field.name).?; | 85 | self.bits |= 1 << i; |
| 49 | self.bits |= @as(Int, @boolToInt(opt != null)) << field_index; | ||
| 50 | } | 86 | } |
| 51 | return self; | 87 | return self; |
| 52 | } | 88 | } |
| 53 | 89 | ||
| 54 | /// `fields` is a struct with each field set to an optional value (same as `init`). | 90 | /// `fields` is a struct with each field set to an optional value (same as `init`). |
| 55 | /// Missing fields are assumed to be `null`. | 91 | pub fn setMany(self: Self, p: [*]align(@alignOf(Fields)) u8, fields: InitStruct) void { |
| 56 | pub fn setMany(self: Self, p: [*]align(@alignOf(Fields)) u8, fields: anytype) void { | 92 | inline for (@typeInfo(Fields).Struct.fields) |field, i| { |
| 57 | inline for (@typeInfo(@TypeOf(fields)).Struct.fields) |field| { | 93 | if (@field(fields, field.name)) |value| |
| 58 | const opt: ?Field(field.name) = @field(fields, field.name); | 94 | self.set(p, @intToEnum(FieldEnum, i), value); |
| 59 | if (opt) |value| { | ||
| 60 | self.set(p, field.name, value); | ||
| 61 | } | ||
| 62 | } | 95 | } |
| 63 | } | 96 | } |
| 64 | 97 | ||
| 65 | pub fn set( | 98 | pub fn set( |
| 66 | self: Self, | 99 | self: Self, |
| 67 | p: [*]align(@alignOf(Fields)) u8, | 100 | p: [*]align(@alignOf(Fields)) u8, |
| 68 | comptime name: []const u8, | 101 | comptime field: FieldEnum, |
| 69 | value: Field(name), | 102 | value: Field(field), |
| 70 | ) void { | 103 | ) void { |
| 71 | self.ptr(p, name).* = value; | 104 | self.ptr(p, field).* = value; |
| 72 | } | 105 | } |
| 73 | 106 | ||
| 74 | pub fn ptr(self: Self, p: [*]align(@alignOf(Fields)) u8, comptime name: []const u8) *Field(name) { | 107 | pub fn ptr(self: Self, p: [*]align(@alignOf(Fields)) u8, comptime field: FieldEnum) *Field(field) { |
| 75 | if (@sizeOf(Field(name)) == 0) | 108 | if (@sizeOf(Field(field)) == 0) |
| 76 | return undefined; | 109 | return undefined; |
| 77 | const off = self.offset(p, name); | 110 | const off = self.offset(p, field); |
| 78 | return @ptrCast(*Field(name), @alignCast(@alignOf(Field(name)), p + off)); | 111 | return @ptrCast(*Field(field), @alignCast(@alignOf(Field(field)), p + off)); |
| 79 | } | 112 | } |
| 80 | 113 | ||
| 81 | pub fn ptrConst(self: Self, p: [*]align(@alignOf(Fields)) const u8, comptime name: []const u8) *const Field(name) { | 114 | pub fn ptrConst(self: Self, p: [*]align(@alignOf(Fields)) const u8, comptime field: FieldEnum) *const Field(field) { |
| 82 | if (@sizeOf(Field(name)) == 0) | 115 | if (@sizeOf(Field(field)) == 0) |
| 83 | return undefined; | 116 | return undefined; |
| 84 | const off = self.offset(p, name); | 117 | const off = self.offset(p, field); |
| 85 | return @ptrCast(*const Field(name), @alignCast(@alignOf(Field(name)), p + off)); | 118 | return @ptrCast(*const Field(field), @alignCast(@alignOf(Field(field)), p + off)); |
| 86 | } | 119 | } |
| 87 | 120 | ||
| 88 | pub fn offset(self: Self, p: [*]align(@alignOf(Fields)) const u8, comptime name: []const u8) usize { | 121 | pub fn offset(self: Self, p: [*]align(@alignOf(Fields)) const u8, comptime field: FieldEnum) usize { |
| 89 | var off: usize = 0; | 122 | var off: usize = 0; |
| 90 | inline for (@typeInfo(Fields).Struct.fields) |field, i| { | 123 | inline for (@typeInfo(Fields).Struct.fields) |field_info, i| { |
| 91 | const active = (self.bits & (1 << i)) != 0; | 124 | const active = (self.bits & (1 << i)) != 0; |
| 92 | if (comptime mem.eql(u8, field.name, name)) { | 125 | if (i == @enumToInt(field)) { |
| 93 | assert(active); | 126 | assert(active); |
| 94 | return mem.alignForwardGeneric(usize, off, @alignOf(field.field_type)); | 127 | return mem.alignForwardGeneric(usize, off, @alignOf(field_info.field_type)); |
| 95 | } else if (active) { | 128 | } else if (active) { |
| 96 | off = mem.alignForwardGeneric(usize, off, @alignOf(field.field_type)); | 129 | off = mem.alignForwardGeneric(usize, off, @alignOf(field_info.field_type)); |
| 97 | off += @sizeOf(field.field_type); | 130 | off += @sizeOf(field_info.field_type); |
| 98 | } | 131 | } |
| 99 | } | 132 | } |
| 100 | @compileError("no field named " ++ name ++ " in type " ++ @typeName(Fields)); | ||
| 101 | } | 133 | } |
| 102 | 134 | ||
| 103 | pub fn Field(comptime name: []const u8) type { | 135 | pub fn Field(comptime field: FieldEnum) type { |
| 104 | return meta.fieldInfo(Fields, name).field_type; | 136 | inline for (@typeInfo(Fields).Struct.fields) |field_info, i| { |
| 137 | if (i == @enumToInt(field)) | ||
| 138 | return field_info.field_type; | ||
| 139 | } | ||
| 105 | } | 140 | } |
| 106 | 141 | ||
| 107 | pub fn sizeInBytes(self: Self) usize { | 142 | pub fn sizeInBytes(self: Self) usize { |
| ... | @@ -125,6 +160,8 @@ test "TrailerFlags" { | ... | @@ -125,6 +160,8 @@ test "TrailerFlags" { |
| 125 | b: bool, | 160 | b: bool, |
| 126 | c: u64, | 161 | c: u64, |
| 127 | }); | 162 | }); |
| 163 | testing.expectEqual(u2, @TagType(Flags.FieldEnum)); | ||
| 164 | |||
| 128 | var flags = Flags.init(.{ | 165 | var flags = Flags.init(.{ |
| 129 | .b = true, | 166 | .b = true, |
| 130 | .c = 1234, | 167 | .c = 1234, |
| ... | @@ -132,19 +169,19 @@ test "TrailerFlags" { | ... | @@ -132,19 +169,19 @@ test "TrailerFlags" { |
| 132 | const slice = try testing.allocator.allocAdvanced(u8, 8, flags.sizeInBytes(), .exact); | 169 | const slice = try testing.allocator.allocAdvanced(u8, 8, flags.sizeInBytes(), .exact); |
| 133 | defer testing.allocator.free(slice); | 170 | defer testing.allocator.free(slice); |
| 134 | 171 | ||
| 135 | flags.set(slice.ptr, "b", false); | 172 | flags.set(slice.ptr, .b, false); |
| 136 | flags.set(slice.ptr, "c", 12345678); | 173 | flags.set(slice.ptr, .c, 12345678); |
| 137 | 174 | ||
| 138 | testing.expect(flags.get(slice.ptr, "a") == null); | 175 | testing.expect(flags.get(slice.ptr, .a) == null); |
| 139 | testing.expect(!flags.get(slice.ptr, "b").?); | 176 | testing.expect(!flags.get(slice.ptr, .b).?); |
| 140 | testing.expect(flags.get(slice.ptr, "c").? == 12345678); | 177 | testing.expect(flags.get(slice.ptr, .c).? == 12345678); |
| 141 | 178 | ||
| 142 | flags.setMany(slice.ptr, .{ | 179 | flags.setMany(slice.ptr, .{ |
| 143 | .b = true, | 180 | .b = true, |
| 144 | .c = 5678, | 181 | .c = 5678, |
| 145 | }); | 182 | }); |
| 146 | 183 | ||
| 147 | testing.expect(flags.get(slice.ptr, "a") == null); | 184 | testing.expect(flags.get(slice.ptr, .a) == null); |
| 148 | testing.expect(flags.get(slice.ptr, "b").?); | 185 | testing.expect(flags.get(slice.ptr, .b).?); |
| 149 | testing.expect(flags.get(slice.ptr, "c").? == 5678); | 186 | testing.expect(flags.get(slice.ptr, .c).? == 5678); |
| 150 | } | 187 | } |
lib/std/os/test.zig+24-2| ... | @@ -125,7 +125,20 @@ test "symlink with relative paths" { | ... | @@ -125,7 +125,20 @@ test "symlink with relative paths" { |
| 125 | try cwd.writeFile("file.txt", "nonsense"); | 125 | try cwd.writeFile("file.txt", "nonsense"); |
| 126 | 126 | ||
| 127 | if (builtin.os.tag == .windows) { | 127 | if (builtin.os.tag == .windows) { |
| 128 | try os.windows.CreateSymbolicLink(cwd.fd, &[_]u16{ 's', 'y', 'm', 'l', 'i', 'n', 'k', 'e', 'd' }, &[_]u16{ 'f', 'i', 'l', 'e', '.', 't', 'x', 't' }, false); | 128 | os.windows.CreateSymbolicLink( |
| 129 | cwd.fd, | ||
| 130 | &[_]u16{ 's', 'y', 'm', 'l', 'i', 'n', 'k', 'e', 'd' }, | ||
| 131 | &[_]u16{ 'f', 'i', 'l', 'e', '.', 't', 'x', 't' }, | ||
| 132 | false, | ||
| 133 | ) catch |err| switch (err) { | ||
| 134 | // Symlink requires admin privileges on windows, so this test can legitimately fail. | ||
| 135 | error.AccessDenied => { | ||
| 136 | try cwd.deleteFile("file.txt"); | ||
| 137 | try cwd.deleteFile("symlinked"); | ||
| 138 | return error.SkipZigTest; | ||
| 139 | }, | ||
| 140 | else => return err, | ||
| 141 | }; | ||
| 129 | } else { | 142 | } else { |
| 130 | try os.symlink("file.txt", "symlinked"); | 143 | try os.symlink("file.txt", "symlinked"); |
| 131 | } | 144 | } |
| ... | @@ -183,7 +196,16 @@ test "readlinkat" { | ... | @@ -183,7 +196,16 @@ test "readlinkat" { |
| 183 | 196 | ||
| 184 | // create a symbolic link | 197 | // create a symbolic link |
| 185 | if (builtin.os.tag == .windows) { | 198 | if (builtin.os.tag == .windows) { |
| 186 | try os.windows.CreateSymbolicLink(tmp.dir.fd, &[_]u16{ 'l', 'i', 'n', 'k' }, &[_]u16{ 'f', 'i', 'l', 'e', '.', 't', 'x', 't' }, false); | 199 | os.windows.CreateSymbolicLink( |
| 200 | tmp.dir.fd, | ||
| 201 | &[_]u16{ 'l', 'i', 'n', 'k' }, | ||
| 202 | &[_]u16{ 'f', 'i', 'l', 'e', '.', 't', 'x', 't' }, | ||
| 203 | false, | ||
| 204 | ) catch |err| switch (err) { | ||
| 205 | // Symlink requires admin privileges on windows, so this test can legitimately fail. | ||
| 206 | error.AccessDenied => return error.SkipZigTest, | ||
| 207 | else => return err, | ||
| 208 | }; | ||
| 187 | } else { | 209 | } else { |
| 188 | try os.symlinkat("file.txt", tmp.dir.fd, "link"); | 210 | try os.symlinkat("file.txt", tmp.dir.fd, "link"); |
| 189 | } | 211 | } |
lib/std/os/uefi/protocols/simple_text_input_protocol.zig+1-1| ... | @@ -11,7 +11,7 @@ const Status = uefi.Status; | ... | @@ -11,7 +11,7 @@ const Status = uefi.Status; |
| 11 | 11 | ||
| 12 | /// Character input devices, e.g. Keyboard | 12 | /// Character input devices, e.g. Keyboard |
| 13 | pub const SimpleTextInputProtocol = extern struct { | 13 | pub const SimpleTextInputProtocol = extern struct { |
| 14 | _reset: fn (*const SimpleTextInputProtocol, bool) callconv(.C) usize, | 14 | _reset: fn (*const SimpleTextInputProtocol, bool) callconv(.C) Status, |
| 15 | _read_key_stroke: fn (*const SimpleTextInputProtocol, *InputKey) callconv(.C) Status, | 15 | _read_key_stroke: fn (*const SimpleTextInputProtocol, *InputKey) callconv(.C) Status, |
| 16 | wait_for_key: Event, | 16 | wait_for_key: Event, |
| 17 | 17 |
lib/std/os/windows.zig+16-3| ... | @@ -164,7 +164,7 @@ pub fn CreateEventExW(attributes: ?*SECURITY_ATTRIBUTES, nameW: [*:0]const u16, | ... | @@ -164,7 +164,7 @@ pub fn CreateEventExW(attributes: ?*SECURITY_ATTRIBUTES, nameW: [*:0]const u16, |
| 164 | } | 164 | } |
| 165 | } | 165 | } |
| 166 | 166 | ||
| 167 | pub const DeviceIoControlError = error{Unexpected}; | 167 | pub const DeviceIoControlError = error{ AccessDenied, Unexpected }; |
| 168 | 168 | ||
| 169 | /// A Zig wrapper around `NtDeviceIoControlFile` and `NtFsControlFile` syscalls. | 169 | /// A Zig wrapper around `NtDeviceIoControlFile` and `NtFsControlFile` syscalls. |
| 170 | /// It implements similar behavior to `DeviceIoControl` and is meant to serve | 170 | /// It implements similar behavior to `DeviceIoControl` and is meant to serve |
| ... | @@ -216,6 +216,7 @@ pub fn DeviceIoControl( | ... | @@ -216,6 +216,7 @@ pub fn DeviceIoControl( |
| 216 | }; | 216 | }; |
| 217 | switch (rc) { | 217 | switch (rc) { |
| 218 | .SUCCESS => {}, | 218 | .SUCCESS => {}, |
| 219 | .PRIVILEGE_NOT_HELD => return error.AccessDenied, | ||
| 219 | .INVALID_PARAMETER => unreachable, | 220 | .INVALID_PARAMETER => unreachable, |
| 220 | else => return unexpectedStatus(rc), | 221 | else => return unexpectedStatus(rc), |
| 221 | } | 222 | } |
| ... | @@ -593,6 +594,12 @@ pub const CreateSymbolicLinkError = error{ | ... | @@ -593,6 +594,12 @@ pub const CreateSymbolicLinkError = error{ |
| 593 | Unexpected, | 594 | Unexpected, |
| 594 | }; | 595 | }; |
| 595 | 596 | ||
| 597 | /// Needs either: | ||
| 598 | /// - `SeCreateSymbolicLinkPrivilege` privilege | ||
| 599 | /// or | ||
| 600 | /// - Developper mode on Windows 10 | ||
| 601 | /// otherwise fails with `error.AccessDenied`. In which case `sym_link_path` may still | ||
| 602 | /// be created on the file system but will lack reparse processing data applied to it. | ||
| 596 | pub fn CreateSymbolicLink( | 603 | pub fn CreateSymbolicLink( |
| 597 | dir: ?HANDLE, | 604 | dir: ?HANDLE, |
| 598 | sym_link_path: []const u16, | 605 | sym_link_path: []const u16, |
| ... | @@ -710,7 +717,10 @@ pub fn ReadLink(dir: ?HANDLE, sub_path_w: []const u16, out_buffer: []u8) ReadLin | ... | @@ -710,7 +717,10 @@ pub fn ReadLink(dir: ?HANDLE, sub_path_w: []const u16, out_buffer: []u8) ReadLin |
| 710 | defer CloseHandle(result_handle); | 717 | defer CloseHandle(result_handle); |
| 711 | 718 | ||
| 712 | var reparse_buf: [MAXIMUM_REPARSE_DATA_BUFFER_SIZE]u8 = undefined; | 719 | var reparse_buf: [MAXIMUM_REPARSE_DATA_BUFFER_SIZE]u8 = undefined; |
| 713 | _ = try DeviceIoControl(result_handle, FSCTL_GET_REPARSE_POINT, null, reparse_buf[0..]); | 720 | _ = DeviceIoControl(result_handle, FSCTL_GET_REPARSE_POINT, null, reparse_buf[0..]) catch |err| switch (err) { |
| 721 | error.AccessDenied => unreachable, | ||
| 722 | else => |e| return e, | ||
| 723 | }; | ||
| 714 | 724 | ||
| 715 | const reparse_struct = @ptrCast(*const REPARSE_DATA_BUFFER, @alignCast(@alignOf(REPARSE_DATA_BUFFER), &reparse_buf[0])); | 725 | const reparse_struct = @ptrCast(*const REPARSE_DATA_BUFFER, @alignCast(@alignOf(REPARSE_DATA_BUFFER), &reparse_buf[0])); |
| 716 | switch (reparse_struct.ReparseTag) { | 726 | switch (reparse_struct.ReparseTag) { |
| ... | @@ -992,7 +1002,10 @@ pub fn GetFinalPathNameByHandle( | ... | @@ -992,7 +1002,10 @@ pub fn GetFinalPathNameByHandle( |
| 992 | input_struct.DeviceNameLength = @intCast(USHORT, volume_name.FileNameLength); | 1002 | input_struct.DeviceNameLength = @intCast(USHORT, volume_name.FileNameLength); |
| 993 | @memcpy(input_buf[@sizeOf(MOUNTMGR_MOUNT_POINT)..], @ptrCast([*]const u8, &volume_name.FileName[0]), volume_name.FileNameLength); | 1003 | @memcpy(input_buf[@sizeOf(MOUNTMGR_MOUNT_POINT)..], @ptrCast([*]const u8, &volume_name.FileName[0]), volume_name.FileNameLength); |
| 994 | 1004 | ||
| 995 | try DeviceIoControl(mgmt_handle, IOCTL_MOUNTMGR_QUERY_POINTS, input_buf[0..], output_buf[0..]); | 1005 | DeviceIoControl(mgmt_handle, IOCTL_MOUNTMGR_QUERY_POINTS, input_buf[0..], output_buf[0..]) catch |err| switch (err) { |
| 1006 | error.AccessDenied => unreachable, | ||
| 1007 | else => |e| return e, | ||
| 1008 | }; | ||
| 996 | const mount_points_struct = @ptrCast(*const MOUNTMGR_MOUNT_POINTS, &output_buf[0]); | 1009 | const mount_points_struct = @ptrCast(*const MOUNTMGR_MOUNT_POINTS, &output_buf[0]); |
| 997 | 1010 | ||
| 998 | const mount_points = @ptrCast( | 1011 | const mount_points = @ptrCast( |
lib/std/special/compiler_rt.zig+3-1| ... | @@ -100,7 +100,8 @@ comptime { | ... | @@ -100,7 +100,8 @@ comptime { |
| 100 | @export(@import("compiler_rt/floatditf.zig").__floatditf, .{ .name = "__floatditf", .linkage = linkage }); | 100 | @export(@import("compiler_rt/floatditf.zig").__floatditf, .{ .name = "__floatditf", .linkage = linkage }); |
| 101 | @export(@import("compiler_rt/floattitf.zig").__floattitf, .{ .name = "__floattitf", .linkage = linkage }); | 101 | @export(@import("compiler_rt/floattitf.zig").__floattitf, .{ .name = "__floattitf", .linkage = linkage }); |
| 102 | @export(@import("compiler_rt/floattidf.zig").__floattidf, .{ .name = "__floattidf", .linkage = linkage }); | 102 | @export(@import("compiler_rt/floattidf.zig").__floattidf, .{ .name = "__floattidf", .linkage = linkage }); |
| 103 | @export(@import("compiler_rt/floattisf.zig").__floattisf, .{ .name = "__floattisf", .linkage = linkage }); | 103 | @export(@import("compiler_rt/floatXisf.zig").__floattisf, .{ .name = "__floattisf", .linkage = linkage }); |
| 104 | @export(@import("compiler_rt/floatXisf.zig").__floatdisf, .{ .name = "__floatdisf", .linkage = linkage }); | ||
| 104 | 105 | ||
| 105 | @export(@import("compiler_rt/floatunditf.zig").__floatunditf, .{ .name = "__floatunditf", .linkage = linkage }); | 106 | @export(@import("compiler_rt/floatunditf.zig").__floatunditf, .{ .name = "__floatunditf", .linkage = linkage }); |
| 106 | @export(@import("compiler_rt/floatunsitf.zig").__floatunsitf, .{ .name = "__floatunsitf", .linkage = linkage }); | 107 | @export(@import("compiler_rt/floatunsitf.zig").__floatunsitf, .{ .name = "__floatunsitf", .linkage = linkage }); |
| ... | @@ -204,6 +205,7 @@ comptime { | ... | @@ -204,6 +205,7 @@ comptime { |
| 204 | @export(@import("compiler_rt/extendXfYf2.zig").__aeabi_f2d, .{ .name = "__aeabi_f2d", .linkage = linkage }); | 205 | @export(@import("compiler_rt/extendXfYf2.zig").__aeabi_f2d, .{ .name = "__aeabi_f2d", .linkage = linkage }); |
| 205 | @export(@import("compiler_rt/floatsiXf.zig").__aeabi_i2d, .{ .name = "__aeabi_i2d", .linkage = linkage }); | 206 | @export(@import("compiler_rt/floatsiXf.zig").__aeabi_i2d, .{ .name = "__aeabi_i2d", .linkage = linkage }); |
| 206 | @export(@import("compiler_rt/floatdidf.zig").__aeabi_l2d, .{ .name = "__aeabi_l2d", .linkage = linkage }); | 207 | @export(@import("compiler_rt/floatdidf.zig").__aeabi_l2d, .{ .name = "__aeabi_l2d", .linkage = linkage }); |
| 208 | @export(@import("compiler_rt/floatXisf.zig").__aeabi_l2f, .{ .name = "__aeabi_l2f", .linkage = linkage }); | ||
| 207 | @export(@import("compiler_rt/floatunsidf.zig").__aeabi_ui2d, .{ .name = "__aeabi_ui2d", .linkage = linkage }); | 209 | @export(@import("compiler_rt/floatunsidf.zig").__aeabi_ui2d, .{ .name = "__aeabi_ui2d", .linkage = linkage }); |
| 208 | @export(@import("compiler_rt/floatundidf.zig").__aeabi_ul2d, .{ .name = "__aeabi_ul2d", .linkage = linkage }); | 210 | @export(@import("compiler_rt/floatundidf.zig").__aeabi_ul2d, .{ .name = "__aeabi_ul2d", .linkage = linkage }); |
| 209 | @export(@import("compiler_rt/floatunsisf.zig").__aeabi_ui2f, .{ .name = "__aeabi_ui2f", .linkage = linkage }); | 211 | @export(@import("compiler_rt/floatunsisf.zig").__aeabi_ui2f, .{ .name = "__aeabi_ui2f", .linkage = linkage }); |
lib/std/special/compiler_rt/floatXisf.zig created+97| ... | @@ -0,0 +1,97 @@ | ||
| 1 | // SPDX-License-Identifier: MIT | ||
| 2 | // Copyright (c) 2015-2020 Zig Contributors | ||
| 3 | // This file is part of [zig](https://ziglang.org/), which is MIT licensed. | ||
| 4 | // The MIT license requires this copyright notice to be included in all copies | ||
| 5 | // and substantial portions of the software. | ||
| 6 | const builtin = @import("builtin"); | ||
| 7 | const std = @import("std"); | ||
| 8 | const maxInt = std.math.maxInt; | ||
| 9 | |||
| 10 | const FLT_MANT_DIG = 24; | ||
| 11 | |||
| 12 | fn __floatXisf(comptime T: type, arg: T) f32 { | ||
| 13 | @setRuntimeSafety(builtin.is_test); | ||
| 14 | |||
| 15 | const Z = std.meta.Int(false, T.bit_count); | ||
| 16 | const S = std.meta.Int(false, T.bit_count - @clz(Z, @as(Z, T.bit_count) - 1)); | ||
| 17 | |||
| 18 | if (arg == 0) { | ||
| 19 | return @as(f32, 0.0); | ||
| 20 | } | ||
| 21 | |||
| 22 | var ai = arg; | ||
| 23 | const N: u32 = T.bit_count; | ||
| 24 | const si = ai >> @intCast(S, (N - 1)); | ||
| 25 | ai = ((ai ^ si) -% si); | ||
| 26 | var a = @bitCast(Z, ai); | ||
| 27 | |||
| 28 | const sd = @bitCast(i32, N - @clz(Z, a)); // number of significant digits | ||
| 29 | var e: i32 = sd - 1; // exponent | ||
| 30 | |||
| 31 | if (sd > FLT_MANT_DIG) { | ||
| 32 | // start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx | ||
| 33 | // finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR | ||
| 34 | // 12345678901234567890123456 | ||
| 35 | // 1 = msb 1 bit | ||
| 36 | // P = bit FLT_MANT_DIG-1 bits to the right of 1 | ||
| 37 | // Q = bit FLT_MANT_DIG bits to the right of 1 | ||
| 38 | // R = "or" of all bits to the right of Q | ||
| 39 | switch (sd) { | ||
| 40 | FLT_MANT_DIG + 1 => { | ||
| 41 | a <<= 1; | ||
| 42 | }, | ||
| 43 | FLT_MANT_DIG + 2 => {}, | ||
| 44 | else => { | ||
| 45 | const shift1_amt = @intCast(i32, sd - (FLT_MANT_DIG + 2)); | ||
| 46 | const shift1_amt_u7 = @intCast(S, shift1_amt); | ||
| 47 | |||
| 48 | const shift2_amt = @intCast(i32, N + (FLT_MANT_DIG + 2)) - sd; | ||
| 49 | const shift2_amt_u7 = @intCast(S, shift2_amt); | ||
| 50 | |||
| 51 | a = (a >> shift1_amt_u7) | @boolToInt((a & (@intCast(Z, maxInt(Z)) >> shift2_amt_u7)) != 0); | ||
| 52 | }, | ||
| 53 | } | ||
| 54 | // finish | ||
| 55 | a |= @boolToInt((a & 4) != 0); // Or P into R | ||
| 56 | a += 1; // round - this step may add a significant bit | ||
| 57 | a >>= 2; // dump Q and R | ||
| 58 | // a is now rounded to FLT_MANT_DIG or FLT_MANT_DIG+1 bits | ||
| 59 | if ((a & (@as(Z, 1) << FLT_MANT_DIG)) != 0) { | ||
| 60 | a >>= 1; | ||
| 61 | e += 1; | ||
| 62 | } | ||
| 63 | // a is now rounded to FLT_MANT_DIG bits | ||
| 64 | } else { | ||
| 65 | a <<= @intCast(S, FLT_MANT_DIG - sd); | ||
| 66 | // a is now rounded to FLT_MANT_DIG bits | ||
| 67 | } | ||
| 68 | |||
| 69 | const s = @bitCast(Z, arg) >> (T.bit_count - 32); | ||
| 70 | const r = (@intCast(u32, s) & 0x80000000) | // sign | ||
| 71 | (@intCast(u32, (e + 127)) << 23) | // exponent | ||
| 72 | (@truncate(u32, a) & 0x007fffff); // mantissa-high | ||
| 73 | |||
| 74 | return @bitCast(f32, r); | ||
| 75 | } | ||
| 76 | |||
| 77 | pub fn __floatdisf(arg: i64) callconv(.C) f32 { | ||
| 78 | @setRuntimeSafety(builtin.is_test); | ||
| 79 | return @call(.{ .modifier = .always_inline }, __floatXisf, .{ i64, arg }); | ||
| 80 | } | ||
| 81 | |||
| 82 | pub fn __floattisf(arg: i128) callconv(.C) f32 { | ||
| 83 | @setRuntimeSafety(builtin.is_test); | ||
| 84 | return @call(.{ .modifier = .always_inline }, __floatXisf, .{ i128, arg }); | ||
| 85 | } | ||
| 86 | |||
| 87 | pub fn __aeabi_l2f(arg: i64) callconv(.AAPCS) f32 { | ||
| 88 | @setRuntimeSafety(false); | ||
| 89 | return @call(.{ .modifier = .always_inline }, __floatdisf, .{arg}); | ||
| 90 | } | ||
| 91 | |||
| 92 | test "import floattisf" { | ||
| 93 | _ = @import("floattisf_test.zig"); | ||
| 94 | } | ||
| 95 | test "import floatdisf" { | ||
| 96 | _ = @import("floattisf_test.zig"); | ||
| 97 | } | ||
lib/std/special/compiler_rt/floatdisf_test.zig created+37| ... | @@ -0,0 +1,37 @@ | ||
| 1 | // SPDX-License-Identifier: MIT | ||
| 2 | // Copyright (c) 2015-2020 Zig Contributors | ||
| 3 | // This file is part of [zig](https://ziglang.org/), which is MIT licensed. | ||
| 4 | // The MIT license requires this copyright notice to be included in all copies | ||
| 5 | // and substantial portions of the software. | ||
| 6 | const __floatdisf = @import("floatXisf.zig").__floatdisf; | ||
| 7 | const testing = @import("std").testing; | ||
| 8 | |||
| 9 | fn test__floatdisf(a: i64, expected: f32) void { | ||
| 10 | const x = __floatdisf(a); | ||
| 11 | testing.expect(x == expected); | ||
| 12 | } | ||
| 13 | |||
| 14 | test "floatdisf" { | ||
| 15 | test__floatdisf(0, 0.0); | ||
| 16 | test__floatdisf(1, 1.0); | ||
| 17 | test__floatdisf(2, 2.0); | ||
| 18 | test__floatdisf(-1, -1.0); | ||
| 19 | test__floatdisf(-2, -2.0); | ||
| 20 | test__floatdisf(0x7FFFFF8000000000, 0x1.FFFFFEp+62); | ||
| 21 | test__floatdisf(0x7FFFFF0000000000, 0x1.FFFFFCp+62); | ||
| 22 | test__floatdisf(0x8000008000000000, -0x1.FFFFFEp+62); | ||
| 23 | test__floatdisf(0x8000010000000000, -0x1.FFFFFCp+62); | ||
| 24 | test__floatdisf(0x8000000000000000, -0x1.000000p+63); | ||
| 25 | test__floatdisf(0x8000000000000001, -0x1.000000p+63); | ||
| 26 | test__floatdisf(0x0007FB72E8000000, 0x1.FEDCBAp+50); | ||
| 27 | test__floatdisf(0x0007FB72EA000000, 0x1.FEDCBAp+50); | ||
| 28 | test__floatdisf(0x0007FB72EB000000, 0x1.FEDCBAp+50); | ||
| 29 | test__floatdisf(0x0007FB72EBFFFFFF, 0x1.FEDCBAp+50); | ||
| 30 | test__floatdisf(0x0007FB72EC000000, 0x1.FEDCBCp+50); | ||
| 31 | test__floatdisf(0x0007FB72E8000001, 0x1.FEDCBAp+50); | ||
| 32 | test__floatdisf(0x0007FB72E6000000, 0x1.FEDCBAp+50); | ||
| 33 | test__floatdisf(0x0007FB72E7000000, 0x1.FEDCBAp+50); | ||
| 34 | test__floatdisf(0x0007FB72E7FFFFFF, 0x1.FEDCBAp+50); | ||
| 35 | test__floatdisf(0x0007FB72E4000001, 0x1.FEDCBAp+50); | ||
| 36 | test__floatdisf(0x0007FB72E4000000, 0x1.FEDCB8p+50); | ||
| 37 | } | ||
lib/std/special/compiler_rt/floattisf.zig deleted-76| ... | @@ -1,76 +0,0 @@ | ||
| 1 | // SPDX-License-Identifier: MIT | ||
| 2 | // Copyright (c) 2015-2020 Zig Contributors | ||
| 3 | // This file is part of [zig](https://ziglang.org/), which is MIT licensed. | ||
| 4 | // The MIT license requires this copyright notice to be included in all copies | ||
| 5 | // and substantial portions of the software. | ||
| 6 | const builtin = @import("builtin"); | ||
| 7 | const is_test = builtin.is_test; | ||
| 8 | const std = @import("std"); | ||
| 9 | const maxInt = std.math.maxInt; | ||
| 10 | |||
| 11 | const FLT_MANT_DIG = 24; | ||
| 12 | |||
| 13 | pub fn __floattisf(arg: i128) callconv(.C) f32 { | ||
| 14 | @setRuntimeSafety(is_test); | ||
| 15 | |||
| 16 | if (arg == 0) | ||
| 17 | return 0.0; | ||
| 18 | |||
| 19 | var ai = arg; | ||
| 20 | const N: u32 = 128; | ||
| 21 | const si = ai >> @intCast(u7, (N - 1)); | ||
| 22 | ai = ((ai ^ si) -% si); | ||
| 23 | var a = @bitCast(u128, ai); | ||
| 24 | |||
| 25 | const sd = @bitCast(i32, N - @clz(u128, a)); // number of significant digits | ||
| 26 | var e: i32 = sd - 1; // exponent | ||
| 27 | |||
| 28 | if (sd > FLT_MANT_DIG) { | ||
| 29 | // start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx | ||
| 30 | // finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR | ||
| 31 | // 12345678901234567890123456 | ||
| 32 | // 1 = msb 1 bit | ||
| 33 | // P = bit FLT_MANT_DIG-1 bits to the right of 1 | ||
| 34 | // Q = bit FLT_MANT_DIG bits to the right of 1 | ||
| 35 | // R = "or" of all bits to the right of Q | ||
| 36 | switch (sd) { | ||
| 37 | FLT_MANT_DIG + 1 => { | ||
| 38 | a <<= 1; | ||
| 39 | }, | ||
| 40 | FLT_MANT_DIG + 2 => {}, | ||
| 41 | else => { | ||
| 42 | const shift1_amt = @intCast(i32, sd - (FLT_MANT_DIG + 2)); | ||
| 43 | const shift1_amt_u7 = @intCast(u7, shift1_amt); | ||
| 44 | |||
| 45 | const shift2_amt = @intCast(i32, N + (FLT_MANT_DIG + 2)) - sd; | ||
| 46 | const shift2_amt_u7 = @intCast(u7, shift2_amt); | ||
| 47 | |||
| 48 | a = (a >> shift1_amt_u7) | @boolToInt((a & (@intCast(u128, maxInt(u128)) >> shift2_amt_u7)) != 0); | ||
| 49 | }, | ||
| 50 | } | ||
| 51 | // finish | ||
| 52 | a |= @boolToInt((a & 4) != 0); // Or P into R | ||
| 53 | a += 1; // round - this step may add a significant bit | ||
| 54 | a >>= 2; // dump Q and R | ||
| 55 | // a is now rounded to FLT_MANT_DIG or FLT_MANT_DIG+1 bits | ||
| 56 | if ((a & (@as(u128, 1) << FLT_MANT_DIG)) != 0) { | ||
| 57 | a >>= 1; | ||
| 58 | e += 1; | ||
| 59 | } | ||
| 60 | // a is now rounded to FLT_MANT_DIG bits | ||
| 61 | } else { | ||
| 62 | a <<= @intCast(u7, FLT_MANT_DIG - sd); | ||
| 63 | // a is now rounded to FLT_MANT_DIG bits | ||
| 64 | } | ||
| 65 | |||
| 66 | const s = @bitCast(u128, arg) >> (128 - 32); | ||
| 67 | const r = (@intCast(u32, s) & 0x80000000) | // sign | ||
| 68 | (@intCast(u32, (e + 127)) << 23) | // exponent | ||
| 69 | (@truncate(u32, a) & 0x007fffff); // mantissa-high | ||
| 70 | |||
| 71 | return @bitCast(f32, r); | ||
| 72 | } | ||
| 73 | |||
| 74 | test "import floattisf" { | ||
| 75 | _ = @import("floattisf_test.zig"); | ||
| 76 | } | ||
lib/std/special/compiler_rt/floattisf_test.zig+1-1| ... | @@ -3,7 +3,7 @@ | ... | @@ -3,7 +3,7 @@ |
| 3 | // This file is part of [zig](https://ziglang.org/), which is MIT licensed. | 3 | // This file is part of [zig](https://ziglang.org/), which is MIT licensed. |
| 4 | // The MIT license requires this copyright notice to be included in all copies | 4 | // The MIT license requires this copyright notice to be included in all copies |
| 5 | // and substantial portions of the software. | 5 | // and substantial portions of the software. |
| 6 | const __floattisf = @import("floattisf.zig").__floattisf; | 6 | const __floattisf = @import("floatXisf.zig").__floattisf; |
| 7 | const testing = @import("std").testing; | 7 | const testing = @import("std").testing; |
| 8 | 8 | ||
| 9 | fn test__floattisf(a: i128, expected: f32) void { | 9 | fn test__floattisf(a: i128, expected: f32) void { |
lib/std/start.zig+2-2| ... | @@ -248,7 +248,7 @@ pub fn callMain() u8 { | ... | @@ -248,7 +248,7 @@ pub fn callMain() u8 { |
| 248 | return 0; | 248 | return 0; |
| 249 | }, | 249 | }, |
| 250 | .Int => |info| { | 250 | .Int => |info| { |
| 251 | if (info.bits != 8) { | 251 | if (info.bits != 8 or info.is_signed) { |
| 252 | @compileError(bad_main_ret); | 252 | @compileError(bad_main_ret); |
| 253 | } | 253 | } |
| 254 | return root.main(); | 254 | return root.main(); |
| ... | @@ -264,7 +264,7 @@ pub fn callMain() u8 { | ... | @@ -264,7 +264,7 @@ pub fn callMain() u8 { |
| 264 | switch (@typeInfo(@TypeOf(result))) { | 264 | switch (@typeInfo(@TypeOf(result))) { |
| 265 | .Void => return 0, | 265 | .Void => return 0, |
| 266 | .Int => |info| { | 266 | .Int => |info| { |
| 267 | if (info.bits != 8) { | 267 | if (info.bits != 8 or info.is_signed) { |
| 268 | @compileError(bad_main_ret); | 268 | @compileError(bad_main_ret); |
| 269 | } | 269 | } |
| 270 | return result; | 270 | return result; |
lib/std/zig/ast.zig+226-38| ... | @@ -915,23 +915,111 @@ pub const Node = struct { | ... | @@ -915,23 +915,111 @@ pub const Node = struct { |
| 915 | init_node: *Node, | 915 | init_node: *Node, |
| 916 | }); | 916 | }); |
| 917 | 917 | ||
| 918 | pub fn getDocComments(self: *const VarDecl) ?*DocComment { | ||
| 919 | return self.getTrailer(.doc_comments); | ||
| 920 | } | ||
| 921 | |||
| 922 | pub fn setDocComments(self: *VarDecl, value: *DocComment) void { | ||
| 923 | self.setTrailer(.doc_comments, value); | ||
| 924 | } | ||
| 925 | |||
| 926 | pub fn getVisibToken(self: *const VarDecl) ?TokenIndex { | ||
| 927 | return self.getTrailer(.visib_token); | ||
| 928 | } | ||
| 929 | |||
| 930 | pub fn setVisibToken(self: *VarDecl, value: TokenIndex) void { | ||
| 931 | self.setTrailer(.visib_token, value); | ||
| 932 | } | ||
| 933 | |||
| 934 | pub fn getThreadLocalToken(self: *const VarDecl) ?TokenIndex { | ||
| 935 | return self.getTrailer(.thread_local_token); | ||
| 936 | } | ||
| 937 | |||
| 938 | pub fn setThreadLocalToken(self: *VarDecl, value: TokenIndex) void { | ||
| 939 | self.setTrailer(.thread_local_token, value); | ||
| 940 | } | ||
| 941 | |||
| 942 | pub fn getEqToken(self: *const VarDecl) ?TokenIndex { | ||
| 943 | return self.getTrailer(.eq_token); | ||
| 944 | } | ||
| 945 | |||
| 946 | pub fn setEqToken(self: *VarDecl, value: TokenIndex) void { | ||
| 947 | self.setTrailer(.eq_token, value); | ||
| 948 | } | ||
| 949 | |||
| 950 | pub fn getComptimeToken(self: *const VarDecl) ?TokenIndex { | ||
| 951 | return self.getTrailer(.comptime_token); | ||
| 952 | } | ||
| 953 | |||
| 954 | pub fn setComptimeToken(self: *VarDecl, value: TokenIndex) void { | ||
| 955 | self.setTrailer(.comptime_token, value); | ||
| 956 | } | ||
| 957 | |||
| 958 | pub fn getExternExportToken(self: *const VarDecl) ?TokenIndex { | ||
| 959 | return self.getTrailer(.extern_export_token); | ||
| 960 | } | ||
| 961 | |||
| 962 | pub fn setExternExportToken(self: *VarDecl, value: TokenIndex) void { | ||
| 963 | self.setTrailer(.extern_export_token, value); | ||
| 964 | } | ||
| 965 | |||
| 966 | pub fn getLibName(self: *const VarDecl) ?*Node { | ||
| 967 | return self.getTrailer(.lib_name); | ||
| 968 | } | ||
| 969 | |||
| 970 | pub fn setLibName(self: *VarDecl, value: *Node) void { | ||
| 971 | self.setTrailer(.lib_name, value); | ||
| 972 | } | ||
| 973 | |||
| 974 | pub fn getTypeNode(self: *const VarDecl) ?*Node { | ||
| 975 | return self.getTrailer(.type_node); | ||
| 976 | } | ||
| 977 | |||
| 978 | pub fn setTypeNode(self: *VarDecl, value: *Node) void { | ||
| 979 | self.setTrailer(.type_node, value); | ||
| 980 | } | ||
| 981 | |||
| 982 | pub fn getAlignNode(self: *const VarDecl) ?*Node { | ||
| 983 | return self.getTrailer(.align_node); | ||
| 984 | } | ||
| 985 | |||
| 986 | pub fn setAlignNode(self: *VarDecl, value: *Node) void { | ||
| 987 | self.setTrailer(.align_node, value); | ||
| 988 | } | ||
| 989 | |||
| 990 | pub fn getSectionNode(self: *const VarDecl) ?*Node { | ||
| 991 | return self.getTrailer(.section_node); | ||
| 992 | } | ||
| 993 | |||
| 994 | pub fn setSectionNode(self: *VarDecl, value: *Node) void { | ||
| 995 | self.setTrailer(.section_node, value); | ||
| 996 | } | ||
| 997 | |||
| 998 | pub fn getInitNode(self: *const VarDecl) ?*Node { | ||
| 999 | return self.getTrailer(.init_node); | ||
| 1000 | } | ||
| 1001 | |||
| 1002 | pub fn setInitNode(self: *VarDecl, value: *Node) void { | ||
| 1003 | self.setTrailer(.init_node, value); | ||
| 1004 | } | ||
| 1005 | |||
| 918 | pub const RequiredFields = struct { | 1006 | pub const RequiredFields = struct { |
| 919 | mut_token: TokenIndex, | 1007 | mut_token: TokenIndex, |
| 920 | name_token: TokenIndex, | 1008 | name_token: TokenIndex, |
| 921 | semicolon_token: TokenIndex, | 1009 | semicolon_token: TokenIndex, |
| 922 | }; | 1010 | }; |
| 923 | 1011 | ||
| 924 | pub fn getTrailer(self: *const VarDecl, comptime name: []const u8) ?TrailerFlags.Field(name) { | 1012 | fn getTrailer(self: *const VarDecl, comptime field: TrailerFlags.FieldEnum) ?TrailerFlags.Field(field) { |
| 925 | const trailers_start = @ptrCast([*]const u8, self) + @sizeOf(VarDecl); | 1013 | const trailers_start = @ptrCast([*]const u8, self) + @sizeOf(VarDecl); |
| 926 | return self.trailer_flags.get(trailers_start, name); | 1014 | return self.trailer_flags.get(trailers_start, field); |
| 927 | } | 1015 | } |
| 928 | 1016 | ||
| 929 | pub fn setTrailer(self: *VarDecl, comptime name: []const u8, value: TrailerFlags.Field(name)) void { | 1017 | fn setTrailer(self: *VarDecl, comptime field: TrailerFlags.FieldEnum, value: TrailerFlags.Field(field)) void { |
| 930 | const trailers_start = @ptrCast([*]u8, self) + @sizeOf(VarDecl); | 1018 | const trailers_start = @ptrCast([*]u8, self) + @sizeOf(VarDecl); |
| 931 | self.trailer_flags.set(trailers_start, name, value); | 1019 | self.trailer_flags.set(trailers_start, field, value); |
| 932 | } | 1020 | } |
| 933 | 1021 | ||
| 934 | pub fn create(allocator: *mem.Allocator, required: RequiredFields, trailers: anytype) !*VarDecl { | 1022 | pub fn create(allocator: *mem.Allocator, required: RequiredFields, trailers: TrailerFlags.InitStruct) !*VarDecl { |
| 935 | const trailer_flags = TrailerFlags.init(trailers); | 1023 | const trailer_flags = TrailerFlags.init(trailers); |
| 936 | const bytes = try allocator.alignedAlloc(u8, @alignOf(VarDecl), sizeInBytes(trailer_flags)); | 1024 | const bytes = try allocator.alignedAlloc(u8, @alignOf(VarDecl), sizeInBytes(trailer_flags)); |
| 937 | const var_decl = @ptrCast(*VarDecl, bytes.ptr); | 1025 | const var_decl = @ptrCast(*VarDecl, bytes.ptr); |
| ... | @@ -954,22 +1042,22 @@ pub const Node = struct { | ... | @@ -954,22 +1042,22 @@ pub const Node = struct { |
| 954 | pub fn iterate(self: *const VarDecl, index: usize) ?*Node { | 1042 | pub fn iterate(self: *const VarDecl, index: usize) ?*Node { |
| 955 | var i = index; | 1043 | var i = index; |
| 956 | 1044 | ||
| 957 | if (self.getTrailer("type_node")) |type_node| { | 1045 | if (self.getTypeNode()) |type_node| { |
| 958 | if (i < 1) return type_node; | 1046 | if (i < 1) return type_node; |
| 959 | i -= 1; | 1047 | i -= 1; |
| 960 | } | 1048 | } |
| 961 | 1049 | ||
| 962 | if (self.getTrailer("align_node")) |align_node| { | 1050 | if (self.getAlignNode()) |align_node| { |
| 963 | if (i < 1) return align_node; | 1051 | if (i < 1) return align_node; |
| 964 | i -= 1; | 1052 | i -= 1; |
| 965 | } | 1053 | } |
| 966 | 1054 | ||
| 967 | if (self.getTrailer("section_node")) |section_node| { | 1055 | if (self.getSectionNode()) |section_node| { |
| 968 | if (i < 1) return section_node; | 1056 | if (i < 1) return section_node; |
| 969 | i -= 1; | 1057 | i -= 1; |
| 970 | } | 1058 | } |
| 971 | 1059 | ||
| 972 | if (self.getTrailer("init_node")) |init_node| { | 1060 | if (self.getInitNode()) |init_node| { |
| 973 | if (i < 1) return init_node; | 1061 | if (i < 1) return init_node; |
| 974 | i -= 1; | 1062 | i -= 1; |
| 975 | } | 1063 | } |
| ... | @@ -978,11 +1066,11 @@ pub const Node = struct { | ... | @@ -978,11 +1066,11 @@ pub const Node = struct { |
| 978 | } | 1066 | } |
| 979 | 1067 | ||
| 980 | pub fn firstToken(self: *const VarDecl) TokenIndex { | 1068 | pub fn firstToken(self: *const VarDecl) TokenIndex { |
| 981 | if (self.getTrailer("visib_token")) |visib_token| return visib_token; | 1069 | if (self.getVisibToken()) |visib_token| return visib_token; |
| 982 | if (self.getTrailer("thread_local_token")) |thread_local_token| return thread_local_token; | 1070 | if (self.getThreadLocalToken()) |thread_local_token| return thread_local_token; |
| 983 | if (self.getTrailer("comptime_token")) |comptime_token| return comptime_token; | 1071 | if (self.getComptimeToken()) |comptime_token| return comptime_token; |
| 984 | if (self.getTrailer("extern_export_token")) |extern_export_token| return extern_export_token; | 1072 | if (self.getExternExportToken()) |extern_export_token| return extern_export_token; |
| 985 | assert(self.getTrailer("lib_name") == null); | 1073 | assert(self.getLibName() == null); |
| 986 | return self.mut_token; | 1074 | return self.mut_token; |
| 987 | } | 1075 | } |
| 988 | 1076 | ||
| ... | @@ -1320,34 +1408,126 @@ pub const Node = struct { | ... | @@ -1320,34 +1408,126 @@ pub const Node = struct { |
| 1320 | std.debug.print("{*} flags: {b} name_token: {} {*} params_len: {}\n", .{ | 1408 | std.debug.print("{*} flags: {b} name_token: {} {*} params_len: {}\n", .{ |
| 1321 | self, | 1409 | self, |
| 1322 | self.trailer_flags.bits, | 1410 | self.trailer_flags.bits, |
| 1323 | self.getTrailer("name_token"), | 1411 | self.getNameToken(), |
| 1324 | self.trailer_flags.ptrConst(trailers_start, "name_token"), | 1412 | self.trailer_flags.ptrConst(trailers_start, .name_token), |
| 1325 | self.params_len, | 1413 | self.params_len, |
| 1326 | }); | 1414 | }); |
| 1327 | } | 1415 | } |
| 1328 | 1416 | ||
| 1329 | pub fn body(self: *const FnProto) ?*Node { | 1417 | pub fn getDocComments(self: *const FnProto) ?*DocComment { |
| 1330 | return self.getTrailer("body_node"); | 1418 | return self.getTrailer(.doc_comments); |
| 1419 | } | ||
| 1420 | |||
| 1421 | pub fn setDocComments(self: *FnProto, value: *DocComment) void { | ||
| 1422 | self.setTrailer(.doc_comments, value); | ||
| 1423 | } | ||
| 1424 | |||
| 1425 | pub fn getBodyNode(self: *const FnProto) ?*Node { | ||
| 1426 | return self.getTrailer(.body_node); | ||
| 1427 | } | ||
| 1428 | |||
| 1429 | pub fn setBodyNode(self: *FnProto, value: *Node) void { | ||
| 1430 | self.setTrailer(.body_node, value); | ||
| 1431 | } | ||
| 1432 | |||
| 1433 | pub fn getLibName(self: *const FnProto) ?*Node { | ||
| 1434 | return self.getTrailer(.lib_name); | ||
| 1435 | } | ||
| 1436 | |||
| 1437 | pub fn setLibName(self: *FnProto, value: *Node) void { | ||
| 1438 | self.setTrailer(.lib_name, value); | ||
| 1439 | } | ||
| 1440 | |||
| 1441 | pub fn getAlignExpr(self: *const FnProto) ?*Node { | ||
| 1442 | return self.getTrailer(.align_expr); | ||
| 1443 | } | ||
| 1444 | |||
| 1445 | pub fn setAlignExpr(self: *FnProto, value: *Node) void { | ||
| 1446 | self.setTrailer(.align_expr, value); | ||
| 1447 | } | ||
| 1448 | |||
| 1449 | pub fn getSectionExpr(self: *const FnProto) ?*Node { | ||
| 1450 | return self.getTrailer(.section_expr); | ||
| 1451 | } | ||
| 1452 | |||
| 1453 | pub fn setSectionExpr(self: *FnProto, value: *Node) void { | ||
| 1454 | self.setTrailer(.section_expr, value); | ||
| 1455 | } | ||
| 1456 | |||
| 1457 | pub fn getCallconvExpr(self: *const FnProto) ?*Node { | ||
| 1458 | return self.getTrailer(.callconv_expr); | ||
| 1459 | } | ||
| 1460 | |||
| 1461 | pub fn setCallconvExpr(self: *FnProto, value: *Node) void { | ||
| 1462 | self.setTrailer(.callconv_expr, value); | ||
| 1463 | } | ||
| 1464 | |||
| 1465 | pub fn getVisibToken(self: *const FnProto) ?TokenIndex { | ||
| 1466 | return self.getTrailer(.visib_token); | ||
| 1331 | } | 1467 | } |
| 1332 | 1468 | ||
| 1333 | pub fn getTrailer(self: *const FnProto, comptime name: []const u8) ?TrailerFlags.Field(name) { | 1469 | pub fn setVisibToken(self: *FnProto, value: TokenIndex) void { |
| 1470 | self.setTrailer(.visib_token, value); | ||
| 1471 | } | ||
| 1472 | |||
| 1473 | pub fn getNameToken(self: *const FnProto) ?TokenIndex { | ||
| 1474 | return self.getTrailer(.name_token); | ||
| 1475 | } | ||
| 1476 | |||
| 1477 | pub fn setNameToken(self: *FnProto, value: TokenIndex) void { | ||
| 1478 | self.setTrailer(.name_token, value); | ||
| 1479 | } | ||
| 1480 | |||
| 1481 | pub fn getVarArgsToken(self: *const FnProto) ?TokenIndex { | ||
| 1482 | return self.getTrailer(.var_args_token); | ||
| 1483 | } | ||
| 1484 | |||
| 1485 | pub fn setVarArgsToken(self: *FnProto, value: TokenIndex) void { | ||
| 1486 | self.setTrailer(.var_args_token, value); | ||
| 1487 | } | ||
| 1488 | |||
| 1489 | pub fn getExternExportInlineToken(self: *const FnProto) ?TokenIndex { | ||
| 1490 | return self.getTrailer(.extern_export_inline_token); | ||
| 1491 | } | ||
| 1492 | |||
| 1493 | pub fn setExternExportInlineToken(self: *FnProto, value: TokenIndex) void { | ||
| 1494 | self.setTrailer(.extern_export_inline_token, value); | ||
| 1495 | } | ||
| 1496 | |||
| 1497 | pub fn getIsExternPrototype(self: *const FnProto) ?void { | ||
| 1498 | return self.getTrailer(.is_extern_prototype); | ||
| 1499 | } | ||
| 1500 | |||
| 1501 | pub fn setIsExternPrototype(self: *FnProto, value: void) void { | ||
| 1502 | self.setTrailer(.is_extern_prototype, value); | ||
| 1503 | } | ||
| 1504 | |||
| 1505 | pub fn getIsAsync(self: *const FnProto) ?void { | ||
| 1506 | return self.getTrailer(.is_async); | ||
| 1507 | } | ||
| 1508 | |||
| 1509 | pub fn setIsAsync(self: *FnProto, value: void) void { | ||
| 1510 | self.setTrailer(.is_async, value); | ||
| 1511 | } | ||
| 1512 | |||
| 1513 | fn getTrailer(self: *const FnProto, comptime field: TrailerFlags.FieldEnum) ?TrailerFlags.Field(field) { | ||
| 1334 | const trailers_start = @alignCast( | 1514 | const trailers_start = @alignCast( |
| 1335 | @alignOf(ParamDecl), | 1515 | @alignOf(ParamDecl), |
| 1336 | @ptrCast([*]const u8, self) + @sizeOf(FnProto) + @sizeOf(ParamDecl) * self.params_len, | 1516 | @ptrCast([*]const u8, self) + @sizeOf(FnProto) + @sizeOf(ParamDecl) * self.params_len, |
| 1337 | ); | 1517 | ); |
| 1338 | return self.trailer_flags.get(trailers_start, name); | 1518 | return self.trailer_flags.get(trailers_start, field); |
| 1339 | } | 1519 | } |
| 1340 | 1520 | ||
| 1341 | pub fn setTrailer(self: *FnProto, comptime name: []const u8, value: TrailerFlags.Field(name)) void { | 1521 | fn setTrailer(self: *FnProto, comptime field: TrailerFlags.FieldEnum, value: TrailerFlags.Field(field)) void { |
| 1342 | const trailers_start = @alignCast( | 1522 | const trailers_start = @alignCast( |
| 1343 | @alignOf(ParamDecl), | 1523 | @alignOf(ParamDecl), |
| 1344 | @ptrCast([*]u8, self) + @sizeOf(FnProto) + @sizeOf(ParamDecl) * self.params_len, | 1524 | @ptrCast([*]u8, self) + @sizeOf(FnProto) + @sizeOf(ParamDecl) * self.params_len, |
| 1345 | ); | 1525 | ); |
| 1346 | self.trailer_flags.set(trailers_start, name, value); | 1526 | self.trailer_flags.set(trailers_start, field, value); |
| 1347 | } | 1527 | } |
| 1348 | 1528 | ||
| 1349 | /// After this the caller must initialize the params list. | 1529 | /// After this the caller must initialize the params list. |
| 1350 | pub fn create(allocator: *mem.Allocator, required: RequiredFields, trailers: anytype) !*FnProto { | 1530 | pub fn create(allocator: *mem.Allocator, required: RequiredFields, trailers: TrailerFlags.InitStruct) !*FnProto { |
| 1351 | const trailer_flags = TrailerFlags.init(trailers); | 1531 | const trailer_flags = TrailerFlags.init(trailers); |
| 1352 | const bytes = try allocator.alignedAlloc(u8, @alignOf(FnProto), sizeInBytes( | 1532 | const bytes = try allocator.alignedAlloc(u8, @alignOf(FnProto), sizeInBytes( |
| 1353 | required.params_len, | 1533 | required.params_len, |
| ... | @@ -1376,7 +1556,7 @@ pub const Node = struct { | ... | @@ -1376,7 +1556,7 @@ pub const Node = struct { |
| 1376 | pub fn iterate(self: *const FnProto, index: usize) ?*Node { | 1556 | pub fn iterate(self: *const FnProto, index: usize) ?*Node { |
| 1377 | var i = index; | 1557 | var i = index; |
| 1378 | 1558 | ||
| 1379 | if (self.getTrailer("lib_name")) |lib_name| { | 1559 | if (self.getLibName()) |lib_name| { |
| 1380 | if (i < 1) return lib_name; | 1560 | if (i < 1) return lib_name; |
| 1381 | i -= 1; | 1561 | i -= 1; |
| 1382 | } | 1562 | } |
| ... | @@ -1394,12 +1574,12 @@ pub const Node = struct { | ... | @@ -1394,12 +1574,12 @@ pub const Node = struct { |
| 1394 | } | 1574 | } |
| 1395 | i -= params_len; | 1575 | i -= params_len; |
| 1396 | 1576 | ||
| 1397 | if (self.getTrailer("align_expr")) |align_expr| { | 1577 | if (self.getAlignExpr()) |align_expr| { |
| 1398 | if (i < 1) return align_expr; | 1578 | if (i < 1) return align_expr; |
| 1399 | i -= 1; | 1579 | i -= 1; |
| 1400 | } | 1580 | } |
| 1401 | 1581 | ||
| 1402 | if (self.getTrailer("section_expr")) |section_expr| { | 1582 | if (self.getSectionExpr()) |section_expr| { |
| 1403 | if (i < 1) return section_expr; | 1583 | if (i < 1) return section_expr; |
| 1404 | i -= 1; | 1584 | i -= 1; |
| 1405 | } | 1585 | } |
| ... | @@ -1412,7 +1592,7 @@ pub const Node = struct { | ... | @@ -1412,7 +1592,7 @@ pub const Node = struct { |
| 1412 | .Invalid => {}, | 1592 | .Invalid => {}, |
| 1413 | } | 1593 | } |
| 1414 | 1594 | ||
| 1415 | if (self.body()) |body_node| { | 1595 | if (self.getBodyNode()) |body_node| { |
| 1416 | if (i < 1) return body_node; | 1596 | if (i < 1) return body_node; |
| 1417 | i -= 1; | 1597 | i -= 1; |
| 1418 | } | 1598 | } |
| ... | @@ -1421,14 +1601,14 @@ pub const Node = struct { | ... | @@ -1421,14 +1601,14 @@ pub const Node = struct { |
| 1421 | } | 1601 | } |
| 1422 | 1602 | ||
| 1423 | pub fn firstToken(self: *const FnProto) TokenIndex { | 1603 | pub fn firstToken(self: *const FnProto) TokenIndex { |
| 1424 | if (self.getTrailer("visib_token")) |visib_token| return visib_token; | 1604 | if (self.getVisibToken()) |visib_token| return visib_token; |
| 1425 | if (self.getTrailer("extern_export_inline_token")) |extern_export_inline_token| return extern_export_inline_token; | 1605 | if (self.getExternExportInlineToken()) |extern_export_inline_token| return extern_export_inline_token; |
| 1426 | assert(self.getTrailer("lib_name") == null); | 1606 | assert(self.getLibName() == null); |
| 1427 | return self.fn_token; | 1607 | return self.fn_token; |
| 1428 | } | 1608 | } |
| 1429 | 1609 | ||
| 1430 | pub fn lastToken(self: *const FnProto) TokenIndex { | 1610 | pub fn lastToken(self: *const FnProto) TokenIndex { |
| 1431 | if (self.body()) |body_node| return body_node.lastToken(); | 1611 | if (self.getBodyNode()) |body_node| return body_node.lastToken(); |
| 1432 | switch (self.return_type) { | 1612 | switch (self.return_type) { |
| 1433 | .Explicit, .InferErrorSet => |node| return node.lastToken(), | 1613 | .Explicit, .InferErrorSet => |node| return node.lastToken(), |
| 1434 | .Invalid => |tok| return tok, | 1614 | .Invalid => |tok| return tok, |
| ... | @@ -2673,24 +2853,32 @@ pub const Node = struct { | ... | @@ -2673,24 +2853,32 @@ pub const Node = struct { |
| 2673 | }; | 2853 | }; |
| 2674 | 2854 | ||
| 2675 | pub fn getRHS(self: *const ControlFlowExpression) ?*Node { | 2855 | pub fn getRHS(self: *const ControlFlowExpression) ?*Node { |
| 2676 | return self.getTrailer("rhs"); | 2856 | return self.getTrailer(.rhs); |
| 2857 | } | ||
| 2858 | |||
| 2859 | pub fn setRHS(self: *ControlFlowExpression, value: *Node) void { | ||
| 2860 | self.setTrailer(.rhs, value); | ||
| 2677 | } | 2861 | } |
| 2678 | 2862 | ||
| 2679 | pub fn getLabel(self: *const ControlFlowExpression) ?TokenIndex { | 2863 | pub fn getLabel(self: *const ControlFlowExpression) ?TokenIndex { |
| 2680 | return self.getTrailer("label"); | 2864 | return self.getTrailer(.label); |
| 2865 | } | ||
| 2866 | |||
| 2867 | pub fn setLabel(self: *ControlFlowExpression, value: TokenIndex) void { | ||
| 2868 | self.setTrailer(.label, value); | ||
| 2681 | } | 2869 | } |
| 2682 | 2870 | ||
| 2683 | pub fn getTrailer(self: *const ControlFlowExpression, comptime name: []const u8) ?TrailerFlags.Field(name) { | 2871 | fn getTrailer(self: *const ControlFlowExpression, comptime field: TrailerFlags.FieldEnum) ?TrailerFlags.Field(field) { |
| 2684 | const trailers_start = @ptrCast([*]const u8, self) + @sizeOf(ControlFlowExpression); | 2872 | const trailers_start = @ptrCast([*]const u8, self) + @sizeOf(ControlFlowExpression); |
| 2685 | return self.trailer_flags.get(trailers_start, name); | 2873 | return self.trailer_flags.get(trailers_start, field); |
| 2686 | } | 2874 | } |
| 2687 | 2875 | ||
| 2688 | pub fn setTrailer(self: *ControlFlowExpression, comptime name: []const u8, value: TrailerFlags.Field(name)) void { | 2876 | fn setTrailer(self: *ControlFlowExpression, comptime field: TrailerFlags.FieldEnum, value: TrailerFlags.Field(field)) void { |
| 2689 | const trailers_start = @ptrCast([*]u8, self) + @sizeOf(ControlFlowExpression); | 2877 | const trailers_start = @ptrCast([*]u8, self) + @sizeOf(ControlFlowExpression); |
| 2690 | self.trailer_flags.set(trailers_start, name, value); | 2878 | self.trailer_flags.set(trailers_start, field, value); |
| 2691 | } | 2879 | } |
| 2692 | 2880 | ||
| 2693 | pub fn create(allocator: *mem.Allocator, required: RequiredFields, trailers: anytype) !*ControlFlowExpression { | 2881 | pub fn create(allocator: *mem.Allocator, required: RequiredFields, trailers: TrailerFlags.InitStruct) !*ControlFlowExpression { |
| 2694 | const trailer_flags = TrailerFlags.init(trailers); | 2882 | const trailer_flags = TrailerFlags.init(trailers); |
| 2695 | const bytes = try allocator.alignedAlloc(u8, @alignOf(ControlFlowExpression), sizeInBytes(trailer_flags)); | 2883 | const bytes = try allocator.alignedAlloc(u8, @alignOf(ControlFlowExpression), sizeInBytes(trailer_flags)); |
| 2696 | const ctrl_flow_expr = @ptrCast(*ControlFlowExpression, bytes.ptr); | 2884 | const ctrl_flow_expr = @ptrCast(*ControlFlowExpression, bytes.ptr); |
lib/std/zig/render.zig+42-38| ... | @@ -232,9 +232,9 @@ fn renderContainerDecl(allocator: *mem.Allocator, stream: anytype, tree: *ast.Tr | ... | @@ -232,9 +232,9 @@ fn renderContainerDecl(allocator: *mem.Allocator, stream: anytype, tree: *ast.Tr |
| 232 | .FnProto => { | 232 | .FnProto => { |
| 233 | const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", decl); | 233 | const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", decl); |
| 234 | 234 | ||
| 235 | try renderDocComments(tree, stream, fn_proto, fn_proto.getTrailer("doc_comments"), indent, start_col); | 235 | try renderDocComments(tree, stream, fn_proto, fn_proto.getDocComments(), indent, start_col); |
| 236 | 236 | ||
| 237 | if (fn_proto.getTrailer("body_node")) |body_node| { | 237 | if (fn_proto.getBodyNode()) |body_node| { |
| 238 | try renderExpression(allocator, stream, tree, indent, start_col, decl, .Space); | 238 | try renderExpression(allocator, stream, tree, indent, start_col, decl, .Space); |
| 239 | try renderExpression(allocator, stream, tree, indent, start_col, body_node, space); | 239 | try renderExpression(allocator, stream, tree, indent, start_col, body_node, space); |
| 240 | } else { | 240 | } else { |
| ... | @@ -257,7 +257,7 @@ fn renderContainerDecl(allocator: *mem.Allocator, stream: anytype, tree: *ast.Tr | ... | @@ -257,7 +257,7 @@ fn renderContainerDecl(allocator: *mem.Allocator, stream: anytype, tree: *ast.Tr |
| 257 | .VarDecl => { | 257 | .VarDecl => { |
| 258 | const var_decl = @fieldParentPtr(ast.Node.VarDecl, "base", decl); | 258 | const var_decl = @fieldParentPtr(ast.Node.VarDecl, "base", decl); |
| 259 | 259 | ||
| 260 | try renderDocComments(tree, stream, var_decl, var_decl.getTrailer("doc_comments"), indent, start_col); | 260 | try renderDocComments(tree, stream, var_decl, var_decl.getDocComments(), indent, start_col); |
| 261 | try renderVarDecl(allocator, stream, tree, indent, start_col, var_decl); | 261 | try renderVarDecl(allocator, stream, tree, indent, start_col, var_decl); |
| 262 | }, | 262 | }, |
| 263 | 263 | ||
| ... | @@ -1478,6 +1478,10 @@ fn renderExpression( | ... | @@ -1478,6 +1478,10 @@ fn renderExpression( |
| 1478 | .BuiltinCall => { | 1478 | .BuiltinCall => { |
| 1479 | const builtin_call = @fieldParentPtr(ast.Node.BuiltinCall, "base", base); | 1479 | const builtin_call = @fieldParentPtr(ast.Node.BuiltinCall, "base", base); |
| 1480 | 1480 | ||
| 1481 | // TODO remove after 0.7.0 release | ||
| 1482 | if (mem.eql(u8, tree.tokenSlice(builtin_call.builtin_token), "@OpaqueType")) | ||
| 1483 | return stream.writeAll("@Type(.Opaque)"); | ||
| 1484 | |||
| 1481 | try renderToken(tree, stream, builtin_call.builtin_token, indent, start_col, Space.None); // @name | 1485 | try renderToken(tree, stream, builtin_call.builtin_token, indent, start_col, Space.None); // @name |
| 1482 | 1486 | ||
| 1483 | const src_params_trailing_comma = blk: { | 1487 | const src_params_trailing_comma = blk: { |
| ... | @@ -1520,23 +1524,23 @@ fn renderExpression( | ... | @@ -1520,23 +1524,23 @@ fn renderExpression( |
| 1520 | .FnProto => { | 1524 | .FnProto => { |
| 1521 | const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", base); | 1525 | const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", base); |
| 1522 | 1526 | ||
| 1523 | if (fn_proto.getTrailer("visib_token")) |visib_token_index| { | 1527 | if (fn_proto.getVisibToken()) |visib_token_index| { |
| 1524 | const visib_token = tree.token_ids[visib_token_index]; | 1528 | const visib_token = tree.token_ids[visib_token_index]; |
| 1525 | assert(visib_token == .Keyword_pub or visib_token == .Keyword_export); | 1529 | assert(visib_token == .Keyword_pub or visib_token == .Keyword_export); |
| 1526 | 1530 | ||
| 1527 | try renderToken(tree, stream, visib_token_index, indent, start_col, Space.Space); // pub | 1531 | try renderToken(tree, stream, visib_token_index, indent, start_col, Space.Space); // pub |
| 1528 | } | 1532 | } |
| 1529 | 1533 | ||
| 1530 | if (fn_proto.getTrailer("extern_export_inline_token")) |extern_export_inline_token| { | 1534 | if (fn_proto.getExternExportInlineToken()) |extern_export_inline_token| { |
| 1531 | if (fn_proto.getTrailer("is_extern_prototype") == null) | 1535 | if (fn_proto.getIsExternPrototype() == null) |
| 1532 | try renderToken(tree, stream, extern_export_inline_token, indent, start_col, Space.Space); // extern/export/inline | 1536 | try renderToken(tree, stream, extern_export_inline_token, indent, start_col, Space.Space); // extern/export/inline |
| 1533 | } | 1537 | } |
| 1534 | 1538 | ||
| 1535 | if (fn_proto.getTrailer("lib_name")) |lib_name| { | 1539 | if (fn_proto.getLibName()) |lib_name| { |
| 1536 | try renderExpression(allocator, stream, tree, indent, start_col, lib_name, Space.Space); | 1540 | try renderExpression(allocator, stream, tree, indent, start_col, lib_name, Space.Space); |
| 1537 | } | 1541 | } |
| 1538 | 1542 | ||
| 1539 | const lparen = if (fn_proto.getTrailer("name_token")) |name_token| blk: { | 1543 | const lparen = if (fn_proto.getNameToken()) |name_token| blk: { |
| 1540 | try renderToken(tree, stream, fn_proto.fn_token, indent, start_col, Space.Space); // fn | 1544 | try renderToken(tree, stream, fn_proto.fn_token, indent, start_col, Space.Space); // fn |
| 1541 | try renderToken(tree, stream, name_token, indent, start_col, Space.None); // name | 1545 | try renderToken(tree, stream, name_token, indent, start_col, Space.None); // name |
| 1542 | break :blk tree.nextToken(name_token); | 1546 | break :blk tree.nextToken(name_token); |
| ... | @@ -1549,11 +1553,11 @@ fn renderExpression( | ... | @@ -1549,11 +1553,11 @@ fn renderExpression( |
| 1549 | const rparen = tree.prevToken( | 1553 | const rparen = tree.prevToken( |
| 1550 | // the first token for the annotation expressions is the left | 1554 | // the first token for the annotation expressions is the left |
| 1551 | // parenthesis, hence the need for two prevToken | 1555 | // parenthesis, hence the need for two prevToken |
| 1552 | if (fn_proto.getTrailer("align_expr")) |align_expr| | 1556 | if (fn_proto.getAlignExpr()) |align_expr| |
| 1553 | tree.prevToken(tree.prevToken(align_expr.firstToken())) | 1557 | tree.prevToken(tree.prevToken(align_expr.firstToken())) |
| 1554 | else if (fn_proto.getTrailer("section_expr")) |section_expr| | 1558 | else if (fn_proto.getSectionExpr()) |section_expr| |
| 1555 | tree.prevToken(tree.prevToken(section_expr.firstToken())) | 1559 | tree.prevToken(tree.prevToken(section_expr.firstToken())) |
| 1556 | else if (fn_proto.getTrailer("callconv_expr")) |callconv_expr| | 1560 | else if (fn_proto.getCallconvExpr()) |callconv_expr| |
| 1557 | tree.prevToken(tree.prevToken(callconv_expr.firstToken())) | 1561 | tree.prevToken(tree.prevToken(callconv_expr.firstToken())) |
| 1558 | else switch (fn_proto.return_type) { | 1562 | else switch (fn_proto.return_type) { |
| 1559 | .Explicit => |node| node.firstToken(), | 1563 | .Explicit => |node| node.firstToken(), |
| ... | @@ -1574,12 +1578,12 @@ fn renderExpression( | ... | @@ -1574,12 +1578,12 @@ fn renderExpression( |
| 1574 | for (fn_proto.params()) |param_decl, i| { | 1578 | for (fn_proto.params()) |param_decl, i| { |
| 1575 | try renderParamDecl(allocator, stream, tree, indent, start_col, param_decl, Space.None); | 1579 | try renderParamDecl(allocator, stream, tree, indent, start_col, param_decl, Space.None); |
| 1576 | 1580 | ||
| 1577 | if (i + 1 < fn_proto.params_len or fn_proto.getTrailer("var_args_token") != null) { | 1581 | if (i + 1 < fn_proto.params_len or fn_proto.getVarArgsToken() != null) { |
| 1578 | const comma = tree.nextToken(param_decl.lastToken()); | 1582 | const comma = tree.nextToken(param_decl.lastToken()); |
| 1579 | try renderToken(tree, stream, comma, indent, start_col, Space.Space); // , | 1583 | try renderToken(tree, stream, comma, indent, start_col, Space.Space); // , |
| 1580 | } | 1584 | } |
| 1581 | } | 1585 | } |
| 1582 | if (fn_proto.getTrailer("var_args_token")) |var_args_token| { | 1586 | if (fn_proto.getVarArgsToken()) |var_args_token| { |
| 1583 | try renderToken(tree, stream, var_args_token, indent, start_col, Space.None); | 1587 | try renderToken(tree, stream, var_args_token, indent, start_col, Space.None); |
| 1584 | } | 1588 | } |
| 1585 | } else { | 1589 | } else { |
| ... | @@ -1591,7 +1595,7 @@ fn renderExpression( | ... | @@ -1591,7 +1595,7 @@ fn renderExpression( |
| 1591 | try stream.writeByteNTimes(' ', new_indent); | 1595 | try stream.writeByteNTimes(' ', new_indent); |
| 1592 | try renderParamDecl(allocator, stream, tree, new_indent, start_col, param_decl, Space.Comma); | 1596 | try renderParamDecl(allocator, stream, tree, new_indent, start_col, param_decl, Space.Comma); |
| 1593 | } | 1597 | } |
| 1594 | if (fn_proto.getTrailer("var_args_token")) |var_args_token| { | 1598 | if (fn_proto.getVarArgsToken()) |var_args_token| { |
| 1595 | try stream.writeByteNTimes(' ', new_indent); | 1599 | try stream.writeByteNTimes(' ', new_indent); |
| 1596 | try renderToken(tree, stream, var_args_token, new_indent, start_col, Space.Comma); | 1600 | try renderToken(tree, stream, var_args_token, new_indent, start_col, Space.Comma); |
| 1597 | } | 1601 | } |
| ... | @@ -1600,7 +1604,7 @@ fn renderExpression( | ... | @@ -1600,7 +1604,7 @@ fn renderExpression( |
| 1600 | 1604 | ||
| 1601 | try renderToken(tree, stream, rparen, indent, start_col, Space.Space); // ) | 1605 | try renderToken(tree, stream, rparen, indent, start_col, Space.Space); // ) |
| 1602 | 1606 | ||
| 1603 | if (fn_proto.getTrailer("align_expr")) |align_expr| { | 1607 | if (fn_proto.getAlignExpr()) |align_expr| { |
| 1604 | const align_rparen = tree.nextToken(align_expr.lastToken()); | 1608 | const align_rparen = tree.nextToken(align_expr.lastToken()); |
| 1605 | const align_lparen = tree.prevToken(align_expr.firstToken()); | 1609 | const align_lparen = tree.prevToken(align_expr.firstToken()); |
| 1606 | const align_kw = tree.prevToken(align_lparen); | 1610 | const align_kw = tree.prevToken(align_lparen); |
| ... | @@ -1611,7 +1615,7 @@ fn renderExpression( | ... | @@ -1611,7 +1615,7 @@ fn renderExpression( |
| 1611 | try renderToken(tree, stream, align_rparen, indent, start_col, Space.Space); // ) | 1615 | try renderToken(tree, stream, align_rparen, indent, start_col, Space.Space); // ) |
| 1612 | } | 1616 | } |
| 1613 | 1617 | ||
| 1614 | if (fn_proto.getTrailer("section_expr")) |section_expr| { | 1618 | if (fn_proto.getSectionExpr()) |section_expr| { |
| 1615 | const section_rparen = tree.nextToken(section_expr.lastToken()); | 1619 | const section_rparen = tree.nextToken(section_expr.lastToken()); |
| 1616 | const section_lparen = tree.prevToken(section_expr.firstToken()); | 1620 | const section_lparen = tree.prevToken(section_expr.firstToken()); |
| 1617 | const section_kw = tree.prevToken(section_lparen); | 1621 | const section_kw = tree.prevToken(section_lparen); |
| ... | @@ -1622,7 +1626,7 @@ fn renderExpression( | ... | @@ -1622,7 +1626,7 @@ fn renderExpression( |
| 1622 | try renderToken(tree, stream, section_rparen, indent, start_col, Space.Space); // ) | 1626 | try renderToken(tree, stream, section_rparen, indent, start_col, Space.Space); // ) |
| 1623 | } | 1627 | } |
| 1624 | 1628 | ||
| 1625 | if (fn_proto.getTrailer("callconv_expr")) |callconv_expr| { | 1629 | if (fn_proto.getCallconvExpr()) |callconv_expr| { |
| 1626 | const callconv_rparen = tree.nextToken(callconv_expr.lastToken()); | 1630 | const callconv_rparen = tree.nextToken(callconv_expr.lastToken()); |
| 1627 | const callconv_lparen = tree.prevToken(callconv_expr.firstToken()); | 1631 | const callconv_lparen = tree.prevToken(callconv_expr.firstToken()); |
| 1628 | const callconv_kw = tree.prevToken(callconv_lparen); | 1632 | const callconv_kw = tree.prevToken(callconv_lparen); |
| ... | @@ -1631,9 +1635,9 @@ fn renderExpression( | ... | @@ -1631,9 +1635,9 @@ fn renderExpression( |
| 1631 | try renderToken(tree, stream, callconv_lparen, indent, start_col, Space.None); // ( | 1635 | try renderToken(tree, stream, callconv_lparen, indent, start_col, Space.None); // ( |
| 1632 | try renderExpression(allocator, stream, tree, indent, start_col, callconv_expr, Space.None); | 1636 | try renderExpression(allocator, stream, tree, indent, start_col, callconv_expr, Space.None); |
| 1633 | try renderToken(tree, stream, callconv_rparen, indent, start_col, Space.Space); // ) | 1637 | try renderToken(tree, stream, callconv_rparen, indent, start_col, Space.Space); // ) |
| 1634 | } else if (fn_proto.getTrailer("is_extern_prototype") != null) { | 1638 | } else if (fn_proto.getIsExternPrototype() != null) { |
| 1635 | try stream.writeAll("callconv(.C) "); | 1639 | try stream.writeAll("callconv(.C) "); |
| 1636 | } else if (fn_proto.getTrailer("is_async") != null) { | 1640 | } else if (fn_proto.getIsAsync() != null) { |
| 1637 | try stream.writeAll("callconv(.Async) "); | 1641 | try stream.writeAll("callconv(.Async) "); |
| 1638 | } | 1642 | } |
| 1639 | 1643 | ||
| ... | @@ -2221,69 +2225,69 @@ fn renderVarDecl( | ... | @@ -2221,69 +2225,69 @@ fn renderVarDecl( |
| 2221 | start_col: *usize, | 2225 | start_col: *usize, |
| 2222 | var_decl: *ast.Node.VarDecl, | 2226 | var_decl: *ast.Node.VarDecl, |
| 2223 | ) (@TypeOf(stream).Error || Error)!void { | 2227 | ) (@TypeOf(stream).Error || Error)!void { |
| 2224 | if (var_decl.getTrailer("visib_token")) |visib_token| { | 2228 | if (var_decl.getVisibToken()) |visib_token| { |
| 2225 | try renderToken(tree, stream, visib_token, indent, start_col, Space.Space); // pub | 2229 | try renderToken(tree, stream, visib_token, indent, start_col, Space.Space); // pub |
| 2226 | } | 2230 | } |
| 2227 | 2231 | ||
| 2228 | if (var_decl.getTrailer("extern_export_token")) |extern_export_token| { | 2232 | if (var_decl.getExternExportToken()) |extern_export_token| { |
| 2229 | try renderToken(tree, stream, extern_export_token, indent, start_col, Space.Space); // extern | 2233 | try renderToken(tree, stream, extern_export_token, indent, start_col, Space.Space); // extern |
| 2230 | 2234 | ||
| 2231 | if (var_decl.getTrailer("lib_name")) |lib_name| { | 2235 | if (var_decl.getLibName()) |lib_name| { |
| 2232 | try renderExpression(allocator, stream, tree, indent, start_col, lib_name, Space.Space); // "lib" | 2236 | try renderExpression(allocator, stream, tree, indent, start_col, lib_name, Space.Space); // "lib" |
| 2233 | } | 2237 | } |
| 2234 | } | 2238 | } |
| 2235 | 2239 | ||
| 2236 | if (var_decl.getTrailer("comptime_token")) |comptime_token| { | 2240 | if (var_decl.getComptimeToken()) |comptime_token| { |
| 2237 | try renderToken(tree, stream, comptime_token, indent, start_col, Space.Space); // comptime | 2241 | try renderToken(tree, stream, comptime_token, indent, start_col, Space.Space); // comptime |
| 2238 | } | 2242 | } |
| 2239 | 2243 | ||
| 2240 | if (var_decl.getTrailer("thread_local_token")) |thread_local_token| { | 2244 | if (var_decl.getThreadLocalToken()) |thread_local_token| { |
| 2241 | try renderToken(tree, stream, thread_local_token, indent, start_col, Space.Space); // threadlocal | 2245 | try renderToken(tree, stream, thread_local_token, indent, start_col, Space.Space); // threadlocal |
| 2242 | } | 2246 | } |
| 2243 | try renderToken(tree, stream, var_decl.mut_token, indent, start_col, Space.Space); // var | 2247 | try renderToken(tree, stream, var_decl.mut_token, indent, start_col, Space.Space); // var |
| 2244 | 2248 | ||
| 2245 | const name_space = if (var_decl.getTrailer("type_node") == null and | 2249 | const name_space = if (var_decl.getTypeNode() == null and |
| 2246 | (var_decl.getTrailer("align_node") != null or | 2250 | (var_decl.getAlignNode() != null or |
| 2247 | var_decl.getTrailer("section_node") != null or | 2251 | var_decl.getSectionNode() != null or |
| 2248 | var_decl.getTrailer("init_node") != null)) | 2252 | var_decl.getInitNode() != null)) |
| 2249 | Space.Space | 2253 | Space.Space |
| 2250 | else | 2254 | else |
| 2251 | Space.None; | 2255 | Space.None; |
| 2252 | try renderToken(tree, stream, var_decl.name_token, indent, start_col, name_space); | 2256 | try renderToken(tree, stream, var_decl.name_token, indent, start_col, name_space); |
| 2253 | 2257 | ||
| 2254 | if (var_decl.getTrailer("type_node")) |type_node| { | 2258 | if (var_decl.getTypeNode()) |type_node| { |
| 2255 | try renderToken(tree, stream, tree.nextToken(var_decl.name_token), indent, start_col, Space.Space); | 2259 | try renderToken(tree, stream, tree.nextToken(var_decl.name_token), indent, start_col, Space.Space); |
| 2256 | const s = if (var_decl.getTrailer("align_node") != null or | 2260 | const s = if (var_decl.getAlignNode() != null or |
| 2257 | var_decl.getTrailer("section_node") != null or | 2261 | var_decl.getSectionNode() != null or |
| 2258 | var_decl.getTrailer("init_node") != null) Space.Space else Space.None; | 2262 | var_decl.getInitNode() != null) Space.Space else Space.None; |
| 2259 | try renderExpression(allocator, stream, tree, indent, start_col, type_node, s); | 2263 | try renderExpression(allocator, stream, tree, indent, start_col, type_node, s); |
| 2260 | } | 2264 | } |
| 2261 | 2265 | ||
| 2262 | if (var_decl.getTrailer("align_node")) |align_node| { | 2266 | if (var_decl.getAlignNode()) |align_node| { |
| 2263 | const lparen = tree.prevToken(align_node.firstToken()); | 2267 | const lparen = tree.prevToken(align_node.firstToken()); |
| 2264 | const align_kw = tree.prevToken(lparen); | 2268 | const align_kw = tree.prevToken(lparen); |
| 2265 | const rparen = tree.nextToken(align_node.lastToken()); | 2269 | const rparen = tree.nextToken(align_node.lastToken()); |
| 2266 | try renderToken(tree, stream, align_kw, indent, start_col, Space.None); // align | 2270 | try renderToken(tree, stream, align_kw, indent, start_col, Space.None); // align |
| 2267 | try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( | 2271 | try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( |
| 2268 | try renderExpression(allocator, stream, tree, indent, start_col, align_node, Space.None); | 2272 | try renderExpression(allocator, stream, tree, indent, start_col, align_node, Space.None); |
| 2269 | const s = if (var_decl.getTrailer("section_node") != null or var_decl.getTrailer("init_node") != null) Space.Space else Space.None; | 2273 | const s = if (var_decl.getSectionNode() != null or var_decl.getInitNode() != null) Space.Space else Space.None; |
| 2270 | try renderToken(tree, stream, rparen, indent, start_col, s); // ) | 2274 | try renderToken(tree, stream, rparen, indent, start_col, s); // ) |
| 2271 | } | 2275 | } |
| 2272 | 2276 | ||
| 2273 | if (var_decl.getTrailer("section_node")) |section_node| { | 2277 | if (var_decl.getSectionNode()) |section_node| { |
| 2274 | const lparen = tree.prevToken(section_node.firstToken()); | 2278 | const lparen = tree.prevToken(section_node.firstToken()); |
| 2275 | const section_kw = tree.prevToken(lparen); | 2279 | const section_kw = tree.prevToken(lparen); |
| 2276 | const rparen = tree.nextToken(section_node.lastToken()); | 2280 | const rparen = tree.nextToken(section_node.lastToken()); |
| 2277 | try renderToken(tree, stream, section_kw, indent, start_col, Space.None); // linksection | 2281 | try renderToken(tree, stream, section_kw, indent, start_col, Space.None); // linksection |
| 2278 | try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( | 2282 | try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( |
| 2279 | try renderExpression(allocator, stream, tree, indent, start_col, section_node, Space.None); | 2283 | try renderExpression(allocator, stream, tree, indent, start_col, section_node, Space.None); |
| 2280 | const s = if (var_decl.getTrailer("init_node") != null) Space.Space else Space.None; | 2284 | const s = if (var_decl.getInitNode() != null) Space.Space else Space.None; |
| 2281 | try renderToken(tree, stream, rparen, indent, start_col, s); // ) | 2285 | try renderToken(tree, stream, rparen, indent, start_col, s); // ) |
| 2282 | } | 2286 | } |
| 2283 | 2287 | ||
| 2284 | if (var_decl.getTrailer("init_node")) |init_node| { | 2288 | if (var_decl.getInitNode()) |init_node| { |
| 2285 | const s = if (init_node.tag == .MultilineStringLiteral) Space.None else Space.Space; | 2289 | const s = if (init_node.tag == .MultilineStringLiteral) Space.None else Space.Space; |
| 2286 | try renderToken(tree, stream, var_decl.getTrailer("eq_token").?, indent, start_col, s); // = | 2290 | try renderToken(tree, stream, var_decl.getEqToken().?, indent, start_col, s); // = |
| 2287 | try renderExpression(allocator, stream, tree, indent, start_col, init_node, Space.None); | 2291 | try renderExpression(allocator, stream, tree, indent, start_col, init_node, Space.None); |
| 2288 | } | 2292 | } |
| 2289 | 2293 |
lib/std/zig/system.zig+4-3| ... | @@ -88,6 +88,7 @@ pub const NativePaths = struct { | ... | @@ -88,6 +88,7 @@ pub const NativePaths = struct { |
| 88 | 88 | ||
| 89 | if (!is_windows) { | 89 | if (!is_windows) { |
| 90 | const triple = try Target.current.linuxTriple(allocator); | 90 | const triple = try Target.current.linuxTriple(allocator); |
| 91 | const qual = Target.current.cpu.arch.ptrBitWidth(); | ||
| 91 | 92 | ||
| 92 | // TODO: $ ld --verbose | grep SEARCH_DIR | 93 | // TODO: $ ld --verbose | grep SEARCH_DIR |
| 93 | // the output contains some paths that end with lib64, maybe include them too? | 94 | // the output contains some paths that end with lib64, maybe include them too? |
| ... | @@ -95,17 +96,17 @@ pub const NativePaths = struct { | ... | @@ -95,17 +96,17 @@ pub const NativePaths = struct { |
| 95 | // TODO: some of these are suspect and should only be added on some systems. audit needed. | 96 | // TODO: some of these are suspect and should only be added on some systems. audit needed. |
| 96 | 97 | ||
| 97 | try self.addIncludeDir("/usr/local/include"); | 98 | try self.addIncludeDir("/usr/local/include"); |
| 99 | try self.addLibDirFmt("/usr/local/lib{}", .{qual}); | ||
| 98 | try self.addLibDir("/usr/local/lib"); | 100 | try self.addLibDir("/usr/local/lib"); |
| 99 | try self.addLibDir("/usr/local/lib64"); | ||
| 100 | 101 | ||
| 101 | try self.addIncludeDirFmt("/usr/include/{}", .{triple}); | 102 | try self.addIncludeDirFmt("/usr/include/{}", .{triple}); |
| 102 | try self.addLibDirFmt("/usr/lib/{}", .{triple}); | 103 | try self.addLibDirFmt("/usr/lib/{}", .{triple}); |
| 103 | 104 | ||
| 104 | try self.addIncludeDir("/usr/include"); | 105 | try self.addIncludeDir("/usr/include"); |
| 106 | try self.addLibDirFmt("/lib{}", .{qual}); | ||
| 105 | try self.addLibDir("/lib"); | 107 | try self.addLibDir("/lib"); |
| 106 | try self.addLibDir("/lib64"); | 108 | try self.addLibDirFmt("/usr/lib{}", .{qual}); |
| 107 | try self.addLibDir("/usr/lib"); | 109 | try self.addLibDir("/usr/lib"); |
| 108 | try self.addLibDir("/usr/lib64"); | ||
| 109 | 110 | ||
| 110 | // example: on a 64-bit debian-based linux distro, with zlib installed from apt: | 111 | // example: on a 64-bit debian-based linux distro, with zlib installed from apt: |
| 111 | // zlib.h is in /usr/include (added above) | 112 | // zlib.h is in /usr/include (added above) |
src-self-hosted/Module.zig+35-24| ... | @@ -1256,8 +1256,8 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { | ... | @@ -1256,8 +1256,8 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { |
| 1256 | }; | 1256 | }; |
| 1257 | defer fn_type_scope.instructions.deinit(self.gpa); | 1257 | defer fn_type_scope.instructions.deinit(self.gpa); |
| 1258 | 1258 | ||
| 1259 | decl.is_pub = fn_proto.getTrailer("visib_token") != null; | 1259 | decl.is_pub = fn_proto.getVisibToken() != null; |
| 1260 | const body_node = fn_proto.getTrailer("body_node") orelse | 1260 | const body_node = fn_proto.getBodyNode() orelse |
| 1261 | return self.failTok(&fn_type_scope.base, fn_proto.fn_token, "TODO implement extern functions", .{}); | 1261 | return self.failTok(&fn_type_scope.base, fn_proto.fn_token, "TODO implement extern functions", .{}); |
| 1262 | 1262 | ||
| 1263 | const param_decls = fn_proto.params(); | 1263 | const param_decls = fn_proto.params(); |
| ... | @@ -1276,19 +1276,19 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { | ... | @@ -1276,19 +1276,19 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { |
| 1276 | }; | 1276 | }; |
| 1277 | param_types[i] = try astgen.expr(self, &fn_type_scope.base, type_type_rl, param_type_node); | 1277 | param_types[i] = try astgen.expr(self, &fn_type_scope.base, type_type_rl, param_type_node); |
| 1278 | } | 1278 | } |
| 1279 | if (fn_proto.getTrailer("var_args_token")) |var_args_token| { | 1279 | if (fn_proto.getVarArgsToken()) |var_args_token| { |
| 1280 | return self.failTok(&fn_type_scope.base, var_args_token, "TODO implement var args", .{}); | 1280 | return self.failTok(&fn_type_scope.base, var_args_token, "TODO implement var args", .{}); |
| 1281 | } | 1281 | } |
| 1282 | if (fn_proto.getTrailer("lib_name")) |lib_name| { | 1282 | if (fn_proto.getLibName()) |lib_name| { |
| 1283 | return self.failNode(&fn_type_scope.base, lib_name, "TODO implement function library name", .{}); | 1283 | return self.failNode(&fn_type_scope.base, lib_name, "TODO implement function library name", .{}); |
| 1284 | } | 1284 | } |
| 1285 | if (fn_proto.getTrailer("align_expr")) |align_expr| { | 1285 | if (fn_proto.getAlignExpr()) |align_expr| { |
| 1286 | return self.failNode(&fn_type_scope.base, align_expr, "TODO implement function align expression", .{}); | 1286 | return self.failNode(&fn_type_scope.base, align_expr, "TODO implement function align expression", .{}); |
| 1287 | } | 1287 | } |
| 1288 | if (fn_proto.getTrailer("section_expr")) |sect_expr| { | 1288 | if (fn_proto.getSectionExpr()) |sect_expr| { |
| 1289 | return self.failNode(&fn_type_scope.base, sect_expr, "TODO implement function section expression", .{}); | 1289 | return self.failNode(&fn_type_scope.base, sect_expr, "TODO implement function section expression", .{}); |
| 1290 | } | 1290 | } |
| 1291 | if (fn_proto.getTrailer("callconv_expr")) |callconv_expr| { | 1291 | if (fn_proto.getCallconvExpr()) |callconv_expr| { |
| 1292 | return self.failNode( | 1292 | return self.failNode( |
| 1293 | &fn_type_scope.base, | 1293 | &fn_type_scope.base, |
| 1294 | callconv_expr, | 1294 | callconv_expr, |
| ... | @@ -1430,10 +1430,10 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { | ... | @@ -1430,10 +1430,10 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { |
| 1430 | self.bin_file.freeDecl(decl); | 1430 | self.bin_file.freeDecl(decl); |
| 1431 | } | 1431 | } |
| 1432 | 1432 | ||
| 1433 | if (fn_proto.getTrailer("extern_export_inline_token")) |maybe_export_token| { | 1433 | if (fn_proto.getExternExportInlineToken()) |maybe_export_token| { |
| 1434 | if (tree.token_ids[maybe_export_token] == .Keyword_export) { | 1434 | if (tree.token_ids[maybe_export_token] == .Keyword_export) { |
| 1435 | const export_src = tree.token_locs[maybe_export_token].start; | 1435 | const export_src = tree.token_locs[maybe_export_token].start; |
| 1436 | const name_loc = tree.token_locs[fn_proto.getTrailer("name_token").?]; | 1436 | const name_loc = tree.token_locs[fn_proto.getNameToken().?]; |
| 1437 | const name = tree.tokenSliceLoc(name_loc); | 1437 | const name = tree.tokenSliceLoc(name_loc); |
| 1438 | // The scope needs to have the decl in it. | 1438 | // The scope needs to have the decl in it. |
| 1439 | try self.analyzeExport(&block_scope.base, export_src, name, decl); | 1439 | try self.analyzeExport(&block_scope.base, export_src, name, decl); |
| ... | @@ -1460,37 +1460,37 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { | ... | @@ -1460,37 +1460,37 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { |
| 1460 | }; | 1460 | }; |
| 1461 | defer block_scope.instructions.deinit(self.gpa); | 1461 | defer block_scope.instructions.deinit(self.gpa); |
| 1462 | 1462 | ||
| 1463 | decl.is_pub = var_decl.getTrailer("visib_token") != null; | 1463 | decl.is_pub = var_decl.getVisibToken() != null; |
| 1464 | const is_extern = blk: { | 1464 | const is_extern = blk: { |
| 1465 | const maybe_extern_token = var_decl.getTrailer("extern_export_token") orelse | 1465 | const maybe_extern_token = var_decl.getExternExportToken() orelse |
| 1466 | break :blk false; | 1466 | break :blk false; |
| 1467 | if (tree.token_ids[maybe_extern_token] != .Keyword_extern) break :blk false; | 1467 | if (tree.token_ids[maybe_extern_token] != .Keyword_extern) break :blk false; |
| 1468 | if (var_decl.getTrailer("init_node")) |some| { | 1468 | if (var_decl.getInitNode()) |some| { |
| 1469 | return self.failNode(&block_scope.base, some, "extern variables have no initializers", .{}); | 1469 | return self.failNode(&block_scope.base, some, "extern variables have no initializers", .{}); |
| 1470 | } | 1470 | } |
| 1471 | break :blk true; | 1471 | break :blk true; |
| 1472 | }; | 1472 | }; |
| 1473 | if (var_decl.getTrailer("lib_name")) |lib_name| { | 1473 | if (var_decl.getLibName()) |lib_name| { |
| 1474 | assert(is_extern); | 1474 | assert(is_extern); |
| 1475 | return self.failNode(&block_scope.base, lib_name, "TODO implement function library name", .{}); | 1475 | return self.failNode(&block_scope.base, lib_name, "TODO implement function library name", .{}); |
| 1476 | } | 1476 | } |
| 1477 | const is_mutable = tree.token_ids[var_decl.mut_token] == .Keyword_var; | 1477 | const is_mutable = tree.token_ids[var_decl.mut_token] == .Keyword_var; |
| 1478 | const is_threadlocal = if (var_decl.getTrailer("thread_local_token")) |some| blk: { | 1478 | const is_threadlocal = if (var_decl.getThreadLocalToken()) |some| blk: { |
| 1479 | if (!is_mutable) { | 1479 | if (!is_mutable) { |
| 1480 | return self.failTok(&block_scope.base, some, "threadlocal variable cannot be constant", .{}); | 1480 | return self.failTok(&block_scope.base, some, "threadlocal variable cannot be constant", .{}); |
| 1481 | } | 1481 | } |
| 1482 | break :blk true; | 1482 | break :blk true; |
| 1483 | } else false; | 1483 | } else false; |
| 1484 | assert(var_decl.getTrailer("comptime_token") == null); | 1484 | assert(var_decl.getComptimeToken() == null); |
| 1485 | if (var_decl.getTrailer("align_node")) |align_expr| { | 1485 | if (var_decl.getAlignNode()) |align_expr| { |
| 1486 | return self.failNode(&block_scope.base, align_expr, "TODO implement function align expression", .{}); | 1486 | return self.failNode(&block_scope.base, align_expr, "TODO implement function align expression", .{}); |
| 1487 | } | 1487 | } |
| 1488 | if (var_decl.getTrailer("section_node")) |sect_expr| { | 1488 | if (var_decl.getSectionNode()) |sect_expr| { |
| 1489 | return self.failNode(&block_scope.base, sect_expr, "TODO implement function section expression", .{}); | 1489 | return self.failNode(&block_scope.base, sect_expr, "TODO implement function section expression", .{}); |
| 1490 | } | 1490 | } |
| 1491 | 1491 | ||
| 1492 | const explicit_type = blk: { | 1492 | const explicit_type = blk: { |
| 1493 | const type_node = var_decl.getTrailer("type_node") orelse | 1493 | const type_node = var_decl.getTypeNode() orelse |
| 1494 | break :blk null; | 1494 | break :blk null; |
| 1495 | 1495 | ||
| 1496 | // Temporary arena for the zir instructions. | 1496 | // Temporary arena for the zir instructions. |
| ... | @@ -1517,7 +1517,7 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { | ... | @@ -1517,7 +1517,7 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { |
| 1517 | }; | 1517 | }; |
| 1518 | 1518 | ||
| 1519 | var var_type: Type = undefined; | 1519 | var var_type: Type = undefined; |
| 1520 | const value: ?Value = if (var_decl.getTrailer("init_node")) |init_node| blk: { | 1520 | const value: ?Value = if (var_decl.getInitNode()) |init_node| blk: { |
| 1521 | var gen_scope_arena = std.heap.ArenaAllocator.init(self.gpa); | 1521 | var gen_scope_arena = std.heap.ArenaAllocator.init(self.gpa); |
| 1522 | defer gen_scope_arena.deinit(); | 1522 | defer gen_scope_arena.deinit(); |
| 1523 | var gen_scope: Scope.GenZIR = .{ | 1523 | var gen_scope: Scope.GenZIR = .{ |
| ... | @@ -1602,7 +1602,7 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { | ... | @@ -1602,7 +1602,7 @@ fn astGenAndAnalyzeDecl(self: *Module, decl: *Decl) !bool { |
| 1602 | decl.analysis = .complete; | 1602 | decl.analysis = .complete; |
| 1603 | decl.generation = self.generation; | 1603 | decl.generation = self.generation; |
| 1604 | 1604 | ||
| 1605 | if (var_decl.getTrailer("extern_export_token")) |maybe_export_token| { | 1605 | if (var_decl.getExternExportToken()) |maybe_export_token| { |
| 1606 | if (tree.token_ids[maybe_export_token] == .Keyword_export) { | 1606 | if (tree.token_ids[maybe_export_token] == .Keyword_export) { |
| 1607 | const export_src = tree.token_locs[maybe_export_token].start; | 1607 | const export_src = tree.token_locs[maybe_export_token].start; |
| 1608 | const name_loc = tree.token_locs[var_decl.name_token]; | 1608 | const name_loc = tree.token_locs[var_decl.name_token]; |
| ... | @@ -1768,7 +1768,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void { | ... | @@ -1768,7 +1768,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void { |
| 1768 | for (decls) |src_decl, decl_i| { | 1768 | for (decls) |src_decl, decl_i| { |
| 1769 | if (src_decl.cast(ast.Node.FnProto)) |fn_proto| { | 1769 | if (src_decl.cast(ast.Node.FnProto)) |fn_proto| { |
| 1770 | // We will create a Decl for it regardless of analysis status. | 1770 | // We will create a Decl for it regardless of analysis status. |
| 1771 | const name_tok = fn_proto.getTrailer("name_token") orelse { | 1771 | const name_tok = fn_proto.getNameToken() orelse { |
| 1772 | @panic("TODO missing function name"); | 1772 | @panic("TODO missing function name"); |
| 1773 | }; | 1773 | }; |
| 1774 | 1774 | ||
| ... | @@ -1804,7 +1804,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void { | ... | @@ -1804,7 +1804,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void { |
| 1804 | } else { | 1804 | } else { |
| 1805 | const new_decl = try self.createNewDecl(&root_scope.base, name, decl_i, name_hash, contents_hash); | 1805 | const new_decl = try self.createNewDecl(&root_scope.base, name, decl_i, name_hash, contents_hash); |
| 1806 | root_scope.decls.appendAssumeCapacity(new_decl); | 1806 | root_scope.decls.appendAssumeCapacity(new_decl); |
| 1807 | if (fn_proto.getTrailer("extern_export_inline_token")) |maybe_export_token| { | 1807 | if (fn_proto.getExternExportInlineToken()) |maybe_export_token| { |
| 1808 | if (tree.token_ids[maybe_export_token] == .Keyword_export) { | 1808 | if (tree.token_ids[maybe_export_token] == .Keyword_export) { |
| 1809 | self.work_queue.writeItemAssumeCapacity(.{ .analyze_decl = new_decl }); | 1809 | self.work_queue.writeItemAssumeCapacity(.{ .analyze_decl = new_decl }); |
| 1810 | } | 1810 | } |
| ... | @@ -1831,7 +1831,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void { | ... | @@ -1831,7 +1831,7 @@ fn analyzeRootSrcFile(self: *Module, root_scope: *Scope.File) !void { |
| 1831 | } else { | 1831 | } else { |
| 1832 | const new_decl = try self.createNewDecl(&root_scope.base, name, decl_i, name_hash, contents_hash); | 1832 | const new_decl = try self.createNewDecl(&root_scope.base, name, decl_i, name_hash, contents_hash); |
| 1833 | root_scope.decls.appendAssumeCapacity(new_decl); | 1833 | root_scope.decls.appendAssumeCapacity(new_decl); |
| 1834 | if (var_decl.getTrailer("extern_export_token")) |maybe_export_token| { | 1834 | if (var_decl.getExternExportToken()) |maybe_export_token| { |
| 1835 | if (tree.token_ids[maybe_export_token] == .Keyword_export) { | 1835 | if (tree.token_ids[maybe_export_token] == .Keyword_export) { |
| 1836 | self.work_queue.writeItemAssumeCapacity(.{ .analyze_decl = new_decl }); | 1836 | self.work_queue.writeItemAssumeCapacity(.{ .analyze_decl = new_decl }); |
| 1837 | } | 1837 | } |
| ... | @@ -2570,7 +2570,18 @@ pub fn analyzeIsNull( | ... | @@ -2570,7 +2570,18 @@ pub fn analyzeIsNull( |
| 2570 | operand: *Inst, | 2570 | operand: *Inst, |
| 2571 | invert_logic: bool, | 2571 | invert_logic: bool, |
| 2572 | ) InnerError!*Inst { | 2572 | ) InnerError!*Inst { |
| 2573 | return self.fail(scope, src, "TODO implement analysis of isnull and isnotnull", .{}); | 2573 | if (operand.value()) |opt_val| { |
| 2574 | const is_null = opt_val.isNull(); | ||
| 2575 | const bool_value = if (invert_logic) !is_null else is_null; | ||
| 2576 | return self.constBool(scope, src, bool_value); | ||
| 2577 | } | ||
| 2578 | const b = try self.requireRuntimeBlock(scope, src); | ||
| 2579 | const inst_tag: Inst.Tag = if (invert_logic) .isnonnull else .isnull; | ||
| 2580 | return self.addUnOp(b, src, Type.initTag(.bool), inst_tag, operand); | ||
| 2581 | } | ||
| 2582 | |||
| 2583 | pub fn analyzeIsErr(self: *Module, scope: *Scope, src: usize, operand: *Inst) InnerError!*Inst { | ||
| 2584 | return self.fail(scope, src, "TODO implement analysis of iserr", .{}); | ||
| 2574 | } | 2585 | } |
| 2575 | 2586 | ||
| 2576 | /// Asserts that lhs and rhs types are both numeric. | 2587 | /// Asserts that lhs and rhs types are both numeric. |
src-self-hosted/astgen.zig+292-15| ... | @@ -13,7 +13,8 @@ const Scope = Module.Scope; | ... | @@ -13,7 +13,8 @@ const Scope = Module.Scope; |
| 13 | const InnerError = Module.InnerError; | 13 | const InnerError = Module.InnerError; |
| 14 | 14 | ||
| 15 | pub const ResultLoc = union(enum) { | 15 | pub const ResultLoc = union(enum) { |
| 16 | /// The expression is the right-hand side of assignment to `_`. | 16 | /// The expression is the right-hand side of assignment to `_`. Only the side-effects of the |
| 17 | /// expression should be generated. | ||
| 17 | discard, | 18 | discard, |
| 18 | /// The expression has an inferred type, and it will be evaluated as an rvalue. | 19 | /// The expression has an inferred type, and it will be evaluated as an rvalue. |
| 19 | none, | 20 | none, |
| ... | @@ -272,22 +273,22 @@ pub fn expr(mod: *Module, scope: *Scope, rl: ResultLoc, node: *ast.Node) InnerEr | ... | @@ -272,22 +273,22 @@ pub fn expr(mod: *Module, scope: *Scope, rl: ResultLoc, node: *ast.Node) InnerEr |
| 272 | .AnyFrameType => return rlWrap(mod, scope, rl, try anyFrameType(mod, scope, node.castTag(.AnyFrameType).?)), | 273 | .AnyFrameType => return rlWrap(mod, scope, rl, try anyFrameType(mod, scope, node.castTag(.AnyFrameType).?)), |
| 273 | .ErrorSetDecl => return errorSetDecl(mod, scope, rl, node.castTag(.ErrorSetDecl).?), | 274 | .ErrorSetDecl => return errorSetDecl(mod, scope, rl, node.castTag(.ErrorSetDecl).?), |
| 274 | .ErrorType => return rlWrap(mod, scope, rl, try errorType(mod, scope, node.castTag(.ErrorType).?)), | 275 | .ErrorType => return rlWrap(mod, scope, rl, try errorType(mod, scope, node.castTag(.ErrorType).?)), |
| 276 | .For => return forExpr(mod, scope, rl, node.castTag(.For).?), | ||
| 277 | .ArrayAccess => return arrayAccess(mod, scope, rl, node.castTag(.ArrayAccess).?), | ||
| 278 | .Catch => return catchExpr(mod, scope, rl, node.castTag(.Catch).?), | ||
| 275 | 279 | ||
| 276 | .Defer => return mod.failNode(scope, node, "TODO implement astgen.expr for .Defer", .{}), | 280 | .Defer => return mod.failNode(scope, node, "TODO implement astgen.expr for .Defer", .{}), |
| 277 | .Catch => return mod.failNode(scope, node, "TODO implement astgen.expr for .Catch", .{}), | ||
| 278 | .Range => return mod.failNode(scope, node, "TODO implement astgen.expr for .Range", .{}), | 281 | .Range => return mod.failNode(scope, node, "TODO implement astgen.expr for .Range", .{}), |
| 279 | .OrElse => return mod.failNode(scope, node, "TODO implement astgen.expr for .OrElse", .{}), | 282 | .OrElse => return mod.failNode(scope, node, "TODO implement astgen.expr for .OrElse", .{}), |
| 280 | .Await => return mod.failNode(scope, node, "TODO implement astgen.expr for .Await", .{}), | 283 | .Await => return mod.failNode(scope, node, "TODO implement astgen.expr for .Await", .{}), |
| 281 | .Resume => return mod.failNode(scope, node, "TODO implement astgen.expr for .Resume", .{}), | 284 | .Resume => return mod.failNode(scope, node, "TODO implement astgen.expr for .Resume", .{}), |
| 282 | .Try => return mod.failNode(scope, node, "TODO implement astgen.expr for .Try", .{}), | 285 | .Try => return mod.failNode(scope, node, "TODO implement astgen.expr for .Try", .{}), |
| 283 | .Slice => return mod.failNode(scope, node, "TODO implement astgen.expr for .Slice", .{}), | 286 | .Slice => return mod.failNode(scope, node, "TODO implement astgen.expr for .Slice", .{}), |
| 284 | .ArrayAccess => return mod.failNode(scope, node, "TODO implement astgen.expr for .ArrayAccess", .{}), | ||
| 285 | .ArrayInitializer => return mod.failNode(scope, node, "TODO implement astgen.expr for .ArrayInitializer", .{}), | 287 | .ArrayInitializer => return mod.failNode(scope, node, "TODO implement astgen.expr for .ArrayInitializer", .{}), |
| 286 | .ArrayInitializerDot => return mod.failNode(scope, node, "TODO implement astgen.expr for .ArrayInitializerDot", .{}), | 288 | .ArrayInitializerDot => return mod.failNode(scope, node, "TODO implement astgen.expr for .ArrayInitializerDot", .{}), |
| 287 | .StructInitializer => return mod.failNode(scope, node, "TODO implement astgen.expr for .StructInitializer", .{}), | 289 | .StructInitializer => return mod.failNode(scope, node, "TODO implement astgen.expr for .StructInitializer", .{}), |
| 288 | .StructInitializerDot => return mod.failNode(scope, node, "TODO implement astgen.expr for .StructInitializerDot", .{}), | 290 | .StructInitializerDot => return mod.failNode(scope, node, "TODO implement astgen.expr for .StructInitializerDot", .{}), |
| 289 | .Switch => return mod.failNode(scope, node, "TODO implement astgen.expr for .Switch", .{}), | 291 | .Switch => return mod.failNode(scope, node, "TODO implement astgen.expr for .Switch", .{}), |
| 290 | .For => return mod.failNode(scope, node, "TODO implement astgen.expr for .For", .{}), | ||
| 291 | .Suspend => return mod.failNode(scope, node, "TODO implement astgen.expr for .Suspend", .{}), | 292 | .Suspend => return mod.failNode(scope, node, "TODO implement astgen.expr for .Suspend", .{}), |
| 292 | .Continue => return mod.failNode(scope, node, "TODO implement astgen.expr for .Continue", .{}), | 293 | .Continue => return mod.failNode(scope, node, "TODO implement astgen.expr for .Continue", .{}), |
| 293 | .AnyType => return mod.failNode(scope, node, "TODO implement astgen.expr for .AnyType", .{}), | 294 | .AnyType => return mod.failNode(scope, node, "TODO implement astgen.expr for .AnyType", .{}), |
| ... | @@ -450,16 +451,16 @@ fn varDecl( | ... | @@ -450,16 +451,16 @@ fn varDecl( |
| 450 | block_arena: *Allocator, | 451 | block_arena: *Allocator, |
| 451 | ) InnerError!*Scope { | 452 | ) InnerError!*Scope { |
| 452 | // TODO implement detection of shadowing | 453 | // TODO implement detection of shadowing |
| 453 | if (node.getTrailer("comptime_token")) |comptime_token| { | 454 | if (node.getComptimeToken()) |comptime_token| { |
| 454 | return mod.failTok(scope, comptime_token, "TODO implement comptime locals", .{}); | 455 | return mod.failTok(scope, comptime_token, "TODO implement comptime locals", .{}); |
| 455 | } | 456 | } |
| 456 | if (node.getTrailer("align_node")) |align_node| { | 457 | if (node.getAlignNode()) |align_node| { |
| 457 | return mod.failNode(scope, align_node, "TODO implement alignment on locals", .{}); | 458 | return mod.failNode(scope, align_node, "TODO implement alignment on locals", .{}); |
| 458 | } | 459 | } |
| 459 | const tree = scope.tree(); | 460 | const tree = scope.tree(); |
| 460 | const name_src = tree.token_locs[node.name_token].start; | 461 | const name_src = tree.token_locs[node.name_token].start; |
| 461 | const ident_name = try identifierTokenString(mod, scope, node.name_token); | 462 | const ident_name = try identifierTokenString(mod, scope, node.name_token); |
| 462 | const init_node = node.getTrailer("init_node") orelse | 463 | const init_node = node.getInitNode() orelse |
| 463 | return mod.fail(scope, name_src, "variables must be initialized", .{}); | 464 | return mod.fail(scope, name_src, "variables must be initialized", .{}); |
| 464 | 465 | ||
| 465 | switch (tree.token_ids[node.mut_token]) { | 466 | switch (tree.token_ids[node.mut_token]) { |
| ... | @@ -468,7 +469,7 @@ fn varDecl( | ... | @@ -468,7 +469,7 @@ fn varDecl( |
| 468 | // or an rvalue as a result location. If it is an rvalue, we can use the instruction as | 469 | // or an rvalue as a result location. If it is an rvalue, we can use the instruction as |
| 469 | // the variable, no memory location needed. | 470 | // the variable, no memory location needed. |
| 470 | const result_loc = if (nodeMayNeedMemoryLocation(init_node)) r: { | 471 | const result_loc = if (nodeMayNeedMemoryLocation(init_node)) r: { |
| 471 | if (node.getTrailer("type_node")) |type_node| { | 472 | if (node.getTypeNode()) |type_node| { |
| 472 | const type_inst = try typeExpr(mod, scope, type_node); | 473 | const type_inst = try typeExpr(mod, scope, type_node); |
| 473 | const alloc = try addZIRUnOp(mod, scope, name_src, .alloc, type_inst); | 474 | const alloc = try addZIRUnOp(mod, scope, name_src, .alloc, type_inst); |
| 474 | break :r ResultLoc{ .ptr = alloc }; | 475 | break :r ResultLoc{ .ptr = alloc }; |
| ... | @@ -477,7 +478,7 @@ fn varDecl( | ... | @@ -477,7 +478,7 @@ fn varDecl( |
| 477 | break :r ResultLoc{ .inferred_ptr = alloc }; | 478 | break :r ResultLoc{ .inferred_ptr = alloc }; |
| 478 | } | 479 | } |
| 479 | } else r: { | 480 | } else r: { |
| 480 | if (node.getTrailer("type_node")) |type_node| | 481 | if (node.getTypeNode()) |type_node| |
| 481 | break :r ResultLoc{ .ty = try typeExpr(mod, scope, type_node) } | 482 | break :r ResultLoc{ .ty = try typeExpr(mod, scope, type_node) } |
| 482 | else | 483 | else |
| 483 | break :r .none; | 484 | break :r .none; |
| ... | @@ -493,10 +494,10 @@ fn varDecl( | ... | @@ -493,10 +494,10 @@ fn varDecl( |
| 493 | return &sub_scope.base; | 494 | return &sub_scope.base; |
| 494 | }, | 495 | }, |
| 495 | .Keyword_var => { | 496 | .Keyword_var => { |
| 496 | const var_data: struct { result_loc: ResultLoc, alloc: *zir.Inst } = if (node.getTrailer("type_node")) |type_node| a: { | 497 | const var_data: struct { result_loc: ResultLoc, alloc: *zir.Inst } = if (node.getTypeNode()) |type_node| a: { |
| 497 | const type_inst = try typeExpr(mod, scope, type_node); | 498 | const type_inst = try typeExpr(mod, scope, type_node); |
| 498 | const alloc = try addZIRUnOp(mod, scope, name_src, .alloc, type_inst); | 499 | const alloc = try addZIRUnOp(mod, scope, name_src, .alloc, type_inst); |
| 499 | break :a .{ .alloc = try addZIRUnOp(mod, scope, name_src, .alloc, type_inst), .result_loc = .{ .ptr = alloc } }; | 500 | break :a .{ .alloc = alloc, .result_loc = .{ .ptr = alloc } }; |
| 500 | } else a: { | 501 | } else a: { |
| 501 | const alloc = try addZIRNoOp(mod, scope, name_src, .alloc_inferred); | 502 | const alloc = try addZIRNoOp(mod, scope, name_src, .alloc_inferred); |
| 502 | break :a .{ .alloc = alloc, .result_loc = .{ .inferred_ptr = alloc.castTag(.alloc_inferred).? } }; | 503 | break :a .{ .alloc = alloc, .result_loc = .{ .inferred_ptr = alloc.castTag(.alloc_inferred).? } }; |
| ... | @@ -623,7 +624,7 @@ fn ptrSliceType(mod: *Module, scope: *Scope, src: usize, ptr_info: *ast.PtrInfo, | ... | @@ -623,7 +624,7 @@ fn ptrSliceType(mod: *Module, scope: *Scope, src: usize, ptr_info: *ast.PtrInfo, |
| 623 | .One => if (mutable) T.single_mut_ptr_type else T.single_const_ptr_type, | 624 | .One => if (mutable) T.single_mut_ptr_type else T.single_const_ptr_type, |
| 624 | .Many => if (mutable) T.many_mut_ptr_type else T.many_const_ptr_type, | 625 | .Many => if (mutable) T.many_mut_ptr_type else T.many_const_ptr_type, |
| 625 | .C => if (mutable) T.c_mut_ptr_type else T.c_const_ptr_type, | 626 | .C => if (mutable) T.c_mut_ptr_type else T.c_const_ptr_type, |
| 626 | .Slice => if (mutable) T.mut_slice_type else T.mut_slice_type, | 627 | .Slice => if (mutable) T.mut_slice_type else T.const_slice_type, |
| 627 | }, child_type); | 628 | }, child_type); |
| 628 | } | 629 | } |
| 629 | 630 | ||
| ... | @@ -749,6 +750,93 @@ fn errorType(mod: *Module, scope: *Scope, node: *ast.Node.OneToken) InnerError!* | ... | @@ -749,6 +750,93 @@ fn errorType(mod: *Module, scope: *Scope, node: *ast.Node.OneToken) InnerError!* |
| 749 | }); | 750 | }); |
| 750 | } | 751 | } |
| 751 | 752 | ||
| 753 | fn catchExpr(mod: *Module, scope: *Scope, rl: ResultLoc, node: *ast.Node.Catch) InnerError!*zir.Inst { | ||
| 754 | const tree = scope.tree(); | ||
| 755 | const src = tree.token_locs[node.op_token].start; | ||
| 756 | |||
| 757 | const err_union_ptr = try expr(mod, scope, .ref, node.lhs); | ||
| 758 | // TODO we could avoid an unnecessary copy if .iserr took a pointer | ||
| 759 | const err_union = try addZIRUnOp(mod, scope, src, .deref, err_union_ptr); | ||
| 760 | const cond = try addZIRUnOp(mod, scope, src, .iserr, err_union); | ||
| 761 | |||
| 762 | var block_scope: Scope.GenZIR = .{ | ||
| 763 | .parent = scope, | ||
| 764 | .decl = scope.decl().?, | ||
| 765 | .arena = scope.arena(), | ||
| 766 | .instructions = .{}, | ||
| 767 | }; | ||
| 768 | defer block_scope.instructions.deinit(mod.gpa); | ||
| 769 | |||
| 770 | const condbr = try addZIRInstSpecial(mod, &block_scope.base, src, zir.Inst.CondBr, .{ | ||
| 771 | .condition = cond, | ||
| 772 | .then_body = undefined, // populated below | ||
| 773 | .else_body = undefined, // populated below | ||
| 774 | }, .{}); | ||
| 775 | |||
| 776 | const block = try addZIRInstBlock(mod, scope, src, .{ | ||
| 777 | .instructions = try block_scope.arena.dupe(*zir.Inst, block_scope.instructions.items), | ||
| 778 | }); | ||
| 779 | |||
| 780 | // Most result location types can be forwarded directly; however | ||
| 781 | // if we need to write to a pointer which has an inferred type, | ||
| 782 | // proper type inference requires peer type resolution on the if's | ||
| 783 | // branches. | ||
| 784 | const branch_rl: ResultLoc = switch (rl) { | ||
| 785 | .discard, .none, .ty, .ptr, .ref => rl, | ||
| 786 | .inferred_ptr, .bitcasted_ptr, .block_ptr => .{ .block_ptr = block }, | ||
| 787 | }; | ||
| 788 | |||
| 789 | var err_scope: Scope.GenZIR = .{ | ||
| 790 | .parent = scope, | ||
| 791 | .decl = block_scope.decl, | ||
| 792 | .arena = block_scope.arena, | ||
| 793 | .instructions = .{}, | ||
| 794 | }; | ||
| 795 | defer err_scope.instructions.deinit(mod.gpa); | ||
| 796 | |||
| 797 | var err_val_scope: Scope.LocalVal = undefined; | ||
| 798 | const err_sub_scope = blk: { | ||
| 799 | const payload = node.payload orelse | ||
| 800 | break :blk &err_scope.base; | ||
| 801 | |||
| 802 | const err_name = tree.tokenSlice(payload.castTag(.Payload).?.error_symbol.firstToken()); | ||
| 803 | if (mem.eql(u8, err_name, "_")) | ||
| 804 | break :blk &err_scope.base; | ||
| 805 | |||
| 806 | const unwrapped_err_ptr = try addZIRUnOp(mod, &err_scope.base, src, .unwrap_err_code, err_union_ptr); | ||
| 807 | err_val_scope = .{ | ||
| 808 | .parent = &err_scope.base, | ||
| 809 | .gen_zir = &err_scope, | ||
| 810 | .name = err_name, | ||
| 811 | .inst = try addZIRUnOp(mod, &err_scope.base, src, .deref, unwrapped_err_ptr), | ||
| 812 | }; | ||
| 813 | break :blk &err_val_scope.base; | ||
| 814 | }; | ||
| 815 | |||
| 816 | _ = try addZIRInst(mod, &err_scope.base, src, zir.Inst.Break, .{ | ||
| 817 | .block = block, | ||
| 818 | .operand = try expr(mod, err_sub_scope, branch_rl, node.rhs), | ||
| 819 | }, .{}); | ||
| 820 | |||
| 821 | var not_err_scope: Scope.GenZIR = .{ | ||
| 822 | .parent = scope, | ||
| 823 | .decl = block_scope.decl, | ||
| 824 | .arena = block_scope.arena, | ||
| 825 | .instructions = .{}, | ||
| 826 | }; | ||
| 827 | defer not_err_scope.instructions.deinit(mod.gpa); | ||
| 828 | |||
| 829 | const unwrapped_payload = try addZIRUnOp(mod, &not_err_scope.base, src, .unwrap_err_unsafe, err_union_ptr); | ||
| 830 | _ = try addZIRInst(mod, &not_err_scope.base, src, zir.Inst.Break, .{ | ||
| 831 | .block = block, | ||
| 832 | .operand = unwrapped_payload, | ||
| 833 | }, .{}); | ||
| 834 | |||
| 835 | condbr.positionals.then_body = .{ .instructions = try err_scope.arena.dupe(*zir.Inst, err_scope.instructions.items) }; | ||
| 836 | condbr.positionals.else_body = .{ .instructions = try not_err_scope.arena.dupe(*zir.Inst, not_err_scope.instructions.items) }; | ||
| 837 | return rlWrap(mod, scope, rl, &block.base); | ||
| 838 | } | ||
| 839 | |||
| 752 | /// Return whether the identifier names of two tokens are equal. Resolves @"" tokens without allocating. | 840 | /// Return whether the identifier names of two tokens are equal. Resolves @"" tokens without allocating. |
| 753 | /// OK in theory it could do it without allocating. This implementation allocates when the @"" form is used. | 841 | /// OK in theory it could do it without allocating. This implementation allocates when the @"" form is used. |
| 754 | fn tokenIdentEql(mod: *Module, scope: *Scope, token1: ast.TokenIndex, token2: ast.TokenIndex) !bool { | 842 | fn tokenIdentEql(mod: *Module, scope: *Scope, token1: ast.TokenIndex, token2: ast.TokenIndex) !bool { |
| ... | @@ -793,9 +881,17 @@ fn field(mod: *Module, scope: *Scope, rl: ResultLoc, node: *ast.Node.SimpleInfix | ... | @@ -793,9 +881,17 @@ fn field(mod: *Module, scope: *Scope, rl: ResultLoc, node: *ast.Node.SimpleInfix |
| 793 | const lhs = try expr(mod, scope, .ref, node.lhs); | 881 | const lhs = try expr(mod, scope, .ref, node.lhs); |
| 794 | const field_name = try identifierStringInst(mod, scope, node.rhs.castTag(.Identifier).?); | 882 | const field_name = try identifierStringInst(mod, scope, node.rhs.castTag(.Identifier).?); |
| 795 | 883 | ||
| 796 | const pointer = try addZIRInst(mod, scope, src, zir.Inst.FieldPtr, .{ .object_ptr = lhs, .field_name = field_name }, .{}); | 884 | return rlWrapPtr(mod, scope, rl, try addZIRInst(mod, scope, src, zir.Inst.FieldPtr, .{ .object_ptr = lhs, .field_name = field_name }, .{})); |
| 797 | if (rl == .ref) return pointer; | 885 | } |
| 798 | return rlWrap(mod, scope, rl, try addZIRUnOp(mod, scope, src, .deref, pointer)); | 886 | |
| 887 | fn arrayAccess(mod: *Module, scope: *Scope, rl: ResultLoc, node: *ast.Node.ArrayAccess) InnerError!*zir.Inst { | ||
| 888 | const tree = scope.tree(); | ||
| 889 | const src = tree.token_locs[node.rtoken].start; | ||
| 890 | |||
| 891 | const array_ptr = try expr(mod, scope, .ref, node.lhs); | ||
| 892 | const index = try expr(mod, scope, .none, node.index_expr); | ||
| 893 | |||
| 894 | return rlWrapPtr(mod, scope, rl, try addZIRInst(mod, scope, src, zir.Inst.ElemPtr, .{ .array_ptr = array_ptr, .index = index }, .{})); | ||
| 799 | } | 895 | } |
| 800 | 896 | ||
| 801 | fn deref(mod: *Module, scope: *Scope, node: *ast.Node.SimpleSuffixOp) InnerError!*zir.Inst { | 897 | fn deref(mod: *Module, scope: *Scope, node: *ast.Node.SimpleSuffixOp) InnerError!*zir.Inst { |
| ... | @@ -1079,6 +1175,12 @@ fn whileExpr(mod: *Module, scope: *Scope, rl: ResultLoc, while_node: *ast.Node.W | ... | @@ -1079,6 +1175,12 @@ fn whileExpr(mod: *Module, scope: *Scope, rl: ResultLoc, while_node: *ast.Node.W |
| 1079 | } | 1175 | } |
| 1080 | } | 1176 | } |
| 1081 | 1177 | ||
| 1178 | if (while_node.label) |tok| | ||
| 1179 | return mod.failTok(scope, tok, "TODO labeled while", .{}); | ||
| 1180 | |||
| 1181 | if (while_node.inline_token) |tok| | ||
| 1182 | return mod.failTok(scope, tok, "TODO inline while", .{}); | ||
| 1183 | |||
| 1082 | var expr_scope: Scope.GenZIR = .{ | 1184 | var expr_scope: Scope.GenZIR = .{ |
| 1083 | .parent = scope, | 1185 | .parent = scope, |
| 1084 | .decl = scope.decl().?, | 1186 | .decl = scope.decl().?, |
| ... | @@ -1197,6 +1299,181 @@ fn whileExpr(mod: *Module, scope: *Scope, rl: ResultLoc, while_node: *ast.Node.W | ... | @@ -1197,6 +1299,181 @@ fn whileExpr(mod: *Module, scope: *Scope, rl: ResultLoc, while_node: *ast.Node.W |
| 1197 | return &while_block.base; | 1299 | return &while_block.base; |
| 1198 | } | 1300 | } |
| 1199 | 1301 | ||
| 1302 | fn forExpr(mod: *Module, scope: *Scope, rl: ResultLoc, for_node: *ast.Node.For) InnerError!*zir.Inst { | ||
| 1303 | if (for_node.label) |tok| | ||
| 1304 | return mod.failTok(scope, tok, "TODO labeled for", .{}); | ||
| 1305 | |||
| 1306 | if (for_node.inline_token) |tok| | ||
| 1307 | return mod.failTok(scope, tok, "TODO inline for", .{}); | ||
| 1308 | |||
| 1309 | var for_scope: Scope.GenZIR = .{ | ||
| 1310 | .parent = scope, | ||
| 1311 | .decl = scope.decl().?, | ||
| 1312 | .arena = scope.arena(), | ||
| 1313 | .instructions = .{}, | ||
| 1314 | }; | ||
| 1315 | defer for_scope.instructions.deinit(mod.gpa); | ||
| 1316 | |||
| 1317 | // setup variables and constants | ||
| 1318 | const tree = scope.tree(); | ||
| 1319 | const for_src = tree.token_locs[for_node.for_token].start; | ||
| 1320 | const index_ptr = blk: { | ||
| 1321 | const usize_type = try addZIRInstConst(mod, &for_scope.base, for_src, .{ | ||
| 1322 | .ty = Type.initTag(.type), | ||
| 1323 | .val = Value.initTag(.usize_type), | ||
| 1324 | }); | ||
| 1325 | const index_ptr = try addZIRUnOp(mod, &for_scope.base, for_src, .alloc, usize_type); | ||
| 1326 | // initialize to zero | ||
| 1327 | const zero = try addZIRInstConst(mod, &for_scope.base, for_src, .{ | ||
| 1328 | .ty = Type.initTag(.usize), | ||
| 1329 | .val = Value.initTag(.zero), | ||
| 1330 | }); | ||
| 1331 | _ = try addZIRBinOp(mod, &for_scope.base, for_src, .store, index_ptr, zero); | ||
| 1332 | break :blk index_ptr; | ||
| 1333 | }; | ||
| 1334 | const array_ptr = try expr(mod, &for_scope.base, .ref, for_node.array_expr); | ||
| 1335 | _ = try addZIRUnOp(mod, &for_scope.base, for_node.array_expr.firstToken(), .ensure_indexable, array_ptr); | ||
| 1336 | const cond_src = tree.token_locs[for_node.array_expr.firstToken()].start; | ||
| 1337 | const len_ptr = try addZIRInst(mod, &for_scope.base, cond_src, zir.Inst.FieldPtr, .{ | ||
| 1338 | .object_ptr = array_ptr, | ||
| 1339 | .field_name = try addZIRInst(mod, &for_scope.base, cond_src, zir.Inst.Str, .{ .bytes = "len" }, .{}), | ||
| 1340 | }, .{}); | ||
| 1341 | |||
| 1342 | var loop_scope: Scope.GenZIR = .{ | ||
| 1343 | .parent = &for_scope.base, | ||
| 1344 | .decl = for_scope.decl, | ||
| 1345 | .arena = for_scope.arena, | ||
| 1346 | .instructions = .{}, | ||
| 1347 | }; | ||
| 1348 | defer loop_scope.instructions.deinit(mod.gpa); | ||
| 1349 | |||
| 1350 | var cond_scope: Scope.GenZIR = .{ | ||
| 1351 | .parent = &loop_scope.base, | ||
| 1352 | .decl = loop_scope.decl, | ||
| 1353 | .arena = loop_scope.arena, | ||
| 1354 | .instructions = .{}, | ||
| 1355 | }; | ||
| 1356 | defer cond_scope.instructions.deinit(mod.gpa); | ||
| 1357 | |||
| 1358 | // check condition i < array_expr.len | ||
| 1359 | const index = try addZIRUnOp(mod, &cond_scope.base, cond_src, .deref, index_ptr); | ||
| 1360 | const len = try addZIRUnOp(mod, &cond_scope.base, cond_src, .deref, len_ptr); | ||
| 1361 | const cond = try addZIRBinOp(mod, &cond_scope.base, cond_src, .cmp_lt, index, len); | ||
| 1362 | |||
| 1363 | const condbr = try addZIRInstSpecial(mod, &cond_scope.base, for_src, zir.Inst.CondBr, .{ | ||
| 1364 | .condition = cond, | ||
| 1365 | .then_body = undefined, // populated below | ||
| 1366 | .else_body = undefined, // populated below | ||
| 1367 | }, .{}); | ||
| 1368 | const cond_block = try addZIRInstBlock(mod, &loop_scope.base, for_src, .{ | ||
| 1369 | .instructions = try loop_scope.arena.dupe(*zir.Inst, cond_scope.instructions.items), | ||
| 1370 | }); | ||
| 1371 | |||
| 1372 | // increment index variable | ||
| 1373 | const one = try addZIRInstConst(mod, &loop_scope.base, for_src, .{ | ||
| 1374 | .ty = Type.initTag(.usize), | ||
| 1375 | .val = Value.initTag(.one), | ||
| 1376 | }); | ||
| 1377 | const index_2 = try addZIRUnOp(mod, &loop_scope.base, cond_src, .deref, index_ptr); | ||
| 1378 | const index_plus_one = try addZIRBinOp(mod, &loop_scope.base, for_src, .add, index_2, one); | ||
| 1379 | _ = try addZIRBinOp(mod, &loop_scope.base, for_src, .store, index_ptr, index_plus_one); | ||
| 1380 | |||
| 1381 | // looping stuff | ||
| 1382 | const loop = try addZIRInstLoop(mod, &for_scope.base, for_src, .{ | ||
| 1383 | .instructions = try for_scope.arena.dupe(*zir.Inst, loop_scope.instructions.items), | ||
| 1384 | }); | ||
| 1385 | const for_block = try addZIRInstBlock(mod, scope, for_src, .{ | ||
| 1386 | .instructions = try for_scope.arena.dupe(*zir.Inst, for_scope.instructions.items), | ||
| 1387 | }); | ||
| 1388 | |||
| 1389 | // while body | ||
| 1390 | const then_src = tree.token_locs[for_node.body.lastToken()].start; | ||
| 1391 | var then_scope: Scope.GenZIR = .{ | ||
| 1392 | .parent = &cond_scope.base, | ||
| 1393 | .decl = cond_scope.decl, | ||
| 1394 | .arena = cond_scope.arena, | ||
| 1395 | .instructions = .{}, | ||
| 1396 | }; | ||
| 1397 | defer then_scope.instructions.deinit(mod.gpa); | ||
| 1398 | |||
| 1399 | // Most result location types can be forwarded directly; however | ||
| 1400 | // if we need to write to a pointer which has an inferred type, | ||
| 1401 | // proper type inference requires peer type resolution on the while's | ||
| 1402 | // branches. | ||
| 1403 | const branch_rl: ResultLoc = switch (rl) { | ||
| 1404 | .discard, .none, .ty, .ptr, .ref => rl, | ||
| 1405 | .inferred_ptr, .bitcasted_ptr, .block_ptr => .{ .block_ptr = for_block }, | ||
| 1406 | }; | ||
| 1407 | |||
| 1408 | var index_scope: Scope.LocalPtr = undefined; | ||
| 1409 | const then_sub_scope = blk: { | ||
| 1410 | const payload = for_node.payload.castTag(.PointerIndexPayload).?; | ||
| 1411 | const is_ptr = payload.ptr_token != null; | ||
| 1412 | const value_name = tree.tokenSlice(payload.value_symbol.firstToken()); | ||
| 1413 | if (!mem.eql(u8, value_name, "_")) { | ||
| 1414 | return mod.failNode(&then_scope.base, payload.value_symbol, "TODO implement for value payload", .{}); | ||
| 1415 | } else if (is_ptr) { | ||
| 1416 | return mod.failTok(&then_scope.base, payload.ptr_token.?, "pointer modifier invalid on discard", .{}); | ||
| 1417 | } | ||
| 1418 | |||
| 1419 | const index_symbol_node = payload.index_symbol orelse | ||
| 1420 | break :blk &then_scope.base; | ||
| 1421 | |||
| 1422 | const index_name = tree.tokenSlice(index_symbol_node.firstToken()); | ||
| 1423 | if (mem.eql(u8, index_name, "_")) { | ||
| 1424 | break :blk &then_scope.base; | ||
| 1425 | } | ||
| 1426 | // TODO make this const without an extra copy? | ||
| 1427 | index_scope = .{ | ||
| 1428 | .parent = &then_scope.base, | ||
| 1429 | .gen_zir = &then_scope, | ||
| 1430 | .name = index_name, | ||
| 1431 | .ptr = index_ptr, | ||
| 1432 | }; | ||
| 1433 | break :blk &index_scope.base; | ||
| 1434 | }; | ||
| 1435 | |||
| 1436 | const then_result = try expr(mod, then_sub_scope, branch_rl, for_node.body); | ||
| 1437 | if (!then_result.tag.isNoReturn()) { | ||
| 1438 | _ = try addZIRInst(mod, then_sub_scope, then_src, zir.Inst.Break, .{ | ||
| 1439 | .block = cond_block, | ||
| 1440 | .operand = then_result, | ||
| 1441 | }, .{}); | ||
| 1442 | } | ||
| 1443 | condbr.positionals.then_body = .{ | ||
| 1444 | .instructions = try then_scope.arena.dupe(*zir.Inst, then_scope.instructions.items), | ||
| 1445 | }; | ||
| 1446 | |||
| 1447 | // else branch | ||
| 1448 | var else_scope: Scope.GenZIR = .{ | ||
| 1449 | .parent = &cond_scope.base, | ||
| 1450 | .decl = cond_scope.decl, | ||
| 1451 | .arena = cond_scope.arena, | ||
| 1452 | .instructions = .{}, | ||
| 1453 | }; | ||
| 1454 | defer else_scope.instructions.deinit(mod.gpa); | ||
| 1455 | |||
| 1456 | if (for_node.@"else") |else_node| { | ||
| 1457 | const else_src = tree.token_locs[else_node.body.lastToken()].start; | ||
| 1458 | const else_result = try expr(mod, &else_scope.base, branch_rl, else_node.body); | ||
| 1459 | if (!else_result.tag.isNoReturn()) { | ||
| 1460 | _ = try addZIRInst(mod, &else_scope.base, else_src, zir.Inst.Break, .{ | ||
| 1461 | .block = for_block, | ||
| 1462 | .operand = else_result, | ||
| 1463 | }, .{}); | ||
| 1464 | } | ||
| 1465 | } else { | ||
| 1466 | const else_src = tree.token_locs[for_node.lastToken()].start; | ||
| 1467 | _ = try addZIRInst(mod, &else_scope.base, else_src, zir.Inst.BreakVoid, .{ | ||
| 1468 | .block = for_block, | ||
| 1469 | }, .{}); | ||
| 1470 | } | ||
| 1471 | condbr.positionals.else_body = .{ | ||
| 1472 | .instructions = try else_scope.arena.dupe(*zir.Inst, else_scope.instructions.items), | ||
| 1473 | }; | ||
| 1474 | return &for_block.base; | ||
| 1475 | } | ||
| 1476 | |||
| 1200 | fn ret(mod: *Module, scope: *Scope, cfe: *ast.Node.ControlFlowExpression) InnerError!*zir.Inst { | 1477 | fn ret(mod: *Module, scope: *Scope, cfe: *ast.Node.ControlFlowExpression) InnerError!*zir.Inst { |
| 1201 | const tree = scope.tree(); | 1478 | const tree = scope.tree(); |
| 1202 | const src = tree.token_locs[cfe.ltoken].start; | 1479 | const src = tree.token_locs[cfe.ltoken].start; |
src-self-hosted/codegen.zig+278-134| ... | @@ -273,8 +273,22 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -273,8 +273,22 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 273 | /// across each runtime branch upon joining. | 273 | /// across each runtime branch upon joining. |
| 274 | branch_stack: *std.ArrayList(Branch), | 274 | branch_stack: *std.ArrayList(Branch), |
| 275 | 275 | ||
| 276 | /// The key must be canonical register. | ||
| 277 | registers: std.AutoHashMapUnmanaged(Register, *ir.Inst) = .{}, | ||
| 278 | free_registers: FreeRegInt = math.maxInt(FreeRegInt), | ||
| 279 | /// Maps offset to what is stored there. | ||
| 280 | stack: std.AutoHashMapUnmanaged(u32, StackAllocation) = .{}, | ||
| 281 | |||
| 282 | /// Offset from the stack base, representing the end of the stack frame. | ||
| 283 | max_end_stack: u32 = 0, | ||
| 284 | /// Represents the current end stack offset. If there is no existing slot | ||
| 285 | /// to place a new stack allocation, it goes here, and then bumps `max_end_stack`. | ||
| 286 | next_stack_offset: u32 = 0, | ||
| 287 | |||
| 276 | const MCValue = union(enum) { | 288 | const MCValue = union(enum) { |
| 277 | /// No runtime bits. `void` types, empty structs, u0, enums with 1 tag, etc. | 289 | /// No runtime bits. `void` types, empty structs, u0, enums with 1 tag, etc. |
| 290 | /// TODO Look into deleting this tag and using `dead` instead, since every use | ||
| 291 | /// of MCValue.none should be instead looking at the type and noticing it is 0 bits. | ||
| 278 | none, | 292 | none, |
| 279 | /// Control flow will not allow this value to be observed. | 293 | /// Control flow will not allow this value to be observed. |
| 280 | unreach, | 294 | unreach, |
| ... | @@ -346,71 +360,55 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -346,71 +360,55 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 346 | 360 | ||
| 347 | const Branch = struct { | 361 | const Branch = struct { |
| 348 | inst_table: std.AutoHashMapUnmanaged(*ir.Inst, MCValue) = .{}, | 362 | inst_table: std.AutoHashMapUnmanaged(*ir.Inst, MCValue) = .{}, |
| 349 | /// The key must be canonical register. | ||
| 350 | registers: std.AutoHashMapUnmanaged(Register, RegisterAllocation) = .{}, | ||
| 351 | free_registers: FreeRegInt = math.maxInt(FreeRegInt), | ||
| 352 | |||
| 353 | /// Maps offset to what is stored there. | ||
| 354 | stack: std.AutoHashMapUnmanaged(u32, StackAllocation) = .{}, | ||
| 355 | /// Offset from the stack base, representing the end of the stack frame. | ||
| 356 | max_end_stack: u32 = 0, | ||
| 357 | /// Represents the current end stack offset. If there is no existing slot | ||
| 358 | /// to place a new stack allocation, it goes here, and then bumps `max_end_stack`. | ||
| 359 | next_stack_offset: u32 = 0, | ||
| 360 | |||
| 361 | fn markRegUsed(self: *Branch, reg: Register) void { | ||
| 362 | if (FreeRegInt == u0) return; | ||
| 363 | const index = reg.allocIndex() orelse return; | ||
| 364 | const ShiftInt = math.Log2Int(FreeRegInt); | ||
| 365 | const shift = @intCast(ShiftInt, index); | ||
| 366 | self.free_registers &= ~(@as(FreeRegInt, 1) << shift); | ||
| 367 | } | ||
| 368 | |||
| 369 | fn markRegFree(self: *Branch, reg: Register) void { | ||
| 370 | if (FreeRegInt == u0) return; | ||
| 371 | const index = reg.allocIndex() orelse return; | ||
| 372 | const ShiftInt = math.Log2Int(FreeRegInt); | ||
| 373 | const shift = @intCast(ShiftInt, index); | ||
| 374 | self.free_registers |= @as(FreeRegInt, 1) << shift; | ||
| 375 | } | ||
| 376 | |||
| 377 | /// Before calling, must ensureCapacity + 1 on branch.registers. | ||
| 378 | /// Returns `null` if all registers are allocated. | ||
| 379 | fn allocReg(self: *Branch, inst: *ir.Inst) ?Register { | ||
| 380 | const free_index = @ctz(FreeRegInt, self.free_registers); | ||
| 381 | if (free_index >= callee_preserved_regs.len) { | ||
| 382 | return null; | ||
| 383 | } | ||
| 384 | self.free_registers &= ~(@as(FreeRegInt, 1) << free_index); | ||
| 385 | const reg = callee_preserved_regs[free_index]; | ||
| 386 | self.registers.putAssumeCapacityNoClobber(reg, .{ .inst = inst }); | ||
| 387 | log.debug("alloc {} => {*}", .{reg, inst}); | ||
| 388 | return reg; | ||
| 389 | } | ||
| 390 | |||
| 391 | /// Does not track the register. | ||
| 392 | fn findUnusedReg(self: *Branch) ?Register { | ||
| 393 | const free_index = @ctz(FreeRegInt, self.free_registers); | ||
| 394 | if (free_index >= callee_preserved_regs.len) { | ||
| 395 | return null; | ||
| 396 | } | ||
| 397 | return callee_preserved_regs[free_index]; | ||
| 398 | } | ||
| 399 | 363 | ||
| 400 | fn deinit(self: *Branch, gpa: *Allocator) void { | 364 | fn deinit(self: *Branch, gpa: *Allocator) void { |
| 401 | self.inst_table.deinit(gpa); | 365 | self.inst_table.deinit(gpa); |
| 402 | self.registers.deinit(gpa); | ||
| 403 | self.stack.deinit(gpa); | ||
| 404 | self.* = undefined; | 366 | self.* = undefined; |
| 405 | } | 367 | } |
| 406 | }; | 368 | }; |
| 407 | 369 | ||
| 408 | const RegisterAllocation = struct { | 370 | fn markRegUsed(self: *Self, reg: Register) void { |
| 409 | inst: *ir.Inst, | 371 | if (FreeRegInt == u0) return; |
| 410 | }; | 372 | const index = reg.allocIndex() orelse return; |
| 373 | const ShiftInt = math.Log2Int(FreeRegInt); | ||
| 374 | const shift = @intCast(ShiftInt, index); | ||
| 375 | self.free_registers &= ~(@as(FreeRegInt, 1) << shift); | ||
| 376 | } | ||
| 377 | |||
| 378 | fn markRegFree(self: *Self, reg: Register) void { | ||
| 379 | if (FreeRegInt == u0) return; | ||
| 380 | const index = reg.allocIndex() orelse return; | ||
| 381 | const ShiftInt = math.Log2Int(FreeRegInt); | ||
| 382 | const shift = @intCast(ShiftInt, index); | ||
| 383 | self.free_registers |= @as(FreeRegInt, 1) << shift; | ||
| 384 | } | ||
| 385 | |||
| 386 | /// Before calling, must ensureCapacity + 1 on self.registers. | ||
| 387 | /// Returns `null` if all registers are allocated. | ||
| 388 | fn allocReg(self: *Self, inst: *ir.Inst) ?Register { | ||
| 389 | const free_index = @ctz(FreeRegInt, self.free_registers); | ||
| 390 | if (free_index >= callee_preserved_regs.len) { | ||
| 391 | return null; | ||
| 392 | } | ||
| 393 | self.free_registers &= ~(@as(FreeRegInt, 1) << free_index); | ||
| 394 | const reg = callee_preserved_regs[free_index]; | ||
| 395 | self.registers.putAssumeCapacityNoClobber(reg, inst); | ||
| 396 | log.debug("alloc {} => {*}", .{reg, inst}); | ||
| 397 | return reg; | ||
| 398 | } | ||
| 399 | |||
| 400 | /// Does not track the register. | ||
| 401 | fn findUnusedReg(self: *Self) ?Register { | ||
| 402 | const free_index = @ctz(FreeRegInt, self.free_registers); | ||
| 403 | if (free_index >= callee_preserved_regs.len) { | ||
| 404 | return null; | ||
| 405 | } | ||
| 406 | return callee_preserved_regs[free_index]; | ||
| 407 | } | ||
| 411 | 408 | ||
| 412 | const StackAllocation = struct { | 409 | const StackAllocation = struct { |
| 413 | inst: *ir.Inst, | 410 | inst: *ir.Inst, |
| 411 | /// TODO do we need size? should be determined by inst.ty.abiSize() | ||
| 414 | size: u32, | 412 | size: u32, |
| 415 | }; | 413 | }; |
| 416 | 414 | ||
| ... | @@ -435,14 +433,13 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -435,14 +433,13 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 435 | branch_stack.items[0].deinit(bin_file.allocator); | 433 | branch_stack.items[0].deinit(bin_file.allocator); |
| 436 | branch_stack.deinit(); | 434 | branch_stack.deinit(); |
| 437 | } | 435 | } |
| 438 | const branch = try branch_stack.addOne(); | 436 | try branch_stack.append(.{}); |
| 439 | branch.* = .{}; | ||
| 440 | 437 | ||
| 441 | const src_data: struct {lbrace_src: usize, rbrace_src: usize, source: []const u8} = blk: { | 438 | const src_data: struct {lbrace_src: usize, rbrace_src: usize, source: []const u8} = blk: { |
| 442 | if (module_fn.owner_decl.scope.cast(Module.Scope.File)) |scope_file| { | 439 | if (module_fn.owner_decl.scope.cast(Module.Scope.File)) |scope_file| { |
| 443 | const tree = scope_file.contents.tree; | 440 | const tree = scope_file.contents.tree; |
| 444 | const fn_proto = tree.root_node.decls()[module_fn.owner_decl.src_index].castTag(.FnProto).?; | 441 | const fn_proto = tree.root_node.decls()[module_fn.owner_decl.src_index].castTag(.FnProto).?; |
| 445 | const block = fn_proto.body().?.castTag(.Block).?; | 442 | const block = fn_proto.getBodyNode().?.castTag(.Block).?; |
| 446 | const lbrace_src = tree.token_locs[block.lbrace].start; | 443 | const lbrace_src = tree.token_locs[block.lbrace].start; |
| 447 | const rbrace_src = tree.token_locs[block.rbrace].start; | 444 | const rbrace_src = tree.token_locs[block.rbrace].start; |
| 448 | break :blk .{ .lbrace_src = lbrace_src, .rbrace_src = rbrace_src, .source = tree.source }; | 445 | break :blk .{ .lbrace_src = lbrace_src, .rbrace_src = rbrace_src, .source = tree.source }; |
| ... | @@ -476,6 +473,8 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -476,6 +473,8 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 476 | .rbrace_src = src_data.rbrace_src, | 473 | .rbrace_src = src_data.rbrace_src, |
| 477 | .source = src_data.source, | 474 | .source = src_data.source, |
| 478 | }; | 475 | }; |
| 476 | defer function.registers.deinit(bin_file.allocator); | ||
| 477 | defer function.stack.deinit(bin_file.allocator); | ||
| 479 | defer function.exitlude_jump_relocs.deinit(bin_file.allocator); | 478 | defer function.exitlude_jump_relocs.deinit(bin_file.allocator); |
| 480 | 479 | ||
| 481 | var call_info = function.resolveCallingConventionValues(src, fn_type) catch |err| switch (err) { | 480 | var call_info = function.resolveCallingConventionValues(src, fn_type) catch |err| switch (err) { |
| ... | @@ -487,7 +486,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -487,7 +486,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 487 | function.args = call_info.args; | 486 | function.args = call_info.args; |
| 488 | function.ret_mcv = call_info.return_value; | 487 | function.ret_mcv = call_info.return_value; |
| 489 | function.stack_align = call_info.stack_align; | 488 | function.stack_align = call_info.stack_align; |
| 490 | branch.max_end_stack = call_info.stack_byte_count; | 489 | function.max_end_stack = call_info.stack_byte_count; |
| 491 | 490 | ||
| 492 | function.gen() catch |err| switch (err) { | 491 | function.gen() catch |err| switch (err) { |
| 493 | error.CodegenFail => return Result{ .fail = function.err_msg.? }, | 492 | error.CodegenFail => return Result{ .fail = function.err_msg.? }, |
| ... | @@ -523,7 +522,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -523,7 +522,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 523 | try self.dbgSetPrologueEnd(); | 522 | try self.dbgSetPrologueEnd(); |
| 524 | try self.genBody(self.mod_fn.analysis.success); | 523 | try self.genBody(self.mod_fn.analysis.success); |
| 525 | 524 | ||
| 526 | const stack_end = self.branch_stack.items[0].max_end_stack; | 525 | const stack_end = self.max_end_stack; |
| 527 | if (stack_end > math.maxInt(i32)) | 526 | if (stack_end > math.maxInt(i32)) |
| 528 | return self.fail(self.src, "too much stack used in call parameters", .{}); | 527 | return self.fail(self.src, "too much stack used in call parameters", .{}); |
| 529 | const aligned_stack_end = mem.alignForward(stack_end, self.stack_align); | 528 | const aligned_stack_end = mem.alignForward(stack_end, self.stack_align); |
| ... | @@ -580,13 +579,15 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -580,13 +579,15 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 580 | } | 579 | } |
| 581 | 580 | ||
| 582 | fn genBody(self: *Self, body: ir.Body) InnerError!void { | 581 | fn genBody(self: *Self, body: ir.Body) InnerError!void { |
| 583 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; | ||
| 584 | const inst_table = &branch.inst_table; | ||
| 585 | for (body.instructions) |inst| { | 582 | for (body.instructions) |inst| { |
| 583 | try self.ensureProcessDeathCapacity(@popCount(@TypeOf(inst.deaths), inst.deaths)); | ||
| 584 | |||
| 586 | const mcv = try self.genFuncInst(inst); | 585 | const mcv = try self.genFuncInst(inst); |
| 587 | log.debug("{*} => {}", .{inst, mcv}); | 586 | if (!inst.isUnused()) { |
| 588 | // TODO don't put void or dead things in here | 587 | log.debug("{*} => {}", .{inst, mcv}); |
| 589 | try inst_table.putNoClobber(self.gpa, inst, mcv); | 588 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; |
| 589 | try branch.inst_table.putNoClobber(self.gpa, inst, mcv); | ||
| 590 | } | ||
| 590 | 591 | ||
| 591 | var i: ir.Inst.DeathsBitIndex = 0; | 592 | var i: ir.Inst.DeathsBitIndex = 0; |
| 592 | while (inst.getOperand(i)) |operand| : (i += 1) { | 593 | while (inst.getOperand(i)) |operand| : (i += 1) { |
| ... | @@ -628,21 +629,28 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -628,21 +629,28 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 628 | self.dbg_line.appendAssumeCapacity(DW.LNS_copy); | 629 | self.dbg_line.appendAssumeCapacity(DW.LNS_copy); |
| 629 | } | 630 | } |
| 630 | 631 | ||
| 632 | /// Asserts there is already capacity to insert into top branch inst_table. | ||
| 631 | fn processDeath(self: *Self, inst: *ir.Inst) void { | 633 | fn processDeath(self: *Self, inst: *ir.Inst) void { |
| 634 | if (inst.tag == .constant) return; // Constants are immortal. | ||
| 635 | // When editing this function, note that the logic must synchronize with `reuseOperand`. | ||
| 636 | const prev_value = self.getResolvedInstValue(inst); | ||
| 632 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; | 637 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; |
| 633 | const entry = branch.inst_table.getEntry(inst) orelse return; | 638 | branch.inst_table.putAssumeCapacity(inst, .dead); |
| 634 | const prev_value = entry.value; | ||
| 635 | entry.value = .dead; | ||
| 636 | switch (prev_value) { | 639 | switch (prev_value) { |
| 637 | .register => |reg| { | 640 | .register => |reg| { |
| 638 | const canon_reg = toCanonicalReg(reg); | 641 | const canon_reg = toCanonicalReg(reg); |
| 639 | _ = branch.registers.remove(canon_reg); | 642 | _ = self.registers.remove(canon_reg); |
| 640 | branch.markRegFree(canon_reg); | 643 | self.markRegFree(canon_reg); |
| 641 | }, | 644 | }, |
| 642 | else => {}, // TODO process stack allocation death | 645 | else => {}, // TODO process stack allocation death |
| 643 | } | 646 | } |
| 644 | } | 647 | } |
| 645 | 648 | ||
| 649 | fn ensureProcessDeathCapacity(self: *Self, additional_count: usize) !void { | ||
| 650 | const table = &self.branch_stack.items[self.branch_stack.items.len - 1].inst_table; | ||
| 651 | try table.ensureCapacity(self.gpa, table.items().len + additional_count); | ||
| 652 | } | ||
| 653 | |||
| 646 | /// Adds a Type to the .debug_info at the current position. The bytes will be populated later, | 654 | /// Adds a Type to the .debug_info at the current position. The bytes will be populated later, |
| 647 | /// after codegen for this symbol is done. | 655 | /// after codegen for this symbol is done. |
| 648 | fn addDbgInfoTypeReloc(self: *Self, ty: Type) !void { | 656 | fn addDbgInfoTypeReloc(self: *Self, ty: Type) !void { |
| ... | @@ -705,13 +713,12 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -705,13 +713,12 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 705 | fn allocMem(self: *Self, inst: *ir.Inst, abi_size: u32, abi_align: u32) !u32 { | 713 | fn allocMem(self: *Self, inst: *ir.Inst, abi_size: u32, abi_align: u32) !u32 { |
| 706 | if (abi_align > self.stack_align) | 714 | if (abi_align > self.stack_align) |
| 707 | self.stack_align = abi_align; | 715 | self.stack_align = abi_align; |
| 708 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; | ||
| 709 | // TODO find a free slot instead of always appending | 716 | // TODO find a free slot instead of always appending |
| 710 | const offset = mem.alignForwardGeneric(u32, branch.next_stack_offset, abi_align); | 717 | const offset = mem.alignForwardGeneric(u32, self.next_stack_offset, abi_align); |
| 711 | branch.next_stack_offset = offset + abi_size; | 718 | self.next_stack_offset = offset + abi_size; |
| 712 | if (branch.next_stack_offset > branch.max_end_stack) | 719 | if (self.next_stack_offset > self.max_end_stack) |
| 713 | branch.max_end_stack = branch.next_stack_offset; | 720 | self.max_end_stack = self.next_stack_offset; |
| 714 | try branch.stack.putNoClobber(self.gpa, offset, .{ | 721 | try self.stack.putNoClobber(self.gpa, offset, .{ |
| 715 | .inst = inst, | 722 | .inst = inst, |
| 716 | .size = abi_size, | 723 | .size = abi_size, |
| 717 | }); | 724 | }); |
| ... | @@ -737,15 +744,14 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -737,15 +744,14 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 737 | const abi_align = elem_ty.abiAlignment(self.target.*); | 744 | const abi_align = elem_ty.abiAlignment(self.target.*); |
| 738 | if (abi_align > self.stack_align) | 745 | if (abi_align > self.stack_align) |
| 739 | self.stack_align = abi_align; | 746 | self.stack_align = abi_align; |
| 740 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; | ||
| 741 | 747 | ||
| 742 | if (reg_ok) { | 748 | if (reg_ok) { |
| 743 | // Make sure the type can fit in a register before we try to allocate one. | 749 | // Make sure the type can fit in a register before we try to allocate one. |
| 744 | const ptr_bits = arch.ptrBitWidth(); | 750 | const ptr_bits = arch.ptrBitWidth(); |
| 745 | const ptr_bytes: u64 = @divExact(ptr_bits, 8); | 751 | const ptr_bytes: u64 = @divExact(ptr_bits, 8); |
| 746 | if (abi_size <= ptr_bytes) { | 752 | if (abi_size <= ptr_bytes) { |
| 747 | try branch.registers.ensureCapacity(self.gpa, branch.registers.items().len + 1); | 753 | try self.registers.ensureCapacity(self.gpa, self.registers.items().len + 1); |
| 748 | if (branch.allocReg(inst)) |reg| { | 754 | if (self.allocReg(inst)) |reg| { |
| 749 | return MCValue{ .register = registerAlias(reg, abi_size) }; | 755 | return MCValue{ .register = registerAlias(reg, abi_size) }; |
| 750 | } | 756 | } |
| 751 | } | 757 | } |
| ... | @@ -758,20 +764,18 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -758,20 +764,18 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 758 | /// allocated. A second call to `copyToTmpRegister` may return the same register. | 764 | /// allocated. A second call to `copyToTmpRegister` may return the same register. |
| 759 | /// This can have a side effect of spilling instructions to the stack to free up a register. | 765 | /// This can have a side effect of spilling instructions to the stack to free up a register. |
| 760 | fn copyToTmpRegister(self: *Self, src: usize, mcv: MCValue) !Register { | 766 | fn copyToTmpRegister(self: *Self, src: usize, mcv: MCValue) !Register { |
| 761 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; | 767 | const reg = self.findUnusedReg() orelse b: { |
| 762 | |||
| 763 | const reg = branch.findUnusedReg() orelse b: { | ||
| 764 | // We'll take over the first register. Move the instruction that was previously | 768 | // We'll take over the first register. Move the instruction that was previously |
| 765 | // there to a stack allocation. | 769 | // there to a stack allocation. |
| 766 | const reg = callee_preserved_regs[0]; | 770 | const reg = callee_preserved_regs[0]; |
| 767 | const regs_entry = branch.registers.remove(reg).?; | 771 | const regs_entry = self.registers.remove(reg).?; |
| 768 | const spilled_inst = regs_entry.value.inst; | 772 | const spilled_inst = regs_entry.value; |
| 769 | 773 | ||
| 770 | const stack_mcv = try self.allocRegOrMem(spilled_inst, false); | 774 | const stack_mcv = try self.allocRegOrMem(spilled_inst, false); |
| 771 | const inst_entry = branch.inst_table.getEntry(spilled_inst).?; | 775 | const reg_mcv = self.getResolvedInstValue(spilled_inst); |
| 772 | const reg_mcv = inst_entry.value; | ||
| 773 | assert(reg == toCanonicalReg(reg_mcv.register)); | 776 | assert(reg == toCanonicalReg(reg_mcv.register)); |
| 774 | inst_entry.value = stack_mcv; | 777 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; |
| 778 | try branch.inst_table.put(self.gpa, spilled_inst, stack_mcv); | ||
| 775 | try self.genSetStack(src, spilled_inst.ty, stack_mcv.stack_offset, reg_mcv); | 779 | try self.genSetStack(src, spilled_inst.ty, stack_mcv.stack_offset, reg_mcv); |
| 776 | 780 | ||
| 777 | break :b reg; | 781 | break :b reg; |
| ... | @@ -784,22 +788,21 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -784,22 +788,21 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 784 | /// `reg_owner` is the instruction that gets associated with the register in the register table. | 788 | /// `reg_owner` is the instruction that gets associated with the register in the register table. |
| 785 | /// This can have a side effect of spilling instructions to the stack to free up a register. | 789 | /// This can have a side effect of spilling instructions to the stack to free up a register. |
| 786 | fn copyToNewRegister(self: *Self, reg_owner: *ir.Inst, mcv: MCValue) !MCValue { | 790 | fn copyToNewRegister(self: *Self, reg_owner: *ir.Inst, mcv: MCValue) !MCValue { |
| 787 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; | 791 | try self.registers.ensureCapacity(self.gpa, self.registers.items().len + 1); |
| 788 | try branch.registers.ensureCapacity(self.gpa, branch.registers.items().len + 1); | ||
| 789 | 792 | ||
| 790 | const reg = branch.allocReg(reg_owner) orelse b: { | 793 | const reg = self.allocReg(reg_owner) orelse b: { |
| 791 | // We'll take over the first register. Move the instruction that was previously | 794 | // We'll take over the first register. Move the instruction that was previously |
| 792 | // there to a stack allocation. | 795 | // there to a stack allocation. |
| 793 | const reg = callee_preserved_regs[0]; | 796 | const reg = callee_preserved_regs[0]; |
| 794 | const regs_entry = branch.registers.getEntry(reg).?; | 797 | const regs_entry = self.registers.getEntry(reg).?; |
| 795 | const spilled_inst = regs_entry.value.inst; | 798 | const spilled_inst = regs_entry.value; |
| 796 | regs_entry.value = .{ .inst = reg_owner }; | 799 | regs_entry.value = reg_owner; |
| 797 | 800 | ||
| 798 | const stack_mcv = try self.allocRegOrMem(spilled_inst, false); | 801 | const stack_mcv = try self.allocRegOrMem(spilled_inst, false); |
| 799 | const inst_entry = branch.inst_table.getEntry(spilled_inst).?; | 802 | const reg_mcv = self.getResolvedInstValue(spilled_inst); |
| 800 | const reg_mcv = inst_entry.value; | ||
| 801 | assert(reg == toCanonicalReg(reg_mcv.register)); | 803 | assert(reg == toCanonicalReg(reg_mcv.register)); |
| 802 | inst_entry.value = stack_mcv; | 804 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; |
| 805 | try branch.inst_table.put(self.gpa, spilled_inst, stack_mcv); | ||
| 803 | try self.genSetStack(reg_owner.src, spilled_inst.ty, stack_mcv.stack_offset, reg_mcv); | 806 | try self.genSetStack(reg_owner.src, spilled_inst.ty, stack_mcv.stack_offset, reg_mcv); |
| 804 | 807 | ||
| 805 | break :b reg; | 808 | break :b reg; |
| ... | @@ -826,6 +829,16 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -826,6 +829,16 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 826 | // No side effects, so if it's unreferenced, do nothing. | 829 | // No side effects, so if it's unreferenced, do nothing. |
| 827 | if (inst.base.isUnused()) | 830 | if (inst.base.isUnused()) |
| 828 | return MCValue.dead; | 831 | return MCValue.dead; |
| 832 | |||
| 833 | const operand = try self.resolveInst(inst.operand); | ||
| 834 | const info_a = inst.operand.ty.intInfo(self.target.*); | ||
| 835 | const info_b = inst.base.ty.intInfo(self.target.*); | ||
| 836 | if (info_a.signed != info_b.signed) | ||
| 837 | return self.fail(inst.base.src, "TODO gen intcast sign safety in semantic analysis", .{}); | ||
| 838 | |||
| 839 | if (info_a.bits == info_b.bits) | ||
| 840 | return operand; | ||
| 841 | |||
| 829 | switch (arch) { | 842 | switch (arch) { |
| 830 | else => return self.fail(inst.base.src, "TODO implement intCast for {}", .{self.target.cpu.arch}), | 843 | else => return self.fail(inst.base.src, "TODO implement intCast for {}", .{self.target.cpu.arch}), |
| 831 | } | 844 | } |
| ... | @@ -934,9 +947,8 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -934,9 +947,8 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 934 | .register => |reg| { | 947 | .register => |reg| { |
| 935 | // If it's in the registers table, need to associate the register with the | 948 | // If it's in the registers table, need to associate the register with the |
| 936 | // new instruction. | 949 | // new instruction. |
| 937 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; | 950 | if (self.registers.getEntry(toCanonicalReg(reg))) |entry| { |
| 938 | if (branch.registers.getEntry(toCanonicalReg(reg))) |entry| { | 951 | entry.value = inst; |
| 939 | entry.value = .{ .inst = inst }; | ||
| 940 | } | 952 | } |
| 941 | log.debug("reusing {} => {*}", .{reg, inst}); | 953 | log.debug("reusing {} => {*}", .{reg, inst}); |
| 942 | }, | 954 | }, |
| ... | @@ -950,6 +962,10 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -950,6 +962,10 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 950 | // Prevent the operand deaths processing code from deallocating it. | 962 | // Prevent the operand deaths processing code from deallocating it. |
| 951 | inst.clearOperandDeath(op_index); | 963 | inst.clearOperandDeath(op_index); |
| 952 | 964 | ||
| 965 | // That makes us responsible for doing the rest of the stuff that processDeath would have done. | ||
| 966 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; | ||
| 967 | branch.inst_table.putAssumeCapacity(inst.getOperand(op_index).?, .dead); | ||
| 968 | |||
| 953 | return true; | 969 | return true; |
| 954 | } | 970 | } |
| 955 | 971 | ||
| ... | @@ -1231,8 +1247,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -1231,8 +1247,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 1231 | if (inst.base.isUnused()) | 1247 | if (inst.base.isUnused()) |
| 1232 | return MCValue.dead; | 1248 | return MCValue.dead; |
| 1233 | 1249 | ||
| 1234 | const branch = &self.branch_stack.items[self.branch_stack.items.len - 1]; | 1250 | try self.registers.ensureCapacity(self.gpa, self.registers.items().len + 1); |
| 1235 | try branch.registers.ensureCapacity(self.gpa, branch.registers.items().len + 1); | ||
| 1236 | 1251 | ||
| 1237 | const result = self.args[self.arg_index]; | 1252 | const result = self.args[self.arg_index]; |
| 1238 | self.arg_index += 1; | 1253 | self.arg_index += 1; |
| ... | @@ -1240,8 +1255,8 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -1240,8 +1255,8 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 1240 | const name_with_null = inst.name[0..mem.lenZ(inst.name) + 1]; | 1255 | const name_with_null = inst.name[0..mem.lenZ(inst.name) + 1]; |
| 1241 | switch (result) { | 1256 | switch (result) { |
| 1242 | .register => |reg| { | 1257 | .register => |reg| { |
| 1243 | branch.registers.putAssumeCapacityNoClobber(toCanonicalReg(reg), .{ .inst = &inst.base }); | 1258 | self.registers.putAssumeCapacityNoClobber(toCanonicalReg(reg), &inst.base); |
| 1244 | branch.markRegUsed(reg); | 1259 | self.markRegUsed(reg); |
| 1245 | 1260 | ||
| 1246 | try self.dbg_info.ensureCapacity(self.dbg_info.items.len + 8 + name_with_null.len); | 1261 | try self.dbg_info.ensureCapacity(self.dbg_info.items.len + 8 + name_with_null.len); |
| 1247 | self.dbg_info.appendAssumeCapacity(link.File.Elf.abbrev_parameter); | 1262 | self.dbg_info.appendAssumeCapacity(link.File.Elf.abbrev_parameter); |
| ... | @@ -1536,18 +1551,19 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -1536,18 +1551,19 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 1536 | 1551 | ||
| 1537 | fn genDbgStmt(self: *Self, inst: *ir.Inst.NoOp) !MCValue { | 1552 | fn genDbgStmt(self: *Self, inst: *ir.Inst.NoOp) !MCValue { |
| 1538 | try self.dbgAdvancePCAndLine(inst.base.src); | 1553 | try self.dbgAdvancePCAndLine(inst.base.src); |
| 1539 | return MCValue.none; | 1554 | assert(inst.base.isUnused()); |
| 1555 | return MCValue.dead; | ||
| 1540 | } | 1556 | } |
| 1541 | 1557 | ||
| 1542 | fn genCondBr(self: *Self, inst: *ir.Inst.CondBr) !MCValue { | 1558 | fn genCondBr(self: *Self, inst: *ir.Inst.CondBr) !MCValue { |
| 1543 | // TODO Rework this so that the arch-independent logic isn't buried and duplicated. | 1559 | const cond = try self.resolveInst(inst.condition); |
| 1544 | switch (arch) { | 1560 | |
| 1545 | .x86_64 => { | 1561 | const reloc: Reloc = switch (arch) { |
| 1562 | .i386, .x86_64 => reloc: { | ||
| 1546 | try self.code.ensureCapacity(self.code.items.len + 6); | 1563 | try self.code.ensureCapacity(self.code.items.len + 6); |
| 1547 | 1564 | ||
| 1548 | const cond = try self.resolveInst(inst.condition); | 1565 | const opcode: u8 = switch (cond) { |
| 1549 | switch (cond) { | 1566 | .compare_flags_signed => |cmp_op| blk: { |
| 1550 | .compare_flags_signed => |cmp_op| { | ||
| 1551 | // Here we map to the opposite opcode because the jump is to the false branch. | 1567 | // Here we map to the opposite opcode because the jump is to the false branch. |
| 1552 | const opcode: u8 = switch (cmp_op) { | 1568 | const opcode: u8 = switch (cmp_op) { |
| 1553 | .gte => 0x8c, | 1569 | .gte => 0x8c, |
| ... | @@ -1557,9 +1573,9 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -1557,9 +1573,9 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 1557 | .lte => 0x8f, | 1573 | .lte => 0x8f, |
| 1558 | .eq => 0x85, | 1574 | .eq => 0x85, |
| 1559 | }; | 1575 | }; |
| 1560 | return self.genX86CondBr(inst, opcode); | 1576 | break :blk opcode; |
| 1561 | }, | 1577 | }, |
| 1562 | .compare_flags_unsigned => |cmp_op| { | 1578 | .compare_flags_unsigned => |cmp_op| blk: { |
| 1563 | // Here we map to the opposite opcode because the jump is to the false branch. | 1579 | // Here we map to the opposite opcode because the jump is to the false branch. |
| 1564 | const opcode: u8 = switch (cmp_op) { | 1580 | const opcode: u8 = switch (cmp_op) { |
| 1565 | .gte => 0x82, | 1581 | .gte => 0x82, |
| ... | @@ -1569,9 +1585,9 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -1569,9 +1585,9 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 1569 | .lte => 0x87, | 1585 | .lte => 0x87, |
| 1570 | .eq => 0x85, | 1586 | .eq => 0x85, |
| 1571 | }; | 1587 | }; |
| 1572 | return self.genX86CondBr(inst, opcode); | 1588 | break :blk opcode; |
| 1573 | }, | 1589 | }, |
| 1574 | .register => |reg| { | 1590 | .register => |reg| blk: { |
| 1575 | // test reg, 1 | 1591 | // test reg, 1 |
| 1576 | // TODO detect al, ax, eax | 1592 | // TODO detect al, ax, eax |
| 1577 | try self.code.ensureCapacity(self.code.items.len + 4); | 1593 | try self.code.ensureCapacity(self.code.items.len + 4); |
| ... | @@ -1583,23 +1599,128 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -1583,23 +1599,128 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 1583 | @as(u8, 0xC0) | (0 << 3) | @truncate(u3, reg.id()), | 1599 | @as(u8, 0xC0) | (0 << 3) | @truncate(u3, reg.id()), |
| 1584 | 0x01, | 1600 | 0x01, |
| 1585 | }); | 1601 | }); |
| 1586 | return self.genX86CondBr(inst, 0x84); | 1602 | break :blk 0x84; |
| 1587 | }, | 1603 | }, |
| 1588 | else => return self.fail(inst.base.src, "TODO implement condbr {} when condition is {}", .{ self.target.cpu.arch, @tagName(cond) }), | 1604 | else => return self.fail(inst.base.src, "TODO implement condbr {} when condition is {}", .{ self.target.cpu.arch, @tagName(cond) }), |
| 1589 | } | 1605 | }; |
| 1606 | self.code.appendSliceAssumeCapacity(&[_]u8{ 0x0f, opcode }); | ||
| 1607 | const reloc = Reloc{ .rel32 = self.code.items.len }; | ||
| 1608 | self.code.items.len += 4; | ||
| 1609 | break :reloc reloc; | ||
| 1590 | }, | 1610 | }, |
| 1591 | else => return self.fail(inst.base.src, "TODO implement condbr for {}", .{self.target.cpu.arch}), | 1611 | else => return self.fail(inst.base.src, "TODO implement condbr {}", .{ self.target.cpu.arch }), |
| 1592 | } | 1612 | }; |
| 1593 | } | ||
| 1594 | 1613 | ||
| 1595 | fn genX86CondBr(self: *Self, inst: *ir.Inst.CondBr, opcode: u8) !MCValue { | 1614 | // Capture the state of register and stack allocation state so that we can revert to it. |
| 1596 | // TODO deal with liveness / deaths condbr's then_entry_deaths and else_entry_deaths | 1615 | const parent_next_stack_offset = self.next_stack_offset; |
| 1597 | self.code.appendSliceAssumeCapacity(&[_]u8{ 0x0f, opcode }); | 1616 | const parent_free_registers = self.free_registers; |
| 1598 | const reloc = Reloc{ .rel32 = self.code.items.len }; | 1617 | var parent_stack = try self.stack.clone(self.gpa); |
| 1599 | self.code.items.len += 4; | 1618 | defer parent_stack.deinit(self.gpa); |
| 1619 | var parent_registers = try self.registers.clone(self.gpa); | ||
| 1620 | defer parent_registers.deinit(self.gpa); | ||
| 1621 | |||
| 1622 | try self.branch_stack.append(.{}); | ||
| 1623 | |||
| 1624 | const then_deaths = inst.thenDeaths(); | ||
| 1625 | try self.ensureProcessDeathCapacity(then_deaths.len); | ||
| 1626 | for (then_deaths) |operand| { | ||
| 1627 | self.processDeath(operand); | ||
| 1628 | } | ||
| 1600 | try self.genBody(inst.then_body); | 1629 | try self.genBody(inst.then_body); |
| 1630 | |||
| 1631 | // Revert to the previous register and stack allocation state. | ||
| 1632 | |||
| 1633 | var saved_then_branch = self.branch_stack.pop(); | ||
| 1634 | defer saved_then_branch.deinit(self.gpa); | ||
| 1635 | |||
| 1636 | self.registers.deinit(self.gpa); | ||
| 1637 | self.registers = parent_registers; | ||
| 1638 | parent_registers = .{}; | ||
| 1639 | |||
| 1640 | self.stack.deinit(self.gpa); | ||
| 1641 | self.stack = parent_stack; | ||
| 1642 | parent_stack = .{}; | ||
| 1643 | |||
| 1644 | self.next_stack_offset = parent_next_stack_offset; | ||
| 1645 | self.free_registers = parent_free_registers; | ||
| 1646 | |||
| 1601 | try self.performReloc(inst.base.src, reloc); | 1647 | try self.performReloc(inst.base.src, reloc); |
| 1648 | const else_branch = self.branch_stack.addOneAssumeCapacity(); | ||
| 1649 | else_branch.* = .{}; | ||
| 1650 | |||
| 1651 | const else_deaths = inst.elseDeaths(); | ||
| 1652 | try self.ensureProcessDeathCapacity(else_deaths.len); | ||
| 1653 | for (else_deaths) |operand| { | ||
| 1654 | self.processDeath(operand); | ||
| 1655 | } | ||
| 1602 | try self.genBody(inst.else_body); | 1656 | try self.genBody(inst.else_body); |
| 1657 | |||
| 1658 | // At this point, each branch will possibly have conflicting values for where | ||
| 1659 | // each instruction is stored. They agree, however, on which instructions are alive/dead. | ||
| 1660 | // We use the first ("then") branch as canonical, and here emit | ||
| 1661 | // instructions into the second ("else") branch to make it conform. | ||
| 1662 | // We continue respect the data structure semantic guarantees of the else_branch so | ||
| 1663 | // that we can use all the code emitting abstractions. This is why at the bottom we | ||
| 1664 | // assert that parent_branch.free_registers equals the saved_then_branch.free_registers | ||
| 1665 | // rather than assigning it. | ||
| 1666 | const parent_branch = &self.branch_stack.items[self.branch_stack.items.len - 2]; | ||
| 1667 | try parent_branch.inst_table.ensureCapacity(self.gpa, parent_branch.inst_table.items().len + | ||
| 1668 | else_branch.inst_table.items().len); | ||
| 1669 | for (else_branch.inst_table.items()) |else_entry| { | ||
| 1670 | const canon_mcv = if (saved_then_branch.inst_table.remove(else_entry.key)) |then_entry| blk: { | ||
| 1671 | // The instruction's MCValue is overridden in both branches. | ||
| 1672 | parent_branch.inst_table.putAssumeCapacity(else_entry.key, then_entry.value); | ||
| 1673 | if (else_entry.value == .dead) { | ||
| 1674 | assert(then_entry.value == .dead); | ||
| 1675 | continue; | ||
| 1676 | } | ||
| 1677 | break :blk then_entry.value; | ||
| 1678 | } else blk: { | ||
| 1679 | if (else_entry.value == .dead) | ||
| 1680 | continue; | ||
| 1681 | // The instruction is only overridden in the else branch. | ||
| 1682 | var i: usize = self.branch_stack.items.len - 2; | ||
| 1683 | while (true) { | ||
| 1684 | i -= 1; // If this overflows, the question is: why wasn't the instruction marked dead? | ||
| 1685 | if (self.branch_stack.items[i].inst_table.get(else_entry.key)) |mcv| { | ||
| 1686 | assert(mcv != .dead); | ||
| 1687 | break :blk mcv; | ||
| 1688 | } | ||
| 1689 | } | ||
| 1690 | }; | ||
| 1691 | log.debug("consolidating else_entry {*} {}=>{}", .{else_entry.key, else_entry.value, canon_mcv}); | ||
| 1692 | // TODO make sure the destination stack offset / register does not already have something | ||
| 1693 | // going on there. | ||
| 1694 | try self.setRegOrMem(inst.base.src, else_entry.key.ty, canon_mcv, else_entry.value); | ||
| 1695 | // TODO track the new register / stack allocation | ||
| 1696 | } | ||
| 1697 | try parent_branch.inst_table.ensureCapacity(self.gpa, parent_branch.inst_table.items().len + | ||
| 1698 | saved_then_branch.inst_table.items().len); | ||
| 1699 | for (saved_then_branch.inst_table.items()) |then_entry| { | ||
| 1700 | // We already deleted the items from this table that matched the else_branch. | ||
| 1701 | // So these are all instructions that are only overridden in the then branch. | ||
| 1702 | parent_branch.inst_table.putAssumeCapacity(then_entry.key, then_entry.value); | ||
| 1703 | if (then_entry.value == .dead) | ||
| 1704 | continue; | ||
| 1705 | const parent_mcv = blk: { | ||
| 1706 | var i: usize = self.branch_stack.items.len - 2; | ||
| 1707 | while (true) { | ||
| 1708 | i -= 1; | ||
| 1709 | if (self.branch_stack.items[i].inst_table.get(then_entry.key)) |mcv| { | ||
| 1710 | assert(mcv != .dead); | ||
| 1711 | break :blk mcv; | ||
| 1712 | } | ||
| 1713 | } | ||
| 1714 | }; | ||
| 1715 | log.debug("consolidating then_entry {*} {}=>{}", .{then_entry.key, parent_mcv, then_entry.value}); | ||
| 1716 | // TODO make sure the destination stack offset / register does not already have something | ||
| 1717 | // going on there. | ||
| 1718 | try self.setRegOrMem(inst.base.src, then_entry.key.ty, parent_mcv, then_entry.value); | ||
| 1719 | // TODO track the new register / stack allocation | ||
| 1720 | } | ||
| 1721 | |||
| 1722 | self.branch_stack.pop().deinit(self.gpa); | ||
| 1723 | |||
| 1603 | return MCValue.unreach; | 1724 | return MCValue.unreach; |
| 1604 | } | 1725 | } |
| 1605 | 1726 | ||
| ... | @@ -1673,11 +1794,12 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -1673,11 +1794,12 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 1673 | switch (reloc) { | 1794 | switch (reloc) { |
| 1674 | .rel32 => |pos| { | 1795 | .rel32 => |pos| { |
| 1675 | const amt = self.code.items.len - (pos + 4); | 1796 | const amt = self.code.items.len - (pos + 4); |
| 1676 | // If it wouldn't jump at all, elide it. | 1797 | // Here it would be tempting to implement testing for amt == 0 and then elide the |
| 1677 | if (amt == 0) { | 1798 | // jump. However, that will cause a problem because other jumps may assume that they |
| 1678 | self.code.items.len -= 5; | 1799 | // can jump to this code. Or maybe I didn't understand something when I was debugging. |
| 1679 | return; | 1800 | // It could be worth another look. Anyway, that's why that isn't done here. Probably the |
| 1680 | } | 1801 | // best place to elide jumps will be in semantic analysis, by inlining blocks that only |
| 1802 | // only have 1 break instruction. | ||
| 1681 | const s32_amt = math.cast(i32, amt) catch | 1803 | const s32_amt = math.cast(i32, amt) catch |
| 1682 | return self.fail(src, "unable to perform relocation: jump too far", .{}); | 1804 | return self.fail(src, "unable to perform relocation: jump too far", .{}); |
| 1683 | mem.writeIntLittle(i32, self.code.items[pos..][0..4], s32_amt); | 1805 | mem.writeIntLittle(i32, self.code.items[pos..][0..4], s32_amt); |
| ... | @@ -1927,15 +2049,29 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -1927,15 +2049,29 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 1927 | mem.writeIntLittle(u32, self.code.addManyAsArrayAssumeCapacity(4), x); | 2049 | mem.writeIntLittle(u32, self.code.addManyAsArrayAssumeCapacity(4), x); |
| 1928 | }, | 2050 | }, |
| 1929 | 8 => { | 2051 | 8 => { |
| 1930 | return self.fail(src, "TODO implement set abi_size=8 stack variable with immediate", .{}); | 2052 | // We have a positive stack offset value but we want a twos complement negative |
| 2053 | // offset from rbp, which is at the top of the stack frame. | ||
| 2054 | const negative_offset = @intCast(i8, -@intCast(i32, adj_off)); | ||
| 2055 | const twos_comp = @bitCast(u8, negative_offset); | ||
| 2056 | |||
| 2057 | // 64 bit write to memory would take two mov's anyways so we | ||
| 2058 | // insted just use two 32 bit writes to avoid register allocation | ||
| 2059 | try self.code.ensureCapacity(self.code.items.len + 14); | ||
| 2060 | var buf: [8]u8 = undefined; | ||
| 2061 | mem.writeIntLittle(u64, &buf, x_big); | ||
| 2062 | |||
| 2063 | // mov DWORD PTR [rbp+offset+4], immediate | ||
| 2064 | self.code.appendSliceAssumeCapacity(&[_]u8{ 0xc7, 0x45, twos_comp + 4}); | ||
| 2065 | self.code.appendSliceAssumeCapacity(buf[4..8]); | ||
| 2066 | |||
| 2067 | // mov DWORD PTR [rbp+offset], immediate | ||
| 2068 | self.code.appendSliceAssumeCapacity(&[_]u8{ 0xc7, 0x45, twos_comp }); | ||
| 2069 | self.code.appendSliceAssumeCapacity(buf[0..4]); | ||
| 1931 | }, | 2070 | }, |
| 1932 | else => { | 2071 | else => { |
| 1933 | return self.fail(src, "TODO implement set abi_size=large stack variable with immediate", .{}); | 2072 | return self.fail(src, "TODO implement set abi_size=large stack variable with immediate", .{}); |
| 1934 | }, | 2073 | }, |
| 1935 | } | 2074 | } |
| 1936 | if (x_big <= math.maxInt(u32)) {} else { | ||
| 1937 | return self.fail(src, "TODO implement set stack variable with large immediate", .{}); | ||
| 1938 | } | ||
| 1939 | }, | 2075 | }, |
| 1940 | .embedded_in_code => |code_offset| { | 2076 | .embedded_in_code => |code_offset| { |
| 1941 | return self.fail(src, "TODO implement set stack variable from embedded_in_code", .{}); | 2077 | return self.fail(src, "TODO implement set stack variable from embedded_in_code", .{}); |
| ... | @@ -2282,8 +2418,12 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -2282,8 +2418,12 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 2282 | } | 2418 | } |
| 2283 | 2419 | ||
| 2284 | fn resolveInst(self: *Self, inst: *ir.Inst) !MCValue { | 2420 | fn resolveInst(self: *Self, inst: *ir.Inst) !MCValue { |
| 2421 | // If the type has no codegen bits, no need to store it. | ||
| 2422 | if (!inst.ty.hasCodeGenBits()) | ||
| 2423 | return MCValue.none; | ||
| 2424 | |||
| 2285 | // Constants have static lifetimes, so they are always memoized in the outer most table. | 2425 | // Constants have static lifetimes, so they are always memoized in the outer most table. |
| 2286 | if (inst.cast(ir.Inst.Constant)) |const_inst| { | 2426 | if (inst.castTag(.constant)) |const_inst| { |
| 2287 | const branch = &self.branch_stack.items[0]; | 2427 | const branch = &self.branch_stack.items[0]; |
| 2288 | const gop = try branch.inst_table.getOrPut(self.gpa, inst); | 2428 | const gop = try branch.inst_table.getOrPut(self.gpa, inst); |
| 2289 | if (!gop.found_existing) { | 2429 | if (!gop.found_existing) { |
| ... | @@ -2292,6 +2432,10 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { | ... | @@ -2292,6 +2432,10 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 2292 | return gop.entry.value; | 2432 | return gop.entry.value; |
| 2293 | } | 2433 | } |
| 2294 | 2434 | ||
| 2435 | return self.getResolvedInstValue(inst); | ||
| 2436 | } | ||
| 2437 | |||
| 2438 | fn getResolvedInstValue(self: *Self, inst: *ir.Inst) MCValue { | ||
| 2295 | // Treat each stack item as a "layer" on top of the previous one. | 2439 | // Treat each stack item as a "layer" on top of the previous one. |
| 2296 | var i: usize = self.branch_stack.items.len; | 2440 | var i: usize = self.branch_stack.items.len; |
| 2297 | while (true) { | 2441 | while (true) { |
src-self-hosted/link/Elf.zig+12-5| ... | @@ -17,6 +17,7 @@ const Type = @import("../type.zig").Type; | ... | @@ -17,6 +17,7 @@ const Type = @import("../type.zig").Type; |
| 17 | const link = @import("../link.zig"); | 17 | const link = @import("../link.zig"); |
| 18 | const File = link.File; | 18 | const File = link.File; |
| 19 | const Elf = @This(); | 19 | const Elf = @This(); |
| 20 | const build_options = @import("build_options"); | ||
| 20 | 21 | ||
| 21 | const default_entry_addr = 0x8000000; | 22 | const default_entry_addr = 0x8000000; |
| 22 | 23 | ||
| ... | @@ -1640,9 +1641,15 @@ pub fn updateDecl(self: *Elf, module: *Module, decl: *Module.Decl) !void { | ... | @@ -1640,9 +1641,15 @@ pub fn updateDecl(self: *Elf, module: *Module, decl: *Module.Decl) !void { |
| 1640 | else => false, | 1641 | else => false, |
| 1641 | }; | 1642 | }; |
| 1642 | if (is_fn) { | 1643 | if (is_fn) { |
| 1643 | //if (mem.eql(u8, mem.spanZ(decl.name), "add")) { | 1644 | const zir_dumps = if (std.builtin.is_test) &[0][]const u8{} else build_options.zir_dumps; |
| 1644 | // typed_value.val.cast(Value.Payload.Function).?.func.dump(module.*); | 1645 | if (zir_dumps.len != 0) { |
| 1645 | //} | 1646 | for (zir_dumps) |fn_name| { |
| 1647 | if (mem.eql(u8, mem.spanZ(decl.name), fn_name)) { | ||
| 1648 | std.debug.print("\n{}\n", .{decl.name}); | ||
| 1649 | typed_value.val.cast(Value.Payload.Function).?.func.dump(module.*); | ||
| 1650 | } | ||
| 1651 | } | ||
| 1652 | } | ||
| 1646 | 1653 | ||
| 1647 | // For functions we need to add a prologue to the debug line program. | 1654 | // For functions we need to add a prologue to the debug line program. |
| 1648 | try dbg_line_buffer.ensureCapacity(26); | 1655 | try dbg_line_buffer.ensureCapacity(26); |
| ... | @@ -1654,7 +1661,7 @@ pub fn updateDecl(self: *Elf, module: *Module, decl: *Module.Decl) !void { | ... | @@ -1654,7 +1661,7 @@ pub fn updateDecl(self: *Elf, module: *Module, decl: *Module.Decl) !void { |
| 1654 | // TODO Look into improving the performance here by adding a token-index-to-line | 1661 | // TODO Look into improving the performance here by adding a token-index-to-line |
| 1655 | // lookup table. Currently this involves scanning over the source code for newlines. | 1662 | // lookup table. Currently this involves scanning over the source code for newlines. |
| 1656 | const fn_proto = file_ast_decls[decl.src_index].castTag(.FnProto).?; | 1663 | const fn_proto = file_ast_decls[decl.src_index].castTag(.FnProto).?; |
| 1657 | const block = fn_proto.body().?.castTag(.Block).?; | 1664 | const block = fn_proto.getBodyNode().?.castTag(.Block).?; |
| 1658 | const line_delta = std.zig.lineDelta(tree.source, 0, tree.token_locs[block.lbrace].start); | 1665 | const line_delta = std.zig.lineDelta(tree.source, 0, tree.token_locs[block.lbrace].start); |
| 1659 | break :blk @intCast(u28, line_delta); | 1666 | break :blk @intCast(u28, line_delta); |
| 1660 | } else if (decl.scope.cast(Module.Scope.ZIRModule)) |zir_module| { | 1667 | } else if (decl.scope.cast(Module.Scope.ZIRModule)) |zir_module| { |
| ... | @@ -2153,7 +2160,7 @@ pub fn updateDeclLineNumber(self: *Elf, module: *Module, decl: *const Module.Dec | ... | @@ -2153,7 +2160,7 @@ pub fn updateDeclLineNumber(self: *Elf, module: *Module, decl: *const Module.Dec |
| 2153 | // TODO Look into improving the performance here by adding a token-index-to-line | 2160 | // TODO Look into improving the performance here by adding a token-index-to-line |
| 2154 | // lookup table. Currently this involves scanning over the source code for newlines. | 2161 | // lookup table. Currently this involves scanning over the source code for newlines. |
| 2155 | const fn_proto = file_ast_decls[decl.src_index].castTag(.FnProto).?; | 2162 | const fn_proto = file_ast_decls[decl.src_index].castTag(.FnProto).?; |
| 2156 | const block = fn_proto.body().?.castTag(.Block).?; | 2163 | const block = fn_proto.getBodyNode().?.castTag(.Block).?; |
| 2157 | const line_delta = std.zig.lineDelta(tree.source, 0, tree.token_locs[block.lbrace].start); | 2164 | const line_delta = std.zig.lineDelta(tree.source, 0, tree.token_locs[block.lbrace].start); |
| 2158 | const casted_line_off = @intCast(u28, line_delta); | 2165 | const casted_line_off = @intCast(u28, line_delta); |
| 2159 | 2166 |
src-self-hosted/link/MachO.zig+104-77| ... | @@ -16,8 +16,6 @@ const Module = @import("../Module.zig"); | ... | @@ -16,8 +16,6 @@ const Module = @import("../Module.zig"); |
| 16 | const link = @import("../link.zig"); | 16 | const link = @import("../link.zig"); |
| 17 | const File = link.File; | 17 | const File = link.File; |
| 18 | 18 | ||
| 19 | const is_darwin = std.Target.current.os.tag.isDarwin(); | ||
| 20 | |||
| 21 | pub const base_tag: File.Tag = File.Tag.macho; | 19 | pub const base_tag: File.Tag = File.Tag.macho; |
| 22 | 20 | ||
| 23 | base: File, | 21 | base: File, |
| ... | @@ -30,24 +28,26 @@ command_file_offset: ?u64 = null, | ... | @@ -30,24 +28,26 @@ command_file_offset: ?u64 = null, |
| 30 | /// Stored in native-endian format, depending on target endianness needs to be bswapped on read/write. | 28 | /// Stored in native-endian format, depending on target endianness needs to be bswapped on read/write. |
| 31 | /// Same order as in the file. | 29 | /// Same order as in the file. |
| 32 | segments: std.ArrayListUnmanaged(macho.segment_command_64) = std.ArrayListUnmanaged(macho.segment_command_64){}, | 30 | segments: std.ArrayListUnmanaged(macho.segment_command_64) = std.ArrayListUnmanaged(macho.segment_command_64){}, |
| 31 | /// Section (headers) *always* follow segment (load commands) directly! | ||
| 33 | sections: std.ArrayListUnmanaged(macho.section_64) = std.ArrayListUnmanaged(macho.section_64){}, | 32 | sections: std.ArrayListUnmanaged(macho.section_64) = std.ArrayListUnmanaged(macho.section_64){}, |
| 34 | segment_table_offset: ?u64 = null, | 33 | |
| 34 | /// Offset (index) into __TEXT segment load command. | ||
| 35 | text_segment_offset: ?u64 = null, | ||
| 36 | /// Offset (index) into __LINKEDIT segment load command. | ||
| 37 | linkedit_segment_offset: ?u664 = null, | ||
| 35 | 38 | ||
| 36 | /// Entry point load command | 39 | /// Entry point load command |
| 37 | entry_point_cmd: ?macho.entry_point_command = null, | 40 | entry_point_cmd: ?macho.entry_point_command = null, |
| 38 | entry_addr: ?u64 = null, | 41 | entry_addr: ?u64 = null, |
| 39 | 42 | ||
| 40 | /// Default VM start address set at 4GB | 43 | /// The first 4GB of process' memory is reserved for the null (__PAGEZERO) segment. |
| 44 | /// This is also the start address for our binary. | ||
| 41 | vm_start_address: u64 = 0x100000000, | 45 | vm_start_address: u64 = 0x100000000, |
| 42 | 46 | ||
| 43 | seg_table_dirty: bool = false, | 47 | seg_table_dirty: bool = false, |
| 44 | 48 | ||
| 45 | error_flags: File.ErrorFlags = File.ErrorFlags{}, | 49 | error_flags: File.ErrorFlags = File.ErrorFlags{}, |
| 46 | 50 | ||
| 47 | /// TODO ultimately this will be propagated down from main() and set (in this form or another) | ||
| 48 | /// when user links against system lib. | ||
| 49 | link_against_system: bool = false, | ||
| 50 | |||
| 51 | /// `alloc_num / alloc_den` is the factor of padding when allocating. | 51 | /// `alloc_num / alloc_den` is the factor of padding when allocating. |
| 52 | const alloc_num = 4; | 52 | const alloc_num = 4; |
| 53 | const alloc_den = 3; | 53 | const alloc_den = 3; |
| ... | @@ -138,8 +138,8 @@ fn createFile(allocator: *Allocator, file: fs.File, options: link.Options) !Mach | ... | @@ -138,8 +138,8 @@ fn createFile(allocator: *Allocator, file: fs.File, options: link.Options) !Mach |
| 138 | .vmsize = self.vm_start_address, | 138 | .vmsize = self.vm_start_address, |
| 139 | .fileoff = 0, | 139 | .fileoff = 0, |
| 140 | .filesize = 0, | 140 | .filesize = 0, |
| 141 | .maxprot = 0, | 141 | .maxprot = macho.VM_PROT_NONE, |
| 142 | .initprot = 0, | 142 | .initprot = macho.VM_PROT_NONE, |
| 143 | .nsects = 0, | 143 | .nsects = 0, |
| 144 | .flags = 0, | 144 | .flags = 0, |
| 145 | }; | 145 | }; |
| ... | @@ -225,67 +225,61 @@ pub fn flush(self: *MachO, module: *Module) !void { | ... | @@ -225,67 +225,61 @@ pub fn flush(self: *MachO, module: *Module) !void { |
| 225 | 225 | ||
| 226 | switch (self.base.options.output_mode) { | 226 | switch (self.base.options.output_mode) { |
| 227 | .Exe => { | 227 | .Exe => { |
| 228 | if (self.link_against_system) { | 228 | { |
| 229 | if (is_darwin) { | 229 | // Specify path to dynamic linker dyld |
| 230 | { | 230 | const cmdsize = commandSize(@sizeOf(macho.dylinker_command) + mem.lenZ(DEFAULT_DYLD_PATH)); |
| 231 | // Specify path to dynamic linker dyld | 231 | const load_dylinker = [1]macho.dylinker_command{ |
| 232 | const cmdsize = commandSize(@intCast(u32, @sizeOf(macho.dylinker_command) + mem.lenZ(DEFAULT_DYLD_PATH))); | 232 | .{ |
| 233 | const load_dylinker = [1]macho.dylinker_command{ | 233 | .cmd = macho.LC_LOAD_DYLINKER, |
| 234 | .{ | 234 | .cmdsize = cmdsize, |
| 235 | .cmd = macho.LC_LOAD_DYLINKER, | 235 | .name = @sizeOf(macho.dylinker_command), |
| 236 | .cmdsize = cmdsize, | 236 | }, |
| 237 | .name = @sizeOf(macho.dylinker_command), | 237 | }; |
| 238 | }, | 238 | try self.commands.append(self.base.allocator, .{ |
| 239 | }; | 239 | .cmd = macho.LC_LOAD_DYLINKER, |
| 240 | try self.commands.append(self.base.allocator, .{ | 240 | .cmdsize = cmdsize, |
| 241 | .cmd = macho.LC_LOAD_DYLINKER, | 241 | }); |
| 242 | .cmdsize = cmdsize, | 242 | |
| 243 | }); | 243 | try self.base.file.?.pwriteAll(mem.sliceAsBytes(load_dylinker[0..1]), self.command_file_offset.?); |
| 244 | 244 | ||
| 245 | try self.base.file.?.pwriteAll(mem.sliceAsBytes(load_dylinker[0..1]), self.command_file_offset.?); | 245 | const file_offset = self.command_file_offset.? + @sizeOf(macho.dylinker_command); |
| 246 | 246 | try self.addPadding(cmdsize - @sizeOf(macho.dylinker_command), file_offset); | |
| 247 | const file_offset = self.command_file_offset.? + @sizeOf(macho.dylinker_command); | 247 | |
| 248 | try self.addPadding(cmdsize - @sizeOf(macho.dylinker_command), file_offset); | 248 | try self.base.file.?.pwriteAll(mem.spanZ(DEFAULT_DYLD_PATH), file_offset); |
| 249 | 249 | self.command_file_offset.? += cmdsize; | |
| 250 | try self.base.file.?.pwriteAll(mem.spanZ(DEFAULT_DYLD_PATH), file_offset); | 250 | } |
| 251 | self.command_file_offset.? += cmdsize; | 251 | |
| 252 | } | 252 | { |
| 253 | 253 | // Link against libSystem | |
| 254 | { | 254 | const cmdsize = commandSize(@sizeOf(macho.dylib_command) + mem.lenZ(LIB_SYSTEM_PATH)); |
| 255 | // Link against libSystem | 255 | // TODO Find a way to work out runtime version from the OS version triple stored in std.Target. |
| 256 | const cmdsize = commandSize(@intCast(u32, @sizeOf(macho.dylib_command) + mem.lenZ(LIB_SYSTEM_PATH))); | 256 | // In the meantime, we're gonna hardcode to the minimum compatibility version of 1.0.0. |
| 257 | // According to Apple's manual, we should obtain current libSystem version using libc call | 257 | const min_version = 0x10000; |
| 258 | // NSVersionOfRunTimeLibrary. | 258 | const dylib = .{ |
| 259 | const version = std.c.NSVersionOfRunTimeLibrary(LIB_SYSTEM_NAME); | 259 | .name = @sizeOf(macho.dylib_command), |
| 260 | const dylib = .{ | 260 | .timestamp = 2, // not sure why not simply 0; this is reverse engineered from Mach-O files |
| 261 | .name = @sizeOf(macho.dylib_command), | 261 | .current_version = min_version, |
| 262 | .timestamp = 2, // not sure why not simply 0; this is reverse engineered from Mach-O files | 262 | .compatibility_version = min_version, |
| 263 | .current_version = version, | 263 | }; |
| 264 | .compatibility_version = 0x10000, // not sure why this either; value from reverse engineering | 264 | const load_dylib = [1]macho.dylib_command{ |
| 265 | }; | 265 | .{ |
| 266 | const load_dylib = [1]macho.dylib_command{ | 266 | .cmd = macho.LC_LOAD_DYLIB, |
| 267 | .{ | 267 | .cmdsize = cmdsize, |
| 268 | .cmd = macho.LC_LOAD_DYLIB, | 268 | .dylib = dylib, |
| 269 | .cmdsize = cmdsize, | 269 | }, |
| 270 | .dylib = dylib, | 270 | }; |
| 271 | }, | 271 | try self.commands.append(self.base.allocator, .{ |
| 272 | }; | 272 | .cmd = macho.LC_LOAD_DYLIB, |
| 273 | try self.commands.append(self.base.allocator, .{ | 273 | .cmdsize = cmdsize, |
| 274 | .cmd = macho.LC_LOAD_DYLIB, | 274 | }); |
| 275 | .cmdsize = cmdsize, | 275 | |
| 276 | }); | 276 | try self.base.file.?.pwriteAll(mem.sliceAsBytes(load_dylib[0..1]), self.command_file_offset.?); |
| 277 | 277 | ||
| 278 | try self.base.file.?.pwriteAll(mem.sliceAsBytes(load_dylib[0..1]), self.command_file_offset.?); | 278 | const file_offset = self.command_file_offset.? + @sizeOf(macho.dylib_command); |
| 279 | 279 | try self.addPadding(cmdsize - @sizeOf(macho.dylib_command), file_offset); | |
| 280 | const file_offset = self.command_file_offset.? + @sizeOf(macho.dylib_command); | 280 | |
| 281 | try self.addPadding(cmdsize - @sizeOf(macho.dylib_command), file_offset); | 281 | try self.base.file.?.pwriteAll(mem.spanZ(LIB_SYSTEM_PATH), file_offset); |
| 282 | 282 | self.command_file_offset.? += cmdsize; | |
| 283 | try self.base.file.?.pwriteAll(mem.spanZ(LIB_SYSTEM_PATH), file_offset); | ||
| 284 | self.command_file_offset.? += cmdsize; | ||
| 285 | } | ||
| 286 | } else { | ||
| 287 | @panic("linking against libSystem on non-native target is unsupported"); | ||
| 288 | } | ||
| 289 | } | 283 | } |
| 290 | }, | 284 | }, |
| 291 | .Obj => return error.TODOImplementWritingObjFiles, | 285 | .Obj => return error.TODOImplementWritingObjFiles, |
| ... | @@ -327,20 +321,53 @@ pub fn getDeclVAddr(self: *MachO, decl: *const Module.Decl) u64 { | ... | @@ -327,20 +321,53 @@ pub fn getDeclVAddr(self: *MachO, decl: *const Module.Decl) u64 { |
| 327 | @panic("TODO implement getDeclVAddr for MachO"); | 321 | @panic("TODO implement getDeclVAddr for MachO"); |
| 328 | } | 322 | } |
| 329 | 323 | ||
| 330 | pub fn populateMissingMetadata(self: *MachO) !void {} | 324 | pub fn populateMissingMetadata(self: *MachO) !void { |
| 325 | if (self.text_segment_offset == null) { | ||
| 326 | self.text_segment_offset = @intCast(u64, self.segments.items.len); | ||
| 327 | const file_size = alignSize(u64, self.base.options.program_code_size_hint, 0x1000); | ||
| 328 | log.debug("vmsize/filesize = {}", .{file_size}); | ||
| 329 | const file_offset = 0; | ||
| 330 | const vm_address = self.vm_start_address; // the end of __PAGEZERO segment in VM | ||
| 331 | const protection = macho.VM_PROT_READ | macho.VM_PROT_EXECUTE; | ||
| 332 | const cmdsize = commandSize(@sizeOf(macho.segment_command_64)); | ||
| 333 | const text_segment = .{ | ||
| 334 | .cmd = macho.LC_SEGMENT_64, | ||
| 335 | .cmdsize = cmdsize, | ||
| 336 | .segname = makeString("__TEXT"), | ||
| 337 | .vmaddr = vm_address, | ||
| 338 | .vmsize = file_size, | ||
| 339 | .fileoff = 0, // __TEXT segment *always* starts at 0 file offset | ||
| 340 | .filesize = 0, //file_size, | ||
| 341 | .maxprot = protection, | ||
| 342 | .initprot = protection, | ||
| 343 | .nsects = 0, | ||
| 344 | .flags = 0, | ||
| 345 | }; | ||
| 346 | try self.commands.append(self.base.allocator, .{ | ||
| 347 | .cmd = macho.LC_SEGMENT_64, | ||
| 348 | .cmdsize = cmdsize, | ||
| 349 | }); | ||
| 350 | try self.segments.append(self.base.allocator, text_segment); | ||
| 351 | } | ||
| 352 | } | ||
| 331 | 353 | ||
| 332 | fn makeString(comptime bytes: []const u8) [16]u8 { | 354 | fn makeString(comptime bytes: []const u8) [16]u8 { |
| 333 | var buf: [16]u8 = undefined; | 355 | var buf = [_]u8{0} ** 16; |
| 334 | if (bytes.len > buf.len) @compileError("MachO segment/section name too long"); | 356 | if (bytes.len > buf.len) @compileError("MachO segment/section name too long"); |
| 335 | mem.copy(u8, buf[0..], bytes); | 357 | mem.copy(u8, buf[0..], bytes); |
| 336 | return buf; | 358 | return buf; |
| 337 | } | 359 | } |
| 338 | 360 | ||
| 339 | fn commandSize(min_size: u32) u32 { | 361 | fn alignSize(comptime Int: type, min_size: anytype, alignment: Int) Int { |
| 340 | if (min_size % @sizeOf(u64) == 0) return min_size; | 362 | const size = @intCast(Int, min_size); |
| 363 | if (size % alignment == 0) return size; | ||
| 364 | |||
| 365 | const div = size / alignment; | ||
| 366 | return (div + 1) * alignment; | ||
| 367 | } | ||
| 341 | 368 | ||
| 342 | const div = min_size / @sizeOf(u64); | 369 | fn commandSize(min_size: anytype) u32 { |
| 343 | return (div + 1) * @sizeOf(u64); | 370 | return alignSize(u32, min_size, @sizeOf(u64)); |
| 344 | } | 371 | } |
| 345 | 372 | ||
| 346 | fn addPadding(self: *MachO, size: u32, file_offset: u64) !void { | 373 | fn addPadding(self: *MachO, size: u32, file_offset: u64) !void { |
src-self-hosted/main.zig+1-1| ... | @@ -911,7 +911,7 @@ pub const info_zen = | ... | @@ -911,7 +911,7 @@ pub const info_zen = |
| 911 | \\ * Reduce the amount one must remember. | 911 | \\ * Reduce the amount one must remember. |
| 912 | \\ * Minimize energy spent on coding style. | 912 | \\ * Minimize energy spent on coding style. |
| 913 | \\ * Resource deallocation must succeed. | 913 | \\ * Resource deallocation must succeed. |
| 914 | \\ * Together we serve end users. | 914 | \\ * Together we serve the users. |
| 915 | \\ | 915 | \\ |
| 916 | \\ | 916 | \\ |
| 917 | ; | 917 | ; |
src-self-hosted/translate_c.zig+6-6| ... | @@ -168,7 +168,7 @@ const Scope = struct { | ... | @@ -168,7 +168,7 @@ const Scope = struct { |
| 168 | 168 | ||
| 169 | fn localContains(scope: *Block, name: []const u8) bool { | 169 | fn localContains(scope: *Block, name: []const u8) bool { |
| 170 | for (scope.variables.items) |p| { | 170 | for (scope.variables.items) |p| { |
| 171 | if (mem.eql(u8, p.name, name)) | 171 | if (mem.eql(u8, p.alias, name)) |
| 172 | return true; | 172 | return true; |
| 173 | } | 173 | } |
| 174 | return false; | 174 | return false; |
| ... | @@ -675,7 +675,7 @@ fn visitFnDecl(c: *Context, fn_decl: *const ZigClangFunctionDecl) Error!void { | ... | @@ -675,7 +675,7 @@ fn visitFnDecl(c: *Context, fn_decl: *const ZigClangFunctionDecl) Error!void { |
| 675 | } | 675 | } |
| 676 | 676 | ||
| 677 | const body_node = try block_scope.complete(rp.c); | 677 | const body_node = try block_scope.complete(rp.c); |
| 678 | proto_node.setTrailer("body_node", body_node); | 678 | proto_node.setBodyNode(body_node); |
| 679 | return addTopLevelDecl(c, fn_name, &proto_node.base); | 679 | return addTopLevelDecl(c, fn_name, &proto_node.base); |
| 680 | } | 680 | } |
| 681 | 681 | ||
| ... | @@ -4493,7 +4493,7 @@ fn transCreateNodeMacroFn(c: *Context, name: []const u8, ref: *ast.Node, proto_a | ... | @@ -4493,7 +4493,7 @@ fn transCreateNodeMacroFn(c: *Context, name: []const u8, ref: *ast.Node, proto_a |
| 4493 | const block_lbrace = try appendToken(c, .LBrace, "{"); | 4493 | const block_lbrace = try appendToken(c, .LBrace, "{"); |
| 4494 | 4494 | ||
| 4495 | const return_kw = try appendToken(c, .Keyword_return, "return"); | 4495 | const return_kw = try appendToken(c, .Keyword_return, "return"); |
| 4496 | const unwrap_expr = try transCreateNodeUnwrapNull(c, ref.cast(ast.Node.VarDecl).?.getTrailer("init_node").?); | 4496 | const unwrap_expr = try transCreateNodeUnwrapNull(c, ref.cast(ast.Node.VarDecl).?.getInitNode().?); |
| 4497 | 4497 | ||
| 4498 | const call_expr = try c.createCall(unwrap_expr, fn_params.items.len); | 4498 | const call_expr = try c.createCall(unwrap_expr, fn_params.items.len); |
| 4499 | const call_params = call_expr.params(); | 4499 | const call_params = call_expr.params(); |
| ... | @@ -6361,7 +6361,7 @@ fn getContainer(c: *Context, node: *ast.Node) ?*ast.Node { | ... | @@ -6361,7 +6361,7 @@ fn getContainer(c: *Context, node: *ast.Node) ?*ast.Node { |
| 6361 | const ident = node.castTag(.Identifier).?; | 6361 | const ident = node.castTag(.Identifier).?; |
| 6362 | if (c.global_scope.sym_table.get(tokenSlice(c, ident.token))) |value| { | 6362 | if (c.global_scope.sym_table.get(tokenSlice(c, ident.token))) |value| { |
| 6363 | if (value.cast(ast.Node.VarDecl)) |var_decl| | 6363 | if (value.cast(ast.Node.VarDecl)) |var_decl| |
| 6364 | return getContainer(c, var_decl.getTrailer("init_node").?); | 6364 | return getContainer(c, var_decl.getInitNode().?); |
| 6365 | } | 6365 | } |
| 6366 | }, | 6366 | }, |
| 6367 | 6367 | ||
| ... | @@ -6390,7 +6390,7 @@ fn getContainerTypeOf(c: *Context, ref: *ast.Node) ?*ast.Node { | ... | @@ -6390,7 +6390,7 @@ fn getContainerTypeOf(c: *Context, ref: *ast.Node) ?*ast.Node { |
| 6390 | if (ref.castTag(.Identifier)) |ident| { | 6390 | if (ref.castTag(.Identifier)) |ident| { |
| 6391 | if (c.global_scope.sym_table.get(tokenSlice(c, ident.token))) |value| { | 6391 | if (c.global_scope.sym_table.get(tokenSlice(c, ident.token))) |value| { |
| 6392 | if (value.cast(ast.Node.VarDecl)) |var_decl| { | 6392 | if (value.cast(ast.Node.VarDecl)) |var_decl| { |
| 6393 | if (var_decl.getTrailer("type_node")) |ty| | 6393 | if (var_decl.getTypeNode()) |ty| |
| 6394 | return getContainer(c, ty); | 6394 | return getContainer(c, ty); |
| 6395 | } | 6395 | } |
| 6396 | } | 6396 | } |
| ... | @@ -6412,7 +6412,7 @@ fn getContainerTypeOf(c: *Context, ref: *ast.Node) ?*ast.Node { | ... | @@ -6412,7 +6412,7 @@ fn getContainerTypeOf(c: *Context, ref: *ast.Node) ?*ast.Node { |
| 6412 | } | 6412 | } |
| 6413 | 6413 | ||
| 6414 | fn getFnProto(c: *Context, ref: *ast.Node) ?*ast.Node.FnProto { | 6414 | fn getFnProto(c: *Context, ref: *ast.Node) ?*ast.Node.FnProto { |
| 6415 | const init = if (ref.cast(ast.Node.VarDecl)) |v| v.getTrailer("init_node").? else return null; | 6415 | const init = if (ref.cast(ast.Node.VarDecl)) |v| v.getInitNode().? else return null; |
| 6416 | if (getContainerTypeOf(c, init)) |ty_node| { | 6416 | if (getContainerTypeOf(c, init)) |ty_node| { |
| 6417 | if (ty_node.castTag(.OptionalType)) |prefix| { | 6417 | if (ty_node.castTag(.OptionalType)) |prefix| { |
| 6418 | if (prefix.rhs.cast(ast.Node.FnProto)) |fn_proto| { | 6418 | if (prefix.rhs.cast(ast.Node.FnProto)) |fn_proto| { |
src-self-hosted/type.zig+9-2| ... | @@ -771,8 +771,8 @@ pub const Type = extern union { | ... | @@ -771,8 +771,8 @@ pub const Type = extern union { |
| 771 | .array => self.elemType().hasCodeGenBits() and self.arrayLen() != 0, | 771 | .array => self.elemType().hasCodeGenBits() and self.arrayLen() != 0, |
| 772 | .array_u8 => self.arrayLen() != 0, | 772 | .array_u8 => self.arrayLen() != 0, |
| 773 | .array_sentinel, .single_const_pointer, .single_mut_pointer, .many_const_pointer, .many_mut_pointer, .c_const_pointer, .c_mut_pointer, .const_slice, .mut_slice, .pointer => self.elemType().hasCodeGenBits(), | 773 | .array_sentinel, .single_const_pointer, .single_mut_pointer, .many_const_pointer, .many_mut_pointer, .c_const_pointer, .c_mut_pointer, .const_slice, .mut_slice, .pointer => self.elemType().hasCodeGenBits(), |
| 774 | .int_signed => self.cast(Payload.IntSigned).?.bits == 0, | 774 | .int_signed => self.cast(Payload.IntSigned).?.bits != 0, |
| 775 | .int_unsigned => self.cast(Payload.IntUnsigned).?.bits == 0, | 775 | .int_unsigned => self.cast(Payload.IntUnsigned).?.bits != 0, |
| 776 | 776 | ||
| 777 | .error_union => { | 777 | .error_union => { |
| 778 | const payload = self.cast(Payload.ErrorUnion).?; | 778 | const payload = self.cast(Payload.ErrorUnion).?; |
| ... | @@ -2675,6 +2675,13 @@ pub const Type = extern union { | ... | @@ -2675,6 +2675,13 @@ pub const Type = extern union { |
| 2675 | }; | 2675 | }; |
| 2676 | } | 2676 | } |
| 2677 | 2677 | ||
| 2678 | pub fn isIndexable(self: Type) bool { | ||
| 2679 | const zig_tag = self.zigTypeTag(); | ||
| 2680 | // TODO tuples are indexable | ||
| 2681 | return zig_tag == .Array or zig_tag == .Vector or self.isSlice() or | ||
| 2682 | (self.isSinglePointer() and self.elemType().zigTypeTag() == .Array); | ||
| 2683 | } | ||
| 2684 | |||
| 2678 | /// This enum does not directly correspond to `std.builtin.TypeId` because | 2685 | /// This enum does not directly correspond to `std.builtin.TypeId` because |
| 2679 | /// it has extra enum tags in it, as a way of using less memory. For example, | 2686 | /// it has extra enum tags in it, as a way of using less memory. For example, |
| 2680 | /// even though Zig recognizes `*align(10) i32` and `*i32` both as Pointer types | 2687 | /// even though Zig recognizes `*align(10) i32` and `*i32` both as Pointer types |
src-self-hosted/value.zig+29-7| ... | @@ -65,6 +65,7 @@ pub const Value = extern union { | ... | @@ -65,6 +65,7 @@ pub const Value = extern union { |
| 65 | 65 | ||
| 66 | undef, | 66 | undef, |
| 67 | zero, | 67 | zero, |
| 68 | one, | ||
| 68 | void_value, | 69 | void_value, |
| 69 | unreachable_value, | 70 | unreachable_value, |
| 70 | empty_array, | 71 | empty_array, |
| ... | @@ -174,6 +175,7 @@ pub const Value = extern union { | ... | @@ -174,6 +175,7 @@ pub const Value = extern union { |
| 174 | .anyframe_type, | 175 | .anyframe_type, |
| 175 | .undef, | 176 | .undef, |
| 176 | .zero, | 177 | .zero, |
| 178 | .one, | ||
| 177 | .void_value, | 179 | .void_value, |
| 178 | .unreachable_value, | 180 | .unreachable_value, |
| 179 | .empty_array, | 181 | .empty_array, |
| ... | @@ -313,6 +315,7 @@ pub const Value = extern union { | ... | @@ -313,6 +315,7 @@ pub const Value = extern union { |
| 313 | .null_value => return out_stream.writeAll("null"), | 315 | .null_value => return out_stream.writeAll("null"), |
| 314 | .undef => return out_stream.writeAll("undefined"), | 316 | .undef => return out_stream.writeAll("undefined"), |
| 315 | .zero => return out_stream.writeAll("0"), | 317 | .zero => return out_stream.writeAll("0"), |
| 318 | .one => return out_stream.writeAll("1"), | ||
| 316 | .void_value => return out_stream.writeAll("{}"), | 319 | .void_value => return out_stream.writeAll("{}"), |
| 317 | .unreachable_value => return out_stream.writeAll("unreachable"), | 320 | .unreachable_value => return out_stream.writeAll("unreachable"), |
| 318 | .bool_true => return out_stream.writeAll("true"), | 321 | .bool_true => return out_stream.writeAll("true"), |
| ... | @@ -447,6 +450,7 @@ pub const Value = extern union { | ... | @@ -447,6 +450,7 @@ pub const Value = extern union { |
| 447 | 450 | ||
| 448 | .undef, | 451 | .undef, |
| 449 | .zero, | 452 | .zero, |
| 453 | .one, | ||
| 450 | .void_value, | 454 | .void_value, |
| 451 | .unreachable_value, | 455 | .unreachable_value, |
| 452 | .empty_array, | 456 | .empty_array, |
| ... | @@ -546,7 +550,9 @@ pub const Value = extern union { | ... | @@ -546,7 +550,9 @@ pub const Value = extern union { |
| 546 | .bool_false, | 550 | .bool_false, |
| 547 | => return BigIntMutable.init(&space.limbs, 0).toConst(), | 551 | => return BigIntMutable.init(&space.limbs, 0).toConst(), |
| 548 | 552 | ||
| 549 | .bool_true => return BigIntMutable.init(&space.limbs, 1).toConst(), | 553 | .one, |
| 554 | .bool_true, | ||
| 555 | => return BigIntMutable.init(&space.limbs, 1).toConst(), | ||
| 550 | 556 | ||
| 551 | .int_u64 => return BigIntMutable.init(&space.limbs, self.cast(Payload.Int_u64).?.int).toConst(), | 557 | .int_u64 => return BigIntMutable.init(&space.limbs, self.cast(Payload.Int_u64).?.int).toConst(), |
| 552 | .int_i64 => return BigIntMutable.init(&space.limbs, self.cast(Payload.Int_i64).?.int).toConst(), | 558 | .int_i64 => return BigIntMutable.init(&space.limbs, self.cast(Payload.Int_i64).?.int).toConst(), |
| ... | @@ -627,7 +633,9 @@ pub const Value = extern union { | ... | @@ -627,7 +633,9 @@ pub const Value = extern union { |
| 627 | .bool_false, | 633 | .bool_false, |
| 628 | => return 0, | 634 | => return 0, |
| 629 | 635 | ||
| 630 | .bool_true => return 1, | 636 | .one, |
| 637 | .bool_true, | ||
| 638 | => return 1, | ||
| 631 | 639 | ||
| 632 | .int_u64 => return self.cast(Payload.Int_u64).?.int, | 640 | .int_u64 => return self.cast(Payload.Int_u64).?.int, |
| 633 | .int_i64 => return @intCast(u64, self.cast(Payload.Int_i64).?.int), | 641 | .int_i64 => return @intCast(u64, self.cast(Payload.Int_i64).?.int), |
| ... | @@ -708,7 +716,9 @@ pub const Value = extern union { | ... | @@ -708,7 +716,9 @@ pub const Value = extern union { |
| 708 | .bool_false, | 716 | .bool_false, |
| 709 | => return 0, | 717 | => return 0, |
| 710 | 718 | ||
| 711 | .bool_true => return 1, | 719 | .one, |
| 720 | .bool_true, | ||
| 721 | => return 1, | ||
| 712 | 722 | ||
| 713 | .int_u64 => return @intCast(i64, self.cast(Payload.Int_u64).?.int), | 723 | .int_u64 => return @intCast(i64, self.cast(Payload.Int_u64).?.int), |
| 714 | .int_i64 => return self.cast(Payload.Int_i64).?.int, | 724 | .int_i64 => return self.cast(Payload.Int_i64).?.int, |
| ... | @@ -734,6 +744,7 @@ pub const Value = extern union { | ... | @@ -734,6 +744,7 @@ pub const Value = extern union { |
| 734 | .float_128 => @floatCast(T, self.cast(Payload.Float_128).?.val), | 744 | .float_128 => @floatCast(T, self.cast(Payload.Float_128).?.val), |
| 735 | 745 | ||
| 736 | .zero => 0, | 746 | .zero => 0, |
| 747 | .one => 1, | ||
| 737 | .int_u64 => @intToFloat(T, self.cast(Payload.Int_u64).?.int), | 748 | .int_u64 => @intToFloat(T, self.cast(Payload.Int_u64).?.int), |
| 738 | .int_i64 => @intToFloat(T, self.cast(Payload.Int_i64).?.int), | 749 | .int_i64 => @intToFloat(T, self.cast(Payload.Int_i64).?.int), |
| 739 | 750 | ||
| ... | @@ -814,7 +825,9 @@ pub const Value = extern union { | ... | @@ -814,7 +825,9 @@ pub const Value = extern union { |
| 814 | .bool_false, | 825 | .bool_false, |
| 815 | => return 0, | 826 | => return 0, |
| 816 | 827 | ||
| 817 | .bool_true => return 1, | 828 | .one, |
| 829 | .bool_true, | ||
| 830 | => return 1, | ||
| 818 | 831 | ||
| 819 | .int_u64 => { | 832 | .int_u64 => { |
| 820 | const x = self.cast(Payload.Int_u64).?.int; | 833 | const x = self.cast(Payload.Int_u64).?.int; |
| ... | @@ -900,7 +913,9 @@ pub const Value = extern union { | ... | @@ -900,7 +913,9 @@ pub const Value = extern union { |
| 900 | .bool_false, | 913 | .bool_false, |
| 901 | => return true, | 914 | => return true, |
| 902 | 915 | ||
| 903 | .bool_true => { | 916 | .one, |
| 917 | .bool_true, | ||
| 918 | => { | ||
| 904 | const info = ty.intInfo(target); | 919 | const info = ty.intInfo(target); |
| 905 | if (info.signed) { | 920 | if (info.signed) { |
| 906 | return info.bits >= 2; | 921 | return info.bits >= 2; |
| ... | @@ -1064,7 +1079,9 @@ pub const Value = extern union { | ... | @@ -1064,7 +1079,9 @@ pub const Value = extern union { |
| 1064 | .@"error", | 1079 | .@"error", |
| 1065 | => unreachable, | 1080 | => unreachable, |
| 1066 | 1081 | ||
| 1067 | .zero => false, | 1082 | .zero, |
| 1083 | .one, | ||
| 1084 | => false, | ||
| 1068 | 1085 | ||
| 1069 | .float_16 => @rem(self.cast(Payload.Float_16).?.val, 1) != 0, | 1086 | .float_16 => @rem(self.cast(Payload.Float_16).?.val, 1) != 0, |
| 1070 | .float_32 => @rem(self.cast(Payload.Float_32).?.val, 1) != 0, | 1087 | .float_32 => @rem(self.cast(Payload.Float_32).?.val, 1) != 0, |
| ... | @@ -1140,7 +1157,9 @@ pub const Value = extern union { | ... | @@ -1140,7 +1157,9 @@ pub const Value = extern union { |
| 1140 | .bool_false, | 1157 | .bool_false, |
| 1141 | => .eq, | 1158 | => .eq, |
| 1142 | 1159 | ||
| 1143 | .bool_true => .gt, | 1160 | .one, |
| 1161 | .bool_true, | ||
| 1162 | => .gt, | ||
| 1144 | 1163 | ||
| 1145 | .int_u64 => std.math.order(lhs.cast(Payload.Int_u64).?.int, 0), | 1164 | .int_u64 => std.math.order(lhs.cast(Payload.Int_u64).?.int, 0), |
| 1146 | .int_i64 => std.math.order(lhs.cast(Payload.Int_i64).?.int, 0), | 1165 | .int_i64 => std.math.order(lhs.cast(Payload.Int_i64).?.int, 0), |
| ... | @@ -1257,6 +1276,7 @@ pub const Value = extern union { | ... | @@ -1257,6 +1276,7 @@ pub const Value = extern union { |
| 1257 | .enum_literal_type, | 1276 | .enum_literal_type, |
| 1258 | .anyframe_type, | 1277 | .anyframe_type, |
| 1259 | .zero, | 1278 | .zero, |
| 1279 | .one, | ||
| 1260 | .bool_true, | 1280 | .bool_true, |
| 1261 | .bool_false, | 1281 | .bool_false, |
| 1262 | .null_value, | 1282 | .null_value, |
| ... | @@ -1339,6 +1359,7 @@ pub const Value = extern union { | ... | @@ -1339,6 +1359,7 @@ pub const Value = extern union { |
| 1339 | .enum_literal_type, | 1359 | .enum_literal_type, |
| 1340 | .anyframe_type, | 1360 | .anyframe_type, |
| 1341 | .zero, | 1361 | .zero, |
| 1362 | .one, | ||
| 1342 | .bool_true, | 1363 | .bool_true, |
| 1343 | .bool_false, | 1364 | .bool_false, |
| 1344 | .null_value, | 1365 | .null_value, |
| ... | @@ -1438,6 +1459,7 @@ pub const Value = extern union { | ... | @@ -1438,6 +1459,7 @@ pub const Value = extern union { |
| 1438 | .enum_literal_type, | 1459 | .enum_literal_type, |
| 1439 | .anyframe_type, | 1460 | .anyframe_type, |
| 1440 | .zero, | 1461 | .zero, |
| 1462 | .one, | ||
| 1441 | .empty_array, | 1463 | .empty_array, |
| 1442 | .bool_true, | 1464 | .bool_true, |
| 1443 | .bool_false, | 1465 | .bool_false, |
src-self-hosted/zir.zig+19-1| ... | @@ -137,6 +137,8 @@ pub const Inst = struct { | ... | @@ -137,6 +137,8 @@ pub const Inst = struct { |
| 137 | ensure_result_used, | 137 | ensure_result_used, |
| 138 | /// Emits a compile error if an error is ignored. | 138 | /// Emits a compile error if an error is ignored. |
| 139 | ensure_result_non_error, | 139 | ensure_result_non_error, |
| 140 | /// Emits a compile error if operand cannot be indexed. | ||
| 141 | ensure_indexable, | ||
| 140 | /// Create a `E!T` type. | 142 | /// Create a `E!T` type. |
| 141 | error_union_type, | 143 | error_union_type, |
| 142 | /// Create an error set. | 144 | /// Create an error set. |
| ... | @@ -251,6 +253,8 @@ pub const Inst = struct { | ... | @@ -251,6 +253,8 @@ pub const Inst = struct { |
| 251 | unwrap_err_safe, | 253 | unwrap_err_safe, |
| 252 | /// Same as previous, but without safety checks. Used for orelse, if and while | 254 | /// Same as previous, but without safety checks. Used for orelse, if and while |
| 253 | unwrap_err_unsafe, | 255 | unwrap_err_unsafe, |
| 256 | /// Gets the error code value of an error union | ||
| 257 | unwrap_err_code, | ||
| 254 | /// Takes a *E!T and raises a compiler error if T != void | 258 | /// Takes a *E!T and raises a compiler error if T != void |
| 255 | ensure_err_payload_void, | 259 | ensure_err_payload_void, |
| 256 | /// Enum literal | 260 | /// Enum literal |
| ... | @@ -278,6 +282,7 @@ pub const Inst = struct { | ... | @@ -278,6 +282,7 @@ pub const Inst = struct { |
| 278 | .alloc, | 282 | .alloc, |
| 279 | .ensure_result_used, | 283 | .ensure_result_used, |
| 280 | .ensure_result_non_error, | 284 | .ensure_result_non_error, |
| 285 | .ensure_indexable, | ||
| 281 | .bitcast_result_ptr, | 286 | .bitcast_result_ptr, |
| 282 | .ref, | 287 | .ref, |
| 283 | .bitcast_ref, | 288 | .bitcast_ref, |
| ... | @@ -295,6 +300,7 @@ pub const Inst = struct { | ... | @@ -295,6 +300,7 @@ pub const Inst = struct { |
| 295 | .unwrap_optional_unsafe, | 300 | .unwrap_optional_unsafe, |
| 296 | .unwrap_err_safe, | 301 | .unwrap_err_safe, |
| 297 | .unwrap_err_unsafe, | 302 | .unwrap_err_unsafe, |
| 303 | .unwrap_err_code, | ||
| 298 | .ensure_err_payload_void, | 304 | .ensure_err_payload_void, |
| 299 | .anyframe_type, | 305 | .anyframe_type, |
| 300 | .bitnot, | 306 | .bitnot, |
| ... | @@ -409,6 +415,7 @@ pub const Inst = struct { | ... | @@ -409,6 +415,7 @@ pub const Inst = struct { |
| 409 | .elemptr, | 415 | .elemptr, |
| 410 | .ensure_result_used, | 416 | .ensure_result_used, |
| 411 | .ensure_result_non_error, | 417 | .ensure_result_non_error, |
| 418 | .ensure_indexable, | ||
| 412 | .@"export", | 419 | .@"export", |
| 413 | .floatcast, | 420 | .floatcast, |
| 414 | .fieldptr, | 421 | .fieldptr, |
| ... | @@ -450,6 +457,7 @@ pub const Inst = struct { | ... | @@ -450,6 +457,7 @@ pub const Inst = struct { |
| 450 | .unwrap_optional_unsafe, | 457 | .unwrap_optional_unsafe, |
| 451 | .unwrap_err_safe, | 458 | .unwrap_err_safe, |
| 452 | .unwrap_err_unsafe, | 459 | .unwrap_err_unsafe, |
| 460 | .unwrap_err_code, | ||
| 453 | .ptr_type, | 461 | .ptr_type, |
| 454 | .ensure_err_payload_void, | 462 | .ensure_err_payload_void, |
| 455 | .enum_literal, | 463 | .enum_literal, |
| ... | @@ -954,6 +962,7 @@ pub const Module = struct { | ... | @@ -954,6 +962,7 @@ pub const Module = struct { |
| 954 | 962 | ||
| 955 | pub const MetaData = struct { | 963 | pub const MetaData = struct { |
| 956 | deaths: ir.Inst.DeathsInt, | 964 | deaths: ir.Inst.DeathsInt, |
| 965 | addr: usize, | ||
| 957 | }; | 966 | }; |
| 958 | 967 | ||
| 959 | pub const BodyMetaData = struct { | 968 | pub const BodyMetaData = struct { |
| ... | @@ -1152,6 +1161,12 @@ const Writer = struct { | ... | @@ -1152,6 +1161,12 @@ const Writer = struct { |
| 1152 | try self.writeInstToStream(stream, inst); | 1161 | try self.writeInstToStream(stream, inst); |
| 1153 | if (self.module.metadata.get(inst)) |metadata| { | 1162 | if (self.module.metadata.get(inst)) |metadata| { |
| 1154 | try stream.print(" ; deaths=0b{b}", .{metadata.deaths}); | 1163 | try stream.print(" ; deaths=0b{b}", .{metadata.deaths}); |
| 1164 | // This is conditionally compiled in because addresses mess up the tests due | ||
| 1165 | // to Address Space Layout Randomization. It's super useful when debugging | ||
| 1166 | // codegen.zig though. | ||
| 1167 | if (!std.builtin.is_test) { | ||
| 1168 | try stream.print(" 0x{x}", .{metadata.addr}); | ||
| 1169 | } | ||
| 1155 | } | 1170 | } |
| 1156 | self.indent -= 2; | 1171 | self.indent -= 2; |
| 1157 | try stream.writeByte('\n'); | 1172 | try stream.writeByte('\n'); |
| ... | @@ -2417,7 +2432,10 @@ const EmitZIR = struct { | ... | @@ -2417,7 +2432,10 @@ const EmitZIR = struct { |
| 2417 | 2432 | ||
| 2418 | .varptr => @panic("TODO"), | 2433 | .varptr => @panic("TODO"), |
| 2419 | }; | 2434 | }; |
| 2420 | try self.metadata.put(new_inst, .{ .deaths = inst.deaths }); | 2435 | try self.metadata.put(new_inst, .{ |
| 2436 | .deaths = inst.deaths, | ||
| 2437 | .addr = @ptrToInt(inst), | ||
| 2438 | }); | ||
| 2421 | try instructions.append(new_inst); | 2439 | try instructions.append(new_inst); |
| 2422 | try inst_table.put(inst, new_inst); | 2440 | try inst_table.put(inst, new_inst); |
| 2423 | } | 2441 | } |
src-self-hosted/zir_sema.zig+43-21| ... | @@ -48,6 +48,7 @@ pub fn analyzeInst(mod: *Module, scope: *Scope, old_inst: *zir.Inst) InnerError! | ... | @@ -48,6 +48,7 @@ pub fn analyzeInst(mod: *Module, scope: *Scope, old_inst: *zir.Inst) InnerError! |
| 48 | .declval_in_module => return analyzeInstDeclValInModule(mod, scope, old_inst.castTag(.declval_in_module).?), | 48 | .declval_in_module => return analyzeInstDeclValInModule(mod, scope, old_inst.castTag(.declval_in_module).?), |
| 49 | .ensure_result_used => return analyzeInstEnsureResultUsed(mod, scope, old_inst.castTag(.ensure_result_used).?), | 49 | .ensure_result_used => return analyzeInstEnsureResultUsed(mod, scope, old_inst.castTag(.ensure_result_used).?), |
| 50 | .ensure_result_non_error => return analyzeInstEnsureResultNonError(mod, scope, old_inst.castTag(.ensure_result_non_error).?), | 50 | .ensure_result_non_error => return analyzeInstEnsureResultNonError(mod, scope, old_inst.castTag(.ensure_result_non_error).?), |
| 51 | .ensure_indexable => return analyzeInstEnsureIndexable(mod, scope, old_inst.castTag(.ensure_indexable).?), | ||
| 51 | .ref => return analyzeInstRef(mod, scope, old_inst.castTag(.ref).?), | 52 | .ref => return analyzeInstRef(mod, scope, old_inst.castTag(.ref).?), |
| 52 | .ret_ptr => return analyzeInstRetPtr(mod, scope, old_inst.castTag(.ret_ptr).?), | 53 | .ret_ptr => return analyzeInstRetPtr(mod, scope, old_inst.castTag(.ret_ptr).?), |
| 53 | .ret_type => return analyzeInstRetType(mod, scope, old_inst.castTag(.ret_type).?), | 54 | .ret_type => return analyzeInstRetType(mod, scope, old_inst.castTag(.ret_type).?), |
| ... | @@ -111,7 +112,7 @@ pub fn analyzeInst(mod: *Module, scope: *Scope, old_inst: *zir.Inst) InnerError! | ... | @@ -111,7 +112,7 @@ pub fn analyzeInst(mod: *Module, scope: *Scope, old_inst: *zir.Inst) InnerError! |
| 111 | .condbr => return analyzeInstCondBr(mod, scope, old_inst.castTag(.condbr).?), | 112 | .condbr => return analyzeInstCondBr(mod, scope, old_inst.castTag(.condbr).?), |
| 112 | .isnull => return analyzeInstIsNonNull(mod, scope, old_inst.castTag(.isnull).?, true), | 113 | .isnull => return analyzeInstIsNonNull(mod, scope, old_inst.castTag(.isnull).?, true), |
| 113 | .isnonnull => return analyzeInstIsNonNull(mod, scope, old_inst.castTag(.isnonnull).?, false), | 114 | .isnonnull => return analyzeInstIsNonNull(mod, scope, old_inst.castTag(.isnonnull).?, false), |
| 114 | .iserr => return analyzeInstIsErr(mod, scope, old_inst.castTag(.iserr).?, true), | 115 | .iserr => return analyzeInstIsErr(mod, scope, old_inst.castTag(.iserr).?), |
| 115 | .boolnot => return analyzeInstBoolNot(mod, scope, old_inst.castTag(.boolnot).?), | 116 | .boolnot => return analyzeInstBoolNot(mod, scope, old_inst.castTag(.boolnot).?), |
| 116 | .typeof => return analyzeInstTypeOf(mod, scope, old_inst.castTag(.typeof).?), | 117 | .typeof => return analyzeInstTypeOf(mod, scope, old_inst.castTag(.typeof).?), |
| 117 | .optional_type => return analyzeInstOptionalType(mod, scope, old_inst.castTag(.optional_type).?), | 118 | .optional_type => return analyzeInstOptionalType(mod, scope, old_inst.castTag(.optional_type).?), |
| ... | @@ -119,6 +120,7 @@ pub fn analyzeInst(mod: *Module, scope: *Scope, old_inst: *zir.Inst) InnerError! | ... | @@ -119,6 +120,7 @@ pub fn analyzeInst(mod: *Module, scope: *Scope, old_inst: *zir.Inst) InnerError! |
| 119 | .unwrap_optional_unsafe => return analyzeInstUnwrapOptional(mod, scope, old_inst.castTag(.unwrap_optional_unsafe).?, false), | 120 | .unwrap_optional_unsafe => return analyzeInstUnwrapOptional(mod, scope, old_inst.castTag(.unwrap_optional_unsafe).?, false), |
| 120 | .unwrap_err_safe => return analyzeInstUnwrapErr(mod, scope, old_inst.castTag(.unwrap_err_safe).?, true), | 121 | .unwrap_err_safe => return analyzeInstUnwrapErr(mod, scope, old_inst.castTag(.unwrap_err_safe).?, true), |
| 121 | .unwrap_err_unsafe => return analyzeInstUnwrapErr(mod, scope, old_inst.castTag(.unwrap_err_unsafe).?, false), | 122 | .unwrap_err_unsafe => return analyzeInstUnwrapErr(mod, scope, old_inst.castTag(.unwrap_err_unsafe).?, false), |
| 123 | .unwrap_err_code => return analyzeInstUnwrapErrCode(mod, scope, old_inst.castTag(.unwrap_err_code).?), | ||
| 122 | .ensure_err_payload_void => return analyzeInstEnsureErrPayloadVoid(mod, scope, old_inst.castTag(.ensure_err_payload_void).?), | 124 | .ensure_err_payload_void => return analyzeInstEnsureErrPayloadVoid(mod, scope, old_inst.castTag(.ensure_err_payload_void).?), |
| 123 | .array_type => return analyzeInstArrayType(mod, scope, old_inst.castTag(.array_type).?), | 125 | .array_type => return analyzeInstArrayType(mod, scope, old_inst.castTag(.array_type).?), |
| 124 | .array_type_sentinel => return analyzeInstArrayTypeSentinel(mod, scope, old_inst.castTag(.array_type_sentinel).?), | 126 | .array_type_sentinel => return analyzeInstArrayTypeSentinel(mod, scope, old_inst.castTag(.array_type_sentinel).?), |
| ... | @@ -382,6 +384,19 @@ fn analyzeInstEnsureResultNonError(mod: *Module, scope: *Scope, inst: *zir.Inst. | ... | @@ -382,6 +384,19 @@ fn analyzeInstEnsureResultNonError(mod: *Module, scope: *Scope, inst: *zir.Inst. |
| 382 | } | 384 | } |
| 383 | } | 385 | } |
| 384 | 386 | ||
| 387 | fn analyzeInstEnsureIndexable(mod: *Module, scope: *Scope, inst: *zir.Inst.UnOp) InnerError!*Inst { | ||
| 388 | const operand = try resolveInst(mod, scope, inst.positionals.operand); | ||
| 389 | const elem_ty = operand.ty.elemType(); | ||
| 390 | if (elem_ty.isIndexable()) { | ||
| 391 | return mod.constVoid(scope, operand.src); | ||
| 392 | } else { | ||
| 393 | // TODO error notes | ||
| 394 | // error: type '{}' does not support indexing | ||
| 395 | // note: for loop operand must be an array, a slice or a tuple | ||
| 396 | return mod.fail(scope, operand.src, "for loop operand must be an array, a slice or a tuple", .{}); | ||
| 397 | } | ||
| 398 | } | ||
| 399 | |||
| 385 | fn analyzeInstAlloc(mod: *Module, scope: *Scope, inst: *zir.Inst.UnOp) InnerError!*Inst { | 400 | fn analyzeInstAlloc(mod: *Module, scope: *Scope, inst: *zir.Inst.UnOp) InnerError!*Inst { |
| 386 | const var_type = try resolveType(mod, scope, inst.positionals.operand); | 401 | const var_type = try resolveType(mod, scope, inst.positionals.operand); |
| 387 | // TODO this should happen only for var allocs | 402 | // TODO this should happen only for var allocs |
| ... | @@ -786,11 +801,12 @@ fn analyzeInstUnwrapOptional(mod: *Module, scope: *Scope, unwrap: *zir.Inst.UnOp | ... | @@ -786,11 +801,12 @@ fn analyzeInstUnwrapOptional(mod: *Module, scope: *Scope, unwrap: *zir.Inst.UnOp |
| 786 | const operand = try resolveInst(mod, scope, unwrap.positionals.operand); | 801 | const operand = try resolveInst(mod, scope, unwrap.positionals.operand); |
| 787 | assert(operand.ty.zigTypeTag() == .Pointer); | 802 | assert(operand.ty.zigTypeTag() == .Pointer); |
| 788 | 803 | ||
| 789 | if (operand.ty.elemType().zigTypeTag() != .Optional) { | 804 | const elem_type = operand.ty.elemType(); |
| 790 | return mod.fail(scope, unwrap.base.src, "expected optional type, found {}", .{operand.ty.elemType()}); | 805 | if (elem_type.zigTypeTag() != .Optional) { |
| 806 | return mod.fail(scope, unwrap.base.src, "expected optional type, found {}", .{elem_type}); | ||
| 791 | } | 807 | } |
| 792 | 808 | ||
| 793 | const child_type = try operand.ty.elemType().optionalChildAlloc(scope.arena()); | 809 | const child_type = try elem_type.optionalChildAlloc(scope.arena()); |
| 794 | const child_pointer = try mod.simplePtrType(scope, unwrap.base.src, child_type, operand.ty.isConstPtr(), .One); | 810 | const child_pointer = try mod.simplePtrType(scope, unwrap.base.src, child_type, operand.ty.isConstPtr(), .One); |
| 795 | 811 | ||
| 796 | if (operand.value()) |val| { | 812 | if (operand.value()) |val| { |
| ... | @@ -815,6 +831,10 @@ fn analyzeInstUnwrapErr(mod: *Module, scope: *Scope, unwrap: *zir.Inst.UnOp, saf | ... | @@ -815,6 +831,10 @@ fn analyzeInstUnwrapErr(mod: *Module, scope: *Scope, unwrap: *zir.Inst.UnOp, saf |
| 815 | return mod.fail(scope, unwrap.base.src, "TODO implement analyzeInstUnwrapErr", .{}); | 831 | return mod.fail(scope, unwrap.base.src, "TODO implement analyzeInstUnwrapErr", .{}); |
| 816 | } | 832 | } |
| 817 | 833 | ||
| 834 | fn analyzeInstUnwrapErrCode(mod: *Module, scope: *Scope, unwrap: *zir.Inst.UnOp) InnerError!*Inst { | ||
| 835 | return mod.fail(scope, unwrap.base.src, "TODO implement analyzeInstUnwrapErrCode", .{}); | ||
| 836 | } | ||
| 837 | |||
| 818 | fn analyzeInstEnsureErrPayloadVoid(mod: *Module, scope: *Scope, unwrap: *zir.Inst.UnOp) InnerError!*Inst { | 838 | fn analyzeInstEnsureErrPayloadVoid(mod: *Module, scope: *Scope, unwrap: *zir.Inst.UnOp) InnerError!*Inst { |
| 819 | return mod.fail(scope, unwrap.base.src, "TODO implement analyzeInstEnsureErrPayloadVoid", .{}); | 839 | return mod.fail(scope, unwrap.base.src, "TODO implement analyzeInstEnsureErrPayloadVoid", .{}); |
| 820 | } | 840 | } |
| ... | @@ -950,7 +970,8 @@ fn analyzeInstFieldPtr(mod: *Module, scope: *Scope, fieldptr: *zir.Inst.FieldPtr | ... | @@ -950,7 +970,8 @@ fn analyzeInstFieldPtr(mod: *Module, scope: *Scope, fieldptr: *zir.Inst.FieldPtr |
| 950 | const entry = if (val.cast(Value.Payload.ErrorSet)) |payload| | 970 | const entry = if (val.cast(Value.Payload.ErrorSet)) |payload| |
| 951 | (payload.fields.getEntry(field_name) orelse | 971 | (payload.fields.getEntry(field_name) orelse |
| 952 | return mod.fail(scope, fieldptr.base.src, "no error named '{}' in '{}'", .{ field_name, child_type })).* | 972 | return mod.fail(scope, fieldptr.base.src, "no error named '{}' in '{}'", .{ field_name, child_type })).* |
| 953 | else try mod.getErrorValue(field_name); | 973 | else |
| 974 | try mod.getErrorValue(field_name); | ||
| 954 | 975 | ||
| 955 | const error_payload = try scope.arena().create(Value.Payload.Error); | 976 | const error_payload = try scope.arena().create(Value.Payload.Error); |
| 956 | error_payload.* = .{ | 977 | error_payload.* = .{ |
| ... | @@ -1062,9 +1083,19 @@ fn analyzeInstElemPtr(mod: *Module, scope: *Scope, inst: *zir.Inst.ElemPtr) Inne | ... | @@ -1062,9 +1083,19 @@ fn analyzeInstElemPtr(mod: *Module, scope: *Scope, inst: *zir.Inst.ElemPtr) Inne |
| 1062 | const array_ptr = try resolveInst(mod, scope, inst.positionals.array_ptr); | 1083 | const array_ptr = try resolveInst(mod, scope, inst.positionals.array_ptr); |
| 1063 | const uncasted_index = try resolveInst(mod, scope, inst.positionals.index); | 1084 | const uncasted_index = try resolveInst(mod, scope, inst.positionals.index); |
| 1064 | const elem_index = try mod.coerce(scope, Type.initTag(.usize), uncasted_index); | 1085 | const elem_index = try mod.coerce(scope, Type.initTag(.usize), uncasted_index); |
| 1086 | |||
| 1087 | const elem_ty = switch (array_ptr.ty.zigTypeTag()) { | ||
| 1088 | .Pointer => array_ptr.ty.elemType(), | ||
| 1089 | else => return mod.fail(scope, inst.positionals.array_ptr.src, "expected pointer, found '{}'", .{array_ptr.ty}), | ||
| 1090 | }; | ||
| 1091 | if (!elem_ty.isIndexable()) { | ||
| 1092 | return mod.fail(scope, inst.base.src, "array access of non-array type '{}'", .{elem_ty}); | ||
| 1093 | } | ||
| 1065 | 1094 | ||
| 1066 | if (array_ptr.ty.isSinglePointer() and array_ptr.ty.elemType().zigTypeTag() == .Array) { | 1095 | if (elem_ty.isSinglePointer() and elem_ty.elemType().zigTypeTag() == .Array) { |
| 1067 | if (array_ptr.value()) |array_ptr_val| { | 1096 | // we have to deref the ptr operand to get the actual array pointer |
| 1097 | const array_ptr_deref = try mod.analyzeDeref(scope, inst.base.src, array_ptr, inst.positionals.array_ptr.src); | ||
| 1098 | if (array_ptr_deref.value()) |array_ptr_val| { | ||
| 1068 | if (elem_index.value()) |index_val| { | 1099 | if (elem_index.value()) |index_val| { |
| 1069 | // Both array pointer and index are compile-time known. | 1100 | // Both array pointer and index are compile-time known. |
| 1070 | const index_u64 = index_val.toUnsignedInt(); | 1101 | const index_u64 = index_val.toUnsignedInt(); |
| ... | @@ -1075,7 +1106,7 @@ fn analyzeInstElemPtr(mod: *Module, scope: *Scope, inst: *zir.Inst.ElemPtr) Inne | ... | @@ -1075,7 +1106,7 @@ fn analyzeInstElemPtr(mod: *Module, scope: *Scope, inst: *zir.Inst.ElemPtr) Inne |
| 1075 | const type_payload = try scope.arena().create(Type.Payload.PointerSimple); | 1106 | const type_payload = try scope.arena().create(Type.Payload.PointerSimple); |
| 1076 | type_payload.* = .{ | 1107 | type_payload.* = .{ |
| 1077 | .base = .{ .tag = .single_const_pointer }, | 1108 | .base = .{ .tag = .single_const_pointer }, |
| 1078 | .pointee_type = array_ptr.ty.elemType().elemType(), | 1109 | .pointee_type = elem_ty.elemType().elemType(), |
| 1079 | }; | 1110 | }; |
| 1080 | 1111 | ||
| 1081 | return mod.constInst(scope, inst.base.src, .{ | 1112 | return mod.constInst(scope, inst.base.src, .{ |
| ... | @@ -1274,17 +1305,7 @@ fn analyzeInstCmp( | ... | @@ -1274,17 +1305,7 @@ fn analyzeInstCmp( |
| 1274 | { | 1305 | { |
| 1275 | // comparing null with optionals | 1306 | // comparing null with optionals |
| 1276 | const opt_operand = if (lhs_ty_tag == .Optional) lhs else rhs; | 1307 | const opt_operand = if (lhs_ty_tag == .Optional) lhs else rhs; |
| 1277 | if (opt_operand.value()) |opt_val| { | 1308 | return mod.analyzeIsNull(scope, inst.base.src, opt_operand, op == .neq); |
| 1278 | const is_null = opt_val.isNull(); | ||
| 1279 | return mod.constBool(scope, inst.base.src, if (op == .eq) is_null else !is_null); | ||
| 1280 | } | ||
| 1281 | const b = try mod.requireRuntimeBlock(scope, inst.base.src); | ||
| 1282 | const inst_tag: Inst.Tag = switch (op) { | ||
| 1283 | .eq => .isnull, | ||
| 1284 | .neq => .isnonnull, | ||
| 1285 | else => unreachable, | ||
| 1286 | }; | ||
| 1287 | return mod.addUnOp(b, inst.base.src, Type.initTag(.bool), inst_tag, opt_operand); | ||
| 1288 | } else if (is_equality_cmp and | 1309 | } else if (is_equality_cmp and |
| 1289 | ((lhs_ty_tag == .Null and rhs.ty.isCPtr()) or (rhs_ty_tag == .Null and lhs.ty.isCPtr()))) | 1310 | ((lhs_ty_tag == .Null and rhs.ty.isCPtr()) or (rhs_ty_tag == .Null and lhs.ty.isCPtr()))) |
| 1290 | { | 1311 | { |
| ... | @@ -1332,8 +1353,9 @@ fn analyzeInstIsNonNull(mod: *Module, scope: *Scope, inst: *zir.Inst.UnOp, inver | ... | @@ -1332,8 +1353,9 @@ fn analyzeInstIsNonNull(mod: *Module, scope: *Scope, inst: *zir.Inst.UnOp, inver |
| 1332 | return mod.analyzeIsNull(scope, inst.base.src, operand, invert_logic); | 1353 | return mod.analyzeIsNull(scope, inst.base.src, operand, invert_logic); |
| 1333 | } | 1354 | } |
| 1334 | 1355 | ||
| 1335 | fn analyzeInstIsErr(mod: *Module, scope: *Scope, inst: *zir.Inst.UnOp, invert_logic: bool) InnerError!*Inst { | 1356 | fn analyzeInstIsErr(mod: *Module, scope: *Scope, inst: *zir.Inst.UnOp) InnerError!*Inst { |
| 1336 | return mod.fail(scope, inst.base.src, "TODO implement analyzeInstIsErr", .{}); | 1357 | const operand = try resolveInst(mod, scope, inst.positionals.operand); |
| 1358 | return mod.analyzeIsErr(scope, inst.base.src, operand); | ||
| 1337 | } | 1359 | } |
| 1338 | 1360 | ||
| 1339 | fn analyzeInstCondBr(mod: *Module, scope: *Scope, inst: *zir.Inst.CondBr) InnerError!*Inst { | 1361 | fn analyzeInstCondBr(mod: *Module, scope: *Scope, inst: *zir.Inst.CondBr) InnerError!*Inst { |
src/all_types.hpp-6| ... | @@ -1809,7 +1809,6 @@ enum BuiltinFnId { | ... | @@ -1809,7 +1809,6 @@ enum BuiltinFnId { |
| 1809 | BuiltinFnIdShrExact, | 1809 | BuiltinFnIdShrExact, |
| 1810 | BuiltinFnIdSetEvalBranchQuota, | 1810 | BuiltinFnIdSetEvalBranchQuota, |
| 1811 | BuiltinFnIdAlignCast, | 1811 | BuiltinFnIdAlignCast, |
| 1812 | BuiltinFnIdOpaqueType, | ||
| 1813 | BuiltinFnIdThis, | 1812 | BuiltinFnIdThis, |
| 1814 | BuiltinFnIdSetAlignStack, | 1813 | BuiltinFnIdSetAlignStack, |
| 1815 | BuiltinFnIdExport, | 1814 | BuiltinFnIdExport, |
| ... | @@ -2734,7 +2733,6 @@ enum IrInstSrcId { | ... | @@ -2734,7 +2733,6 @@ enum IrInstSrcId { |
| 2734 | IrInstSrcIdImplicitCast, | 2733 | IrInstSrcIdImplicitCast, |
| 2735 | IrInstSrcIdResolveResult, | 2734 | IrInstSrcIdResolveResult, |
| 2736 | IrInstSrcIdResetResult, | 2735 | IrInstSrcIdResetResult, |
| 2737 | IrInstSrcIdOpaqueType, | ||
| 2738 | IrInstSrcIdSetAlignStack, | 2736 | IrInstSrcIdSetAlignStack, |
| 2739 | IrInstSrcIdArgType, | 2737 | IrInstSrcIdArgType, |
| 2740 | IrInstSrcIdExport, | 2738 | IrInstSrcIdExport, |
| ... | @@ -4234,10 +4232,6 @@ struct IrInstGenAlignCast { | ... | @@ -4234,10 +4232,6 @@ struct IrInstGenAlignCast { |
| 4234 | IrInstGen *target; | 4232 | IrInstGen *target; |
| 4235 | }; | 4233 | }; |
| 4236 | 4234 | ||
| 4237 | struct IrInstSrcOpaqueType { | ||
| 4238 | IrInstSrc base; | ||
| 4239 | }; | ||
| 4240 | |||
| 4241 | struct IrInstSrcSetAlignStack { | 4235 | struct IrInstSrcSetAlignStack { |
| 4242 | IrInstSrc base; | 4236 | IrInstSrc base; |
| 4243 | 4237 |
src/codegen.cpp-1| ... | @@ -8700,7 +8700,6 @@ static void define_builtin_fns(CodeGen *g) { | ... | @@ -8700,7 +8700,6 @@ static void define_builtin_fns(CodeGen *g) { |
| 8700 | create_builtin_fn(g, BuiltinFnIdShrExact, "shrExact", 2); | 8700 | create_builtin_fn(g, BuiltinFnIdShrExact, "shrExact", 2); |
| 8701 | create_builtin_fn(g, BuiltinFnIdSetEvalBranchQuota, "setEvalBranchQuota", 1); | 8701 | create_builtin_fn(g, BuiltinFnIdSetEvalBranchQuota, "setEvalBranchQuota", 1); |
| 8702 | create_builtin_fn(g, BuiltinFnIdAlignCast, "alignCast", 2); | 8702 | create_builtin_fn(g, BuiltinFnIdAlignCast, "alignCast", 2); |
| 8703 | create_builtin_fn(g, BuiltinFnIdOpaqueType, "OpaqueType", 0); | ||
| 8704 | create_builtin_fn(g, BuiltinFnIdSetAlignStack, "setAlignStack", 1); | 8703 | create_builtin_fn(g, BuiltinFnIdSetAlignStack, "setAlignStack", 1); |
| 8705 | create_builtin_fn(g, BuiltinFnIdExport, "export", 2); | 8704 | create_builtin_fn(g, BuiltinFnIdExport, "export", 2); |
| 8706 | create_builtin_fn(g, BuiltinFnIdErrorReturnTrace, "errorReturnTrace", 0); | 8705 | create_builtin_fn(g, BuiltinFnIdErrorReturnTrace, "errorReturnTrace", 0); |
src/ir.cpp-29| ... | @@ -506,8 +506,6 @@ static void destroy_instruction_src(IrInstSrc *inst) { | ... | @@ -506,8 +506,6 @@ static void destroy_instruction_src(IrInstSrc *inst) { |
| 506 | return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcResolveResult *>(inst)); | 506 | return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcResolveResult *>(inst)); |
| 507 | case IrInstSrcIdResetResult: | 507 | case IrInstSrcIdResetResult: |
| 508 | return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcResetResult *>(inst)); | 508 | return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcResetResult *>(inst)); |
| 509 | case IrInstSrcIdOpaqueType: | ||
| 510 | return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcOpaqueType *>(inst)); | ||
| 511 | case IrInstSrcIdSetAlignStack: | 509 | case IrInstSrcIdSetAlignStack: |
| 512 | return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcSetAlignStack *>(inst)); | 510 | return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcSetAlignStack *>(inst)); |
| 513 | case IrInstSrcIdArgType: | 511 | case IrInstSrcIdArgType: |
| ... | @@ -1533,10 +1531,6 @@ static constexpr IrInstSrcId ir_inst_id(IrInstSrcResetResult *) { | ... | @@ -1533,10 +1531,6 @@ static constexpr IrInstSrcId ir_inst_id(IrInstSrcResetResult *) { |
| 1533 | return IrInstSrcIdResetResult; | 1531 | return IrInstSrcIdResetResult; |
| 1534 | } | 1532 | } |
| 1535 | 1533 | ||
| 1536 | static constexpr IrInstSrcId ir_inst_id(IrInstSrcOpaqueType *) { | ||
| 1537 | return IrInstSrcIdOpaqueType; | ||
| 1538 | } | ||
| 1539 | |||
| 1540 | static constexpr IrInstSrcId ir_inst_id(IrInstSrcSetAlignStack *) { | 1534 | static constexpr IrInstSrcId ir_inst_id(IrInstSrcSetAlignStack *) { |
| 1541 | return IrInstSrcIdSetAlignStack; | 1535 | return IrInstSrcIdSetAlignStack; |
| 1542 | } | 1536 | } |
| ... | @@ -4536,12 +4530,6 @@ static IrInstSrc *ir_build_reset_result(IrBuilderSrc *irb, Scope *scope, AstNode | ... | @@ -4536,12 +4530,6 @@ static IrInstSrc *ir_build_reset_result(IrBuilderSrc *irb, Scope *scope, AstNode |
| 4536 | return &instruction->base; | 4530 | return &instruction->base; |
| 4537 | } | 4531 | } |
| 4538 | 4532 | ||
| 4539 | static IrInstSrc *ir_build_opaque_type(IrBuilderSrc *irb, Scope *scope, AstNode *source_node) { | ||
| 4540 | IrInstSrcOpaqueType *instruction = ir_build_instruction<IrInstSrcOpaqueType>(irb, scope, source_node); | ||
| 4541 | |||
| 4542 | return &instruction->base; | ||
| 4543 | } | ||
| 4544 | |||
| 4545 | static IrInstSrc *ir_build_set_align_stack(IrBuilderSrc *irb, Scope *scope, AstNode *source_node, | 4533 | static IrInstSrc *ir_build_set_align_stack(IrBuilderSrc *irb, Scope *scope, AstNode *source_node, |
| 4546 | IrInstSrc *align_bytes) | 4534 | IrInstSrc *align_bytes) |
| 4547 | { | 4535 | { |
| ... | @@ -7311,11 +7299,6 @@ static IrInstSrc *ir_gen_builtin_fn_call(IrBuilderSrc *irb, Scope *scope, AstNod | ... | @@ -7311,11 +7299,6 @@ static IrInstSrc *ir_gen_builtin_fn_call(IrBuilderSrc *irb, Scope *scope, AstNod |
| 7311 | IrInstSrc *align_cast = ir_build_align_cast_src(irb, scope, node, arg0_value, arg1_value); | 7299 | IrInstSrc *align_cast = ir_build_align_cast_src(irb, scope, node, arg0_value, arg1_value); |
| 7312 | return ir_lval_wrap(irb, scope, align_cast, lval, result_loc); | 7300 | return ir_lval_wrap(irb, scope, align_cast, lval, result_loc); |
| 7313 | } | 7301 | } |
| 7314 | case BuiltinFnIdOpaqueType: | ||
| 7315 | { | ||
| 7316 | IrInstSrc *opaque_type = ir_build_opaque_type(irb, scope, node); | ||
| 7317 | return ir_lval_wrap(irb, scope, opaque_type, lval, result_loc); | ||
| 7318 | } | ||
| 7319 | case BuiltinFnIdThis: | 7302 | case BuiltinFnIdThis: |
| 7320 | { | 7303 | { |
| 7321 | IrInstSrc *this_inst = ir_gen_this(irb, scope, node); | 7304 | IrInstSrc *this_inst = ir_gen_this(irb, scope, node); |
| ... | @@ -30264,15 +30247,6 @@ static IrInstGen *ir_analyze_instruction_align_cast(IrAnalyze *ira, IrInstSrcAli | ... | @@ -30264,15 +30247,6 @@ static IrInstGen *ir_analyze_instruction_align_cast(IrAnalyze *ira, IrInstSrcAli |
| 30264 | return result; | 30247 | return result; |
| 30265 | } | 30248 | } |
| 30266 | 30249 | ||
| 30267 | static IrInstGen *ir_analyze_instruction_opaque_type(IrAnalyze *ira, IrInstSrcOpaqueType *instruction) { | ||
| 30268 | Buf *bare_name = buf_alloc(); | ||
| 30269 | Buf *full_name = get_anon_type_name(ira->codegen, ira->old_irb.exec, "opaque", | ||
| 30270 | instruction->base.base.scope, instruction->base.base.source_node, bare_name); | ||
| 30271 | ZigType *result_type = get_opaque_type(ira->codegen, instruction->base.base.scope, | ||
| 30272 | instruction->base.base.source_node, buf_ptr(full_name), bare_name); | ||
| 30273 | return ir_const_type(ira, &instruction->base.base, result_type); | ||
| 30274 | } | ||
| 30275 | |||
| 30276 | static IrInstGen *ir_analyze_instruction_set_align_stack(IrAnalyze *ira, IrInstSrcSetAlignStack *instruction) { | 30250 | static IrInstGen *ir_analyze_instruction_set_align_stack(IrAnalyze *ira, IrInstSrcSetAlignStack *instruction) { |
| 30277 | uint32_t align_bytes; | 30251 | uint32_t align_bytes; |
| 30278 | IrInstGen *align_bytes_inst = instruction->align_bytes->child; | 30252 | IrInstGen *align_bytes_inst = instruction->align_bytes->child; |
| ... | @@ -31737,8 +31711,6 @@ static IrInstGen *ir_analyze_instruction_base(IrAnalyze *ira, IrInstSrc *instruc | ... | @@ -31737,8 +31711,6 @@ static IrInstGen *ir_analyze_instruction_base(IrAnalyze *ira, IrInstSrc *instruc |
| 31737 | return ir_analyze_instruction_resolve_result(ira, (IrInstSrcResolveResult *)instruction); | 31711 | return ir_analyze_instruction_resolve_result(ira, (IrInstSrcResolveResult *)instruction); |
| 31738 | case IrInstSrcIdResetResult: | 31712 | case IrInstSrcIdResetResult: |
| 31739 | return ir_analyze_instruction_reset_result(ira, (IrInstSrcResetResult *)instruction); | 31713 | return ir_analyze_instruction_reset_result(ira, (IrInstSrcResetResult *)instruction); |
| 31740 | case IrInstSrcIdOpaqueType: | ||
| 31741 | return ir_analyze_instruction_opaque_type(ira, (IrInstSrcOpaqueType *)instruction); | ||
| 31742 | case IrInstSrcIdSetAlignStack: | 31714 | case IrInstSrcIdSetAlignStack: |
| 31743 | return ir_analyze_instruction_set_align_stack(ira, (IrInstSrcSetAlignStack *)instruction); | 31715 | return ir_analyze_instruction_set_align_stack(ira, (IrInstSrcSetAlignStack *)instruction); |
| 31744 | case IrInstSrcIdArgType: | 31716 | case IrInstSrcIdArgType: |
| ... | @@ -32182,7 +32154,6 @@ bool ir_inst_src_has_side_effects(IrInstSrc *instruction) { | ... | @@ -32182,7 +32154,6 @@ bool ir_inst_src_has_side_effects(IrInstSrc *instruction) { |
| 32182 | case IrInstSrcIdAlignCast: | 32154 | case IrInstSrcIdAlignCast: |
| 32183 | case IrInstSrcIdImplicitCast: | 32155 | case IrInstSrcIdImplicitCast: |
| 32184 | case IrInstSrcIdResolveResult: | 32156 | case IrInstSrcIdResolveResult: |
| 32185 | case IrInstSrcIdOpaqueType: | ||
| 32186 | case IrInstSrcIdArgType: | 32157 | case IrInstSrcIdArgType: |
| 32187 | case IrInstSrcIdTagType: | 32158 | case IrInstSrcIdTagType: |
| 32188 | case IrInstSrcIdErrorReturnTrace: | 32159 | case IrInstSrcIdErrorReturnTrace: |
src/ir_print.cpp-9| ... | @@ -306,8 +306,6 @@ const char* ir_inst_src_type_str(IrInstSrcId id) { | ... | @@ -306,8 +306,6 @@ const char* ir_inst_src_type_str(IrInstSrcId id) { |
| 306 | return "SrcResolveResult"; | 306 | return "SrcResolveResult"; |
| 307 | case IrInstSrcIdResetResult: | 307 | case IrInstSrcIdResetResult: |
| 308 | return "SrcResetResult"; | 308 | return "SrcResetResult"; |
| 309 | case IrInstSrcIdOpaqueType: | ||
| 310 | return "SrcOpaqueType"; | ||
| 311 | case IrInstSrcIdSetAlignStack: | 309 | case IrInstSrcIdSetAlignStack: |
| 312 | return "SrcSetAlignStack"; | 310 | return "SrcSetAlignStack"; |
| 313 | case IrInstSrcIdArgType: | 311 | case IrInstSrcIdArgType: |
| ... | @@ -2315,10 +2313,6 @@ static void ir_print_reset_result(IrPrintSrc *irp, IrInstSrcResetResult *instruc | ... | @@ -2315,10 +2313,6 @@ static void ir_print_reset_result(IrPrintSrc *irp, IrInstSrcResetResult *instruc |
| 2315 | fprintf(irp->f, ")"); | 2313 | fprintf(irp->f, ")"); |
| 2316 | } | 2314 | } |
| 2317 | 2315 | ||
| 2318 | static void ir_print_opaque_type(IrPrintSrc *irp, IrInstSrcOpaqueType *instruction) { | ||
| 2319 | fprintf(irp->f, "@OpaqueType()"); | ||
| 2320 | } | ||
| 2321 | |||
| 2322 | static void ir_print_set_align_stack(IrPrintSrc *irp, IrInstSrcSetAlignStack *instruction) { | 2316 | static void ir_print_set_align_stack(IrPrintSrc *irp, IrInstSrcSetAlignStack *instruction) { |
| 2323 | fprintf(irp->f, "@setAlignStack("); | 2317 | fprintf(irp->f, "@setAlignStack("); |
| 2324 | ir_print_other_inst_src(irp, instruction->align_bytes); | 2318 | ir_print_other_inst_src(irp, instruction->align_bytes); |
| ... | @@ -2911,9 +2905,6 @@ static void ir_print_inst_src(IrPrintSrc *irp, IrInstSrc *instruction, bool trai | ... | @@ -2911,9 +2905,6 @@ static void ir_print_inst_src(IrPrintSrc *irp, IrInstSrc *instruction, bool trai |
| 2911 | case IrInstSrcIdResetResult: | 2905 | case IrInstSrcIdResetResult: |
| 2912 | ir_print_reset_result(irp, (IrInstSrcResetResult *)instruction); | 2906 | ir_print_reset_result(irp, (IrInstSrcResetResult *)instruction); |
| 2913 | break; | 2907 | break; |
| 2914 | case IrInstSrcIdOpaqueType: | ||
| 2915 | ir_print_opaque_type(irp, (IrInstSrcOpaqueType *)instruction); | ||
| 2916 | break; | ||
| 2917 | case IrInstSrcIdSetAlignStack: | 2908 | case IrInstSrcIdSetAlignStack: |
| 2918 | ir_print_set_align_stack(irp, (IrInstSrcSetAlignStack *)instruction); | 2909 | ir_print_set_align_stack(irp, (IrInstSrcSetAlignStack *)instruction); |
| 2919 | break; | 2910 | break; |
test/compile_errors.zig+1-1| ... | @@ -7394,7 +7394,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { | ... | @@ -7394,7 +7394,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { |
| 7394 | }); | 7394 | }); |
| 7395 | 7395 | ||
| 7396 | cases.add("function parameter is opaque", | 7396 | cases.add("function parameter is opaque", |
| 7397 | \\const FooType = @OpaqueType(); | 7397 | \\const FooType = @Type(.Opaque); |
| 7398 | \\export fn entry1() void { | 7398 | \\export fn entry1() void { |
| 7399 | \\ const someFuncPtr: fn (FooType) void = undefined; | 7399 | \\ const someFuncPtr: fn (FooType) void = undefined; |
| 7400 | \\} | 7400 | \\} |
test/run_translated_c.zig+17| ... | @@ -3,6 +3,23 @@ const tests = @import("tests.zig"); | ... | @@ -3,6 +3,23 @@ const tests = @import("tests.zig"); |
| 3 | const nl = std.cstr.line_sep; | 3 | const nl = std.cstr.line_sep; |
| 4 | 4 | ||
| 5 | pub fn addCases(cases: *tests.RunTranslatedCContext) void { | 5 | pub fn addCases(cases: *tests.RunTranslatedCContext) void { |
| 6 | cases.add("variable shadowing type type", | ||
| 7 | \\#include <stdlib.h> | ||
| 8 | \\int main() { | ||
| 9 | \\ int type = 1; | ||
| 10 | \\ if (type != 1) abort(); | ||
| 11 | \\} | ||
| 12 | , ""); | ||
| 13 | |||
| 14 | cases.add("assignment as expression", | ||
| 15 | \\#include <stdlib.h> | ||
| 16 | \\int main() { | ||
| 17 | \\ int a, b, c, d = 5; | ||
| 18 | \\ int e = a = b = c = d; | ||
| 19 | \\ if (e != 5) abort(); | ||
| 20 | \\} | ||
| 21 | , ""); | ||
| 22 | |||
| 6 | cases.add("static variable in block scope", | 23 | cases.add("static variable in block scope", |
| 7 | \\#include <stdlib.h> | 24 | \\#include <stdlib.h> |
| 8 | \\int foo() { | 25 | \\int foo() { |
test/stage1/behavior/type.zig-1| ... | @@ -190,7 +190,6 @@ test "Type.ErrorUnion" { | ... | @@ -190,7 +190,6 @@ test "Type.ErrorUnion" { |
| 190 | } | 190 | } |
| 191 | 191 | ||
| 192 | test "Type.Opaque" { | 192 | test "Type.Opaque" { |
| 193 | testing.expect(@OpaqueType() != @Type(.Opaque)); | ||
| 194 | testing.expect(@Type(.Opaque) != @Type(.Opaque)); | 193 | testing.expect(@Type(.Opaque) != @Type(.Opaque)); |
| 195 | testing.expect(@typeInfo(@Type(.Opaque)) == .Opaque); | 194 | testing.expect(@typeInfo(@Type(.Opaque)) == .Opaque); |
| 196 | } | 195 | } |
test/stage2/test.zig+146| ... | @@ -694,6 +694,68 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -694,6 +694,68 @@ pub fn addCases(ctx: *TestContext) !void { |
| 694 | "", | 694 | "", |
| 695 | ); | 695 | ); |
| 696 | 696 | ||
| 697 | // Reusing the registers of dead operands playing nicely with conditional branching. | ||
| 698 | case.addCompareOutput( | ||
| 699 | \\export fn _start() noreturn { | ||
| 700 | \\ assert(add(3, 4) == 791); | ||
| 701 | \\ assert(add(4, 3) == 79); | ||
| 702 | \\ | ||
| 703 | \\ exit(); | ||
| 704 | \\} | ||
| 705 | \\ | ||
| 706 | \\fn add(a: u32, b: u32) u32 { | ||
| 707 | \\ const x: u32 = if (a < b) blk: { | ||
| 708 | \\ const c = a + b; // 7 | ||
| 709 | \\ const d = a + c; // 10 | ||
| 710 | \\ const e = d + b; // 14 | ||
| 711 | \\ const f = d + e; // 24 | ||
| 712 | \\ const g = e + f; // 38 | ||
| 713 | \\ const h = f + g; // 62 | ||
| 714 | \\ const i = g + h; // 100 | ||
| 715 | \\ const j = i + d; // 110 | ||
| 716 | \\ const k = i + j; // 210 | ||
| 717 | \\ const l = k + c; // 217 | ||
| 718 | \\ const m = l + d; // 227 | ||
| 719 | \\ const n = m + e; // 241 | ||
| 720 | \\ const o = n + f; // 265 | ||
| 721 | \\ const p = o + g; // 303 | ||
| 722 | \\ const q = p + h; // 365 | ||
| 723 | \\ const r = q + i; // 465 | ||
| 724 | \\ const s = r + j; // 575 | ||
| 725 | \\ const t = s + k; // 785 | ||
| 726 | \\ break :blk t; | ||
| 727 | \\ } else blk: { | ||
| 728 | \\ const t = b + b + a; // 10 | ||
| 729 | \\ const c = a + t; // 14 | ||
| 730 | \\ const d = c + t; // 24 | ||
| 731 | \\ const e = d + t; // 34 | ||
| 732 | \\ const f = e + t; // 44 | ||
| 733 | \\ const g = f + t; // 54 | ||
| 734 | \\ const h = c + g; // 68 | ||
| 735 | \\ break :blk h + b; // 71 | ||
| 736 | \\ }; | ||
| 737 | \\ const y = x + a; // 788, 75 | ||
| 738 | \\ const z = y + a; // 791, 79 | ||
| 739 | \\ return z; | ||
| 740 | \\} | ||
| 741 | \\ | ||
| 742 | \\pub fn assert(ok: bool) void { | ||
| 743 | \\ if (!ok) unreachable; // assertion failure | ||
| 744 | \\} | ||
| 745 | \\ | ||
| 746 | \\fn exit() noreturn { | ||
| 747 | \\ asm volatile ("syscall" | ||
| 748 | \\ : | ||
| 749 | \\ : [number] "{rax}" (231), | ||
| 750 | \\ [arg1] "{rdi}" (0) | ||
| 751 | \\ : "rcx", "r11", "memory" | ||
| 752 | \\ ); | ||
| 753 | \\ unreachable; | ||
| 754 | \\} | ||
| 755 | , | ||
| 756 | "", | ||
| 757 | ); | ||
| 758 | |||
| 697 | // Character literals and multiline strings. | 759 | // Character literals and multiline strings. |
| 698 | case.addCompareOutput( | 760 | case.addCompareOutput( |
| 699 | \\export fn _start() noreturn { | 761 | \\export fn _start() noreturn { |
| ... | @@ -758,6 +820,90 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -758,6 +820,90 @@ pub fn addCases(ctx: *TestContext) !void { |
| 758 | , | 820 | , |
| 759 | "", | 821 | "", |
| 760 | ); | 822 | ); |
| 823 | |||
| 824 | // Array access. | ||
| 825 | case.addCompareOutput( | ||
| 826 | \\export fn _start() noreturn { | ||
| 827 | \\ assert("hello"[0] == 'h'); | ||
| 828 | \\ | ||
| 829 | \\ exit(); | ||
| 830 | \\} | ||
| 831 | \\ | ||
| 832 | \\pub fn assert(ok: bool) void { | ||
| 833 | \\ if (!ok) unreachable; // assertion failure | ||
| 834 | \\} | ||
| 835 | \\ | ||
| 836 | \\fn exit() noreturn { | ||
| 837 | \\ asm volatile ("syscall" | ||
| 838 | \\ : | ||
| 839 | \\ : [number] "{rax}" (231), | ||
| 840 | \\ [arg1] "{rdi}" (0) | ||
| 841 | \\ : "rcx", "r11", "memory" | ||
| 842 | \\ ); | ||
| 843 | \\ unreachable; | ||
| 844 | \\} | ||
| 845 | , | ||
| 846 | "", | ||
| 847 | ); | ||
| 848 | |||
| 849 | // 64bit set stack | ||
| 850 | case.addCompareOutput( | ||
| 851 | \\export fn _start() noreturn { | ||
| 852 | \\ var i: u64 = 0xFFEEDDCCBBAA9988; | ||
| 853 | \\ assert(i == 0xFFEEDDCCBBAA9988); | ||
| 854 | \\ | ||
| 855 | \\ exit(); | ||
| 856 | \\} | ||
| 857 | \\ | ||
| 858 | \\pub fn assert(ok: bool) void { | ||
| 859 | \\ if (!ok) unreachable; // assertion failure | ||
| 860 | \\} | ||
| 861 | \\ | ||
| 862 | \\fn exit() noreturn { | ||
| 863 | \\ asm volatile ("syscall" | ||
| 864 | \\ : | ||
| 865 | \\ : [number] "{rax}" (231), | ||
| 866 | \\ [arg1] "{rdi}" (0) | ||
| 867 | \\ : "rcx", "r11", "memory" | ||
| 868 | \\ ); | ||
| 869 | \\ unreachable; | ||
| 870 | \\} | ||
| 871 | , | ||
| 872 | "", | ||
| 873 | ); | ||
| 874 | |||
| 875 | // Basic for loop | ||
| 876 | case.addCompareOutput( | ||
| 877 | \\export fn _start() noreturn { | ||
| 878 | \\ for ("hello") |_| print(); | ||
| 879 | \\ | ||
| 880 | \\ exit(); | ||
| 881 | \\} | ||
| 882 | \\ | ||
| 883 | \\fn print() void { | ||
| 884 | \\ asm volatile ("syscall" | ||
| 885 | \\ : | ||
| 886 | \\ : [number] "{rax}" (1), | ||
| 887 | \\ [arg1] "{rdi}" (1), | ||
| 888 | \\ [arg2] "{rsi}" (@ptrToInt("hello\n")), | ||
| 889 | \\ [arg3] "{rdx}" (6) | ||
| 890 | \\ : "rcx", "r11", "memory" | ||
| 891 | \\ ); | ||
| 892 | \\ return; | ||
| 893 | \\} | ||
| 894 | \\ | ||
| 895 | \\fn exit() noreturn { | ||
| 896 | \\ asm volatile ("syscall" | ||
| 897 | \\ : | ||
| 898 | \\ : [number] "{rax}" (231), | ||
| 899 | \\ [arg1] "{rdi}" (0) | ||
| 900 | \\ : "rcx", "r11", "memory" | ||
| 901 | \\ ); | ||
| 902 | \\ unreachable; | ||
| 903 | \\} | ||
| 904 | , | ||
| 905 | "hello\nhello\nhello\nhello\nhello\n", | ||
| 906 | ); | ||
| 761 | } | 907 | } |
| 762 | 908 | ||
| 763 | { | 909 | { |
test/stage2/zir.zig+5-4| ... | @@ -43,10 +43,11 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -43,10 +43,11 @@ pub fn addCases(ctx: *TestContext) !void { |
| 43 | \\ | 43 | \\ |
| 44 | \\@entry = fn(@fnty, { | 44 | \\@entry = fn(@fnty, { |
| 45 | \\ %a = str("\x32\x08\x01\x0a") | 45 | \\ %a = str("\x32\x08\x01\x0a") |
| 46 | \\ %eptr0 = elemptr(%a, @0) | 46 | \\ %a_ref = ref(%a) |
| 47 | \\ %eptr1 = elemptr(%a, @1) | 47 | \\ %eptr0 = elemptr(%a_ref, @0) |
| 48 | \\ %eptr2 = elemptr(%a, @2) | 48 | \\ %eptr1 = elemptr(%a_ref, @1) |
| 49 | \\ %eptr3 = elemptr(%a, @3) | 49 | \\ %eptr2 = elemptr(%a_ref, @2) |
| 50 | \\ %eptr3 = elemptr(%a_ref, @3) | ||
| 50 | \\ %v0 = deref(%eptr0) | 51 | \\ %v0 = deref(%eptr0) |
| 51 | \\ %v1 = deref(%eptr1) | 52 | \\ %v1 = deref(%eptr1) |
| 52 | \\ %v2 = deref(%eptr2) | 53 | \\ %v2 = deref(%eptr2) |
tools/process_headers.zig+6-6| ... | @@ -15,7 +15,7 @@ const Arch = std.Target.Cpu.Arch; | ... | @@ -15,7 +15,7 @@ const Arch = std.Target.Cpu.Arch; |
| 15 | const Abi = std.Target.Abi; | 15 | const Abi = std.Target.Abi; |
| 16 | const OsTag = std.Target.Os.Tag; | 16 | const OsTag = std.Target.Os.Tag; |
| 17 | const assert = std.debug.assert; | 17 | const assert = std.debug.assert; |
| 18 | const Sha256 = std.crypto.hash.sha2.Sha256; | 18 | const Blake3 = std.crypto.hash.Blake3; |
| 19 | 19 | ||
| 20 | const LibCTarget = struct { | 20 | const LibCTarget = struct { |
| 21 | name: []const u8, | 21 | name: []const u8, |
| ... | @@ -314,7 +314,7 @@ pub fn main() !void { | ... | @@ -314,7 +314,7 @@ pub fn main() !void { |
| 314 | var max_bytes_saved: usize = 0; | 314 | var max_bytes_saved: usize = 0; |
| 315 | var total_bytes: usize = 0; | 315 | var total_bytes: usize = 0; |
| 316 | 316 | ||
| 317 | var hasher = Sha256.init(.{}); | 317 | var hasher = Blake3.init(.{}); |
| 318 | 318 | ||
| 319 | for (libc_targets) |libc_target| { | 319 | for (libc_targets) |libc_target| { |
| 320 | const dest_target = DestTarget{ | 320 | const dest_target = DestTarget{ |
| ... | @@ -360,7 +360,7 @@ pub fn main() !void { | ... | @@ -360,7 +360,7 @@ pub fn main() !void { |
| 360 | const trimmed = std.mem.trim(u8, raw_bytes, " \r\n\t"); | 360 | const trimmed = std.mem.trim(u8, raw_bytes, " \r\n\t"); |
| 361 | total_bytes += raw_bytes.len; | 361 | total_bytes += raw_bytes.len; |
| 362 | const hash = try allocator.alloc(u8, 32); | 362 | const hash = try allocator.alloc(u8, 32); |
| 363 | hasher = Sha256.init(.{}); | 363 | hasher = Blake3.init(.{}); |
| 364 | hasher.update(rel_path); | 364 | hasher.update(rel_path); |
| 365 | hasher.update(trimmed); | 365 | hasher.update(trimmed); |
| 366 | hasher.final(hash); | 366 | hasher.final(hash); |
| ... | @@ -412,12 +412,12 @@ pub fn main() !void { | ... | @@ -412,12 +412,12 @@ pub fn main() !void { |
| 412 | { | 412 | { |
| 413 | var hash_it = path_kv.value.iterator(); | 413 | var hash_it = path_kv.value.iterator(); |
| 414 | while (hash_it.next()) |hash_kv| { | 414 | while (hash_it.next()) |hash_kv| { |
| 415 | const contents = &hash_to_contents.get(hash_kv.value).?; | 415 | const contents = &hash_to_contents.getEntry(hash_kv.value).?.value; |
| 416 | try contents_list.append(contents); | 416 | try contents_list.append(contents); |
| 417 | } | 417 | } |
| 418 | } | 418 | } |
| 419 | std.sort.sort(*Contents, contents_list.span(), {}, Contents.hitCountLessThan); | 419 | std.sort.sort(*Contents, contents_list.span(), {}, Contents.hitCountLessThan); |
| 420 | var best_contents = contents_list.popOrNull().?; | 420 | const best_contents = contents_list.popOrNull().?; |
| 421 | if (best_contents.hit_count > 1) { | 421 | if (best_contents.hit_count > 1) { |
| 422 | // worth it to make it generic | 422 | // worth it to make it generic |
| 423 | const full_path = try std.fs.path.join(allocator, &[_][]const u8{ out_dir, generic_name, path_kv.key }); | 423 | const full_path = try std.fs.path.join(allocator, &[_][]const u8{ out_dir, generic_name, path_kv.key }); |
| ... | @@ -434,7 +434,7 @@ pub fn main() !void { | ... | @@ -434,7 +434,7 @@ pub fn main() !void { |
| 434 | } | 434 | } |
| 435 | var hash_it = path_kv.value.iterator(); | 435 | var hash_it = path_kv.value.iterator(); |
| 436 | while (hash_it.next()) |hash_kv| { | 436 | while (hash_it.next()) |hash_kv| { |
| 437 | const contents = &hash_to_contents.get(hash_kv.value).?; | 437 | const contents = &hash_to_contents.getEntry(hash_kv.value).?.value; |
| 438 | if (contents.is_generic) continue; | 438 | if (contents.is_generic) continue; |
| 439 | 439 | ||
| 440 | const dest_target = hash_kv.key; | 440 | const dest_target = hash_kv.key; |