Andrew Overholt wrote:
On Wed, 2005-06-07 at 18:10 +0100, Gary Benson wrote:
> Thomas Fitzsimmons wrote:
> > Does aot-compile-rpm provide a way to exclude certain jars from
> > native compilation? This is sometimes necessary to work around
> > gcj bugs.
>
> There's no generic way, but if you have already compiled a solib
> yourself then it won't recreate it. This allows you to compile it
> with -O0 instead of -O2, for example, which has worked for every
> gcj bug I've seen so far.
The way we've been doing it with Eclipse is by moving the .jars that
we don't want to be compiled to .jar.bak. This won't work with
aot-compile-rpm, so we'll have to find a better way. -O2 -> -O0
doesn't work in some cases. Yes, tracking down the remaining
mis-compilations is on my list of things to do :) .
Ok, I added an --exclude option to handle this, and it's now built in
beehive as java-1.4.2-gcj-compat-1.4.2.0-40jpp_32rh so if you could
test it it would be very cool. You should be able to drop all solib
compilation and database building stuff, sticking an aot-compile-rpm
at the end of %install, and changing the %files sections to the new
locations.
Note that for --exclude the path you must is the final installed
path of the jarfile, for example
/usr/share/eclipse/plugins/org.eclipse.ui.workbench_3.1.0.jar
(_not_ prefixed with $RPM_BUILD_ROOT).
Note also that you shouldn't need to do this for the PPC limit
(#158308) because aot-compile-rpm ought to be able to handle it.
If you do have problems then let me know as it's a bug I should
be fixing.
Also note that for optimizer failures you can build the solib
yourself into the location that aot-compile-rpm would have built
it _before_ running aot-compile-rpm. aot-compile-rpm will generate
the database for it.
Finally, note that you can remove the %{_libdir} argument from all
the rebuild-gcj-db commands, as it's not necessary any more.
Cheers,
Gary