Flat vs Hierarchical is OK. its needless proliferation I was objecting to.

If "ifdef capability" can be used I have no issues with that either.

I suggested maintaining the name as src/solaris partly because I don't believe in churn and am not sure what would make a better name other than src/unix .. would that be OK ?
You could create src/sunos for the really sunos parts ..
Keeping the name the same also makes applying backport patches much easier.
Well, that and of course my fingers know it very well.

-phil.

On 11/29/2011 2:00 PM, Alan Bateman wrote:
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.

Reply via email to