Fixes -fno-rtti and implicit cast warnings. After this commit, all C warnings are gone except for one due to gluegen emitting char pointers instead of unsigned char pointers.
These pointers were showing up as uninitialized variables; on inspection they just weren't being passed in from the Java side or assigned on the C side. There are currently no tests of this function, which is how we didn't notice this omission.
Remove alignment warning in gluegen preprocessing.
Turns off the warning about CL_ALIGNED not being defined for the current compiler, but only inside the gluegen preprocessor. If CL_ALIGNED isn't defined for the real C compiler on the platform, the warning will still show up during C compilation.
Removed warnings due to memoryMaximumSize being ignored when javac isn't forked. Turned on all linting. Changed the arguments of uncomment-function-params so it will run from within Eclipse properly (using basedir instead of user.dir, since only the former will be properly set both inside Eclipse and on the command line).
Remove all Java lint warnings, by fixing the code if possible, and if not possible then by inserting @SuppressWarnings. Some of these @SuppressWarnings can be replaced later with @SafeVarargs if we eventually drop support for Java 6.
programBinariesTest() failure was due to AMD drivers crashing in clCreateKernelsInProgram() when the program is not built yet, instead of returning error code CL_INVALID_PROGRAM_EXECUTABLE as they should.
lowLevelVectorAddTest() failure was apparently due to the AMD drivers writing past the end of a direct byte buffer in such a way that it made System.gc() crash when called during teardown (this crash didn't even dump stack). Making the buffer larger solved the problem.
Make the test modify a GL texture with a CL kernel, then loop over the texture afterwards to check each texel has the right value. Also make the test loop over all platforms and devices that support sharing.
Fixed detection of compatible interoperability platforms (was silently skipping platform because GL vendor was Nvidia, but CL vendor was Apple). Also fixed CL kernel syntax error about signed-unsigned comparison that ATI's driver on Windows didn't find, and fixed the CL memory object to be write-only instead of read-only (which ATI's Windows driver just ignored).
Increase buffer size and rewind before reuse in every possible place. This is to try to remove a couple of remaining failures on some platforms. The failure causes an abnormal JVM exit without a stack trace when System.gc() is called during teardown.
Fixed the build instructions to reflect the changes that bring JOCL into line with the other JogAmp modules. Also fixed dead links and updated the version of OpenCL we point to.