diff options
author | Josh Kunz <jkz@google.com> | 2019-08-12 13:28:09 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2021-08-27 17:26:02 -0700 |
commit | 6733782381a84fe18cf89d11c88d7df497e3a275 (patch) | |
tree | dd8c104d6da963942798297fc27c1ea76e6687d4 /scripts | |
parent | ad41eacfb70e98e13cbfda076ded0c77b387ae8b (diff) | |
download | glibc-6733782381a84fe18cf89d11c88d7df497e3a275.tar.gz glibc-6733782381a84fe18cf89d11c88d7df497e3a275.tar.xz glibc-6733782381a84fe18cf89d11c88d7df497e3a275.zip |
Add comments explaining the diff from cf8e3f8757
These comments should make it easier to see the (small) diff introduced in cf8e3f8757. Without these comments, the diff may get list on a future upstream merge.
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/gen-as-const.awk | 7 | ||||
-rw-r--r-- | scripts/gen-py-const.awk | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/scripts/gen-as-const.awk b/scripts/gen-as-const.awk index 36e6de303c..fd662c9df9 100644 --- a/scripts/gen-as-const.awk +++ b/scripts/gen-as-const.awk @@ -49,6 +49,13 @@ NF > 1 { if (test) print " TEST (" name ", \"" FILENAME ":" FNR "\", " $0 ")"; else + # The `.ascii` directive here is needed for LLVM/clang support. LLVM will + # validate every `asm(...)` directive before emitting it, whereas GCC will + # literally emit the directive without validation. Without `.ascii` the + # directives emitted by this generator are not valid assembler statements, + # and the LLVM assembler will fail to assemble the file. The `.ascii` here + # has no functional affect, because string parsing is used to extract the + # integer constant from the assembly file built from the generated file. printf "asm (\".ascii \\\"@@@name@@@%s@@@value@@@%%0@@@end@@@\\\"\" : : \"i\" ((long) %s));\n", name, $0; } diff --git a/scripts/gen-py-const.awk b/scripts/gen-py-const.awk index beb41964ee..8101bf87ac 100644 --- a/scripts/gen-py-const.awk +++ b/scripts/gen-py-const.awk @@ -109,6 +109,13 @@ NF > 1 { # Remove any characters before the second field. sub(/^[^[:blank:]]+[[:blank:]]+/, ""); + # The `.ascii` directive here is needed for LLVM/clang support. LLVM will + # validate every `asm(...)` directive before emitting it, whereas GCC will + # literally emit the directive without validation. Without `.ascii` the + # directives emitted by this generator are not valid assembler statements, + # and the LLVM assembler will fail to assemble the file. The `.ascii` here + # has no functional affect, because string parsing is used to extract the + # integer constant from the assembly file built from the generated file. # '$0' ends up being everything that appeared after the first field # separator. printf " asm (\".ascii \\\"@name@%s@value@%0@\\\"\" : : \"i\" (%s));\n", name, $0; |