On 29/11/2011 19:34, Phil Race wrote:
:
* 95%+ of the code will be the same across solaris/linux/etc
And remember this includes all the X11 code.
* Of the remaining 5%, most of it is best dealt with via ifdef
because its a few line delta in a large file.
I'd guess 2% of the code might merit a separate source file.
So whilst these may exist in ports that doesn't mean they should all
exist
in mainline. I suggest to keep src/solaris (for historical reasons) as
meaing "src shared across the unix/X11 family" and others in mainline
only for the core supported platforms, which will add macosx in JDK 8,
largely because of client code differences
Ports would add their own platform dir if they need to, or add ifdefs
in src/solaris
if that's easier.
I'm not so sure about keeping src/solaris as "src shared across the
unix/X11 family", I'd prefer it be renamed to something that doesn't
have "solaris" or "sunos" in the name. The reason is that keeping
solaris in the name means there isn't an obvious location for Solaris
specific files. If they stay in src/solaris then it means this tree
requires pre-processing or filtering in the build. We do this today in
several places with no consistency and it would be nice to get rid of this.
In any case, keeping the directory structure flat as Fredrick suggested
make sense to me. Whether we will actually or refactor to the point
where we need sysv, gnu, etc. directories isn't clear to me. I think we
would be doing well to replace most of the ifdef __solaris__ and ifdef
__linux__ usages with ifdef <capability>.
-Alan.