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.

-------------

Commit messages:
 - 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=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8264188
  Stats: 79 lines in 12 files changed: 33 ins; 9 del; 37 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

Reply via email to