Hi,
Sadly, but not entirely unexpectedly there is an anomaly in the include
files:
It seems that Windows does not define O_SYNC and O_DSYNC.
To make up for the absence jdk/src/java.base/share/native/libjava/io_util.h
conditionally defines them. There is no problem if the system include
files appear
first, but in the other order, fcntl.h tries to re-define it.
In the recommended order, there is no issue.
Roger
On 5/22/15 1:47 PM, Martin Buchholz wrote:
It's a good idea to order include statements by system dependencies,
jdk dependencies, implementation helpers, BUT order of include
statements should never ever matter. If it does, then we have a bug
that should be fixed. Every header file should be independently
includable, and C files should only Include What They Use. It would
be good for us to test some of that, e.g. can you compile each .h file
as its own translation unit?
+#include <fcntl.h>
+#include <limits.h>
+
#include "jni.h"
#include "jni_util.h"
#include "jlong.h"
@@ -32,9 +35,6 @@
#include "java_io_FileInputStream.h"
-#include <fcntl.h>
-#include <limits.h>
-