<p><br>
On Jan 17, 2011 9:20 AM, &quot;Jon TURNEY&quot; &lt;<a href="mailto:jon.turney@dronecode.org.uk">jon.turney@dronecode.org.uk</a>&gt; wrote:<br>
&gt;<br>
&gt; This is more in the nature of a RFC, but this is the least-bad approach I have<br>
&gt; managed to come up with.<br>
&gt;<br>
&gt; Why do I want to do this?  This set of changes lets me untie a few knots that<br>
&gt; XWin finds itself in at the moment:<br>
&gt;<br>
&gt; * libdix comes in 2 different flavours, depending on if it&#39;s<br>
&gt; built with ROOTLESS defined or not, so DDXs which don&#39;t support ROOTLESS can&#39;t<br>
&gt; be built at the same time as those that do.<br>
&gt;<br>
&gt; * I&#39;d like for a statically linked DDX to be able install another GLX provider<br>
&gt; such that it gets chosen in preference to swrast, and to solve that problem<br>
&gt; without creating another instance of the problem above.<br>
&gt;<br>
&gt; * The first point at which the DDX gets to execute is either<br>
&gt; ddxProcessArgument() (if arguments were supplied), otherwise OsVendorInit().<br>
&gt; This uncertainly makes it unneccessarily painful to implement command line<br>
&gt; options with a default depending on the environment.<br>
&gt; (There&#39;s also a specific problem in that I&#39;d like to have XWin default to<br>
&gt; -nolock if the filesystem for /tmp is FAT (as it doesn&#39;t support the semantics<br>
&gt; needed to create the lockfile successfully), but OsVendorInit() is too late to<br>
&gt; check this, as by that time, the lockfile has been created.)<br>
&gt;<br>
&gt; Jon TURNEY (6):<br>
&gt;  Move main() from dix to ddx<br>
&gt;  Replace DDXBEFORERESET with a more general way of doing DDX-specific<br>
&gt;    hooks<br>
&gt;  Add a DDX specific GLX provider push hook<br>
&gt;  Add a DDX specific hook into miPaintWindow for DDXen which support<br>
&gt;    the rootless extension<br>
&gt;  Make building XWin with WINDOWSWM and ROOTLESS mandatory<br>
&gt;  Revert libmain.a<br>
&gt;</p>
<p>Hi Jon,<br>
I&#39;m the developer working on the X server for Android, Androix (<a href="http://androix.org">androix.org</a>) and your work on XQuartz was indispensible for that, so thanks.</p>
<p>I have a similar problem, though it doesn&#39;t effect the present Java JNI (as either main() or dix_main() will work), it will be an issue with native applications in 2.3.</p>
<p>I am all for this, as I don&#39;t have arguments or config files to parse but do need to negotiate some things or retreive settings from the Android application having a custom main() is neccessary and being able to call it what I want (for the native app version) is as well.</p>

<p>I can&#39;t comment on GLX (or a future GLXES) yet because I haven&#39;t begun implementing that in my server.</p>
<p>--<br>
Timothy Meade<br>
tmzt on freenode</p>