My hunt on technical debt continues. This time my aim has been on the sorry mess known as GensrcX11Wrappers.

I've disentangled it into two functions, one simple gensrc part that is actually run during the build, and which involves just a simple java tool and some pre-calculated data files, and a separate step for updating those pre-calculated data files. This step is now run using "make update-x11wrappers". It involves compiling a native binary, and running it on the target platform, so just as before, this assumes that you are not cross-compiling.

I'm not sure what role the "verification" step we had before ever played. For all the years we've been "verifying" this, we've detected no differences. In fact, as far as I understand, what we *really* would need to verify against, is the X11 libraries on the runtime system, i.e. where the users executes the JRE. But then again, we can assume that this matches, just as anyone compiling with header files on one place can assume that they can use the libraries elsewhere. The only reason, as I see it, to keep the generation in the makefiles at all, is to document how the files were generated, and to be ready for the need to update the files if the list of datatypes in xlibtypes.txt changes.

Bug: https://bugs.openjdk.java.net/browse/JDK-8198844
WebRev: http://cr.openjdk.java.net/~ihse/JDK-8198844-clean-up-GensrcX11Wrappers/webrev.01

/Magnus

Reply via email to