> We have a handful of assembly files in the JDK. They have long been left > aside, with a "if it ain't broken, don't fix it" attitude. > > In the current panama-vector, there is a lot more assembly files incoming, > including for the Windows platforrm, which has not existed for a long time in > the JDK. > > It is time to give assembly files some more love and care. This patch cleans > up the handling in the build system, and it unifies between .s and .S files. > > For historical reasons, .s has been the suffix used in the posix world to > signify assembly output as generated by a compiler, and .S to signify > "hand-written" precious assembly. One effect of this is that gcc and clang > will run the preprocessor on files named .S but not on files named .s. > > All our files are "hand-written" in this sense, and should have the .S > suffix. But not all had. On mac, it was even worse, where the files were > named .s but the option `-x assembler-with-cpp` was used to force clang to > treat them as .S files instead... This change however made the preprocesser > try to parse comments of the form > > # if (a) { > > as preprocessor directives, and balk at them. In one of the files, I had to > wrap this in preprocessor comments (`/* ... */`). > > We also had inconsistent handling on dependencies. For preprocessed assembly > files, it really makes sense to have dependency tracking, exactly as for > C/C++ files. Now the dependency tracking in NativeCompilation is simplified, > and applies to all files. (The sole exception is Windows assembly, since masm > is unable to output dependency information, even though it is able to include > files :-(). > > This patch has been partly written by Sandhya Viswanathan > <sviswanat...@openjdk.org> for the panama-vector repo.
Magnus Ihse Bursie has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains eight commits: - Merge branch 'master' into improve-asm-handling - Use OPENJDK_BUILD_CPU_BITS instead - Fix comments that trip up the preprocessor - Transplant over more fixes from panama-vector - -Ta needs to be prefixed to source file - Remove support for non-preprocessed assembly files in gcc/clang - Rename all *.s files to *.S - Port over initial fixes from panama-vector ------------- Changes: https://git.openjdk.java.net/jdk/pull/3198/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3198&range=02 Stats: 78 lines in 12 files changed: 33 ins; 9 del; 36 mod Patch: https://git.openjdk.java.net/jdk/pull/3198.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/3198/head:pull/3198 PR: https://git.openjdk.java.net/jdk/pull/3198